Riku,

Thanks for the quick response. I'm still a bit confused, however, on what you mean by the i686-linux-gcc3.3-glibc2.3 toolchain (it looks like that used to be a binary package in a previous release, but no more).

So in the latest scratchbox release, do you mean I should try to build an i686 toolchain in a host-gcc target using

'make CONFIG=meta/toolchain/i686-gcc3.3-glibc.conf'

from the sb-toolchain darcs directory? Or are you referring to the scratchbox-toolchain-i686-linux-ct4.1.0-2.3.6tls-1.0.4 binary toolchain (as I can't find any other binary i686 toolchain). Or is the host-gcc target toolchain the one you are referring to?

I tried building the i686-gcc3.3-glibc.conf toolchain under a host-gcc target, but ran into problems there too (see below, looks like something to do with pthread support).

Finally, once I have the older gcc/glibc toolchain, how will that resolve my problem of crosstool's tools not being dependent on the libc of the environment in which they are built. Will the sheer fact that the gcc/glibc is older than what I'm trying to build cause crosstool to bake in dependence on its own libraries instead of the (older) host environment libraries? I would have thought that if it is picking up local dependencies, it will now be dependent on the older host libraries (glibc 2.3.x, where x < 6). I have to admit it's not clear to me why the crosstool built gcc is not completely bootstrapped to the versions specified in the first place.

Thanks for all your help,

-Jim Heck

i686-linux-gcc assert.c -c -std=gnu99 -O2 -Wall -Winline -Wstrict-prototypes -Wwrite-strings -mpreferred-stack-boundary=2 -DFATAL_PREPARE_INCLUDE='<fatal-prepare.h>' -I../include -I. -I/home/jheck/sb-toolchains/libc/glibc-2.3/work/build-glibc/assert -I.. -I../libio -I/home/jheck/sb-toolchains/libc/glibc-2.3/work/build-glibc -I../sysdeps/i386/elf -I../linuxthreads/sysdeps/unix/sysv/linux -I../linuxthreads/sysdeps/unix/sysv -I../linuxthreads/sysdeps/unix -I../sysdeps/unix/sysv/linux/i386 -I../sysdeps/unix/sysv/linux -I../sysdeps/gnu -I../sysdeps/unix/common -I../sysdeps/unix/mman -I../sysdeps/unix/inet -I../sysdeps/unix/sysv/i386 -I../sysdeps/unix/sysv -I../sysdeps/unix/i386 -I../sysdeps/unix -I../sysdeps/posix -I../sysdeps/i386/i686/fpu -I../sysdeps/i386/i686 -I../sysdeps/i386/i486 -I../sysdeps/i386/fpu -I../sysdeps/i386 -I../sysdeps/wordsize-32 -I../sysdeps/ieee754/ldbl-96 -I../sysdeps/ieee754/dbl-64 -I../sysdeps/ieee754/flt-32 -I../sysdeps/ieee754 -I../sysdeps/generic/elf -I../sysdeps/generic -nostdinc -isystem /scratchbox/compilers/i686-linux-gcc3.3-glibc2.3/lib/gcc-lib/i686-linux/3.3.4/include -isystem /scratchbox/compilers/i686-linux-gcc3.3-glibc2.3/usr/include -include ../include/libc-symbols.h -o /home/jheck/sb-toolchains/libc/glibc-2.3/work/build-glibc/assert/assert.o -MD -MP -MF /home/jheck/sb-toolchains/libc/glibc-2.3/work/build-glibc/assert/assert.o.dt
In file included from ../sysdeps/unix/sysv/linux/fatal-prepare.h:19,
                from assert.c:42:
../include/pthread.h:1:26: pthread.h: No such file or directory
assert.c: In function `__assert_fail':
assert.c:53: error: `pthread_setcancelstate' undeclared (first use in this function)
assert.c:53: error: (Each undeclared identifier is reported only once
assert.c:53: error: for each function it appears in.)
assert.c:53: error: `pthread_setcancelstate' used prior to declaration
assert.c:53: warning: implicit declaration of function `pthread_setcancelstate' assert.c:53: error: `PTHREAD_CANCEL_DISABLE' undeclared (first use in this function) make[5]: *** [/home/jheck/sb-toolchains/libc/glibc-2.3/work/build-glibc/assert/assert.o] Error 1 make[5]: Leaving directory `/home/jheck/sb-toolchains/libc/glibc-2.3/work/glibc-2.3.2/assert'
make[4]: *** [assert/subdir_lib] Error 2
make[4]: Leaving directory `/home/jheck/sb-toolchains/libc/glibc-2.3/work/glibc-2.3.2'
make[3]: *** [all] Error 2
make[3]: Leaving directory `/home/jheck/sb-toolchains/libc/glibc-2.3/work/build-glibc'
make[2]: *** [build-work/build-glibc/Makefile] Error 2
make[2]: Leaving directory `/home/jheck/sb-toolchains/libc/glibc-2.3'
make[1]: *** [dep-../../libc/glibc-2.3] Error 2
make[1]: Leaving directory `/home/jheck/sb-toolchains/meta/toolchain'
make: *** [build] Error 2


Riku Voipio wrote:
My second problem is that my gcc compiler is dependent on GLIBC_2.4, which is probably due to having been built in the Ubuntu environment which has libc6 version '2.4-1ubunt' installed. This is not exported by the libc.so.6 that I have in my compiler tree (since I built against 2.3.6).

Compile the toolchain in a x86 target inside scratchbox. This is
mentioned in thw wiki page:

http://scratchbox.org/wiki/CrossToolToolchain

I know this is more of a crosstool question, but does anyone know how to configure crosstool to build a gcc3.4 compiler that is independent of the host environment (e.g. no dependency on the libc for the host on which the compiler was built)?

By using a older libc when compiling the crosstoolchain. Which simplest
by following the wiki's advice and using i686-linux-gcc3.3-glibc2.3
toolchain.


_______________________________________________
Scratchbox-users mailing list
Scratchbox-users@lists.scratchbox.org
http://lists.scratchbox.org/cgi-bin/mailman/listinfo/scratchbox-users

Reply via email to