This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Can't build correctly working crosscompiler with 4.3.0. 4.2.1 worked like charm


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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]