/lib/arm-linux-gnueabihf/libc.so.6: version GLIBC_2.34 not found lazarus / 32-Linux ---------------------------------------------------------------------- dieselnutjob · 2024-11-05 13:17 I compiled my fpgui program on my raspberry Pi and gave it to a customer, but they get "/lib/arm-linux-gnueabihf/libc.so.6: version GLIBC_2.34 not found" on their Pi. I think that it's because I compiled on bookworm whereas they have bullseye (from memory. So I reinstalled bullseye on my pi and recompiled and now it works on the customer's pi. I guess that this is a freepascal problem rather than an fpgui one? I'm not sure why this happens given that the version of fpc are very similar from bullseye to bookworm. Is there a way to configure fpc to make the binaries more backwards compatible? thanks ---------------------------------------------------------------------- TRon · 2024-11-05 22:55 Quote from: dieselnutjob on November 05, 2024, 02:17:00 pmI think that it's because I compiled on bookworm whereas they have bullseye (from memory. Correct as there is a version difference for libc between those two releases. QuoteI guess that this is a freepascal problem rather than an fpgui one? It is neither. In origin it is a libc issue (actually linking against specific symbol versions). Every compiler has to deal with it. QuoteI'm not sure why this happens given that the version of fpc are very similar from bullseye to bookworm. It is because of libc. QuoteIs there a way to configure fpc to make the binaries more backwards compatible? See this very long thread for different offered solutions/workarounds. afaik it is planned to have a more permanent solution though I do not know the current status for that. For now, compiling on/for an older distro (like you did) is the easiest way to 'fix' the issue. ---------------------------------------------------------------------- Fred vS · 2024-11-06 03:13 For Linux Aarch64 there is a problem (bug?): assigning a symbol table for a method raise a error at linking using fpc 3.2.4. For example this: Code: Pascal  [Select][+][-]window.onload = function(){var x1 = document.getElementById("main_content_section"); if (x1) { var x = document.getElementsByClassName("geshi");for (var i = 0; i function dlopen(Name : PChar; Flags : longint) : Pointer; cdecl;          external libdl name 'dlopen@GLIBC_2.17'; Raise that error (the same for each symbol table used and for each method): Code: Bash  [Select][+][-]window.onload = function(){var x1 = document.getElementById("main_content_section"); if (x1) { var x = document.getElementsByClassName("geshi");for (var i = 0; i fpc- src/rtl/units/aarch64-linux/dynlibs.s: Assembler messages:fpc- src/rtl/units/aarch64-linux/dynlibs.s:16: Error: unexpected characters following instruction    at operand 1 -- `bl dlopen@GLIBC_2.17'dynlibs.inc(74,1) Error: Error while assembling exitcode 1dynlibs.inc(74,1) Fatal: There were 2 errors compiling module, stopping  Here result of nm -D libc.so.6 Code: Bash  [Select][+][-]window.onload = function(){var x1 = document.getElementById("main_content_section"); if (x1) { var x = document.getElementsByClassName("geshi");for (var i = 0; i 000000000007ae80 T dlopen@GLIBC_2.17 Note that this does not appear on Linux amd64. ---------------------------------------------------------------------- TRon · 2024-11-06 06:12 @Fred vS Can you share ? - native or cross compiling ? and in case native then the host is raspbian (or whatever they named it) or something else ? - is it specific to 3.2.4 ? - did you used/applied any other solution with regards to libc ? in case yes, which one ? fwiw: a quick test with fpcup shows that this issue does not seem to appear when cross-compiling with 3.2.2 to raspbian 12 (but I also know that fpcup has some patches for both compiler and libc although I do not know if those are applied). Based on the answers I am able to test/verify and provide more meaningful feedback. ---------------------------------------------------------------------- Fred vS · 2024-11-06 12:16 Hello TRon. Quote- native or cross compiling ?Native, Raspberry Pi 3 b with 2024-07-04-raspios-bookworm-arm64. Quote- is it specific to 3.2.4 ?Same with fpc 3.2.2. from fpc download. Quote- did you used/applied any other solution with regards to libc ?I did try to compile fpc src 3.2.4 with all the libc methods with assigned symbol table, like I did for amd64, using official fpc 3.2.2. compiler. But without luck for aarch64. Quotewhen cross-compiling with 3.2.2 to raspbian 12I can cross-compile app from Linux amd64 to Linux aarch64. Sadly I was never able to cross-compile fpc himself and if it is possible, of course I am more than interested to know the steps to do it. ---------------------------------------------------------------------- Thaddy · 2024-11-06 19:03 Quote from: Fred vS on November 06, 2024, 01:16:35 pmSadly I was never able to cross-compile fpc himself and if it is possible, of course I am more than interested to know the steps to do it. Well, I tried to replicate that Fred, but... I can't... The screenshot is just to prove I am too lazy to run up the stairs... btw, zero 2 W running aarch64 testing some other issue. ---------------------------------------------------------------------- Thaddy · 2024-11-06 19:14 And compiled natively. You only need the 3.2.2 compiler, and that you can get from the default ubuntu or debian repositories. ---------------------------------------------------------------------- Fred vS · 2024-11-06 19:51 Quote from: Thaddy on November 06, 2024, 08:14:43 pmAnd compiled natively. You only need the 3.2.2 compiler, and that you can get from the default ubuntu or debian repositories. Hello Thaddy. Not sure to understand. Are you able to compile fpc 3.2.4 src after adding a symbol table for some libc methods used by fpc-source? Like the one in my first post in dl.pp:   Code: Pascal  [Select][+][-]window.onload = function(){var x1 = document.getElementById("main_content_section"); if (x1) { var x = document.getElementsByClassName("geshi");for (var i = 0; i   function dlopen(Name : PChar; Flags : longint) : Pointer; cdecl;              external libdl name 'dlopen@GLIBC_2.17'; Of course I can compile fpc 3.2.4 on a native rpi using fpc 3.2.2 but I cannot compile it if @GLIBC_2.17 is added for name of some libc methods. And on amd64 it is allowed. ---------------------------------------------------------------------- Thaddy · 2024-11-07 06:24 Not 3.2.4 but trunk/main ---------------------------------------------------------------------- marcov · 2024-11-07 12:02 If the behaviour doesn't change with -Aas, the problem is not in FPC but in the assembler. If it does change, it might be a problem in the ARM internal assembler (the object file/binwriter). ---------------------------------------------------------------------- Fred vS · 2024-11-07 14:24 Quote from: marcov on November 07, 2024, 01:02:55 pmIf the behaviour doesn't change with -Aas, Hmm, when trying to compile fpc 3.2.4 on a native aarch64 rpi, where should we add -Aas, something like this in the script?: Code: Pascal  [Select][+][-]window.onload = function(){var x1 = document.getElementById("main_content_section"); if (x1) { var x = document.getElementsByClassName("geshi");for (var i = 0; i make all FPC=$COMPILER OPT="-Aas" And if there are problems with aarch64 assembler from a native aarch64 rpi, could a cross-compilation from amd64 to aarch64 be the solution (maybe stupid suggestion, sorry if so)? ---------------------------------------------------------------------- TRon · 2024-11-07 14:30 Quote from: Fred vS on November 07, 2024, 03:24:43 pmHmm, when trying to compile fpc 3.2.4 on a native aarch64 rpi, where should we add -Aas, something like this in the script?: Wait. Stop the presses !  You mean you got that error that you described when natively building the compiler itself when using the makefile ? (that was not clear for me on earlier descriptions perhaps I overlooked) QuoteAnd if there are problems with aarch64 assembler from a native aarch64 rpi, could a cross-compilation from amd64 to aarch64 be the solution (maybe stupid suggestion, sorry if so)? Well, I am able to cross-compile the example code without issues (whether it actually works or not I have not tested yet but will try to do when back home). QuoteHmm, when trying to compile fpc 3.2.4 on a native aarch64 rpi, where should we add -Aas, something like this in the script?: Code: Pascal  [Select][+][-]window.onload = function(){var x1 = document.getElementById("main_content_section"); if (x1) { var x = document.getElementsByClassName("geshi");for (var i = 0; i make all FPC=$COMPILER OPT="-Aas" it actually is make FPC="/full/path/and/filename/to/your/fpc/executable" OPT="-Aas" ---------------------------------------------------------------------- Thaddy · 2024-11-07 14:49 Which is basicaly what I wrote. Note that the fix is fairly recent (days, not weeks)and does not apply to 3.2.4.(yet, maybe a candidate for back porting) ---------------------------------------------------------------------- Fred vS · 2024-11-07 14:50 Quote from: TRon on November 07, 2024, 03:30:37 pmQuote from: Fred vS on November 07, 2024, 03:24:43 pmHmm, when trying to compile fpc 3.2.4 on a native aarch64 rpi, where should we add -Aas, something like this in the script?: Wait. Stop the presses !  You mean you got that error that you described when natively building the compiler itself when using the makefile ? (that was not clear for me on earlier descriptions perhaps I overlooked) OK, sorry if I was not clear. The goal is to compile fpc 3.2.4, with some changes in the name of all clib methods (added @GLIBC_2.17 to assign the correct symbol table and not let the linker do it). The script to compile fpc that I used on the native rpi aarch64 is this: Code: Bash  [Select][+][-]window.onload = function(){var x1 = document.getElementById("main_content_section"); if (x1) { var x = document.getElementsByClassName("geshi");for (var i = 0; i #!/bin/sh COMPILER=fpcmake cleanmake all FPC=$COMPILER OPT="-Fl/usr/local/lib" make FPC=$COMPILER install INSTALL_PREFIX=/home/fred/fpc-work/usr And with this script, the compilation fails with that message (like explained in previous post): Code: Pascal  [Select][+][-]window.onload = function(){var x1 = document.getElementById("main_content_section"); if (x1) { var x = document.getElementsByClassName("geshi");for (var i = 0; i    fpc- src/rtl/units/aarch64-linux/dynlibs.s: Assembler messages:    fpc- src/rtl/units/aarch64-linux/dynlibs.s:16: Error: unexpected characters following instruction        at operand 1 -- `bl dlopen@GLIBC_2.17'    dynlibs.inc(74,1) Error: Error while assembling exitcode 1    dynlibs.inc(74,1) Fatal: There were 2 errors compiling module, stopping Clearly, the assembler does not like that @GLIBC_2.17 addition, maybe the unexpected character is @? Note that without that change, the compilation is ok. Note too that compiling the fpc source with assigned symbol table on Linux amd64 cpu is working like charm (and solves lot of things). ---------------------------------------------------------------------- TRon · 2024-11-07 15:34 No need to be sorry about Fred. It was entirely my fault for not properly reading what you wrote earlier. Nevertheless thank you for the further clarifications, it is al crispy clear now what needs to be tested/verified. Did you already had a chance to try the option that was suggested by MarcoV and/or try a cross-build ? (both might be worth a shot). @Thaddy: Did you meant that this particular issue was addressed in trunk recently ? (I ask because I must have missed it) ---------------------------------------------------------------------- Fred vS · 2024-11-07 15:44 Quote from: TRon on November 07, 2024, 04:34:14 pmDid you already had a chance to try the option that was suggested by MarcoV and/or try a cross-build ? (both might be worth a shot). Not yet on the native rpi and for cross-build I have to study how to do it this week-end... ---------------------------------------------------------------------- TRon · 2024-11-07 16:08 Quote from: Fred vS on November 07, 2024, 04:44:35 pmNot yet on the native rpi and for cross-build I have to study how to do it this week- end...  Ok, no problem. Just take your time to understand how to do a cross-build. It is valuable knowledge (even though in practice it is used only once in a while). ---------------------------------------------------------------------- Fred vS · 2024-11-07 16:16 Quote from: TRon on November 07, 2024, 05:08:16 pmQuote from: Fred vS on November 07, 2024, 04:44:35 pmNot yet on the native rpi and for cross-build I have to study how to do it this week-end...  Ok, no problem. Just take your time to understand how to do a cross-build. It is valuable knowledge (even though in practice it is used only once in a while). I use the precious fpcupdeluxe to cross-compile since decades for all my apps but I was never able to cross-compile fpc src himself.  :'( ---------------------------------------------------------------------- Thaddy · 2024-11-07 17:04 I can do that since rpi 1. maybe discuss in private? The most important thing is getting the right toolchain. ---------------------------------------------------------------------- Fred vS · 2024-11-07 17:49 Quote from: Thaddy on November 07, 2024, 06:04:42 pmI can do that since rpi 1. maybe discuss in private? The most important thing is getting the right toolchain. Or maybe it could be interesting for others too?  About the toolchain, the one from magic fpcupdeluxe works perfectly here (for all my apps, apart fpc-src of course). Even better, to cross-compile from Linux to MacOS no need to be annoyed to install XCode, fpcupdeluxe has all needed...  But this is for fpc-apps, not for fpc-src himself. ---------------------------------------------------------------------- Fred vS · 2024-11-07 22:23 Quote from: TRon on November 07, 2024, 04:34:14 pmDid you already had a chance to try the option that was suggested by MarcoV and/or try a cross-build ? (both might be worth a shot). OK, I did try on native Rpi to compile fpc 3.2.4 + libc symbol table with OPT="-Aas" and there is still the same error from assembler.  [EDIT] Did try on rpi with 2024-10-22-raspios-bullseye-arm64 but same error. ---------------------------------------------------------------------- Fred vS · 2024-11-08 05:37 Some news from the front. It's not just fpc-src that can't compile when assigning a symbol table. This code doesn't compile on native rpi or with cross-compile: Code: Pascal  [Select][+][-]window.onload = function(){var x1 = document.getElementById("main_content_section"); if (x1) { var x = document.getElementsByClassName("geshi");for (var i = 0; i program testaarch64;procedure free(__ptr:pointer);cdecl;external 'c' name 'free@GLIBC_2.17';beginfree(nil);end. Cross-compiled from Linux amd64 with: Code: Bash  [Select][+][-]window.onload = function(){var x1 = document.getElementById("main_content_section"); if (x1) { var x = document.getElementsByClassName("geshi");for (var i = 0; i $ ppcrossa64 testaarch64.pas Gives that error: Code: Pascal  [Select][+][-]window.onload = function(){var x1 = document.getElementById("main_content_section"); if (x1) { var x = document.getElementsByClassName("geshi");for (var i = 0; i Free Pascal Compiler version 3.2.3-1397-g22da36f83e [2024/07/30] for aarch64Copyright (c) 1993-2024 by Florian Klaempfl and othersTarget OS: Linux for AArch64Compiling testaarch64.pasAssembling testaarch64testaarch64.s: Assembler messages:testaarch64.s:16: Error: unexpected characters following instruction at operand 1 -- `bl free@GLIBC_2.17'testaarch64.pas(5,4) Error: Error while assembling exitcode 1testaarch64.pas(5,4) Fatal: There were 2 errors compiling module, stoppingFatal: Compilation aborted Note that this code with direct compile on Linux amd64: Code: Pascal  [Select][+][-]window.onload = function(){var x1 = document.getElementById("main_content_section"); if (x1) { var x = document.getElementsByClassName("geshi");for (var i = 0; i program testamd64;procedure free(__ptr:pointer);cdecl;external 'c' name 'free@GLIBC_2.2.5';beginfree(nil);end. Compiled with this is ok: Code: Pascal  [Select][+][-]window.onload = function(){var x1 = document.getElementById("main_content_section"); if (x1) { var x = document.getElementsByClassName("geshi");for (var i = 0; i $ fpc testamd64.pas Note also that I was able to cross-compile fpc-source form Linux amd64 to aarch64 but get the same error when some libc methods have symbol table. ---------------------------------------------------------------------- TRon · 2024-11-08 17:47 Yes, confirmed on pi native with 3.2.4rc1 Fred. Code: ASM  [Select][+][-]window.onload = function(){var x1 = document.getElementById("main_content_section"); if (x1) { var x = document.getElementsByClassName("geshi");for (var i = 0; i         .file "testaarch64.pas"// Begin asmlist al_procedures .section .text.n_main        .balign 8.globl  PASCALMAIN        .type   PASCALMAIN,@functionPASCALMAIN:.globl  main        .type   main,@functionmain:        stp     x29,x30,[sp, #-16]!        mov     x29,sp        bl      fpc_initializeunits        movz    x0,#0        bl      free@GLIBC_2.17        bl      fpc_do_exit        ldp     x29,x30,[sp], #16        ret.Le0:        .size   main, .Le0 - main .section .text// End asmlist al_procedures// Begin asmlist al_globals .section .data.n_INITFINAL        .balign 8.globl  INITFINAL        .type   INITFINAL,@objectINITFINAL:        .quad   1,0        .quad   INIT$_$SYSTEM        .quad   0.Le1:        .size   INITFINAL, .Le1 - INITFINAL .section .data.n_FPC_THREADVARTABLES      .balign 8.globl  FPC_THREADVARTABLES        .type   FPC_THREADVARTABLES,@objectFPC_THREADVARTABLES:        .long   1      .quad   THREADVARLIST_$SYSTEM$indirect.Le2:        .size   FPC_THREADVARTABLES, .Le2 - FPC_THREADVARTABLES .section .data.n_FPC_RESOURCESTRINGTABLES        .balign 8.globl  FPC_RESOURCESTRINGTABLES        .type   FPC_RESOURCESTRINGTABLES,@objectFPC_RESOURCESTRINGTABLES:        .quad   0.Le3:        .size   FPC_RESOURCESTRINGTABLES, .Le3 - FPC_RESOURCESTRINGTABLES .section .data.n_FPC_WIDEINITTABLES        .balign 8.globl  FPC_WIDEINITTABLES        .type   FPC_WIDEINITTABLES,@objectFPC_WIDEINITTABLES:        .quad   0.Le4:      .size   FPC_WIDEINITTABLES, .Le4 - FPC_WIDEINITTABLES .section .data.n_FPC_RESSTRINITTABLES        .balign 8.globl  FPC_RESSTRINITTABLES        .type   FPC_RESSTRINITTABLES,@objectFPC_RESSTRINITTABLES:        .quad   0.Le5:        .size   FPC_RESSTRINITTABLES, .Le5 - FPC_RESSTRINITTABLES .section .fpc.n_version        .balign 16        .type   __fpc_ident,@object__fpc_ident:        .ascii  "FPC 3.2.4-rc1 [2024/09/23] for aarch64 - Linux".Le6:        .size   __fpc_ident, .Le6 - __fpc_ident .section .data.n___stklen        .balign 8.globl  __stklen        .type   __stklen,@object__stklen:        .quad   8388608.Le7:        .size   __stklen, .Le7 - __stklen .section .data.n___heapsize        .balign 8.globl  __heapsize        .type   __heapsize,@object__heapsize:        .quad   0.Le8:        .size   __heapsize, .Le8 - __heapsize .section .data.n___fpc_valgrind        .balign 8.globl  __fpc_valgrind        .type   __fpc_valgrind,@object__fpc_valgrind:        .byte   0.Le9:        .size   __fpc_valgrind, .Le9 - __fpc_valgrind .section .data.n_FPC_RESLOCATION        .balign 8.globl  FPC_RESLOCATION      .type   FPC_RESLOCATION,@objectFPC_RESLOCATION:        .quad   0.Le10:        .size   FPC_RESLOCATION, .Le10 - FPC_RESLOCATION// End asmlist al_globals.section .note.GNU-stack,"",%progbits  edit: QuoteNote that this code with direct compile on Linux amd64: FWIW: Code: Bash  [Select][+][-]window.onload = function(){var x1 = document.getElementById("main_content_section"); if (x1) { var x = document.getElementsByClassName("geshi");for (var i = 0; i $ fpc -B -a testx86_64.pas Free Pascal Compiler version 3.2.3 [2024/09/23] for x86_64Copyright (c) 1993-2024 by Florian Klaempfl and othersNote: Switching assembler to default source writing assemblerTarget OS: Linux for x86-64Compiling testx86_64.pasAssembling testx86_64testx86_64.s: Assembler messages:testx86_64.s:21: Error: junk `@GLIBC_2.2.5' after expressionError: Error while assembling exitcode 1Fatal: There were 2 errors compiling module, stoppingFatal: Compilation abortedError: ppcx64 returned an error exitcode ---------------------------------------------------------------------- Fred vS · 2024-11-08 18:37 Quote from: TRon on November 08, 2024, 06:47:51 pmYes, confirmed on pi native with 3.2.4rc1 Fred. Code: ASM  [Select][+][-]window.onload = function(){var x1 = document.getElementById("main_content_section"); if (x1) { var x = document.getElementsByClassName("geshi");for (var i = 0; i         .file "testaarch64.pas"// Begin asmlist al_procedures .section .text.n_main        .balign 8.globl  PASCALMAIN        .type   PASCALMAIN,@functionPASCALMAIN:.globl  main        .type   main,@functionmain:        stp     x29,x30,[sp, #-16]!        mov     x29,sp        bl      fpc_initializeunits        movz    x0,#0        bl      free@GLIBC_2.17        bl      fpc_do_exit        ldp     x29,x30,[sp], #16        ret.Le0:        .size   main, .Le0 - main .section .text// End asmlist al_procedures// Begin asmlist al_globals .section .data.n_INITFINAL        .balign 8.globl  INITFINAL        .type   INITFINAL,@objectINITFINAL:        .quad   1,0        .quad   INIT$_$SYSTEM        .quad   0.Le1:        .size   INITFINAL, .Le1 - INITFINAL .section .data.n_FPC_THREADVARTABLES      .balign 8.globl  FPC_THREADVARTABLES        .type   FPC_THREADVARTABLES,@objectFPC_THREADVARTABLES:        .long   1      .quad   THREADVARLIST_$SYSTEM$indirect.Le2:        .size   FPC_THREADVARTABLES, .Le2 - FPC_THREADVARTABLES .section .data.n_FPC_RESOURCESTRINGTABLES        .balign 8.globl  FPC_RESOURCESTRINGTABLES        .type   FPC_RESOURCESTRINGTABLES,@objectFPC_RESOURCESTRINGTABLES:        .quad   0.Le3:        .size   FPC_RESOURCESTRINGTABLES, .Le3 - FPC_RESOURCESTRINGTABLES .section .data.n_FPC_WIDEINITTABLES        .balign 8.globl  FPC_WIDEINITTABLES        .type   FPC_WIDEINITTABLES,@objectFPC_WIDEINITTABLES:        .quad   0.Le4:      .size   FPC_WIDEINITTABLES, .Le4 - FPC_WIDEINITTABLES .section .data.n_FPC_RESSTRINITTABLES        .balign 8.globl  FPC_RESSTRINITTABLES        .type   FPC_RESSTRINITTABLES,@objectFPC_RESSTRINITTABLES:        .quad   0.Le5:        .size   FPC_RESSTRINITTABLES, .Le5 - FPC_RESSTRINITTABLES .section .fpc.n_version        .balign 16        .type   __fpc_ident,@object__fpc_ident:        .ascii  "FPC 3.2.4-rc1 [2024/09/23] for aarch64 - Linux".Le6:        .size   __fpc_ident, .Le6 - __fpc_ident .section .data.n___stklen        .balign 8.globl  __stklen        .type   __stklen,@object__stklen:        .quad   8388608.Le7:        .size   __stklen, .Le7 - __stklen .section .data.n___heapsize        .balign 8.globl  __heapsize        .type   __heapsize,@object__heapsize:        .quad   0.Le8:        .size   __heapsize, .Le8 - __heapsize .section .data.n___fpc_valgrind        .balign 8.globl  __fpc_valgrind        .type   __fpc_valgrind,@object__fpc_valgrind:        .byte   0.Le9:        .size   __fpc_valgrind, .Le9 - __fpc_valgrind .section .data.n_FPC_RESLOCATION        .balign 8.globl  FPC_RESLOCATION      .type   FPC_RESLOCATION,@objectFPC_RESLOCATION:        .quad   0.Le10:        .size   FPC_RESLOCATION, .Le10 - FPC_RESLOCATION// End asmlist al_globals.section .note.GNU-stack,"",%progbits  Note that the first post talk about /lib/arm-linux-gnueabihf/libc.so.6 and this is the arm cpu 32 bit. And it that case assigning symbol table is ok. Thanks to jump into this TRon. Fre;D ---------------------------------------------------------------------- Fred vS · 2024-11-08 19:05 Quote from: TRon on November 08, 2024, 06:47:51 pmedit: QuoteNote that this code with direct compile on Linux amd64: FWIW: ... Ooops I did not see that. Sorry but I don't understand what this means.  with this on x86_64 it compiles and runs ok. Code: Pascal  [Select][+][-]window.onload = function(){var x1 = document.getElementById("main_content_section"); if (x1) { var x = document.getElementsByClassName("geshi");for (var i = 0; i $ fpc -B testx86_64.pas But with this I get error at compil, like you: Code: Pascal  [Select][+][-]window.onload = function(){var x1 = document.getElementById("main_content_section"); if (x1) { var x = document.getElementsByClassName("geshi");for (var i = 0; i $ fpc -B -a testx86_64.pas ---------------------------------------------------------------------- marcov · 2024-11-09 16:49 -a is with the external assembler. So apparently GAS doesn't grok your symbol stuff, while the FPC internal assembler either ignores or processes it. ---------------------------------------------------------------------- Fred vS · 2024-11-09 17:32 Quote from: marcov on November 09, 2024, 05:49:30 pm-a is with the external assembler. So apparently GAS doesn't grok your symbol stuff, while the FPC internal assembler either ignores or processes it. For Linux on i386, x86_64 and ARM32 the FPC internal assembler processes perfectly: Compiled with "official" fpc: Code: Pascal  [Select][+][-]window.onload = function(){var x1 = document.getElementById("main_content_section"); if (x1) { var x = document.getElementsByClassName("geshi");for (var i = 0; i $ nm -D  testx86_64                 U free@GLIBC_2.2.5                 w __gmon_start__                 U __libc_start_main@GLIBC_2.34 Compiled with "patched" fpc-ootb: Code: Pascal  [Select][+][-]window.onload = function(){var x1 = document.getElementById("main_content_section"); if (x1) { var x = document.getElementsByClassName("geshi");for (var i = 0; i $ nm -D  testx86_64                 U free@GLIBC_2.2.5                 w __gmon_start__                 U __libc_start_main@GLIBC_2.2.5 ---------------------------------------------------------------------- TRon · 2024-11-10 03:57 Quote from: marcov on November 09, 2024, 05:49:30 pm-a is with the external assembler. So apparently GAS doesn't grok your symbol stuff, while the FPC internal assembler either ignores or processes it. Since -Aelf is illegal option for aarch64 shouldn't the generated assembler use .symver declaration for the asm output ? I mean, do you perhaps happen to known what the end-goal/approach is here (in case there is any) ? PD mentioned being in preference of using the linker to solve this but that requires mapping (at least that is how gcc (to my understanding) seems to approach it). Or is the idea perhaps to support the same features for all the other available internal writers ?