Carsten Bager schrieb: > I have built a Win32 ppcrossarm.exe (2.20) compiler. The compiler works > ok. The output from the Linux and the Win32 compiler when I use the -sh > directive is exactly the same. The downside is I have some problems > finding a Win32 linker that I can use. > > If I compile a Hallow World program, it works ok, but when I try to compile a > program that uses uLibc, the Win32 linker and the Linux linker dos not do > exactly the same. > > When I run the output from the Win32 linker on my arm platform it stops > with > Segmentation fault > The output from the Linux linker runs ok > > If I look in the map file the only difference I can see is (see at the end of > this mail) > > Linux: 0x000080d4 . = (0x8000 + SIZEOF_HEADERS) > Win32: 0x00008000 . = 0x8000 > > I have several versions of Win32 linkers (215,216,217) and Linux linkers > (215,216,217,218). I have also seen this problem with a Linux linker (217) > > One of the Win32 linkers I have used if from > ftp://ftp.freepascal.org/pub/fpc/contrib/cross/mingw/binutils-2.15.94-win32- > arm-linux.zip > > Has anyone got a hint where to go from here.
- try to compare FPC's linker script with one of a working ld - try to find differences using objdump > > Regards > > Carsten > > > > > ---------------------- Linux > --------------------------------------------- > 0x00010000 PROVIDE (__executable_start, > 0x10000) > 0x00010100 . = 0x10100 > 0x00008000 PROVIDE (__executable_start, 0x8000) > 0x000080d4 . = (0x8000 + SIZEOF_HEADERS) > > .interp 0x000080d4 0x13 > *(.interp) > .interp 0x000080d4 0x13 /Fpc/Lib/Ulibc/Arm/cprt0.o > *(.interp) > > .hash 0x000080e8 0x94 > *(.hash) > .hash 0x000080e8 0x94 /Fpc/Lib/Ulibc/Arm/cprt0.o > *(.hash) > > .dynsym 0x0000817c 0x120 > *(.dynsym) > .dynsym 0x0000817c 0x120 /Fpc/Lib/Ulibc/Arm/cprt0.o > *(.dynsym) > > .dynstr 0x0000829c 0xc4 > *(.dynstr) > .dynstr 0x0000829c 0xc4 /Fpc/Lib/Ulibc/Arm/cprt0.o > *(.dynstr) > > .gnu.version > *(.gnu.version) > *(.gnu.version) > > .gnu.version_d > *(.gnu.version_d) > *(.gnu.version_d) > > .gnu.version_r > *(.gnu.version_r) > *(.gnu.version_r) > > .rel.dyn 0x00008360 0x18 > *(.rel.init) > *(.rel.text .rel.text.* .rel.gnu.linkonce.t.*) > *(.rel.fini) > *(.rel.rodata .rel.rodata.* .rel.gnu.linkonce.r.*) > *(.rel.data.rel.ro*) > *(.rel.data .rel.data.* .rel.gnu.linkonce.d.*) > *(.rel.tdata .rel.tdata.* .rel.gnu.linkonce.td.*) > *(.rel.tbss .rel.tbss.* .rel.gnu.linkonce.tb.*) > *(.rel.ctors) > *(.rel.dtors) > *(.rel.got) > .rel.got 0x00008360 0x18 /Fpc/Lib/Ulibc/Arm/cprt0.o > *(.rel.bss .rel.bss.* .rel.gnu.linkonce.b.*) > *(.rel.init) > *(.rel.text .rel.text.* .rel.gnu.linkonce.t.*) > > ---------------------- Win32 > -------------------------------------------------- > 0x00010000 PROVIDE (__executable_start, > 0x10000) > 0x00010100 . = 0x10100 > 0x00008000 PROVIDE (__executable_start, 0x8000) > 0x00008000 . = 0x8000 > > .interp 0x00008000 0x13 > *(.interp) > .interp 0x00008000 0x13 J:\Fpc\Lib\Ulibc\Arm\cprt0.o > *(.interp) > > .hash 0x00008014 0x90 > *(.hash) > .hash 0x00008014 0x90 J:\Fpc\Lib\Ulibc\Arm\cprt0.o > *(.hash) > > .dynsym 0x000080a4 0x110 > *(.dynsym) > .dynsym 0x000080a4 0x110 J:\Fpc\Lib\Ulibc\Arm\cprt0.o > *(.dynsym) > > .dynstr 0x000081b4 0xbb > *(.dynstr) > .dynstr 0x000081b4 0xbb J:\Fpc\Lib\Ulibc\Arm\cprt0.o > *(.dynstr) > > .gnu.version 0x00008270 0x0 > *(.gnu.version) > *(.gnu.version) > > .gnu.version_d 0x00008270 0x0 > *(.gnu.version_d) > *(.gnu.version_d) > > .gnu.version_r 0x00008270 0x0 > *(.gnu.version_r) > *(.gnu.version_r) > > .rel.dyn 0x00008270 0x18 > *(.rel.init) > *(.rel.text .rel.text.* .rel.gnu.linkonce.t.*) > *(.rel.fini) > *(.rel.rodata .rel.rodata.* .rel.gnu.linkonce.r.*) > *(.rel.data.rel.ro* .rel.gnu.linkonce.d.rel.ro.*) > *(.rel.data .rel.data.* .rel.gnu.linkonce.d.*) > *(.rel.tdata .rel.tdata.* .rel.gnu.linkonce.td.*) > *(.rel.tbss .rel.tbss.* .rel.gnu.linkonce.tb.*) > *(.rel.ctors) > *(.rel.dtors) > *(.rel.got) > .rel.got 0x00008270 0x18 J:\Fpc\Lib\Ulibc\Arm\cprt0.o > *(.rel.bss .rel.bss.* .rel.gnu.linkonce.b.*) > *(.rel.init) > *(.rel.text .rel.text.* .rel.gnu.linkonce.t.*) > > > > > > > _______________________________________________ > fpc-pascal maillist - fpc-pascal@lists.freepascal.org > http://lists.freepascal.org/mailman/listinfo/fpc-pascal > _______________________________________________ fpc-pascal maillist - fpc-pascal@lists.freepascal.org http://lists.freepascal.org/mailman/listinfo/fpc-pascal