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