On Thursday 17 April 2008 03:35, Denys Vlasenko wrote: > On Thursday 17 April 2008 02:40, Denys Vlasenko wrote: > > I believe I solved it with --with-sysroot... > > Will try again and let you know.
I got over the problem of includes not being found using --with-sysroot, and reached "/usr/bin/x86_64-linux-uclibc-ld: crtbegin.o: No such file: No such file or directory" problem. This is the final link command I use: x86_64-linux-uclibc-gcc -v -Wall -Wshadow -Wwrite-strings -Wundef \ -Wstrict-prototypes -Wunused -Wunused-parameter -Werror -Wold-style-definition \ -Os -fno-builtin-strlen -finline-limit=0 -fomit-frame-pointer \ -ffunction-sections -fdata-sections -fno-guess-branch-probability \ -funsigned-char -static-libgcc -falign-functions=1 -falign-jumps=1 \ -falign-labels=1 -falign-loops=1 -Wdeclaration-after-statement \ -Wno-pointer-sign -o busybox_unstripped -Wl,--sort-common -Wl,--gc-sections \ -Wl,--start-group applets/built-in.o archival/lib.a archival/libunarchive/lib.a \ console-tools/lib.a coreutils/lib.a coreutils/libcoreutils/lib.a \ debianutils/lib.a e2fsprogs/lib.a editors/lib.a findutils/lib.a init/lib.a \ libbb/lib.a libpwdgrp/lib.a loginutils/lib.a miscutils/lib.a modutils/lib.a \ networking/lib.a networking/libiproute/lib.a networking/udhcp/lib.a \ printutils/lib.a procps/lib.a runit/lib.a selinux/lib.a shell/lib.a \ sysklogd/lib.a util-linux/lib.a util-linux/volume_id/lib.a archival/built-in.o \ archival/libunarchive/built-in.o console-tools/built-in.o coreutils/built-in.o \ coreutils/libcoreutils/built-in.o debianutils/built-in.o e2fsprogs/built-in.o \ editors/built-in.o findutils/built-in.o init/built-in.o libbb/built-in.o \ libpwdgrp/built-in.o loginutils/built-in.o miscutils/built-in.o \ modutils/built-in.o networking/built-in.o networking/libiproute/built-in.o \ networking/udhcp/built-in.o printutils/built-in.o procps/built-in.o \ runit/built-in.o selinux/built-in.o shell/built-in.o sysklogd/built-in.o \ util-linux/built-in.o util-linux/volume_id/built-in.o -Wl,--end-group \ -Wl,--start-group -lcrypt -lm -Wl,--end-group 4.2.3 works: Using built-in specs. Target: x86_64-linux-uclibc Configured with: ../gcc-4.2.3/configure --prefix=/usr/app/gcc-4.2.3-x86_64-linux-uclibc --exec-prefix=/usr/app/gcc-4.2.3-x86_64-linux-uclibc --bindir=/usr/bin --sbindir=/usr/sbin --libexecdir=/usr/app/gcc-4.2.3-x86_64-linux-uclibc/libexec --datadir=/usr/app/gcc-4.2.3-x86_64-linux-uclibc/share --sysconfdir=/etc --sharedstatedir=/usr/app/gcc-4.2.3-x86_64-linux-uclibc/var/com --localstatedir=/usr/app/gcc-4.2.3-x86_64-linux-uclibc/var --libdir=/usr/lib --includedir=/usr/include --infodir=/usr/info --mandir=/usr/man --disable-nls --with-local-prefix=/usr/local --with-slibdir=/usr/app/gcc-4.2.3-x86_64-linux-uclibc/lib --with-gxx-include-dir=/usr/app/gcc-4.2.3-x86_64-linux-uclibc/include/g++-v3 --build=i386-pc-linux-gnu --host=i386-pc-linux-gnu --target=x86_64-linux-uclibc --with-gnu-ld --with-ld=x86_64-linux-uclibc-ld --with-gnu-as --with-as=x86_64-linux-uclibc-as --enable-languages=c,c++ --enable-target-optspace --disable-shared --disable-__cxa_atexit --disable-threads --disable-tls --disable-multilib --without-headers Thread model: single gcc version 4.2.3 /usr/app/gcc-4.2.3-x86_64-linux-uclibc/libexec/gcc/x86_64-linux-uclibc/4.2.3/collect2 --eh-frame-hdr -m elf_x86_64 -dynamic-linker /lib/ld64-uClibc.so.0 -o busybox_unstripped /usr/lib/../x86_64-linux-uclibc/lib/crt1.o /usr/lib/../x86_64-linux-uclibc/lib/crti.o /.share/usr/app/gcc-4.2.3-x86_64-linux-uclibc/bin/../lib/gcc/x86_64-linux-uclibc/4.2.3/crtbegin.o -L/.share/usr/app/gcc-4.2.3-x86_64-linux-uclibc/bin/../lib/gcc/x86_64-linux-uclibc/4.2.3 -L/.share/usr/app/gcc-4.2.3-x86_64-linux-uclibc/bin/../lib/gcc -L/usr/lib/../x86_64-linux-uclibc/lib --sort-common --gc-sections --start-group applets/built-in.o archival/lib.a archival/libunarchive/lib.a console-tools/lib.a coreutils/lib.a coreutils/libcoreutils/lib.a debianutils/lib.a e2fsprogs/lib.a editors/lib.a findutils/lib.a init/lib.a libbb/lib.a libpwdgrp/lib.a loginutils/lib.a miscutils/lib.a modutils/lib.a networking/lib.a networking/libiproute/lib.a networking/udhcp/lib.a printutils/lib.a procps/lib.a runit/lib.a selinux/lib.a shell/lib.a sysklogd/lib.a util-linux/lib.a util-linux/volume_id/lib.a archival/built-in.o archival/libunarchive/built-in.o console-tools/built-in.o coreutils/built-in.o coreutils/libcoreutils/built-in.o debianutils/built-in.o e2fsprogs/built-in.o editors/built-in.o findutils/built-in.o init/built-in.o libbb/built-in.o libpwdgrp/built-in.o loginutils/built-in.o miscutils/built-in.o modutils/built-in.o networking/built-in.o networking/libiproute/built-in.o networking/udhcp/built-in.o printutils/built-in.o procps/built-in.o runit/built-in.o selinux/built-in.o shell/built-in.o sysklogd/built-in.o util-linux/built-in.o util-linux/volume_id/built-in.o --end-group --start-group -lcrypt -lm --end-group -lgcc -lc -lgcc /.share/usr/app/gcc-4.2.3-x86_64-linux-uclibc/bin/../lib/gcc/x86_64-linux-uclibc/4.2.3/crtend.o /usr/lib/../x86_64-linux-uclibc/lib/crtn.o 4.3.0 does not: Using built-in specs. Target: x86_64-linux-uclibc Configured with: ../gcc-4.3.0/configure --prefix=/usr/app/gcc-4.3.0-x86_64-linux-uclibc --exec-prefix=/usr/app/gcc-4.3.0-x86_64-linux-uclibc --bindir=/usr/app/gcc-4.3.0-x86_64-linux-uclibc/bin --sbindir=/usr/app/gcc-4.3.0-x86_64-linux-uclibc/sbin --libexecdir=/usr/app/gcc-4.3.0-x86_64-linux-uclibc/libexec --datadir=/usr/app/gcc-4.3.0-x86_64-linux-uclibc/share --sysconfdir=/etc --sharedstatedir=/usr/app/gcc-4.3.0-x86_64-linux-uclibc/var/com --localstatedir=/usr/app/gcc-4.3.0-x86_64-linux-uclibc/var --libdir=/usr/app/gcc-4.3.0-x86_64-linux-uclibc/lib --includedir=/usr/app/gcc-4.3.0-x86_64-linux-uclibc/include --infodir=/usr/app/gcc-4.3.0-x86_64-linux-uclibc/info --mandir=/usr/app/gcc-4.3.0-x86_64-linux-uclibc/man --disable-nls --with-local-prefix=/usr/local --with-slibdir=/usr/app/gcc-4.3.0-x86_64-linux-uclibc/lib --with-gxx-include-dir=/usr/app/gcc-4.3.0-x86_64-linux-uclibc/include/g++-v3 --build=i386-pc-linux-gnu --host=i386-pc-linux-gnu --target=x86_64-linux-uclibc --with-gnu-ld --with-ld=/usr/bin/x86_64-linux-uclibc-ld --with-gnu-as --with-as=/usr/bin/x86_64-linux-uclibc-as --with-sysroot=/usr/x86_64-linux-uclibc --enable-languages=c,c++ --enable-target-optspace --disable-shared --disable-__cxa_atexit --disable-threads --disable-tls --disable-multilib --without-headers Thread model: single gcc version 4.3.0 (GCC) COMPILER_PATH=/.share/usr/app/gcc-4.3.0-x86_64-linux-uclibc/bin/../libexec/gcc/x86_64-linux-uclibc/4.3.0/:/.share/usr/app/gcc-4.3.0-x86_64-linux-uclibc/bin/../libexec/gcc/ LIBRARY_PATH=/.share/usr/app/gcc-4.3.0-x86_64-linux-uclibc/bin/../lib/gcc/x86_64-linux-uclibc/4.3.0/:/.share/usr/app/gcc-4.3.0-x86_64-linux-uclibc/bin/../lib/gcc/:/usr/x86_64-linux-uclibc/lib/:/usr/x86_64-linux-uclibc/usr/lib/ COLLECT_GCC_OPTIONS='-v' '-Wall' '-Wshadow' '-Wwrite-strings' '-Wundef' '-Wstrict-prototypes' '-Wunused' '-Wunused-parameter' '-Werror' '-Wold-style-definition' '-Os' '-fno-builtin-strlen' '-finline-limit=0' '-fomit-frame-pointer' '-ffunction-sections' '-fdata-sections' '-fno-guess-branch-probability' '-funsigned-char' '-static-libgcc' '-falign-functions=1' '-falign-jumps=1' '-falign-labels=1' '-falign-loops=1' '-Wdeclaration-after-statement' '-Wno-pointer-sign' '-o' 'busybox_unstripped' '-mtune=generic' /.share/usr/app/gcc-4.3.0-x86_64-linux-uclibc/bin/../libexec/gcc/x86_64-linux-uclibc/4.3.0/collect2 --sysroot=/usr/x86_64-linux-uclibc --eh-frame-hdr -m elf_x86_64 -dynamic-linker /lib/ld64-uClibc.so.0 -o busybox_unstripped /usr/x86_64-linux-uclibc/lib/crt1.o /usr/x86_64-linux-uclibc/lib/crti.o crtbegin.o -L/.share/usr/app/gcc-4.3.0-x86_64-linux-uclibc/bin/../lib/gcc/x86_64-linux-uclibc/4.3.0 -L/.share/usr/app/gcc-4.3.0-x86_64-linux-uclibc/bin/../lib/gcc -L/usr/x86_64-linux-uclibc/lib -L/usr/x86_64-linux-uclibc/usr/lib --sort-common --gc-sections --start-group applets/built-in.o archival/lib.a archival/libunarchive/lib.a console-tools/lib.a coreutils/lib.a coreutils/libcoreutils/lib.a debianutils/lib.a e2fsprogs/lib.a editors/lib.a findutils/lib.a init/lib.a libbb/lib.a libpwdgrp/lib.a loginutils/lib.a miscutils/lib.a modutils/lib.a networking/lib.a networking/libiproute/lib.a networking/udhcp/lib.a printutils/lib.a procps/lib.a runit/lib.a selinux/lib.a shell/lib.a sysklogd/lib.a util-linux/lib.a util-linux/volume_id/lib.a archival/built-in.o archival/libunarchive/built-in.o console-tools/built-in.o coreutils/built-in.o coreutils/libcoreutils/built-in.o debianutils/built-in.o e2fsprogs/built-in.o editors/built-in.o findutils/built-in.o init/built-in.o libbb/built-in.o libpwdgrp/built-in.o loginutils/built-in.o miscutils/built-in.o modutils/built-in.o networking/built-in.o networking/libiproute/built-in.o networking/udhcp/built-in.o printutils/built-in.o procps/built-in.o runit/built-in.o selinux/built-in.o shell/built-in.o sysklogd/built-in.o util-linux/built-in.o util-linux/volume_id/built-in.o --end-group --start-group -lcrypt -lm --end-group -lgcc -lc -lgcc crtend.o /usr/x86_64-linux-uclibc/lib/crtn.o /usr/bin/x86_64-linux-uclibc-ld: crtbegin.o: No such file: No such file or directory collect2: ld returned 1 exit status The difference is in collect2 command line. Here I split it one arg per line, and diffed: --- 423 Thu Apr 17 04:04:13 2008 +++ 430 Thu Apr 17 04:03:57 2008 @@ -1,4 +1,5 @@ -/usr/app/gcc-4.2.3-x86_64-linux-uclibc/libexec/gcc/x86_64-linux-uclibc/4.2.3/collect2 +/.share/usr/app/gcc-4.3.0-x86_64-linux-uclibc/bin/../libexec/gcc/x86_64-linux-uclibc/4.3.0/collect2 +--sysroot=/usr/x86_64-linux-uclibc --eh-frame-hdr -m elf_x86_64 @@ -6,12 +7,13 @@ /lib/ld64-uClibc.so.0 -o busybox_unstripped -/usr/lib/../x86_64-linux-uclibc/lib/crt1.o -/usr/lib/../x86_64-linux-uclibc/lib/crti.o -/.share/usr/app/gcc-4.2.3-x86_64-linux-uclibc/bin/../lib/gcc/x86_64-linux-uclibc/4.2.3/crtbegin.o --L/.share/usr/app/gcc-4.2.3-x86_64-linux-uclibc/bin/../lib/gcc/x86_64-linux-uclibc/4.2.3 --L/.share/usr/app/gcc-4.2.3-x86_64-linux-uclibc/bin/../lib/gcc --L/usr/lib/../x86_64-linux-uclibc/lib +/usr/x86_64-linux-uclibc/lib/crt1.o +/usr/x86_64-linux-uclibc/lib/crti.o +crtbegin.o +-L/.share/usr/app/gcc-4.3.0-x86_64-linux-uclibc/bin/../lib/gcc/x86_64-linux-uclibc/4.3.0 +-L/.share/usr/app/gcc-4.3.0-x86_64-linux-uclibc/bin/../lib/gcc +-L/usr/x86_64-linux-uclibc/lib +-L/usr/x86_64-linux-uclibc/usr/lib --sort-common --gc-sections --start-group @@ -76,5 +78,5 @@ -lgcc -lc -lgcc -/.share/usr/app/gcc-4.2.3-x86_64-linux-uclibc/bin/../lib/gcc/x86_64-linux-uclibc/4.2.3/crtend.o -/usr/lib/../x86_64-linux-uclibc/lib/crtn.o +crtend.o +/usr/x86_64-linux-uclibc/lib/crtn.o OMG. It's here: -/.share/usr/app/gcc-4.2.3-x86_64-linux-uclibc/bin/../lib/gcc/x86_64-linux-uclibc/4.2.3/crtbegin.o +crtbegin.o 4.2.3 built crtbegin.o as part of itself, and is linking it in. 4.3.0 did NOT build crtbegin.o, but tries to link it in?? I went back and indeed, 4.2.3 build tree has it as gcc/crtbegin.o and it gets installed to /usr/app/gcc-4.2.3-x86_64-linux-uclibc/lib/gcc/x86_64-linux-uclibc/4.2.3/crtbegin.o, but 4.3.0 does not build/install it. Help? -- vda