[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