Cross compiling
Kai Ruottu
karuottu@mbnet.fi
Thu May 31 09:32:00 GMT 2007
Kai Ruottu wrote:
> Yan Seiner wrote:
>>>> arm-linux-gcc main_nx.c -I../Lib -I../../microwin/src/include
>>>> -I/home/local/panel/arm//ts7300-deb/usr/include
>>>> -L/home/local/panel/arm//ts7300-deb/lib
>>>> -L/home/local/panel/arm//ts7300-deb/usr/lib
> Lets assume the 'libc.so' script being in the
> '/home/local/panel/arm//ts7300-deb/usr/lib',
> then simply edit it to NOT have those stupidities:
>>>> /usr/local/opt/crosstool/arm-linux/gcc-3.3.4-glibc-2.3.2/lib/gcc-lib/arm-linux/3.3.4/../../../../arm-linux/bin/ld:
>>>>
>>>> skipping incompatible /lib/libc.so.6 when searching for /lib/libc.so.6
>>>> /usr/local/opt/crosstool/arm-linux/gcc-3.3.4-glibc-2.3.2/lib/gcc-lib/arm-linux/3.3.4/../../../../arm-linux/bin/ld:
>>>>
>>>> cannot find /lib/libc.so.6
> caused by the insanities of crosstool! Cannot guess what kind of mess
> the result really is :-(
Oops, the editing isn't enough because at least the 'ld-linux.so.2'
will be searched via the hard-coded '$prefix/$target/lib',
please see this via 'arm-linux-ld -verbose | less' and what the
SEARCH_DIR (or something) says about the hard-coded
search paths in the '$target-ld' ! Finding 'libc.so' after those '-L'
should succeed but all the 'NEEDED' not-referenced
'linked-in' shared libraries like 'ld-linux.so.2' will not be found via
the '-L' options. Adding 'ld-linux.so.2' into 'libc.so' has
been one workaround: 'GROUP ( libc.so.6 ld-linux.so.2 libc_nonshared.a
)' or something there... But maybe the bare
names don't work and the absolute paths
'/home/local/panel/arm/ts7300-deb/lib' etc. must be put to each name !
A totally normal and totally sane crosstoolchain made from the binutils
and GCC sources and the prebuilt Debian/ARM
libraries could really be something very wise!
BTW, the 'usr/lib/libpthread.so' is another 'linker script' with
absolute pathnames :-(
More information about the Gcc-help
mailing list