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