LongDirtyAnimAlf / fpcupdeluxe

A GUI based installer for FPC and Lazarus
476 stars 88 forks source link

cross-compile binaries are too old for aarch64-linux #694

Open zen010101 opened 1 month ago

zen010101 commented 1 month ago

OS: Windows 11 23H2 FPC: 3.2.2 Lazarus: 3.2 i386-win32 Target: Linux aarch64

when I compiled the project, it met this linking error:

Debug: D:\laz32\cross\bin\aarch64-linux\aarch64-linux-gnu-ld.exe: D:\laz32\ccr\mORMot2\static\aarch64-linux....\static\aarch64-linux\sqlite3.o:(.data+0x268): undefined reference to `fcntl64'

At last, I copied all files from a true aarch64 device runned on Debian 11 (bullseye) - kernel 5.10.160 。 Here is my steps:

  1. Open a terminal where I can execute the scp command, such as WSL or MobaXterm...
  2. cd /mnt/c/laz32/cross/lib/aarch64-linux
  3. for f in * ; do scp user@192.168.x.x:/usr/lib/aarch64-linux-gnu/$f . ; done
  4. Rebuild the project in Lazarus on my Windows, with the target setting as aarch64-linux. Everything works fine!

There are some files that were not found on my aarch64 device, just like these:

/bin/scp: /usr/lib/aarch64-linux-gnu/crtbegin.o: No such file or directory /bin/scp: /usr/lib/aarch64-linux-gnu/crtbeginS.o: No such file or directory /bin/scp: /usr/lib/aarch64-linux-gnu/crtend.o: No such file or directory /bin/scp: /usr/lib/aarch64-linux-gnu/crtendS.o: No such file or directory /bin/scp: /usr/lib/aarch64-linux-gnu/lib64: No such file or directory /bin/scp: /usr/lib/aarch64-linux-gnu/libdouble-conversion.so.1: No such file or directory /bin/scp: /usr/lib/aarch64-linux-gnu/libffi.so.6: No such file or directory /bin/scp: /usr/lib/aarch64-linux-gnu/libfluidsynth.so.1: No such file or directory /bin/scp: /usr/lib/aarch64-linux-gnu/libgcc.a: No such file or directory /bin/scp: /usr/lib/aarch64-linux-gnu/libicudata.so.60: No such file or directory /bin/scp: /usr/lib/aarch64-linux-gnu/libicui18n.so.60: No such file or directory /bin/scp: /usr/lib/aarch64-linux-gnu/libicuuc.so.60: No such file or directory /bin/scp: /usr/lib/aarch64-linux-gnu/libjpeg.so.8: No such file or directory /bin/scp: /usr/lib/aarch64-linux-gnu/libmad.so: No such file or directory /bin/scp: /usr/lib/aarch64-linux-gnu/libmodplug.so: No such file or directory /bin/scp: /usr/lib/aarch64-linux-gnu/libmysqlclient.so: No such file or directory /bin/scp: /usr/lib/aarch64-linux-gnu/libmysqlclient.so.20: No such file or directory /bin/scp: /usr/lib/aarch64-linux-gnu/libnss_nis.so.2: No such file or directory /bin/scp: /usr/lib/aarch64-linux-gnu/libnss_nisplus.so.2: No such file or directory /bin/scp: /usr/lib/aarch64-linux-gnu/libogg.so: No such file or directory /bin/scp: /usr/lib/aarch64-linux-gnu/libpthread_nonshared.a: No such file or directory /bin/scp: /usr/lib/aarch64-linux-gnu/libQt5Pas.so: No such file or directory /bin/scp: /usr/lib/aarch64-linux-gnu/libQt5Pas.so.1: No such file or directory /bin/scp: /usr/lib/aarch64-linux-gnu/libreadline.so.7: No such file or directory /bin/scp: /usr/lib/aarch64-linux-gnu/libsndio.so.6.1: No such file or directory /bin/scp: /usr/lib/aarch64-linux-gnu/libssp_nonshared.a: No such file or directory /bin/scp: /usr/lib/aarch64-linux-gnu/libtinfo.so.5: No such file or directory /bin/scp: /usr/lib/aarch64-linux-gnu/libUMP.so: No such file or directory /bin/scp: /usr/lib/aarch64-linux-gnu/libvorbis.so: No such file or directory /bin/scp: /usr/lib/aarch64-linux-gnu/libvorbisenc.so: No such file or directory /bin/scp: /usr/lib/aarch64-linux-gnu/libvorbisfile.so: No such file or directory

I seached some of them on my device, not exists on the entire disk. So far, I haven't encountered any problems yet.

see: CrossCompile failed · Issue #262 · synopse/mORMot2