Hi,
I have been using crossdev and gentoo to build an uclibc embedded platform. I
have been buidling my toolchain using:
crossdev -binutils 2.16.1-r2 -gcc 3.4.5-r1 -libc 0.9.28 -kernel 2.6.16.20 -t
i386-pc-linux-uclibc
and
crossdev -binutils 2.16.1-r2 -gcc 3.4.5-r1 -libc 0.9.28 -kernel 2.6.16.20 -t
arm-softfloat-linux-uclibc
As you can see I am targeting both Intel and Arm platforms. I'm using
portage snapshot from portage-20060703.tar.gz. I intend only to update the
portage snapshot I am using only if I need to to fix a bug or add features.
Things have been working well, but there have been some issues with uclibc's
shared library loader, which so far I have worked around using LD_PRELOAD.
Having cross-compiled both mozilla for dfb and mozilla against X to use with
XDirectFB(dfb mozilla still seems to have some issues) these shared library
loader issues seem to be rearing there head again and I cant seem to work
around them with LD_PRELOAD for mozilla/X.
I have noticed though that since uclibc 0.9.28 there seems to have been a fair
bit of work done in uclibc's ldso directory and it looks like these bugs may
have been fixed there - hence the need to try and build against uclibc from
svn.
I have done this by creating a new uclibc-1.0.0.ebuild (version 1.0.0 just to
provide something.). I place the latest uclibc snapshot in in
/usr/portage/distfiles/uClibc-1.0.0.tar.gz. To make this build I had to use
the pregenerated uClibc locale stuff, make the ebuild fix up KERNEL_HEADERS
rather then KERNEL_SOURCE and in extra/locale 'ln -s ../../include include' so
this part could find it's headers. I also set 'PATCH_VER=""' assuming that
these fixes would probarbly be included in the latest SVN version.
(Please let me know if theres a more appropiate way to do this using the
uclibc ebuild - I noticed a reference to SVN_VER in the ebuild but it wasnt
clear how to use this, what it does or if it workes. )
This now build's OK and I can compile everything else against it. The problem
comes though trying to use it in
"crossdev -binutils 2.16.1-r2 -gcc 3.4.5-r1 -libc 1.0.0 -kernel 2.6.16.20 -t
i386-pc-linux-uclibc"
to build the toolchain with uclibc from svn. It falls over in gcc-stage2 with
the following build errors:
/bin/sh ../libtool --tag CXX --mode=compile
/var/tmp/cross/i386-pc-linux-uclibc/portage/gcc-3.4.5-r1/work/build/gcc/xgcc
-shared-libgcc
-B/var/tmp/cross/i386-pc-linux-uclibc/portage/gcc-3.4.5-r1/work/build/gcc/
-nostdinc++
-L/var/tmp/cross/i386-pc-linux-uclibc/portage/gcc-3.4.5-r1/work/build/i386-pc-linux-uclibc/libstdc++-v3/src
-L/var/tmp/cross/i386-pc-linux-uclibc/portage/gcc-3.4.5-r1/work/build/i386-pc-linux-uclibc/libstdc++-v3/src/.libs
-B/usr/i386-pc-linux-uclibc/bin/ -B/usr/i386-pc-linux-uclibc/lib/ -isystem
/usr/i386-pc-linux-uclibc/include -isystem
/usr/i386-pc-linux-uclibc/sys-include
-I/var/tmp/cross/i386-pc-linux-uclibc/portage/gcc-3.4.5-r1/work/build/i386-pc-linux-uclibc/libstdc++-v3/include/i386-pc-linux-uclibc
-I/var/tmp/cross/i386-pc-linux-uclibc/portage/gcc-3.4.5-r1/work/build/i386-pc-linux-uclibc/libstdc++-v3/include
-I/var/tmp/cross/i386-pc-linux-uclibc/portage/gcc-3.4.5-r1/work/gcc-3.4.5/libstdc++-v3/libsupc++
-g -Os -g -Os -fno-implicit-templates -Wall -W -Wwrite-strings -Wcast-qual
-fdiagnostics-show-location=once -ffunction-sections -fdata-sections -c -o
ctype_members.lo ctype_members.cc
/var/tmp/cross/i386-pc-linux-uclibc/portage/gcc-3.4.5-r1/work/build/gcc/xgcc
-shared-libgcc
-B/var/tmp/cross/i386-pc-linux-uclibc/portage/gcc-3.4.5-r1/work/build/gcc/
-nostdinc++
-L/var/tmp/cross/i386-pc-linux-uclibc/portage/gcc-3.4.5-r1/work/build/i386-pc-linux-uclibc/libstdc++-v3/src
-L/var/tmp/cross/i386-pc-linux-uclibc/portage/gcc-3.4.5-r1/work/build/i386-pc-linux-uclibc/libstdc++-v3/src/.libs
-B/usr/i386-pc-linux-uclibc/bin/ -B/usr/i386-pc-linux-uclibc/lib/ -isystem
/usr/i386-pc-linux-uclibc/include -isystem
/usr/i386-pc-linux-uclibc/sys-include
-I/var/tmp/cross/i386-pc-linux-uclibc/portage/gcc-3.4.5-r1/work/build/i386-pc-linux-uclibc/libstdc++-v3/include/i386-pc-linux-uclibc
-I/var/tmp/cross/i386-pc-linux-uclibc/portage/gcc-3.4.5-r1/work/build/i386-pc-linux-uclibc/libstdc++-v3/include
-I/var/tmp/cross/i386-pc-linux-uclibc/portage/gcc-3.4.5-r1/work/gcc-3.4.5/libstdc++-v3/libsupc++
-g -Os -g -Os -fno-implicit-templates -Wall -W -Wwrite-strings -Wcast-qual
-fdiagnostics-show-location=once -ffunction-sections -fdata-sections -c
ctype_members.cc -fPIC -DPIC -o .libs/ctype_members.o
In file included from /usr/i386-pc-linux-uclibc/sys-include/stdio.h:72,
from
/var/tmp/cross/i386-pc-linux-uclibc/portage/gcc-3.4.5-r1/work/build/i386-pc-linux-uclibc/libstdc++-v3/include/cstdio:52,
from
/var/tmp/cross/i386-pc-linux-uclibc/portage/gcc-3.4.5-r1/work/build/i386-pc-linux-uclibc/libstdc++-v3/include/i386-pc-linux-uclibc/bits/c++locale.h:42,
from
/var/tmp/cross/i386-pc-linux-uclibc/portage/gcc-3.4.5-r1/work/build/i386-pc-linux-uclibc/libstdc++-v3/include/bits/localefwd.h:46,
from
/var/tmp/cross/i386-pc-linux-uclibc/portage/gcc-3.4.5-r1/work/build/i386-pc-linux-uclibc/libstdc++-v3/include/locale:44,
from ctype_members.cc:37:
/usr/i386-pc-linux-uclibc/sys-include/bits/uClibc_stdio.h:346: error: expected
initializer before "attribute_hidden"
/usr/i386-pc-linux-uclibc/sys-include/bits/uClibc_stdio.h:347: error: expected
initializer before "attribute_hidden"
/usr/i386-pc-linux-uclibc/sys-include/bits/uClibc_stdio.h:361: error: expected
initializer before "attribute_hidden"
make[3]: *** [ctype_members.lo] Error 1
I will look into the problem and if I find a solution will post it here. If
somebody already knows how to resolve this problem some advice would be
greatly appreciated.
Thanks
Ryan
--
[email protected] mailing list