FAQ Search Today's Posts Mark Forums Read

» Linux Archive
Home
New Posts
Search
FAQ


Go Back   Linux Archive > Debian > Debian dpkg

 
 
LinkBack Thread Tools
 
Old 05-07-2008, 08:13 AM
"dani"
 
Default Dpkg + Architecture limitations

Good Morning,

I have compiled a uclibc based system and I want to use dpkg as the package
manager. My config.site is;

host=$(uname -m)-anchor-linux-uclibc
build=$host
target=$host
ac_cv_host=$host
ac_cv_build=$build
ac_cv_target=$target

My machine architecture is i686 (output of uname -m).

My problem is; when I run the configure script (dpkg-1.14.15), I get the
following warnings;


configure: loading site script /usr/share/config.site
checking build system type... (cached) i686-anchor-linux-uclibc
checking host system type... (cached) i686-anchor-linux-uclibc
checking target system type... (cached) i686-anchor-linux-uclibc
checking dpkg cpu type... i686
configure: WARNING: i686 not found in cputable
checking dpkg operating system type... linux-uclibc
configure: WARNING: linux-uclibc not found in ostable
checking dpkg architecture name...

What should I add to the ostable, triplettable, and cputable files to get
rid of the above warnings? Thanks in advance.


Daniel


--
To UNSUBSCRIBE, email to debian-dpkg-REQUEST@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmaster@lists.debian.org
 
Old 05-07-2008, 02:50 PM
Neil Williams
 
Default Dpkg + Architecture limitations

On Wed, 2008-05-07 at 10:13 +0300, dani wrote:
> Good Morning,
>
> I have compiled a uclibc based system

I think you should probably be asking this on the debian-embedded list.

http://lists.debian.org/debian-embedded/

uClibc is not in Debian at this time and dpkg does not have explicit
support for it yet. dpkg-cross is probably where you would start with
uClibc requirements.

Debian-embedded looks after dpkg-cross and I'm currently doing most of
the work on the source code for it.

> and I want to use dpkg as the package
> manager. My config.site is;
> host=$(uname -m)-anchor-linux-uclibc

Why put 'anchor' in there? To what does anchor refer? A uClibc
architecture string is not specific to one particular machine. It should
specify the CPU (i486 because i686 is not a distinct architecture from
i486 which in turn is not distinct from i386), the kernel and the OS
suffix.

> build=$host
> target=$host
> ac_cv_host=$host
> ac_cv_build=$build
> ac_cv_target=$target

That doesn't look right to me. Where did you find this snippet?

dpkg-cross does not use system-level config.site files of that type
anymore. The i386 config.site data is:

#
# i386 specific configure variables
#
# If you have additions to this file, please tell <roman@debian.org>
# so they can be included in the package.
#
ac_cv_c_bigendian=no
ac_cv_c_char_unsigned=no
ac_cv_sizeof_long_long=8
ac_cv_sizeof_unsigned_long_long=8
ac_cv_sizeof_long=4
ac_cv_sizeof_unsigned_long=4
ac_cv_sizeof_int=4
ac_cv_sizeof_unsigned_int=4
ac_cv_sizeof_short=2
ac_cv_sizeof_unsigned_short=2
ac_cv_sizeof_short=2
ac_cv_sizeof_unsigned_short=2
ac_cv_sizeof_float=4
ac_cv_sizeof_double=8
ac_cv_sizeof_long_double=12

Nothing in that file is any different on i486, i686 or uClibc.

> My machine architecture is i686 (output of uname -m).

I think you may be confusing things - to build uClibc packages on an
i686 machine that will run on i386 machine, you don't need config.site.

The experimental uClibc support in emdebian-tools uses an existing
toolchain (cross building toolchain if necessary) and simply "bolts-on"
uClibc support to that toolchain.

This snippet gives you your proper architecture string:

$ perl -e '$u="i486-linux-gnu"; $u =~ s/([[:alnum:]]*)-([[:alnum:]]*)-gnu(.*)/$1-$2-uclibc$3/; print "$u
";'
i486-linux-uclibc

The value to pass to $u is the value from:
$ dpkg-architecture -ai386 -qDEB_HOST_GNU_TYPE

Take a look at the source code for emchain in current SVN for
emdebian-tools:

http://buildd.emdebian.org/svn/browser/current/host/trunk/emdebian-tools/trunk/emchain#L698

> My problem is; when I run the configure script (dpkg-1.14.15), I get the
> following warnings;
>
> configure: loading site script /usr/share/config.site
> checking build system type... (cached) i686-anchor-linux-uclibc
> checking host system type... (cached) i686-anchor-linux-uclibc
> checking target system type... (cached) i686-anchor-linux-uclibc

That is plain wrong, sorry.

Call ./configure with:
--build=i486-linux-gnu --host=i486-linux-uclibc

(Just don't use config.site to do it.)

With a correctly setup uClibc environment using emchain to munge the gcc
specs files, that would be all you need. No config.site.

> What should I add to the ostable, triplettable, and cputable files to get
> rid of the above warnings?

Nothing. The warnings, AFAICT are correct, your original approach seems
wrong.

--
Neil Williams <codehelp@debian.org>
 

Thread Tools




All times are GMT. The time now is 04:17 AM.

VBulletin, Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
Content Relevant URLs by vBSEO ©2007, Crawlability, Inc.
Copyright ©2007 - 2008, www.linux-archive.org