arm/iwmmxt VFP errors during linking
Nick Nuziale
nnuziale@hotmail.com
Sun Apr 17 19:06:00 GMT 2005
Hi Dimitry,
Thank you for the response and recommendations. My responses to some of
your questions and recommendations are inlined below with [NN2]. I have
managed to build a gcc3.4.2-glibc-2.3.3 cross compiler and applied your
patch (gcc-3.4.3-arm-softvfp.patch seemed to work fine and it was the last
patch applied to gcc). I also used the "--without-fp" config option for
glibc (via GLIBC_EXTRA_CONFIG="--without-fp" in crosstool's
gcc3.4.2-glibc-2.3.3.dat file), however it looks like the glibc libraries
were created with FPA floating point rather than VFP, thus resulting in
linking errors when linking with these libraries. The compiler seems fine,
i.e. the below compiled hello/hello2 programs seem ok (the use correct VFP),
its just the glibc libraries. See below output (heading
"gcc3.4.2-glibc-2.3.3 info:").
How can I get glibc to be built properly, i.e. using VFP rather than FPA?
I also tried building other combinations of gcc and glibc for this target
and applying your patches without much success. The errors I ran into using
gcc3.4.3-glibc2.3.3 is shown below under the heading "gcc3.4.3-glibc-2.3.3
error:" Any idea here??
Also, do I have to have gcc 3.4.3+ to build a gcc 3.4.3 based cross
compiler? Currently I have gcc 3.3.3.
gcc3.4.2-glibc-2.3.3 info:
nnuziale@W2K /opt/crosstool/arm-iwmmxt-linux-gnu/gcc-3.4.2-glibc-2.3.3/tmp
$
/opt/crosstool/arm-iwmmxt-linux-gnu/gcc-3.4.2-glibc-2.3.3/bin/arm-iwmmxt-linux-gnu-gcc
-v hello.c -o arm-iwmmxt-linux-gnu-hello-test
Reading specs from
/opt/crosstool/arm-iwmmxt-linux-gnu/gcc-3.4.2-glibc-2.3.3/lib/gcc/arm-iwmmxt-linux-gnu/3.4.2/specs
Configured with:
/usr/crosstool-0.31/build/arm-iwmmxt-linux-gnu/gcc-3.4.2-glibc-2.3.3/gcc-3.4.2/configure
--target=arm-iwmmxt-linux-gnu --host=i686-host_pc-cygwin
--prefix=/opt/crosstool/arm-iwmmxt-linux-gnu/gcc-3.4.2-glibc-2.3.3
--enable-cross --with-cpu=iwmmxt --enable-cxx-flags=-mcpu=iwmmxt
--with-tune=iwmmxt
--with-headers=/opt/crosstool/arm-iwmmxt-linux-gnu/gcc-3.4.2-glibc-2.3.3/arm-iwmmxt-linux-gnu/include
--with-local-prefix=/opt/crosstool/arm-iwmmxt-linux-gnu/gcc-3.4.2-glibc-2.3.3/arm-iwmmxt-linux-gnu
--disable-nls --enable-threads=posix --enable-symvers=gnu
--enable-__cxa_atexit --enable-languages=c,c++ --enable-shared --enable-c99
--enable-long-long
Thread model: posix
gcc version 3.4.2
/opt/crosstool/arm-iwmmxt-linux-gnu/gcc-3.4.2-glibc-2.3.3/libexec/gcc/arm-iwmmxt-linux-gnu/3.4.2/cc1.exe
-quiet -v -D__ARM_ARCH_5TE__ -D__XSCALE__ -D__IWMMXT__ hello.c -quiet
-dumpbase hello.c -mcpu=iwmmxt -auxbase hello -version -o
/cygdrive/c/DOCUME~1/nnuziale/LOCALS~1/Temp/cc
eLoejd.s
#include "..." search starts here:
#include <...> search starts here:
/opt/crosstool/arm-iwmmxt-linux-gnu/gcc-3.4.2-glibc-2.3.3/lib/gcc/arm-iwmmxt-linux-gnu/3.4.2/include
/opt/crosstool/arm-iwmmxt-linux-gnu/gcc-3.4.2-glibc-2.3.3/lib/gcc/arm-iwmmxt-linux-gnu/3.4.2/../../../../arm-iwmmxt-linux-gnu/sys-include
/opt/crosstool/arm-iwmmxt-linux-gnu/gcc-3.4.2-glibc-2.3.3/lib/gcc/arm-iwmmxt-linux-gnu/3.4.2/../../../../arm-iwmmxt-linux-gnu/include
End of search list.
GNU C version 3.4.2 (arm-iwmmxt-linux-gnu)
compiled by GNU C version 3.3.3 (cygwin special).
GGC heuristics: --param ggc-min-expand=99 --param ggc-min-heapsize=130973
/opt/crosstool/arm-iwmmxt-linux-gnu/gcc-3.4.2-glibc-2.3.3/lib/gcc/arm-iwmmxt-linux-gnu/3.4.2/../../../../arm-iwmmxt-linux-gnu/bin/as.exe
-m
cpu=iwmmxt -mfpu=softvfp -o
/cygdrive/c/DOCUME~1/nnuziale/LOCALS~1/Temp/ccVT88uf.o
/cygdrive/c/DOCUME~1/nnuziale/LOCALS~1/Temp/cceLoejd.s
/opt/crosstool/arm-iwmmxt-linux-gnu/gcc-3.4.2-glibc-2.3.3/libexec/gcc/arm-iwmmxt-linux-gnu/3.4.2/collect2.exe
-dynamic-linker /lib/ld-linux
.so.2 -X -m armelf_linux -p -o arm-iwmmxt-linux-gnu-hello-test
/opt/crosstool/arm-iwmmxt-linux-gnu/gcc-3.4.2-glibc-2.3.3/lib/gcc/arm-iwmmxt-
linux-gnu/3.4.2/../../../../arm-iwmmxt-linux-gnu/lib/crt1.o
/opt/crosstool/arm-iwmmxt-linux-gnu/gcc-3.4.2-glibc-2.3.3/lib/gcc/arm-iwmmxt-lin
ux-gnu/3.4.2/../../../../arm-iwmmxt-linux-gnu/lib/crti.o
/opt/crosstool/arm-iwmmxt-linux-gnu/gcc-3.4.2-glibc-2.3.3/lib/gcc/arm-iwmmxt-linux-
gnu/3.4.2/crtbegin.o
-L/opt/crosstool/arm-iwmmxt-linux-gnu/gcc-3.4.2-glibc-2.3.3/lib/gcc/arm-iwmmxt-linux-gnu/3.4.2
-L/opt/crosstool/arm-iwm
mxt-linux-gnu/gcc-3.4.2-glibc-2.3.3/lib/gcc/arm-iwmmxt-linux-gnu/3.4.2/../../../../arm-iwmmxt-linux-gnu/lib
/cygdrive/c/DOCUME~1/nnuziale/LO
CALS~1/Temp/ccVT88uf.o -lgcc --as-needed -lgcc_s --no-as-needed -lc -lgcc
--as-needed -lgcc_s --no-as-needed /opt/crosstool/arm-iwmmxt-linux
-gnu/gcc-3.4.2-glibc-2.3.3/lib/gcc/arm-iwmmxt-linux-gnu/3.4.2/crtend.o
/opt/crosstool/arm-iwmmxt-linux-gnu/gcc-3.4.2-glibc-2.3.3/lib/gcc/arm
-iwmmxt-linux-gnu/3.4.2/../../../../arm-iwmmxt-linux-gnu/lib/crtn.o
nnuziale@W2K /opt/crosstool/arm-iwmmxt-linux-gnu/gcc-3.4.2-glibc-2.3.3/tmp
$
/opt/crosstool/arm-iwmmxt-linux-gnu/gcc-3.4.2-glibc-2.3.3/bin/arm-iwmmxt-linux-gnu-g++
-v hello2.cc -o arm-iwmmxt-linux-gnu-hello2-test
Reading specs from
/opt/crosstool/arm-iwmmxt-linux-gnu/gcc-3.4.2-glibc-2.3.3/lib/gcc/arm-iwmmxt-linux-gnu/3.4.2/specs
Configured with:
/usr/crosstool-0.31/build/arm-iwmmxt-linux-gnu/gcc-3.4.2-glibc-2.3.3/gcc-3.4.2/configure
--target=arm-iwmmxt-linux-gnu --ho
st=i686-host_pc-cygwin
--prefix=/opt/crosstool/arm-iwmmxt-linux-gnu/gcc-3.4.2-glibc-2.3.3
--enable-cross --with-cpu=iwmmxt --enable-cxx-flag
s=-mcpu=iwmmxt --with-tune=iwmmxt
--with-headers=/opt/crosstool/arm-iwmmxt-linux-gnu/gcc-3.4.2-glibc-2.3.3/arm-iwmmxt-linux-gnu/include
--wi
th-local-prefix=/opt/crosstool/arm-iwmmxt-linux-gnu/gcc-3.4.2-glibc-2.3.3/arm-iwmmxt-linux-gnu
--disable-nls --enable-threads=posix --enable
-symvers=gnu --enable-__cxa_atexit --enable-languages=c,c++ --enable-shared
--enable-c99 --enable-long-long
Thread model: posix
gcc version 3.4.2
/opt/crosstool/arm-iwmmxt-linux-gnu/gcc-3.4.2-glibc-2.3.3/libexec/gcc/arm-iwmmxt-linux-gnu/3.4.2/cc1plus.exe
-quiet -v -D_GNU_SOURCE -D__AR
M_ARCH_5TE__ -D__XSCALE__ -D__IWMMXT__ hello2.cc -quiet -dumpbase hello2.cc
-mcpu=iwmmxt -auxbase hello2 -version -o /cygdrive/c/DOCUME~1/nn
uziale/LOCALS~1/Temp/ccy7avCO.s
#include "..." search starts here:
#include <...> search starts here:
/opt/crosstool/arm-iwmmxt-linux-gnu/gcc-3.4.2-glibc-2.3.3/lib/gcc/arm-iwmmxt-linux-gnu/3.4.2/../../../../include/c++/3.4.2
/opt/crosstool/arm-iwmmxt-linux-gnu/gcc-3.4.2-glibc-2.3.3/lib/gcc/arm-iwmmxt-linux-gnu/3.4.2/../../../../include/c++/3.4.2/arm-iwmmxt-linux
-gnu
/opt/crosstool/arm-iwmmxt-linux-gnu/gcc-3.4.2-glibc-2.3.3/lib/gcc/arm-iwmmxt-linux-gnu/3.4.2/../../../../include/c++/3.4.2/backward
/opt/crosstool/arm-iwmmxt-linux-gnu/gcc-3.4.2-glibc-2.3.3/lib/gcc/arm-iwmmxt-linux-gnu/3.4.2/include
/opt/crosstool/arm-iwmmxt-linux-gnu/gcc-3.4.2-glibc-2.3.3/lib/gcc/arm-iwmmxt-linux-gnu/3.4.2/../../../../arm-iwmmxt-linux-gnu/sys-include
/opt/crosstool/arm-iwmmxt-linux-gnu/gcc-3.4.2-glibc-2.3.3/lib/gcc/arm-iwmmxt-linux-gnu/3.4.2/../../../../arm-iwmmxt-linux-gnu/include
End of search list.
GNU C++ version 3.4.2 (arm-iwmmxt-linux-gnu)
compiled by GNU C version 3.3.3 (cygwin special).
GGC heuristics: --param ggc-min-expand=99 --param ggc-min-heapsize=130973
/opt/crosstool/arm-iwmmxt-linux-gnu/gcc-3.4.2-glibc-2.3.3/lib/gcc/arm-iwmmxt-linux-gnu/3.4.2/../../../../arm-iwmmxt-linux-gnu/bin/as.exe
-m
cpu=iwmmxt -mfpu=softvfp -o
/cygdrive/c/DOCUME~1/nnuziale/LOCALS~1/Temp/cchtHoIj.o
/cygdrive/c/DOCUME~1/nnuziale/LOCALS~1/Temp/ccy7avCO.s
/opt/crosstool/arm-iwmmxt-linux-gnu/gcc-3.4.2-glibc-2.3.3/libexec/gcc/arm-iwmmxt-linux-gnu/3.4.2/collect2.exe
-dynamic-linker /lib/ld-linux
.so.2 -X -m armelf_linux -p -o arm-iwmmxt-linux-gnu-hello2-test
/opt/crosstool/arm-iwmmxt-linux-gnu/gcc-3.4.2-glibc-2.3.3/lib/gcc/arm-iwmmxt
-linux-gnu/3.4.2/../../../../arm-iwmmxt-linux-gnu/lib/crt1.o
/opt/crosstool/arm-iwmmxt-linux-gnu/gcc-3.4.2-glibc-2.3.3/lib/gcc/arm-iwmmxt-li
nux-gnu/3.4.2/../../../../arm-iwmmxt-linux-gnu/lib/crti.o
/opt/crosstool/arm-iwmmxt-linux-gnu/gcc-3.4.2-glibc-2.3.3/lib/gcc/arm-iwmmxt-linux
-gnu/3.4.2/crtbegin.o
-L/opt/crosstool/arm-iwmmxt-linux-gnu/gcc-3.4.2-glibc-2.3.3/lib/gcc/arm-iwmmxt-linux-gnu/3.4.2
-L/opt/crosstool/arm-iw
mmxt-linux-gnu/gcc-3.4.2-glibc-2.3.3/lib/gcc/arm-iwmmxt-linux-gnu/3.4.2/../../../../arm-iwmmxt-linux-gnu/lib
/cygdrive/c/DOCUME~1/nnuziale/L
OCALS~1/Temp/cchtHoIj.o -lstdc++ -lm -lgcc_s -lgcc -lc -lgcc_s -lgcc
/opt/crosstool/arm-iwmmxt-linux-gnu/gcc-3.4.2-glibc-2.3.3/lib/gcc/arm-i
wmmxt-linux-gnu/3.4.2/crtend.o
/opt/crosstool/arm-iwmmxt-linux-gnu/gcc-3.4.2-glibc-2.3.3/lib/gcc/arm-iwmmxt-linux-gnu/3.4.2/../../../../arm-
iwmmxt-linux-gnu/lib/crtn.o
nnuziale@W2K /opt/crosstool/arm-iwmmxt-linux-gnu/gcc-3.4.2-glibc-2.3.3/tmp
$ arm-iwmmxt-linux-gnu-objdump -p arm-iwmmxt-linux-gnu-hello-test
arm-iwmmxt-linux-gnu-hello-test: file format elf32-littlearm
Program Header:
PHDR off 0x00000034 vaddr 0x00008034 paddr 0x00008034 align 2**2
filesz 0x000000c0 memsz 0x000000c0 flags r-x
INTERP off 0x000000f4 vaddr 0x000080f4 paddr 0x000080f4 align 2**0
filesz 0x00000013 memsz 0x00000013 flags r--
LOAD off 0x00000000 vaddr 0x00008000 paddr 0x00008000 align 2**15
filesz 0x000006d8 memsz 0x000006d8 flags r-x
LOAD off 0x000006d8 vaddr 0x000106d8 paddr 0x000106d8 align 2**15
filesz 0x0000012c memsz 0x00000148 flags rw-
DYNAMIC off 0x000006e8 vaddr 0x000106e8 paddr 0x000106e8 align 2**2
filesz 0x000000d0 memsz 0x000000d0 flags rw-
NOTE off 0x00000108 vaddr 0x00008108 paddr 0x00008108 align 2**2
filesz 0x00000020 memsz 0x00000020 flags r--
Dynamic Section:
NEEDED libgcc_s.so.1
NEEDED libc.so.6
INIT 0x83dc
FINI 0x86b4
HASH 0x8128
STRTAB 0x8240
SYMTAB 0x8170
STRSZ 0xea
SYMENT 0x10
DEBUG 0x0
PLTGOT 0x107cc
PLTRELSZ 0x30
PLTREL 0x11
JMPREL 0x83ac
REL 0x8384
RELSZ 0x28
RELENT 0x8
VERNEED 0x8344
VERNEEDNUM 0x2
VERSYM 0x832a
Version References:
required from libc.so.6:
0x0d696910 0x00 03 GLIBC_2.0
required from libgcc_s.so.1:
0x0d696910 0x00 02 GLIBC_2.0
private flags = 602: [APCS-32] [VFP float format] [software FP] [has entry
point]
nnuziale@W2K /opt/crosstool/arm-iwmmxt-linux-gnu/gcc-3.4.2-glibc-2.3.3/tmp
$ arm-iwmmxt-linux-gnu-objdump -p arm-iwmmxt-linux-gnu-hello2-test
arm-iwmmxt-linux-gnu-hello2-test: file format elf32-littlearm
Program Header:
PHDR off 0x00000034 vaddr 0x00008034 paddr 0x00008034 align 2**2
filesz 0x000000c0 memsz 0x000000c0 flags r-x
INTERP off 0x000000f4 vaddr 0x000080f4 paddr 0x000080f4 align 2**0
filesz 0x00000013 memsz 0x00000013 flags r--
LOAD off 0x00000000 vaddr 0x00008000 paddr 0x00008000 align 2**15
filesz 0x00000b48 memsz 0x00000b48 flags r-x
LOAD off 0x00000b48 vaddr 0x00010b48 paddr 0x00010b48 align 2**15
filesz 0x00000154 memsz 0x00000204 flags rw-
DYNAMIC off 0x00000b58 vaddr 0x00010b58 paddr 0x00010b58 align 2**2
filesz 0x000000e0 memsz 0x000000e0 flags rw-
NOTE off 0x00000108 vaddr 0x00008108 paddr 0x00008108 align 2**2
filesz 0x00000020 memsz 0x00000020 flags r--
Dynamic Section:
NEEDED libstdc++.so.6
NEEDED libm.so.6
NEEDED libgcc_s.so.1
NEEDED libc.so.6
INIT 0x8574
FINI 0x8b20
HASH 0x8128
STRTAB 0x82dc
SYMTAB 0x81bc
STRSZ 0x193
SYMENT 0x10
DEBUG 0x0
PLTGOT 0x10c54
PLTRELSZ 0x50
PLTREL 0x11
JMPREL 0x8524
REL 0x84f4
RELSZ 0x30
RELENT 0x8
VERNEED 0x8494
VERNEEDNUM 0x3
VERSYM 0x8470
Version References:
required from libc.so.6:
0x0d696910 0x00 04 GLIBC_2.0
required from libgcc_s.so.1:
0x0d696910 0x00 03 GLIBC_2.0
required from libstdc++.so.6:
0x08922974 0x00 02 GLIBCXX_3.4
private flags = 602: [APCS-32] [VFP float format] [software FP] [has entry
point]
nnuziale@W2K /opt/crosstool/arm-iwmmxt-linux-gnu/gcc-3.4.2-glibc-2.3.3/tmp
$ arm-iwmmxt-linux-gnu-objdump -p
/cygdrive/c/cygwin/usr/crosstool/arm-iwmmxt-linux-gnu/gcc-3.4.2-glibc-2.3.3/arm-iwmmxt-linux-gnu/lib/libr
t.so
/cygdrive/c/cygwin/usr/crosstool/arm-iwmmxt-linux-gnu/gcc-3.4.2-glibc-2.3.3/arm-iwmmxt-linux-gnu/lib/librt.so:
file format elf32-littlearm
Program Header:
PHDR off 0x00000034 vaddr 0x00000034 paddr 0x00000034 align 2**2
filesz 0x000000c0 memsz 0x000000c0 flags r-x
INTERP off 0x00005e80 vaddr 0x00005e80 paddr 0x00005e80 align 2**3
filesz 0x00000018 memsz 0x00000018 flags r--
LOAD off 0x00000000 vaddr 0x00000000 paddr 0x00000000 align 2**15
filesz 0x00005e98 memsz 0x00005e98 flags r-x
LOAD off 0x00005e98 vaddr 0x0000de98 paddr 0x0000de98 align 2**15
filesz 0x0000035c memsz 0x0000b070 flags rw-
DYNAMIC off 0x00005f14 vaddr 0x0000df14 paddr 0x0000df14 align 2**2
filesz 0x000000e8 memsz 0x000000e8 flags rw-
NOTE off 0x000000f4 vaddr 0x000000f4 paddr 0x000000f4 align 2**2
filesz 0x00000020 memsz 0x00000020 flags r--
Dynamic Section:
NEEDED libc.so.6
NEEDED libpthread.so.0
NEEDED ld-linux.so.2
SONAME librt.so.1
INIT 0x183c
FINI 0x5a08
HASH 0x114
STRTAB 0xd70
SYMTAB 0x5b0
STRSZ 0x506
SYMENT 0x10
PLTGOT 0xe010
PLTRELSZ 0x1d0
PLTREL 0x11
JMPREL 0x166c
REL 0x146c
RELSZ 0x200
RELENT 0x8
VERDEF 0x1370
VERDEFNUM 0x3
VERNEED 0x13cc
VERNEEDNUM 0x2
VERSYM 0x1276
RELCOUNT 0x38
Version definitions:
1 0x01 0x0972cf81 librt.so.1
2 0x00 0x0d696911 GLIBC_2.1
3 0x00 0x0d696912 GLIBC_2.2
GLIBC_2.1
Version References:
required from libpthread.so.0:
0x0d696911 0x00 10 GLIBC_2.1
0x0d696910 0x00 08 GLIBC_2.0
required from libc.so.6:
0x09691f73 0x00 11 GLIBC_2.1.3
0x0d696912 0x00 09 GLIBC_2.2
0x0d696910 0x00 07 GLIBC_2.0
0x0d696911 0x00 06 GLIBC_2.1
0x09691972 0x00 05 GLIBC_2.3.2
0x0963cf85 0x00 04 GLIBC_PRIVATE
private flags = 202: [APCS-32] [FPA float format] [software FP] [has entry
point]
nnuziale@W2K /opt/crosstool/arm-iwmmxt-linux-gnu/gcc-3.4.2-glibc-2.3.3/tmp
$
gcc3.4.3-glibc-2.3.3 error:
arm-iwmmxt-linux-gnu-gcc -nostdlib -nostartfiles -r -o
/usr/crosstool-0.31/build/arm-iwmmxt-linux-gnu/gcc-3.4.3-glibc-2.3.4/build-glibc/e
lf/librtld.os '-Wl,-('
/usr/crosstool-0.31/build/arm-iwmmxt-linux-gnu/gcc-3.4.3-glibc-2.3.4/build-glibc/elf/dl-allobjs.os
/usr/crosstool-0.3
1/build/arm-iwmmxt-linux-gnu/gcc-3.4.3-glibc-2.3.4/build-glibc/elf/rtld-libc.a
-lgcc '-Wl,-)' \
-Wl,-Map,/usr/crosstool-0.31/build/arm-iwmmxt-linux-gnu/gcc-3.4.3-glibc-2.3.4/build-glibc/elf/librtld.os.map
arm-iwmmxt-linux-gnu-gcc -nostdlib -nostartfiles -shared \
-Wl,-z,combreloc -Wl,-z,defs -Wl,--verbose 2>&1 | \
LC_ALL=C \
sed -e '/^=========/,/^=========/!d;/^=========/d' \
-e 's/\. = 0 + SIZEOF_HEADERS;/& _begin = . -
SIZEOF_HEADERS;/' \
>
/usr/crosstool-0.31/build/arm-iwmmxt-linux-gnu/gcc-3.4.3-glibc-2.3.4/build-glibc/elf/ld.so.lds
arm-iwmmxt-linux-gnu-gcc -nostdlib -nostartfiles -shared -o
/usr/crosstool-0.31/build/arm-iwmmxt-linux-gnu/gcc-3.4.3-glibc-2.3.4/build-gl
ibc/elf/ld.so \
-Wl,-z,combreloc -Wl,-z,defs \
/usr/crosstool-0.31/build/arm-iwmmxt-linux-gnu/gcc-3.4.3-glibc-2.3.4/build-glibc/elf/librtld.os
-Wl,--version-script=/usr/crosstoo
l-0.31/build/arm-iwmmxt-linux-gnu/gcc-3.4.3-glibc-2.3.4/build-glibc/ld.map
\
-Wl,-soname=ld-linux.so.2 -T
/usr/crosstool-0.31/build/arm-iwmmxt-linux-gnu/gcc-3.4.3-glibc-2.3.4/build-glibc/elf/ld.so.lds
/usr/crosstool-0.31/build/arm-iwmmxt-linux-gnu/gcc-3.4.3-glibc-2.3.4/build-glibc/elf/librtld.os(.text+0x1934):
In function `dl_main':
: undefined reference to `__access'
/usr/crosstool-0.31/build/arm-iwmmxt-linux-gnu/gcc-3.4.3-glibc-2.3.4/build-glibc/elf/librtld.os(.text+0x314c):
In function `$a':
: undefined reference to `__access'
/usr/crosstool-0.31/build/arm-iwmmxt-linux-gnu/gcc-3.4.3-glibc-2.3.4/build-glibc/elf/librtld.os(.text+0x321c):
In function `$a':
: undefined reference to `__open'
/usr/crosstool-0.31/build/arm-iwmmxt-linux-gnu/gcc-3.4.3-glibc-2.3.4/build-glibc/elf/librtld.os(.text+0x4348):
In function `$a':
: undefined reference to `__close'
/usr/crosstool-0.31/build/arm-iwmmxt-linux-gnu/gcc-3.4.3-glibc-2.3.4/build-glibc/elf/librtld.os(.text+0x444c):
In function `$a':
: undefined reference to `__GI___fxstat64'
/usr/crosstool-0.31/build/arm-iwmmxt-linux-gnu/gcc-3.4.3-glibc-2.3.4/build-glibc/elf/librtld.os(.text+0x45e8):
In function `$a':
: undefined reference to `__close'
/usr/crosstool-0.31/build/arm-iwmmxt-linux-gnu/gcc-3.4.3-glibc-2.3.4/build-glibc/elf/librtld.os(.text+0x46cc):
In function `$a':
: undefined reference to `__lseek'
/usr/crosstool-0.31/build/arm-iwmmxt-linux-gnu/gcc-3.4.3-glibc-2.3.4/build-glibc/elf/librtld.os(.text+0x46dc):
In function `$a':
: undefined reference to `__libc_read'
/usr/crosstool-0.31/build/arm-iwmmxt-linux-gnu/gcc-3.4.3-glibc-2.3.4/build-glibc/elf/librtld.os(.text+0x51b4):
In function `$a':
: undefined reference to `__close'
/usr/crosstool-0.31/build/arm-iwmmxt-linux-gnu/gcc-3.4.3-glibc-2.3.4/build-glibc/elf/librtld.os(.text+0x52b8):
In function `$a':
: undefined reference to `__close'
/usr/crosstool-0.31/build/arm-iwmmxt-linux-gnu/gcc-3.4.3-glibc-2.3.4/build-glibc/elf/librtld.os(.text+0x5390):
In function `$a':
: undefined reference to `rtld_errno'
/usr/crosstool-0.31/build/arm-iwmmxt-linux-gnu/gcc-3.4.3-glibc-2.3.4/build-glibc/elf/librtld.os(.text+0x5650):
In function `$a':
: undefined reference to `__open'
/usr/crosstool-0.31/build/arm-iwmmxt-linux-gnu/gcc-3.4.3-glibc-2.3.4/build-glibc/elf/librtld.os(.text+0x5678):
In function `$a':
: undefined reference to `__libc_read'
/usr/crosstool-0.31/build/arm-iwmmxt-linux-gnu/gcc-3.4.3-glibc-2.3.4/build-glibc/elf/librtld.os(.text+0x5838):
In function `$a':
: undefined reference to `__lseek'
/usr/crosstool-0.31/build/arm-iwmmxt-linux-gnu/gcc-3.4.3-glibc-2.3.4/build-glibc/elf/librtld.os(.text+0x5848):
In function `$a':
: undefined reference to `__libc_read'
/usr/crosstool-0.31/build/arm-iwmmxt-linux-gnu/gcc-3.4.3-glibc-2.3.4/build-glibc/elf/librtld.os(.text+0x58cc):
In function `$a':
: undefined reference to `__lseek'
/usr/crosstool-0.31/build/arm-iwmmxt-linux-gnu/gcc-3.4.3-glibc-2.3.4/build-glibc/elf/librtld.os(.text+0x58e0):
In function `$a':
: undefined reference to `__libc_read'
/usr/crosstool-0.31/build/arm-iwmmxt-linux-gnu/gcc-3.4.3-glibc-2.3.4/build-glibc/elf/librtld.os(.text+0x5948):
In function `$a':
: undefined reference to `__close'
/usr/crosstool-0.31/build/arm-iwmmxt-linux-gnu/gcc-3.4.3-glibc-2.3.4/build-glibc/elf/librtld.os(.text+0x5988):
In function `$a':
: undefined reference to `rtld_errno'
/usr/crosstool-0.31/build/arm-iwmmxt-linux-gnu/gcc-3.4.3-glibc-2.3.4/build-glibc/elf/librtld.os(.text+0x5b90):
In function `$a':
: undefined reference to `__GI___xstat64'
/usr/crosstool-0.31/build/arm-iwmmxt-linux-gnu/gcc-3.4.3-glibc-2.3.4/build-glibc/elf/librtld.os(.text+0x5c08):
In function `$a':
: undefined reference to `__GI___fxstat64'
/usr/crosstool-0.31/build/arm-iwmmxt-linux-gnu/gcc-3.4.3-glibc-2.3.4/build-glibc/elf/librtld.os(.text+0x5c24):
In function `$a':
: undefined reference to `__close'
/usr/crosstool-0.31/build/arm-iwmmxt-linux-gnu/gcc-3.4.3-glibc-2.3.4/build-glibc/elf/librtld.os(.text+0x5c8c):
In function `$a':
: undefined reference to `__close'
/usr/crosstool-0.31/build/arm-iwmmxt-linux-gnu/gcc-3.4.3-glibc-2.3.4/build-glibc/elf/librtld.os(.text+0x5d30):
In function `$a':
: undefined reference to `rtld_errno'
/usr/crosstool-0.31/build/arm-iwmmxt-linux-gnu/gcc-3.4.3-glibc-2.3.4/build-glibc/elf/librtld.os(.text+0x61ec):
In function `_dl_map_object':
: undefined reference to `__close'
/usr/crosstool-0.31/build/arm-iwmmxt-linux-gnu/gcc-3.4.3-glibc-2.3.4/build-glibc/elf/librtld.os(.text+0x64a0):
In function `_dl_map_object':
: undefined reference to `rtld_errno'
/usr/crosstool-0.31/build/arm-iwmmxt-linux-gnu/gcc-3.4.3-glibc-2.3.4/build-glibc/elf/librtld.os(.text+0x80d8):
In function `_dl_new_object':
: undefined reference to `__getcwd'
/usr/crosstool-0.31/build/arm-iwmmxt-linux-gnu/gcc-3.4.3-glibc-2.3.4/build-glibc/elf/librtld.os(.text+0x8164):
In function `_dl_new_object':
: undefined reference to `rtld_errno'
/usr/crosstool-0.31/build/arm-iwmmxt-linux-gnu/gcc-3.4.3-glibc-2.3.4/build-glibc/elf/librtld.os(.text+0x9170):
In function `_dl_relocate_obj
ect':
: undefined reference to `rtld_errno'
/usr/crosstool-0.31/build/arm-iwmmxt-linux-gnu/gcc-3.4.3-glibc-2.3.4/build-glibc/elf/librtld.os(.text+0x9ae8):
In function `_dl_protect_relr
o':
: undefined reference to `rtld_errno'
/usr/crosstool-0.31/build/arm-iwmmxt-linux-gnu/gcc-3.4.3-glibc-2.3.4/build-glibc/elf/librtld.os(.text+0xaae8):
In function `_dl_map_object_d
eps':
: undefined reference to `rtld_errno'
/usr/crosstool-0.31/build/arm-iwmmxt-linux-gnu/gcc-3.4.3-glibc-2.3.4/build-glibc/elf/librtld.os(.text+0xba48):
In function `_dl_sysdep_read_
whole_file':
: undefined reference to `__open'
/usr/crosstool-0.31/build/arm-iwmmxt-linux-gnu/gcc-3.4.3-glibc-2.3.4/build-glibc/elf/librtld.os(.text+0xba60):
In function `_dl_sysdep_read_
whole_file':
: undefined reference to `__GI___fxstat64'
/usr/crosstool-0.31/build/arm-iwmmxt-linux-gnu/gcc-3.4.3-glibc-2.3.4/build-glibc/elf/librtld.os(.text+0xba9c):
In function `_dl_sysdep_read_
whole_file':
: undefined reference to `__close'
/usr/crosstool-0.31/build/arm-iwmmxt-linux-gnu/gcc-3.4.3-glibc-2.3.4/build-glibc/elf/librtld.os(.text+0xcb74):
In function `_dl_start_profil
e':
: undefined reference to `__open'
/usr/crosstool-0.31/build/arm-iwmmxt-linux-gnu/gcc-3.4.3-glibc-2.3.4/build-glibc/elf/librtld.os(.text+0xcba4):
In function `_dl_start_profil
e':
: undefined reference to `__close'
/usr/crosstool-0.31/build/arm-iwmmxt-linux-gnu/gcc-3.4.3-glibc-2.3.4/build-glibc/elf/librtld.os(.text+0xcbdc):
In function `_dl_start_profil
e':
: undefined reference to `__GI___fxstat64'
/usr/crosstool-0.31/build/arm-iwmmxt-linux-gnu/gcc-3.4.3-glibc-2.3.4/build-glibc/elf/librtld.os(.text+0xcc64):
In function `_dl_start_profil
e':
: undefined reference to `__lseek'
/usr/crosstool-0.31/build/arm-iwmmxt-linux-gnu/gcc-3.4.3-glibc-2.3.4/build-glibc/elf/librtld.os(.text+0xccac):
In function `_dl_start_profil
e':
: undefined reference to `__libc_write'
/usr/crosstool-0.31/build/arm-iwmmxt-linux-gnu/gcc-3.4.3-glibc-2.3.4/build-glibc/elf/librtld.os(.text+0xccf8):
In function `_dl_start_profil
e':
: undefined reference to `__close'
/usr/crosstool-0.31/build/arm-iwmmxt-linux-gnu/gcc-3.4.3-glibc-2.3.4/build-glibc/elf/librtld.os(.text+0xcd70):
In function `_dl_start_profil
e':
: undefined reference to `__close'
/usr/crosstool-0.31/build/arm-iwmmxt-linux-gnu/gcc-3.4.3-glibc-2.3.4/build-glibc/elf/librtld.os(.text+0xd0a8):
In function `_dl_start_profil
e':
: undefined reference to `rtld_errno'
/usr/crosstool-0.31/build/arm-iwmmxt-linux-gnu/gcc-3.4.3-glibc-2.3.4/build-glibc/elf/librtld.os(.text+0xdc0c):
In function `__GI__dl_make_st
ack_executable':
: undefined reference to `rtld_errno'
/usr/crosstool-0.31/build/arm-iwmmxt-linux-gnu/gcc-3.4.3-glibc-2.3.4/build-glibc/elf/librtld.os(.text+0xe024):
In function `_dl_sysdep_start
':
: undefined reference to `__open'
/usr/crosstool-0.31/build/arm-iwmmxt-linux-gnu/gcc-3.4.3-glibc-2.3.4/build-glibc/elf/librtld.os(.text+0xe03c):
In function `_dl_sysdep_start
':
: undefined reference to `__read'
/usr/crosstool-0.31/build/arm-iwmmxt-linux-gnu/gcc-3.4.3-glibc-2.3.4/build-glibc/elf/librtld.os(.text+0xe064):
In function `_dl_sysdep_start
':
: undefined reference to `__close'
/usr/crosstool-0.31/build/arm-iwmmxt-linux-gnu/gcc-3.4.3-glibc-2.3.4/build-glibc/elf/librtld.os(.text+0xe220):
In function `_dl_sysdep_start
':
: undefined reference to `__libc_check_standard_fds'
/usr/crosstool-0.31/build/arm-iwmmxt-linux-gnu/gcc-3.4.3-glibc-2.3.4/build-glibc/elf/librtld.os(.text+0xf0c8):
In function `__strtoul_intern
al':
: undefined reference to `rtld_errno'
/usr/crosstool-0.31/build/arm-iwmmxt-linux-gnu/gcc-3.4.3-glibc-2.3.4/build-glibc/elf/librtld.os(.text+0xf2a0):
In function `brk':
: undefined reference to `rtld_errno'
/usr/crosstool-0.31/build/arm-iwmmxt-linux-gnu/gcc-3.4.3-glibc-2.3.4/build-glibc/elf/librtld.os(.text+0xf550):
In function `mmap':
: undefined reference to `__syscall_error'
/usr/crosstool-0.31/build/arm-iwmmxt-linux-gnu/gcc-3.4.3-glibc-2.3.4/build-glibc/elf/librtld.os(.text+0xf564):
In function `__local_syscall_
error':
: undefined reference to `__errno_location'
/usr/crosstool-0.31/build/arm-iwmmxt-linux-gnu/gcc-3.4.3-glibc-2.3.4/build-glibc/elf/librtld.os(.text+0xf598):
In function `__local_syscall_
error':
: undefined reference to `__errno_location'
/usr/crosstool-0.31/build/arm-iwmmxt-linux-gnu/gcc-3.4.3-glibc-2.3.4/build-glibc/elf/librtld.os(.text+0xf5c8):
In function `__local_syscall_
error':
: undefined reference to `__errno_location'
/usr/crosstool-0.31/build/arm-iwmmxt-linux-gnu/gcc-3.4.3-glibc-2.3.4/build-glibc/elf/librtld.os(.text+0xf5f8):
In function `__local_syscall_
error':
: undefined reference to `__errno_location'
/usr/crosstool-0.31/build/arm-iwmmxt-linux-gnu/gcc-3.4.3-glibc-2.3.4/build-glibc/elf/librtld.os(.text+0xf65c):
In function `_exit':
: undefined reference to `rtld_errno'
/usr/crosstool-0.31/build/arm-iwmmxt-linux-gnu/gcc-3.4.3-glibc-2.3.4/build-glibc/elf/librtld.os(.text+0xf7bc):
In function `__sigaction':
: undefined reference to `rtld_errno'
/usr/crosstool-0.31/build/arm-iwmmxt-linux-gnu/gcc-3.4.3-glibc-2.3.4/build-glibc/elf/librtld.os(.text+0x10648):
In function `__local_syscall
_error':
: undefined reference to `__errno_location'
collect2: ld returned 1 exit status
make[2]: ***
[/usr/crosstool-0.31/build/arm-iwmmxt-linux-gnu/gcc-3.4.3-glibc-2.3.4/build-glibc/elf/ld.so]
Error 1
make[2]: Leaving directory
`/usr/crosstool-0.31/build/arm-iwmmxt-linux-gnu/gcc-3.4.3-glibc-2.3.4/glibc-2.3.4/elf'
make[1]: *** [elf/subdir_lib] Error 2
make[1]: Leaving directory
`/usr/crosstool-0.31/build/arm-iwmmxt-linux-gnu/gcc-3.4.3-glibc-2.3.4/glibc-2.3.4'
make: *** [lib] Error 2
nnuziale@W2K /usr/crosstool-0.31
$
nnuziale@W2K /usr/crosstool-0.31
$ /usr/bin/gcc -v
Reading specs from /usr/lib/gcc-lib/i686-pc-cygwin/3.3.3/specs
Configured with: /gcc/gcc-3.3.3-3/configure --verbose --prefix=/usr
--exec-prefix=/usr --sysconfdir=/etc --libdir=/usr/lib --libexecdir=/usr
/lib --mandir=/usr/share/man --infodir=/usr/share/info
--enable-languages=c,ada,c++,d,f77,java,objc,pascal --enable-nls
--without-included-g
ettext --enable-libgcj --with-system-zlib --enable-interpreter
--enable-threads=posix --enable-java-gc=boehm --enable-sjlj-exceptions
--disa
ble-version-specific-runtime-libs --disable-win32-registry
Thread model: posix
gcc version 3.3.3 (cygwin special)
>From: Dimitry Andric <dimitry@andric.com>
>To: "Nick Nuziale" <nnuziale@hotmail.com>
>CC: allanc@chickenandporn.com, crossgcc@sources.redhat.com
>Subject: Re: arm/iwmmxt VFP errors during linking
>Date: Wed, 13 Apr 2005 22:11:50 +0200
>
>On 2005-04-12 at 15:27:09 Nick Nuziale wrote:
>
> >>With which options did you compile blahblah? Can you show us the
> >>(full) output of arm-iwmmxt-linux-gnu-gcc -v when you compile it?
> > [NN] - The problem occurs when linking several libraries together. See
> > below output containing -v.
>
>Your output shows only the linking stage, so I can only guess how you
>actually compiled your .o files. The linking problems are:
>
>1) The libappbase-xscale-r.so file is built with gcc 3.3.x, so it
> links against an older libstdc++ than you have.
>2) Your own .o files are most probably hard FPA format, while the
> libappbase-xscale-r.so file is VFP format.
[NN2] - you are correct...
>
>
> >>> I have not applied the patch in Scott Merritt's posting yet,
> >>> perhaps this will fix the VFP problems??
> >>Maybe, depending on your compile options.
> > [NN] - what are the correct options to use?
>
>If you apply my vfp patch, you simply use NO floating point options,
>so neither -msoft-float, nor -mhard-float, and that should result in
>.o files in soft VFP format.
>
>You can verify the format of your .o (and .so) files with:
>
> arm-linux-objdump -p foo.o
>
>
> > However this means I would now need build my cross compiler with gcc
> > 3.3.3 and apply any necessary patches to get VFP working.
>
>I would advise you to just ask the supplier of libappbase-xscale-r.so
>for the toolchain they've used, and use that to build your app. This
>is the best way to make sure you don't run into any incompatibilities.
[NN2] - I hope to eventually get it, however I wanted to build my own to get
the ball rolling and hopefully package it for anybody else to use so they
don't have to build it themselves. I have not been able to find a
(GNU/free) pre-built cross compiler for this target (with VFP support). If
you know of one please let me know. I know there are some commercial
vendors like MontaVista, etc...
but I'm not sure how easy it would be, how long it would take (mail??), or
how the quality of it is (would they give you an older not so good
version?)... I would have thought commercial vendors have a ftp site where
it could be downloaded however that doesn't seem so...
>
>
> > I noticed that crosstool has the glibc patch needed
> > (glibc-fp-byteorder.patch in glibc 2.3.2/3), however I guess I would I
>need
> > a gcc-3.3.3-arm-softvfp.patch (I noticed you created the
> > gcc-3.4.3-arm-softvfp.patch.bz2 and attached it in the mailing list).
> > Dimitri, can you create this patch?
>
>Try:
>http://www.andric.com/cross/patches/gcc-3.3.2-arm-softfloat.patch.bz2
>
>
> > This patch would need to be applied after all the other gcc crosstool
> > patches, correct?
>
>Yes. I'm not sure it'll apply cleanly with the latest crosstool
>patches, though...
[NN2] - I applied your above patch but was not successful. I tried a few
days ago and did keep a record of the problem I had. I think I applied the
patch manually but still had problems...
As such I decided to use a more recent version of gcc...
><< attach3 >>
_________________________________________________________________
Take advantage of powerful junk e-mail filters built on patented Microsoft®
SmartScreen Technology.
http://join.msn.com/?pgmarket=en-ca&page=byoa/prem&xAPID=1994&DI=1034&SU=http://hotmail.com/enca&HL=Market_MSNIS_Taglines
Start enjoying all the benefits of MSN® Premium right now and get the
first two months FREE*.
------
Want more information? See the CrossGCC FAQ, http://www.objsw.com/CrossGCC/
Want to unsubscribe? Send a note to crossgcc-unsubscribe@sources.redhat.com
More information about the crossgcc
mailing list