[fpc-pascal] CThreads problem when cross-compiling to ARM/RPi.

Bruce Tulloch pascal at causal.com
Fri May 24 13:37:08 CEST 2013


So this problem is not related to cthreads per se.

I've changed the program to:

program test;
uses
  Interfaces;
begin
  writeln('DATE ',{$i %DATE%});
  writeln('FPCTARGET ',{$i %FPCTARGET%});
  writeln('FPCTARGETCPU ',{$i %FPCTARGETCPU%});
  writeln('FPCTARGETOS ',{$i %FPCTARGETOS%});
  writeln('FPCVERSION ',{$i %FPCVERSION%});
end.

and built it as:

fpc -Tlinux -Parm \
-Fu/home/bruce/lazarus/lcl/units/arm-linux/gtk2 \
-Fu/home/bruce/lazarus/lcl/units/arm-linux \
-Fu/home/bruce/lazarus/components/lazutils/lib/arm-linux \
-s test.pas

where relevant part of /etc/fpc.cfg is:

-Sgic
-viwn
-Xs
-Fu/usr/local/lib/fpc/$fpcversion/units/$fpctarget/*
#IFDEF FPC_CROSSCOMPILING
-XP$FPCTARGET-
  #IFDEF LINUX
    #IFDEF CPUARMHF
    -Xd
    -k--sysroot=/usr/local/opt/chroot/raspbian/rootfs
    -Fl/usr/local/opt/chroot/raspbian/rootfs/usr/lib/gcc/arm-linux-gnueabihf/4.6
    -Fl/usr/local/opt/chroot/raspbian/rootfs/usr/lib/arm-linux-gnueabihf
    -Fl/usr/local/opt/chroot/raspbian/rootfs/usr/lib
    -Fl/usr/local/opt/chroot/raspbian/rootfs/lib/arm-linux-gnueabihf
    -Fl/usr/local/opt/chroot/raspbian/rootfs/lib
    -FD/usr/local/opt/binutils/bin
    #ENDIF
  #ENDIF
#ENDIF

this produces ppas.sh:

#!/bin/sh
DoExitAsm ()
{ echo "An error occurred while assembling $1"; exit 1; }
DoExitLink ()
{ echo "An error occurred while linking $1"; exit 1; }
echo Assembling test
/usr/local/opt/binutils/bin/arm-linux-as -mfloat-abi=hard -meabi=5
-march=armv7-a -mfpu=vfpv3-d16 -o test.o test.s
if [ $? != 0 ]; then DoExitAsm test; fi
rm test.s
echo Linking test
OFS=$IFS
IFS="
"
/usr/local/opt/binutils/bin/arm-linux-ld
--sysroot=/usr/local/opt/chroot/raspbian/rootfs
--dynamic-linker=/lib/ld-linux-armhf.so.3   -s -L. -o test link.res
if [ $? != 0 ]; then DoExitLink test; fi
IFS=$OFS

This assembles but the link fails on missing library dependencies.

The original (unmodified) INPUT statement in link.res is:

INPUT(
-ldl
-lpthread
-lX11
-lgdk_pixbuf-2.0
-lgtk-x11-2.0
-lgdk-x11-2.0
-lgobject-2.0
-lglib-2.0
-lgthread-2.0
-lgmodule-2.0
-lpango-1.0
-lcairo
-latk-1.0
)

To which I have to manually add these libraries:

-lrt
-lgcc_s
-lpcre

to fix these dependency problems, but the link then produces:

$ ./ppas.sh
Assembling test
Linking test
/usr/local/opt/binutils/bin/arm-linux-ld: warning: link.res contains
output sections; did you forget -T?
/usr/local/lib/fpc/2.7.1/units/arm-linux/rtl/dynlibs.o: In function
`DYNLIBS_$$_LOADLIBRARY$ANSISTRING$$LONGINT':
dynlibs.pas:(.text.n_dynlibs_$$_loadlibrary$ansistring$$longint+0x1c):
warning: Using 'dlopen' in statically linked applications requires at
runtime the shared libraries from the glibc version used for linking
/usr/local/opt/chroot/raspbian/rootfs/usr/lib/arm-linux-gnueabihf//libdl.a(dlopen.o):
In function `dlopen':
(.text+0xc): undefined reference to `__dlopen'
/usr/local/opt/chroot/raspbian/rootfs/usr/lib/arm-linux-gnueabihf//libdl.a(dlclose.o):
In function `dlclose':
(.text+0x0): undefined reference to `__dlclose'
/usr/local/opt/chroot/raspbian/rootfs/usr/lib/arm-linux-gnueabihf//libdl.a(dlsym.o):
In function `dlsym':
(.text+0xc): undefined reference to `__dlsym'
/usr/local/opt/chroot/raspbian/rootfs/usr/lib/arm-linux-gnueabihf//libdl.a(dlerror.o):
In function `dlerror':
(.text+0x0): undefined reference to `__dlerror'
/usr/local/opt/chroot/raspbian/rootfs/usr/lib/arm-linux-gnueabihf//libdl.a(dladdr.o):
In function `dladdr':
(.text+0x0): undefined reference to `__dladdr'
An error occurred while linking test

I cannot see any reason why arm-linux-ld is trying to link this statically
on the basis of the arguments used in ppas.sh and the contents of the
link.res based on the output of gcc in my previous email.

I've tried comparing the linker arguments used with those produced by
gcc and there some differences at assembly time. Is this important?

Prima facie is looks like it might be.

For example gcc on the target says:

  -march=armv6

but FPC directs the assembler to use:

  -march=armv7-a

FYI, below is the full content of the (amended) link.res file...

SEARCH_DIR("/usr/local/opt/chroot/raspbian/rootfs/lib/")
SEARCH_DIR("/usr/local/opt/chroot/raspbian/rootfs/lib/arm-linux-gnueabihf/")
SEARCH_DIR("/usr/local/opt/chroot/raspbian/rootfs/usr/lib/")
SEARCH_DIR("/usr/local/opt/chroot/raspbian/rootfs/usr/lib/arm-linux-gnueabihf/")
SEARCH_DIR("/usr/local/opt/chroot/raspbian/rootfs/usr/lib/gcc/arm-linux-gnueabihf/4.6/")
SEARCH_DIR("/home/bruce/lazarus/lcl/units/arm-linux/gtk2/")
SEARCH_DIR("/home/bruce/lazarus/lcl/units/arm-linux/")
SEARCH_DIR("/home/bruce/lazarus/components/lazutils/lib/arm-linux/")
SEARCH_DIR("/usr/local/lib/fpc/2.7.1/units/arm-linux/httpd22/")
SEARCH_DIR("/usr/local/lib/fpc/2.7.1/units/arm-linux/cdrom/")
SEARCH_DIR("/usr/local/lib/fpc/2.7.1/units/arm-linux/jni/")
SEARCH_DIR("/usr/local/lib/fpc/2.7.1/units/arm-linux/imagemagick/")
SEARCH_DIR("/usr/local/lib/fpc/2.7.1/units/arm-linux/fcl-fpcunit/")
SEARCH_DIR("/usr/local/lib/fpc/2.7.1/units/arm-linux/tcl/")
SEARCH_DIR("/usr/local/lib/fpc/2.7.1/units/arm-linux/fcl-web/")
SEARCH_DIR("/usr/local/lib/fpc/2.7.1/units/arm-linux/ldap/")
SEARCH_DIR("/usr/local/lib/fpc/2.7.1/units/arm-linux/iconvenc/")
SEARCH_DIR("/usr/local/lib/fpc/2.7.1/units/arm-linux/modplug/")
SEARCH_DIR("/usr/local/lib/fpc/2.7.1/units/arm-linux/syslog/")
SEARCH_DIR("/usr/local/lib/fpc/2.7.1/units/arm-linux/imlib/")
SEARCH_DIR("/usr/local/lib/fpc/2.7.1/units/arm-linux/fv/")
SEARCH_DIR("/usr/local/lib/fpc/2.7.1/units/arm-linux/paszlib/")
SEARCH_DIR("/usr/local/lib/fpc/2.7.1/units/arm-linux/ggi/")
SEARCH_DIR("/usr/local/lib/fpc/2.7.1/units/arm-linux/lua/")
SEARCH_DIR("/usr/local/lib/fpc/2.7.1/units/arm-linux/opengl/")
SEARCH_DIR("/usr/local/lib/fpc/2.7.1/units/arm-linux/pthreads/")
SEARCH_DIR("/usr/local/lib/fpc/2.7.1/units/arm-linux/fcl-async/")
SEARCH_DIR("/usr/local/lib/fpc/2.7.1/units/arm-linux/fcl-registry/")
SEARCH_DIR("/usr/local/lib/fpc/2.7.1/units/arm-linux/fftw/")
SEARCH_DIR("/usr/local/lib/fpc/2.7.1/units/arm-linux/dbus/")
SEARCH_DIR("/usr/local/lib/fpc/2.7.1/units/arm-linux/fcl-res/")
SEARCH_DIR("/usr/local/lib/fpc/2.7.1/units/arm-linux/gtk2/")
SEARCH_DIR("/usr/local/lib/fpc/2.7.1/units/arm-linux/fcl-js/")
SEARCH_DIR("/usr/local/lib/fpc/2.7.1/units/arm-linux/mysql/")
SEARCH_DIR("/usr/local/lib/fpc/2.7.1/units/arm-linux/utmp/")
SEARCH_DIR("/usr/local/lib/fpc/2.7.1/units/arm-linux/svgalib/")
SEARCH_DIR("/usr/local/lib/fpc/2.7.1/units/arm-linux/fcl-base/")
SEARCH_DIR("/usr/local/lib/fpc/2.7.1/units/arm-linux/libgd/")
SEARCH_DIR("/usr/local/lib/fpc/2.7.1/units/arm-linux/fastcgi/")
SEARCH_DIR("/usr/local/lib/fpc/2.7.1/units/arm-linux/symbolic/")
SEARCH_DIR("/usr/local/lib/fpc/2.7.1/units/arm-linux/postgres/")
SEARCH_DIR("/usr/local/lib/fpc/2.7.1/units/arm-linux/ibase/")
SEARCH_DIR("/usr/local/lib/fpc/2.7.1/units/arm-linux/mad/")
SEARCH_DIR("/usr/local/lib/fpc/2.7.1/units/arm-linux/fcl-xml/")
SEARCH_DIR("/usr/local/lib/fpc/2.7.1/units/arm-linux/uuid/")
SEARCH_DIR("/usr/local/lib/fpc/2.7.1/units/arm-linux/chm/")
SEARCH_DIR("/usr/local/lib/fpc/2.7.1/units/arm-linux/ncurses/")
SEARCH_DIR("/usr/local/lib/fpc/2.7.1/units/arm-linux/oggvorbis/")
SEARCH_DIR("/usr/local/lib/fpc/2.7.1/units/arm-linux/fpgtk/")
SEARCH_DIR("/usr/local/lib/fpc/2.7.1/units/arm-linux/fcl-db/")
SEARCH_DIR("/usr/local/lib/fpc/2.7.1/units/arm-linux/bzip2/")
SEARCH_DIR("/usr/local/lib/fpc/2.7.1/units/arm-linux/opengles/")
SEARCH_DIR("/usr/local/lib/fpc/2.7.1/units/arm-linux/numlib/")
SEARCH_DIR("/usr/local/lib/fpc/2.7.1/units/arm-linux/fcl-process/")
SEARCH_DIR("/usr/local/lib/fpc/2.7.1/units/arm-linux/cairo/")
SEARCH_DIR("/usr/local/lib/fpc/2.7.1/units/arm-linux/bfd/")
SEARCH_DIR("/usr/local/lib/fpc/2.7.1/units/arm-linux/x11/")
SEARCH_DIR("/usr/local/lib/fpc/2.7.1/units/arm-linux/gtk1/")
SEARCH_DIR("/usr/local/lib/fpc/2.7.1/units/arm-linux/fcl-net/")
SEARCH_DIR("/usr/local/lib/fpc/2.7.1/units/arm-linux/dts/")
SEARCH_DIR("/usr/local/lib/fpc/2.7.1/units/arm-linux/fcl-image/")
SEARCH_DIR("/usr/local/lib/fpc/2.7.1/units/arm-linux/dblib/")
SEARCH_DIR("/usr/local/lib/fpc/2.7.1/units/arm-linux/gdbint/")
SEARCH_DIR("/usr/local/lib/fpc/2.7.1/units/arm-linux/proj4/")
SEARCH_DIR("/usr/local/lib/fpc/2.7.1/units/arm-linux/libsee/")
SEARCH_DIR("/usr/local/lib/fpc/2.7.1/units/arm-linux/libxml2/")
SEARCH_DIR("/usr/local/lib/fpc/2.7.1/units/arm-linux/oracle/")
SEARCH_DIR("/usr/local/lib/fpc/2.7.1/units/arm-linux/fcl-json/")
SEARCH_DIR("/usr/local/lib/fpc/2.7.1/units/arm-linux/httpd24/")
SEARCH_DIR("/usr/local/lib/fpc/2.7.1/units/arm-linux/openal/")
SEARCH_DIR("/usr/local/lib/fpc/2.7.1/units/arm-linux/zlib/")
SEARCH_DIR("/usr/local/lib/fpc/2.7.1/units/arm-linux/sqlite/")
SEARCH_DIR("/usr/local/lib/fpc/2.7.1/units/arm-linux/fpindexer/")
SEARCH_DIR("/usr/local/lib/fpc/2.7.1/units/arm-linux/libtar/")
SEARCH_DIR("/usr/local/lib/fpc/2.7.1/units/arm-linux/pcap/")
SEARCH_DIR("/usr/local/lib/fpc/2.7.1/units/arm-linux/rsvg/")
SEARCH_DIR("/usr/local/lib/fpc/2.7.1/units/arm-linux/fppkg/")
SEARCH_DIR("/usr/local/lib/fpc/2.7.1/units/arm-linux/fpmkunit/")
SEARCH_DIR("/usr/local/lib/fpc/2.7.1/units/arm-linux/ptc/")
SEARCH_DIR("/usr/local/lib/fpc/2.7.1/units/arm-linux/unzip/")
SEARCH_DIR("/usr/local/lib/fpc/2.7.1/units/arm-linux/fcl-passrc/")
SEARCH_DIR("/usr/local/lib/fpc/2.7.1/units/arm-linux/fcl-extra/")
SEARCH_DIR("/usr/local/lib/fpc/2.7.1/units/arm-linux/rtl/")
SEARCH_DIR("/usr/local/lib/fpc/2.7.1/units/arm-linux/fcl-stl/")
SEARCH_DIR("/usr/local/lib/fpc/2.7.1/units/arm-linux/xforms/")
SEARCH_DIR("/usr/local/lib/fpc/2.7.1/units/arm-linux/sdl/")
SEARCH_DIR("/usr/local/lib/fpc/2.7.1/units/arm-linux/hermes/")
SEARCH_DIR("/usr/local/lib/fpc/2.7.1/units/arm-linux/openssl/")
SEARCH_DIR("/usr/local/lib/fpc/2.7.1/units/arm-linux/odbc/")
SEARCH_DIR("/usr/local/lib/fpc/2.7.1/units/arm-linux/pxlib/")
SEARCH_DIR("/usr/local/lib/fpc/2.7.1/units/arm-linux/pasjpeg/")
SEARCH_DIR("/usr/local/lib/fpc/2.7.1/units/arm-linux/regexpr/")
SEARCH_DIR("/usr/local/lib/fpc/2.7.1/units/arm-linux/users/")
SEARCH_DIR("/usr/local/lib/fpc/2.7.1/units/arm-linux/aspell/")
SEARCH_DIR("/usr/local/lib/fpc/2.7.1/units/arm-linux/zorba/")
SEARCH_DIR("/usr/local/lib/fpc/2.7.1/units/arm-linux/gmp/")
SEARCH_DIR("/usr/local/lib/fpc/2.7.1/units/arm-linux/newt/")
SEARCH_DIR("/usr/local/lib/fpc/2.7.1/units/arm-linux/gnome1/")
SEARCH_DIR("/usr/local/lib/fpc/2.7.1/units/arm-linux/hash/")
SEARCH_DIR("/usr/local/lib/fpc/2.7.1/units/arm-linux/fcl-sdo/")
SEARCH_DIR("/usr/local/lib/fpc/2.7.1/units/arm-linux/libcurl/")
SEARCH_DIR("/usr/local/lib/fpc/2.7.1/units/arm-linux/libvlc/")
SEARCH_DIR("/usr/local/lib/fpc/2.7.1/units/arm-linux/libpng/")
SEARCH_DIR("/usr/local/lib/fpc/2.7.1/units/arm-linux/gdbm/")
SEARCH_DIR("/usr/local/lib/fpc/2.7.1/")
INPUT(
/usr/local/lib/fpc/2.7.1/units/arm-linux/rtl/cprt0.o
/usr/local/opt/chroot/raspbian/rootfs/usr/lib/arm-linux-gnueabihf/crti.o
/usr/local/opt/chroot/raspbian/rootfs/usr/lib/gcc/arm-linux-gnueabihf/4.6/crtbegin.o
test.o
test.or
/usr/local/lib/fpc/2.7.1/units/arm-linux/rtl/system.o
/usr/local/lib/fpc/2.7.1/units/arm-linux/rtl/fpintres.o
/home/bruce/lazarus/lcl/units/arm-linux/gtk2/interfaces.o
/usr/local/lib/fpc/2.7.1/units/arm-linux/rtl/objpas.o
/usr/local/lib/fpc/2.7.1/units/arm-linux/rtl/cwstring.o
/home/bruce/lazarus/lcl/units/arm-linux/interfacebase.o
/usr/local/lib/fpc/2.7.1/units/arm-linux/rtl/baseunix.o
/usr/local/lib/fpc/2.7.1/units/arm-linux/rtl/ctypes.o
/usr/local/lib/fpc/2.7.1/units/arm-linux/rtl/unix.o
/usr/local/lib/fpc/2.7.1/units/arm-linux/rtl/unixtype.o
/usr/local/lib/fpc/2.7.1/units/arm-linux/rtl/initc.o
/usr/local/lib/fpc/2.7.1/units/arm-linux/rtl/dynlibs.o
/usr/local/lib/fpc/2.7.1/units/arm-linux/rtl/unixcp.o
/usr/local/lib/fpc/2.7.1/units/arm-linux/rtl/unixutil.o
/usr/local/lib/fpc/2.7.1/units/arm-linux/rtl/dl.o
/usr/local/lib/fpc/2.7.1/units/arm-linux/rtl/types.o
/usr/local/lib/fpc/2.7.1/units/arm-linux/rtl/classes.o
/usr/local/lib/fpc/2.7.1/units/arm-linux/rtl/sysutils.o
/usr/local/lib/fpc/2.7.1/units/arm-linux/rtl/math.o
/home/bruce/lazarus/lcl/units/arm-linux/lclstrconsts.o
/home/bruce/lazarus/lcl/units/arm-linux/lcltype.o
/home/bruce/lazarus/lcl/units/arm-linux/lclproc.o
/home/bruce/lazarus/lcl/units/arm-linux/lmessages.o
/usr/local/lib/fpc/2.7.1/units/arm-linux/fcl-image/fpimage.o
/home/bruce/lazarus/lcl/units/arm-linux/graphtype.o
/home/bruce/lazarus/lcl/units/arm-linux/graphmath.o
/home/bruce/lazarus/lcl/units/arm-linux/intfgraphics.o
/home/bruce/lazarus/lcl/units/arm-linux/themes.o
/usr/local/lib/fpc/2.7.1/units/arm-linux/rtl/typinfo.o
/usr/local/lib/fpc/2.7.1/units/arm-linux/rtl/rtlconsts.o
/usr/local/lib/fpc/2.7.1/units/arm-linux/rtl/errors.o
/usr/local/lib/fpc/2.7.1/units/arm-linux/rtl/sysconst.o
/home/bruce/lazarus/components/lazutils/lib/arm-linux/lazlogger.o
/home/bruce/lazarus/lcl/units/arm-linux/fpcadds.o
/home/bruce/lazarus/components/lazutils/lib/arm-linux/avglvltree.o
/home/bruce/lazarus/components/lazutils/lib/arm-linux/fileutil.o
/home/bruce/lazarus/lcl/units/arm-linux/wsreferences.o
/home/bruce/lazarus/components/lazutils/lib/arm-linux/lazmethodlist.o
/home/bruce/lazarus/components/lazutils/lib/arm-linux/lazutf8.o
/home/bruce/lazarus/components/lazutils/lib/arm-linux/lazloggerbase.o
/home/bruce/lazarus/components/lazutils/lib/arm-linux/lazclasses.o
/home/bruce/lazarus/components/lazutils/lib/arm-linux/masks.o
/home/bruce/lazarus/components/lazutils/lib/arm-linux/lazutilsstrconsts.o
/home/bruce/lazarus/components/lazutils/lib/arm-linux/lazfileutils.o
/usr/local/lib/fpc/2.7.1/units/arm-linux/fcl-base/contnrs.o
/usr/local/lib/fpc/2.7.1/units/arm-linux/rtl/strutils.o
/usr/local/lib/fpc/2.7.1/units/arm-linux/fcl-base/gettext.o
/home/bruce/lazarus/components/lazutils/lib/arm-linux/lazutf8classes.o
/usr/local/lib/fpc/2.7.1/units/arm-linux/fcl-image/fpreadbmp.o
/usr/local/lib/fpc/2.7.1/units/arm-linux/fcl-image/fpwritebmp.o
/usr/local/lib/fpc/2.7.1/units/arm-linux/fcl-image/bmpcomn.o
/home/bruce/lazarus/lcl/units/arm-linux/lclversion.o
/usr/local/lib/fpc/2.7.1/units/arm-linux/fcl-image/fpreadpng.o
/usr/local/lib/fpc/2.7.1/units/arm-linux/fcl-image/fpwritepng.o
/usr/local/lib/fpc/2.7.1/units/arm-linux/fcl-image/fpreadtiff.o
/usr/local/lib/fpc/2.7.1/units/arm-linux/fcl-image/fpwritetiff.o
/usr/local/lib/fpc/2.7.1/units/arm-linux/fcl-image/fptiffcmn.o
/home/bruce/lazarus/lcl/units/arm-linux/icnstypes.o
/usr/local/lib/fpc/2.7.1/units/arm-linux/fcl-image/fpimgcmn.o
/usr/local/lib/fpc/2.7.1/units/arm-linux/fcl-image/pngcomn.o
/usr/local/lib/fpc/2.7.1/units/arm-linux/paszlib/zstream.o
/usr/local/lib/fpc/2.7.1/units/arm-linux/paszlib/zbase.o
/usr/local/lib/fpc/2.7.1/units/arm-linux/paszlib/gzio.o
/usr/local/lib/fpc/2.7.1/units/arm-linux/hash/crc.o
/usr/local/lib/fpc/2.7.1/units/arm-linux/paszlib/zdeflate.o
/usr/local/lib/fpc/2.7.1/units/arm-linux/paszlib/zinflate.o
/usr/local/lib/fpc/2.7.1/units/arm-linux/paszlib/trees.o
/usr/local/lib/fpc/2.7.1/units/arm-linux/paszlib/adler.o
/usr/local/lib/fpc/2.7.1/units/arm-linux/paszlib/infblock.o
/usr/local/lib/fpc/2.7.1/units/arm-linux/paszlib/infutil.o
/usr/local/lib/fpc/2.7.1/units/arm-linux/paszlib/infcodes.o
/usr/local/lib/fpc/2.7.1/units/arm-linux/paszlib/inftrees.o
/usr/local/lib/fpc/2.7.1/units/arm-linux/paszlib/inffast.o
/home/bruce/lazarus/lcl/units/arm-linux/graphics.o
/home/bruce/lazarus/lcl/units/arm-linux/lclintf.o
/usr/local/lib/fpc/2.7.1/units/arm-linux/fcl-image/fpcanvas.o
/usr/local/lib/fpc/2.7.1/units/arm-linux/fcl-image/fpreadpnm.o
/usr/local/lib/fpc/2.7.1/units/arm-linux/fcl-image/fpwritepnm.o
/usr/local/lib/fpc/2.7.1/units/arm-linux/fcl-image/fpreadjpeg.o
/usr/local/lib/fpc/2.7.1/units/arm-linux/fcl-image/fpwritejpeg.o
/usr/local/lib/fpc/2.7.1/units/arm-linux/fcl-image/fpreadgif.o
/home/bruce/lazarus/lcl/units/arm-linux/lresources.o
/home/bruce/lazarus/lcl/units/arm-linux/lclrescache.o
/usr/local/lib/fpc/2.7.1/units/arm-linux/fcl-image/clipping.o
/usr/local/lib/fpc/2.7.1/units/arm-linux/pasjpeg/jpeglib.o
/usr/local/lib/fpc/2.7.1/units/arm-linux/pasjpeg/jdapimin.o
/usr/local/lib/fpc/2.7.1/units/arm-linux/pasjpeg/jdatasrc.o
/usr/local/lib/fpc/2.7.1/units/arm-linux/pasjpeg/jdapistd.o
/usr/local/lib/fpc/2.7.1/units/arm-linux/pasjpeg/jmorecfg.o
/usr/local/lib/fpc/2.7.1/units/arm-linux/pasjpeg/jdeferr.o
/usr/local/lib/fpc/2.7.1/units/arm-linux/pasjpeg/jinclude.o
/usr/local/lib/fpc/2.7.1/units/arm-linux/pasjpeg/jerror.o
/usr/local/lib/fpc/2.7.1/units/arm-linux/pasjpeg/jmemmgr.o
/usr/local/lib/fpc/2.7.1/units/arm-linux/pasjpeg/jdmarker.o
/usr/local/lib/fpc/2.7.1/units/arm-linux/pasjpeg/jdinput.o
/usr/local/lib/fpc/2.7.1/units/arm-linux/pasjpeg/jcomapi.o
/usr/local/lib/fpc/2.7.1/units/arm-linux/pasjpeg/jutils.o
/usr/local/lib/fpc/2.7.1/units/arm-linux/pasjpeg/jmemnobs.o
/usr/local/lib/fpc/2.7.1/units/arm-linux/pasjpeg/jdmaster.o
/usr/local/lib/fpc/2.7.1/units/arm-linux/pasjpeg/jdcolor.o
/usr/local/lib/fpc/2.7.1/units/arm-linux/pasjpeg/jdsample.o
/usr/local/lib/fpc/2.7.1/units/arm-linux/pasjpeg/jdpostct.o
/usr/local/lib/fpc/2.7.1/units/arm-linux/pasjpeg/jddctmgr.o
/usr/local/lib/fpc/2.7.1/units/arm-linux/pasjpeg/jdphuff.o
/usr/local/lib/fpc/2.7.1/units/arm-linux/pasjpeg/jdhuff.o
/usr/local/lib/fpc/2.7.1/units/arm-linux/pasjpeg/jdcoefct.o
/usr/local/lib/fpc/2.7.1/units/arm-linux/pasjpeg/jdmainct.o
/usr/local/lib/fpc/2.7.1/units/arm-linux/pasjpeg/jquant1.o
/usr/local/lib/fpc/2.7.1/units/arm-linux/pasjpeg/jquant2.o
/usr/local/lib/fpc/2.7.1/units/arm-linux/pasjpeg/jdmerge.o
/usr/local/lib/fpc/2.7.1/units/arm-linux/pasjpeg/jdct.o
/usr/local/lib/fpc/2.7.1/units/arm-linux/pasjpeg/jidctfst.o
/usr/local/lib/fpc/2.7.1/units/arm-linux/pasjpeg/jidctint.o
/usr/local/lib/fpc/2.7.1/units/arm-linux/pasjpeg/jidctflt.o
/usr/local/lib/fpc/2.7.1/units/arm-linux/pasjpeg/jidctred.o
/usr/local/lib/fpc/2.7.1/units/arm-linux/pasjpeg/jcapistd.o
/usr/local/lib/fpc/2.7.1/units/arm-linux/pasjpeg/jcapimin.o
/usr/local/lib/fpc/2.7.1/units/arm-linux/pasjpeg/jdatadst.o
/usr/local/lib/fpc/2.7.1/units/arm-linux/pasjpeg/jcparam.o
/usr/local/lib/fpc/2.7.1/units/arm-linux/pasjpeg/jcinit.o
/usr/local/lib/fpc/2.7.1/units/arm-linux/pasjpeg/jcmarker.o
/usr/local/lib/fpc/2.7.1/units/arm-linux/pasjpeg/jcphuff.o
/usr/local/lib/fpc/2.7.1/units/arm-linux/pasjpeg/jchuff.o
/usr/local/lib/fpc/2.7.1/units/arm-linux/pasjpeg/jcmaster.o
/usr/local/lib/fpc/2.7.1/units/arm-linux/pasjpeg/jccolor.o
/usr/local/lib/fpc/2.7.1/units/arm-linux/pasjpeg/jcsample.o
/usr/local/lib/fpc/2.7.1/units/arm-linux/pasjpeg/jcprepct.o
/usr/local/lib/fpc/2.7.1/units/arm-linux/pasjpeg/jcdctmgr.o
/usr/local/lib/fpc/2.7.1/units/arm-linux/pasjpeg/jccoefct.o
/usr/local/lib/fpc/2.7.1/units/arm-linux/pasjpeg/jcmainct.o
/usr/local/lib/fpc/2.7.1/units/arm-linux/pasjpeg/jfdctint.o
/usr/local/lib/fpc/2.7.1/units/arm-linux/pasjpeg/jfdctfst.o
/usr/local/lib/fpc/2.7.1/units/arm-linux/pasjpeg/jfdctflt.o
/home/bruce/lazarus/lcl/units/arm-linux/dynqueue.o
/home/bruce/lazarus/components/lazutils/lib/arm-linux/lazconfigstorage.o
/usr/local/lib/fpc/2.7.1/units/arm-linux/fcl-base/syncobjs.o
/home/bruce/lazarus/components/lazutils/lib/arm-linux/utf8process.o
/home/bruce/lazarus/lcl/units/arm-linux/maps.o
/home/bruce/lazarus/components/lazutils/lib/arm-linux/lazutf8sysutils.o
/home/bruce/lazarus/lcl/units/arm-linux/tmschema.o
/usr/local/lib/fpc/2.7.1/units/arm-linux/fcl-process/process.o
/usr/local/lib/fpc/2.7.1/units/arm-linux/fcl-process/pipes.o
/usr/local/lib/fpc/2.7.1/units/arm-linux/rtl/termio.o
/home/bruce/lazarus/lcl/units/arm-linux/gtk2/gtk2disableliboverlay.o
/home/bruce/lazarus/lcl/units/arm-linux/gtk2/gtk2int.o
/home/bruce/lazarus/lcl/units/arm-linux/forms.o
/usr/local/lib/fpc/2.7.1/units/arm-linux/x11/xlib.o
/usr/local/lib/fpc/2.7.1/units/arm-linux/x11/x.o
/usr/local/lib/fpc/2.7.1/units/arm-linux/gtk2/gdk2x.o
/home/bruce/lazarus/lcl/units/arm-linux/dialogs.o
/home/bruce/lazarus/lcl/units/arm-linux/controls.o
/home/bruce/lazarus/lcl/units/arm-linux/dynhasharray.o
/home/bruce/lazarus/lcl/units/arm-linux/menus.o
/home/bruce/lazarus/lcl/units/arm-linux/wslclclasses.o
/home/bruce/lazarus/lcl/units/arm-linux/buttons.o
/home/bruce/lazarus/lcl/units/arm-linux/stdctrls.o
/home/bruce/lazarus/lcl/units/arm-linux/checklst.o
/home/bruce/lazarus/lcl/units/arm-linux/comctrls.o
/home/bruce/lazarus/lcl/units/arm-linux/spin.o
/home/bruce/lazarus/lcl/units/arm-linux/extctrls.o
/usr/local/lib/fpc/2.7.1/units/arm-linux/gtk2/gdk2pixbuf.o
/usr/local/lib/fpc/2.7.1/units/arm-linux/gtk2/gtk2.o
/usr/local/lib/fpc/2.7.1/units/arm-linux/gtk2/gdk2.o
/usr/local/lib/fpc/2.7.1/units/arm-linux/gtk2/glib2.o
/usr/local/lib/fpc/2.7.1/units/arm-linux/gtk2/pango.o
/home/bruce/lazarus/lcl/units/arm-linux/gtk2/gtk2winapiwindow.o
/home/bruce/lazarus/lcl/units/arm-linux/gtk2/gtk2globals.o
/home/bruce/lazarus/lcl/units/arm-linux/gtk2/gtk2proc.o
/home/bruce/lazarus/lcl/units/arm-linux/gtk2/gtk2def.o
/home/bruce/lazarus/lcl/units/arm-linux/gtk2/gtk2fontcache.o
/home/bruce/lazarus/lcl/units/arm-linux/gtk2/gtk2extra.o
/home/bruce/lazarus/lcl/units/arm-linux/gtk2/gtk2msgqueue.o
/usr/local/lib/fpc/2.7.1/units/arm-linux/x11/xrender.o
/usr/local/lib/fpc/2.7.1/units/arm-linux/cairo/cairo.o
/home/bruce/lazarus/lcl/units/arm-linux/buttonpanel.o
/home/bruce/lazarus/lcl/units/arm-linux/lclclasses.o
/home/bruce/lazarus/lcl/units/arm-linux/customtimer.o
/home/bruce/lazarus/lcl/units/arm-linux/actnlist.o
/home/bruce/lazarus/lcl/units/arm-linux/clipbrd.o
/usr/local/lib/fpc/2.7.1/units/arm-linux/fcl-base/custapp.o
/home/bruce/lazarus/lcl/units/arm-linux/helpintfs.o
/home/bruce/lazarus/lcl/units/arm-linux/imglist.o
/home/bruce/lazarus/lcl/units/arm-linux/wsimglist.o
/home/bruce/lazarus/lcl/units/arm-linux/wsproc.o
/home/bruce/lazarus/lcl/units/arm-linux/wsfactory.o
/home/bruce/lazarus/lcl/units/arm-linux/propertystorage.o
/usr/local/lib/fpc/2.7.1/units/arm-linux/fcl-base/rttiutils.o
/home/bruce/lazarus/lcl/units/arm-linux/wsmenus.o
/home/bruce/lazarus/lcl/units/arm-linux/wscontrols.o
/home/bruce/lazarus/lcl/units/arm-linux/wsforms.o
/home/bruce/lazarus/lcl/units/arm-linux/imagelistcache.o
/home/bruce/lazarus/lcl/units/arm-linux/extendedstrings.o
/home/bruce/lazarus/lcl/units/arm-linux/textstrings.o
/home/bruce/lazarus/lcl/units/arm-linux/wsstdctrls.o
/home/bruce/lazarus/lcl/units/arm-linux/wsbuttons.o
/home/bruce/lazarus/lcl/units/arm-linux/popupnotifier.o
/home/bruce/lazarus/lcl/units/arm-linux/wsextctrls.o
/home/bruce/lazarus/lcl/units/arm-linux/wsdialogs.o
/home/bruce/lazarus/lcl/units/arm-linux/wschecklst.o
/home/bruce/lazarus/lcl/units/arm-linux/toolwin.o
/home/bruce/lazarus/lcl/units/arm-linux/wscomctrls.o
/home/bruce/lazarus/lcl/units/arm-linux/wstoolwin.o
/home/bruce/lazarus/lcl/units/arm-linux/wsspin.o
/usr/local/lib/fpc/2.7.1/units/arm-linux/gtk2/atk.o
/usr/local/lib/fpc/2.7.1/units/arm-linux/gtk2/gtk2ext.o
/home/bruce/lazarus/lcl/units/arm-linux/extdlgs.o
/home/bruce/lazarus/lcl/units/arm-linux/gtk2/gtk2debug.o
/home/bruce/lazarus/lcl/units/arm-linux/lclmessageglue.o
/home/bruce/lazarus/lcl/units/arm-linux/calendar.o
/home/bruce/lazarus/lcl/units/arm-linux/wscalendar.o
/home/bruce/lazarus/lcl/units/arm-linux/wsextdlgs.o
/home/bruce/lazarus/lcl/units/arm-linux/lclmemmanager.o
/home/bruce/lazarus/lcl/units/arm-linux/messages.o
/home/bruce/lazarus/lcl/units/arm-linux/gtk2/gtk2wsprivate.o
/usr/local/lib/fpc/2.7.1/units/arm-linux/fcl-base/uriparser.o
/home/bruce/lazarus/lcl/units/arm-linux/gtk2/gtk2wscontrols.o
/home/bruce/lazarus/lcl/units/arm-linux/lazlinkedlist.o
/home/bruce/lazarus/lcl/units/arm-linux/gtk2/gtk2wsfactory.o
/home/bruce/lazarus/lcl/units/arm-linux/gtk2/gtk2wsstdctrls.o
/home/bruce/lazarus/lcl/units/arm-linux/gtk2/gtk2wschecklst.o
/home/bruce/lazarus/lcl/units/arm-linux/gtk2/gtk2themes.o
/home/bruce/lazarus/lcl/units/arm-linux/grids.o
/home/bruce/lazarus/lcl/units/arm-linux/pairsplitter.o
/home/bruce/lazarus/lcl/units/arm-linux/dynamicarray.o
/home/bruce/lazarus/lcl/units/arm-linux/maskedit.o
/home/bruce/lazarus/components/lazutils/lib/arm-linux/laz2_xmlcfg.o
/home/bruce/lazarus/components/lazutils/lib/arm-linux/lazfilecache.o
/home/bruce/lazarus/components/lazutils/lib/arm-linux/laz2_dom.o
/home/bruce/lazarus/components/lazutils/lib/arm-linux/laz2_xmlread.o
/home/bruce/lazarus/components/lazutils/lib/arm-linux/laz2_xmlwrite.o
/home/bruce/lazarus/components/lazutils/lib/arm-linux/lazdbglog.o
/usr/local/lib/fpc/2.7.1/units/arm-linux/fcl-base/avl_tree.o
/home/bruce/lazarus/components/lazutils/lib/arm-linux/laz2_xmlutils.o
/home/bruce/lazarus/lcl/units/arm-linux/wsgrids.o
/home/bruce/lazarus/lcl/units/arm-linux/wspairsplitter.o
/home/bruce/lazarus/lcl/units/arm-linux/gtk2/gtk2wsbuttons.o
/home/bruce/lazarus/lcl/units/arm-linux/gtk2/gtk2wscalendar.o
/home/bruce/lazarus/lcl/units/arm-linux/gtk2/gtk2wscomctrls.o
/home/bruce/lazarus/lcl/units/arm-linux/gtk2/gtk2wsdialogs.o
/home/bruce/lazarus/lcl/units/arm-linux/gtk2/gtk2wsextctrls.o
/home/bruce/lazarus/lcl/units/arm-linux/gtk2/gtk2wsextdlgs.o
/home/bruce/lazarus/lcl/units/arm-linux/gtk2/gtk2wsforms.o
/home/bruce/lazarus/lcl/units/arm-linux/gtk2/gtk2wsgrids.o
/home/bruce/lazarus/lcl/units/arm-linux/gtk2/gtk2wsimglist.o
/home/bruce/lazarus/lcl/units/arm-linux/gtk2/gtk2wsmenus.o
/home/bruce/lazarus/lcl/units/arm-linux/gtk2/gtk2wsspin.o
/home/bruce/lazarus/lcl/units/arm-linux/gtk2/gtk2wspairsplitter.o
/home/bruce/lazarus/lcl/units/arm-linux/gtk2/gtk2cellrenderer.o
/home/bruce/lazarus/lcl/units/arm-linux/gtk2/gtk2listviewtreemodel.o
)
INPUT(
-ldl
-lpthread
-lX11
-lgdk_pixbuf-2.0
-lgtk-x11-2.0
-lgdk-x11-2.0
-lgobject-2.0
-lglib-2.0
-lgthread-2.0
-lgmodule-2.0
-lpango-1.0
-lcairo
-latk-1.0
-lrt
-lgcc_s
-lpcre
)
GROUP(
-lc
)
INPUT(
/usr/local/opt/chroot/raspbian/rootfs/usr/lib/gcc/arm-linux-gnueabihf/4.6/crtend.o
/usr/local/opt/chroot/raspbian/rootfs/usr/lib/arm-linux-gnueabihf/crtn.o
)
ENTRY(_start)
SECTIONS
{
  PROVIDE (__executable_start = 0x010000); . = 0x010000 + SIZEOF_HEADERS;
  .interp         : { *(.interp) }
  .hash           : { *(.hash) }
  .dynsym         : { *(.dynsym) }
  .dynstr         : { *(.dynstr) }
  .gnu.version    : { *(.gnu.version) }
  .gnu.version_d  : { *(.gnu.version_d) }
  .gnu.version_r  : { *(.gnu.version_r) }
  .rel.dyn        :
    {
      *(.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.got)
      *(.rel.bss .rel.bss.* .rel.gnu.linkonce.b.*)
    }
  .rela.dyn       :
    {
      *(.rela.init)
      *(.rela.text .rela.text.* .rela.gnu.linkonce.t.*)
      *(.rela.fini)
      *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*)
      *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*)
      *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*)
      *(.rela.tbss .rela.tbss.* .rela.gnu.linkonce.tb.*)
      *(.rela.got)
      *(.rela.bss .rela.bss.* .rela.gnu.linkonce.b.*)
    }
  .rel.plt        : { *(.rel.plt) }
  .rela.plt       : { *(.rela.plt) }
  .init           :
  {
    KEEP (*(.init))
  } =0x90909090
  .plt            : { *(.plt) }
  .text           :
  {
    *(.text .stub .text.* .gnu.linkonce.t.*)
    KEEP (*(.text.*personality*))
    *(.gnu.warning)
  } =0x90909090
  .fini           :
  {
    KEEP (*(.fini))
  } =0x90909090
  PROVIDE (_etext = .);
  .rodata         :
  {
    *(.rodata .rodata.* .gnu.linkonce.r.*)
  }
  . = ALIGN (0x1000) - ((0x1000 - .) & (0x1000 - 1));
  .dynamic        : { *(.dynamic) }
  .got            : { *(.got) }
  .got.plt        : { *(.got.plt) }
  .data           :
  {
    *(.data .data.* .gnu.linkonce.d.*)
    KEEP (*(.fpc .fpc.n_version .fpc.n_links))
    KEEP (*(.gnu.linkonce.d.*personality*))
  }
  PROVIDE (_edata = .);
  PROVIDE (edata = .);
  .threadvar : { *(.threadvar .threadvar.* .gnu.linkonce.tv.*) }
  __bss_start = .;
  .bss            :
  {
   *(.dynbss)
   *(.bss .bss.* .gnu.linkonce.b.*)
   *(COMMON)
   . = ALIGN(32 / 8);
  }
  . = ALIGN(32 / 8);
  PROVIDE (_end = .);
  PROVIDE (end = .);
  .stab          0 : { *(.stab) }
  .stabstr       0 : { *(.stabstr) }
}



More information about the fpc-pascal mailing list