This is the mail archive of the crossgcc@sources.redhat.com mailing list for the crossgcc project.

See the CrossGCC FAQ for lots more information.


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: arm/iwmmxt VFP errors during linking


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


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