[fpc-pascal] Linking Problems while cross compiling for arm
Dariusz Mazur
darekm at emadar.com
Mon Dec 7 20:56:05 CET 2009
Hartmut Eilers pisze:
> Hallo List,
>
> thanks for your first and fast response. According to the suggestions
> from Marco and Jonas I try it this way:
>
> ubuntu at kubuntu904:~/OpenLabTools/DeviceServer$
> /usr/local/bin/ppcrossarm -CfFPA -dUSB92 -CaARMEB -CpARMV5 -darm
> -dFPC_ARMEL -gl -Fu../webserver -Fu../PhysMach
> -Fu../divLibs/pwu-1.6.0.2-src/main/
> -FL/usr/xtools/arm-unknown-linux-uclibc/arm-unknown-linux-uclibc/lib/ld-uClibc.so.0
> -Fl/usr/local/xtools/arm-unknown-linux-uclibc/arm-unknown-linux-uclibc/lib/
> -XParm-unknown-linux-uclibc- -Xd
> -Xr/usr/local/xtools/arm-unknown-linux-uclibc/
> -XR/usr/local/xtools/arm-unknown-linux-uclibc/arm-unknown-linux-uclibc/sys-root/lib/
> DeviceServer.pas
> Free Pascal Compiler version 2.4.0rc1 [2009/12/07] for arm
> Copyright (c) 1993-2009 by Florian Klaempfl
> Target OS: Linux for ARM
> Compiling DeviceServer.pas
> DeviceServer.pas(538,10) Warning: Function result does not seem to be set
> Assembling deviceserver
> Linking DeviceServer
> /usr/local/xtools/arm-unknown-linux-uclibc/bin/arm-unknown-linux-uclibc-ld:
> cannot find -ldl
> DeviceServer.pas(609,2) Error: Error while linking
> DeviceServer.pas(609,2) Fatal: There were 1 errors compiling module, stopping
> Fatal: Compilation aborted
>
> If I run the above command with strace I see:
> access("/usr/local/lib/fpc/2.4.0/units/arm-linux/rtl/ucprt0.o", F_OK)
> = 0
>
> so I assume that the compiler is aware of compiling for a uclibc system.
> therefor I tried to pass the lib path to the linker:
>
> ubuntu at kubuntu904:~/OpenLabTools/DeviceServer$
> /usr/local/bin/ppcrossarm -CfFPA -dUSB92 -CaARMEB -CpARMV5 -darm
> -dFPC_ARMEL -gl -Fu../webserver -Fu../PhysMach
> -Fu../divLibs/pwu-1.6.0.2-src/main/
> -FL/usr/xtools/arm-unknown-linux-uclibc/arm-unknown-linux-uclibc/lib/ld-uClibc.so.0
> -Fl/usr/local/xtools/arm-unknown-linux-uclibc/arm-unknown-linux-uclibc/lib/
> -XParm-unknown-linux-uclibc- -Xd
> -Xr/usr/local/xtools/arm-unknown-linux-uclibc/
>
try
-Xr/usr/local/xtools/arm-unknown-linux-uclibc/arm-unknown-linux-uclibc/lib
> -XR/usr/local/xtools/arm-unknown-linux-uclibc/arm-unknown-linux-uclibc/
> -k"-L/usr/local/xtools/arm-unknown-linux-uclibc/arm-unknown-linux-uclibc/lib"
>
> DeviceServer.pas
> Free Pascal Compiler version 2.4.0rc1 [2009/12/07] for arm
> Copyright (c) 1993-2009 by Florian Klaempfl
> Target OS: Linux for ARM
> Compiling DeviceServer.pas
> DeviceServer.pas(538,10) Warning: Function result does not seem to be set
> Assembling deviceserver
> Linking DeviceServer
> /usr/local/xtools/arm-unknown-linux-uclibc/bin/arm-unknown-linux-uclibc-ld:
> cannot find -ldl
> DeviceServer.pas(609,2) Error: Error while linking
> DeviceServer.pas(609,2) Fatal: There were 1 errors compiling module, stopping
> Fatal: Compilation aborted
>
> ubuntu at kubuntu904:~/OpenLabTools/DeviceServer$ ls
> /usr/local/xtools/arm-unknown-linux-uclibc/arm-unknown-linux-uclibc/lib
>
can you post
ls
/usr/local/xtools/arm-unknown-linux-uclibc/arm-unknown-linux-uclibc/bin
and
file link.res after
ppcrossarm -Cn -CfFPA ......
> ldscripts libgomp.a libmudflap.la
> libnsl.so.0 libssp_nonshared.la libsupc++.a
> ld-uClibc-0.9.30.so libgomp.la libmudflap.so
> libpthread-0.9.30.so libssp.so libsupc++.la
> ld-uClibc.so.0 libgomp.so libmudflap.so.0
> libpthread.so.0 libssp.so.0 libthread_db-0.9.30.so
> libcrypt-0.9.30.so libgomp.so.1 libmudflap.so.0.0.0
> libresolv-0.9.30.so libssp.so.0.0.0 libthread_db.so.1
> libcrypt.so.0 libgomp.so.1.0.0 libmudflapth.a
> libresolv.so.0 libstdc++.a libuClibc-0.9.30.so
> libc.so.0 libgomp.spec libmudflapth.la
> librt-0.9.30.so libstdc++.la libutil-0.9.30.so
> libdl-0.9.30.so libiberty.a libmudflapth.so
> librt.so.0 libstdc++_pic.a libutil.so.0
> libdl.so.0 libm-0.9.30.so libmudflapth.so.0 libssp.a
> libstdc++.so
> libgcc_s.so libm.so.0 libmudflapth.so.0.0.0
> libssp.la libstdc++.so.6
> libgcc_s.so.1 libmudflap.a libnsl-0.9.30.so
> libssp_nonshared.a libstdc++.so.6.0.10
>
> >From my point of view the -k"-L..." is the correct path and libdl is
> located there.
>
> Can anybody enlighten me in this ?
> After one weekend fiddeling with all this I'm very confused.
> Thanks for your help
>
>
>
--
Darek
More information about the fpc-pascal
mailing list