Browse Source

+ introduced labelmaxlen in tasminfo and added code in ReplaceForbiddenAsmSymbolChars that limits the
output label to that length

git-svn-id: branches/z80@45066 -

nickysn 5 years ago
parent
commit
a8fe46c0f5

+ 3 - 0
compiler/aarch64/agcpugas.pas

@@ -789,6 +789,7 @@ unit agcpugas;
             supported_targets : [system_aarch64_linux,system_aarch64_android];
             flags : [af_needar,af_smartlink_sections];
             labelprefix : '.L';
+            labelmaxlen : -1;
             comment : '// ';
             dollarsign: '$';
           );
@@ -802,6 +803,7 @@ unit agcpugas;
             supported_targets : [system_aarch64_darwin];
             flags : [af_needar,af_smartlink_sections,af_supports_dwarf];
             labelprefix : 'L';
+            labelmaxlen : -1;
             comment : '# ';
             dollarsign: '$';
           );
@@ -815,6 +817,7 @@ unit agcpugas;
             supported_targets : [system_aarch64_win64];
             flags : [af_needar,af_smartlink_sections,af_supports_dwarf];
             labelprefix : '.L';
+            labelmaxlen : -1;
             comment : '// ';
             dollarsign: '$';
           );

+ 13 - 1
compiler/aasmbase.pas

@@ -257,7 +257,7 @@ interface
 implementation
 
     uses
-      verbose;
+      verbose,fpccrc;
 
 
     function create_smartlink_sections:boolean;inline;
@@ -292,12 +292,24 @@ implementation
       var
         i : longint;
         rchar: char;
+        crc: Cardinal;
+        charstoremove: integer;
       begin
         Result:=s;
         rchar:=target_asm.dollarsign;
         for i:=1 to Length(Result) do
           if Result[i]='$' then
             Result[i]:=rchar;
+        if (target_asm.labelmaxlen<>-1) and (Length(Result)>target_asm.labelmaxlen) then
+          begin
+            crc:=0;
+            crc:=UpdateCrc32(crc,Result[1],Length(Result));
+            charstoremove:=Length(Result)-target_asm.labelmaxlen+13;
+            Delete(Result,(Length(Result)-charstoremove) div 2,charstoremove);
+            Result:='_'+target_asm.dollarsign+'CRC'+hexstr(crc,8)+Result;
+            if Length(Result)>target_asm.labelmaxlen then
+              Internalerror(2020042501);
+          end;
       end;
 
 

+ 3 - 0
compiler/arm/agarmgas.pas

@@ -445,6 +445,7 @@ unit agarmgas;
                                  system_arm_embedded,system_arm_symbian,system_arm_android,system_arm_aros,system_arm_freertos];
             flags : [af_needar,af_smartlink_sections];
             labelprefix : '.L';
+            labelmaxlen : -1;
             comment : '# ';
             dollarsign: '$';
           );
@@ -458,6 +459,7 @@ unit agarmgas;
             supported_targets : [system_arm_darwin];
             flags : [af_needar,af_smartlink_sections,af_supports_dwarf,af_stabs_use_function_absolute_addresses];
             labelprefix : 'L';
+            labelmaxlen : -1;
             comment : '# ';
             dollarsign: '$';
           );
@@ -472,6 +474,7 @@ unit agarmgas;
             supported_targets : [system_arm_darwin];
             flags : [af_needar,af_smartlink_sections,af_supports_dwarf];
             labelprefix : 'L';
+            labelmaxlen : -1;
             comment : '# ';
             dollarsign: '$';
           );

+ 1 - 0
compiler/arm/cpuelf.pas

@@ -977,6 +977,7 @@ implementation
                               system_arm_aros,system_arm_freertos];
          flags : [af_outputbinary,af_smartlink_sections,af_supports_dwarf];
          labelprefix : '.L';
+         labelmaxlen : -1;
          comment : '';
          dollarsign: '$';
        );

+ 1 - 0
compiler/avr/agavrgas.pas

@@ -216,6 +216,7 @@ unit agavrgas;
             supported_targets : [system_avr_embedded];
             flags : [af_needar,af_smartlink_sections];
             labelprefix : '.L';
+            labelmaxlen : -1;
             comment : '# ';
             dollarsign: 's';
           );

+ 1 - 0
compiler/i386/cpuelf.pas

@@ -524,6 +524,7 @@ implementation
                               system_i386_android,system_i386_aros];
          flags : [af_outputbinary,af_smartlink_sections,af_supports_dwarf];
          labelprefix : '.L';
+         labelmaxlen : -1;
          comment : '';
          dollarsign: '$';
        );

+ 1 - 0
compiler/jvm/agjasmin.pas

@@ -1237,6 +1237,7 @@ implementation
          supported_targets : [system_jvm_java32,system_jvm_android32];
          flags : [];
          labelprefix : 'L';
+         labelmaxlen : -1;
          comment : ' ; ';
          dollarsign : '$';
        );

+ 2 - 0
compiler/llvm/agllvm.pas

@@ -1737,6 +1737,7 @@ implementation
           supported_targets : [system_x86_64_linux,system_x86_64_darwin,system_aarch64_linux,system_arm_linux];
           flags : [af_smartlink_sections,af_llvm];
           labelprefix : 'L';
+          labelmaxlen : -1;
           comment : '; ';
           dollarsign: '$';
         );
@@ -1751,6 +1752,7 @@ implementation
           supported_targets : [system_x86_64_linux,system_x86_64_darwin,system_aarch64_linux,system_arm_linux];
           flags : [af_smartlink_sections,af_llvm];
           labelprefix : 'L';
+          labelmaxlen : -1;
           comment : '; ';
           dollarsign: '$';
         );

+ 2 - 0
compiler/m68k/ag68kgas.pas

@@ -355,6 +355,7 @@ interface
             supported_targets : [system_m68k_macos,system_m68k_linux,system_m68k_PalmOS,system_m68k_netbsd,system_m68k_embedded];
             flags : [af_needar,af_smartlink_sections];
             labelprefix : '.L';
+            labelmaxlen : -1;
             comment : '# ';
             dollarsign: '$';
           );
@@ -368,6 +369,7 @@ interface
             supported_targets : [system_m68k_Amiga,system_m68k_Atari];
             flags : [af_needar];
             labelprefix : '.L';
+            labelmaxlen : -1;
             comment : '# ';
             dollarsign: '$';
           );

+ 1 - 0
compiler/m68k/ag68kvasm.pas

@@ -136,6 +136,7 @@ unit ag68kvasm;
          supported_targets : [system_m68k_amiga,system_m68k_atari];
          flags : [af_needar,af_smartlink_sections];
          labelprefix : '.L';
+         labelmaxlen : -1;
          comment : '# ';
          dollarsign: '$';
        );

+ 2 - 0
compiler/mips/cpugas.pas

@@ -263,6 +263,7 @@ unit cpugas;
         supported_targets: [system_mipsel_linux,system_mipsel_android,system_mipsel_embedded];
         flags: [ af_needar, af_smartlink_sections];
         labelprefix: '.L';
+        labelmaxlen : -1;
         comment: '# ';
         dollarsign: '$';
         );
@@ -276,6 +277,7 @@ unit cpugas;
         supported_targets: [system_mipseb_linux];
         flags: [ af_needar, af_smartlink_sections];
         labelprefix: '.L';
+        labelmaxlen : -1;
         comment: '# ';
         dollarsign: '$';
         );

+ 6 - 0
compiler/ogcoff.pas

@@ -3472,6 +3472,7 @@ const pemagic : array[0..3] of byte = (
             supported_targets : [system_i386_go32v2];
             flags : [af_outputbinary,af_smartlink_sections];
             labelprefix : '.L';
+            labelmaxlen : -1;
             comment : '';
             dollarsign: '$';
           );
@@ -3485,6 +3486,7 @@ const pemagic : array[0..3] of byte = (
             supported_targets : [system_i386_win32,system_i386_nativent];
             flags : [af_outputbinary,af_smartlink_sections];
             labelprefix : '.L';
+            labelmaxlen : -1;
             comment : '';
             dollarsign: '$';
           );
@@ -3498,6 +3500,7 @@ const pemagic : array[0..3] of byte = (
             supported_targets : [system_i386_wdosx];
             flags : [af_outputbinary];
             labelprefix : '.L';
+            labelmaxlen : -1;
             comment : '';
             dollarsign: '$';
           );
@@ -3511,6 +3514,7 @@ const pemagic : array[0..3] of byte = (
             supported_targets : [system_i386_wince];
             flags : [af_outputbinary,af_smartlink_sections];
             labelprefix : '.L';
+            labelmaxlen : -1;
             comment : '';
             dollarsign: '$';
           );
@@ -3526,6 +3530,7 @@ const pemagic : array[0..3] of byte = (
             supported_targets : [system_x86_64_win64];
             flags : [af_outputbinary,af_smartlink_sections];
             labelprefix : '.L';
+            labelmaxlen : -1;
             comment : '';
             dollarsign: '$';
           );
@@ -3541,6 +3546,7 @@ const pemagic : array[0..3] of byte = (
             supported_targets : [system_arm_wince];
             flags : [af_outputbinary,af_smartlink_sections];
             labelprefix : '.L';
+            labelmaxlen : -1;
             comment : '';
             dollarsign: '$';
           );

+ 1 - 0
compiler/ogmacho.pas

@@ -1229,6 +1229,7 @@ uses
         supported_targets : [system_i386_darwin,system_i386_iphonesim];
         flags : [af_outputbinary,af_smartlink_sections,af_supports_dwarf{, af_stabs_use_function_absolute_addresses}];
         labelprefix : '.L';
+        labelmaxlen : -1;
         comment : '#';
         dollarsign: '$';
       );

+ 1 - 0
compiler/ognlm.pas

@@ -1497,6 +1497,7 @@ const
             supported_targets : [system_i386_Netware,system_i386_netwlibc];
             flags : [af_outputbinary,af_smartlink_sections];
             labelprefix : '.L';
+            labelmaxlen : -1;
             comment : '';
             dollarsign: '$';
           );

+ 1 - 0
compiler/ogomf.pas

@@ -4920,6 +4920,7 @@ cleanup:
             supported_targets : [system_i8086_msdos,system_i8086_embedded,system_i8086_win16];
             flags : [af_outputbinary,af_smartlink_sections];
             labelprefix : '..@';
+            labelmaxlen : -1;
             comment : '; ';
             dollarsign: '$';
           );

+ 1 - 0
compiler/powerpc/agppcmpw.pas

@@ -1243,6 +1243,7 @@ interface
             supported_targets : [system_powerpc_macos];
             flags : [af_needar,af_smartlink_sections,af_labelprefix_only_inside_procedure];
             labelprefix : '@';
+            labelmaxlen : -1;
             comment : '; ';
             dollarsign: 's';
           );

+ 1 - 0
compiler/powerpc/agppcvasm.pas

@@ -125,6 +125,7 @@ unit agppcvasm;
          supported_targets : [system_powerpc_amiga,system_powerpc_morphos,system_powerpc_linux];
          flags : [af_needar,af_smartlink_sections];
          labelprefix : '.L';
+         labelmaxlen : -1;
          comment : '# ';
          dollarsign: '$';
        );

+ 6 - 0
compiler/ppcgen/agppcgas.pas

@@ -646,6 +646,7 @@ unit agppcgas;
          supported_targets : [system_powerpc_linux,system_powerpc_netbsd,system_powerpc_openbsd,system_powerpc_MorphOS,system_powerpc_Amiga,system_powerpc64_linux,system_powerpc_embedded,system_powerpc64_embedded];
          flags : [af_needar,af_smartlink_sections];
          labelprefix : '.L';
+         labelmaxlen : -1;
          comment : '# ';
          dollarsign: '$';
        );
@@ -664,6 +665,7 @@ unit agppcgas;
          supported_targets : [system_powerpc_morphos];
          flags : [af_needar];
          labelprefix : '.L';
+         labelmaxlen : -1;
          comment : '# ';
          dollarsign: '$';
        );
@@ -678,6 +680,7 @@ unit agppcgas;
          supported_targets : [system_powerpc_darwin,system_powerpc64_darwin];
          flags : [af_needar,af_smartlink_sections,af_supports_dwarf,af_stabs_use_function_absolute_addresses];
          labelprefix : 'L';
+         labelmaxlen : -1;
          comment : '# ';
          dollarsign : '$';
        );
@@ -701,6 +704,7 @@ unit agppcgas;
          supported_targets : [system_powerpc_aix,system_powerpc64_aix];
          flags : [af_needar,af_smartlink_sections,af_stabs_use_function_absolute_addresses];
          labelprefix : 'L';
+         labelmaxlen : -1;
          comment : '# ';
          dollarsign : '.'
        );
@@ -723,6 +727,7 @@ unit agppcgas;
          supported_targets : [system_powerpc_aix,system_powerpc64_aix];
          flags : [af_needar,af_smartlink_sections,af_stabs_use_function_absolute_addresses];
          labelprefix : 'L';
+         labelmaxlen : -1;
          comment : '# ';
          dollarsign : '.'
        );
@@ -736,6 +741,7 @@ unit agppcgas;
          supported_targets : [system_powerpc_macos, system_powerpc_darwin, system_powerpc64_darwin];
          flags : [af_needar,af_smartlink_sections,af_supports_dwarf];
          labelprefix : 'L';
+         labelmaxlen : -1;
          comment : '# ';
          dollarsign: '$';
        );

+ 1 - 0
compiler/riscv/agrvgas.pas

@@ -263,6 +263,7 @@ unit agrvgas;
          supported_targets : [system_riscv32_linux,system_riscv64_linux];
          flags : [af_needar,af_smartlink_sections];
          labelprefix : '.L';
+         labelmaxlen : -1;
          comment : '# ';
          dollarsign: '$';
        );

+ 1 - 0
compiler/sparc/cpuelf.pas

@@ -128,6 +128,7 @@ implementation
 //            flags : [af_outputbinary,af_smartlink_sections];
          flags : [af_outputbinary,af_supports_dwarf];
          labelprefix : '.L';
+         labelmaxlen : -1;
          comment : '';
          dollarsign: '$';
        );

+ 2 - 0
compiler/sparc64/cpugas.pas

@@ -240,6 +240,7 @@ implementation
            supported_targets : [system_sparc64_linux];
            flags : [af_needar,af_smartlink_sections];
            labelprefix : '.L';
+           labelmaxlen : -1;
            comment : '# ';
            dollarsign: '$';
          );
@@ -253,6 +254,7 @@ implementation
            supported_targets : [system_sparc64_linux];
            flags : [af_needar,af_smartlink_sections];
            labelprefix : '.L';
+           labelmaxlen : -1;
            comment : '# ';
            dollarsign: '$';
          );

+ 4 - 0
compiler/sparcgen/cpugas.pas

@@ -236,6 +236,7 @@ implementation
            supported_targets : [system_sparc_solaris,system_sparc_linux,system_sparc_embedded];
            flags : [af_needar,af_smartlink_sections];
            labelprefix : '.L';
+           labelmaxlen : -1;
            comment : '# ';
            dollarsign: '$';
          );
@@ -249,6 +250,7 @@ implementation
            supported_targets : [system_sparc_solaris,system_sparc_linux,system_sparc_embedded];
            flags : [af_needar,af_smartlink_sections];
            labelprefix : '.L';
+           labelmaxlen : -1;
            comment : '# ';
            dollarsign: '$';
          );
@@ -266,6 +268,7 @@ implementation
            supported_targets : [system_sparc64_linux];
            flags : [af_needar,af_smartlink_sections];
            labelprefix : '.L';
+           labelmaxlen : -1;
            comment : '# ';
            dollarsign: '$';
          );
@@ -279,6 +282,7 @@ implementation
            supported_targets : [system_sparc64_linux];
            flags : [af_needar,af_smartlink_sections];
            labelprefix : '.L';
+           labelmaxlen : -1;
            comment : '# ';
            dollarsign: '$';
          );

+ 1 - 0
compiler/systems.pas

@@ -88,6 +88,7 @@ interface
           supported_targets : set of tsystem;
           flags        : set of tasmflags;
           labelprefix : string[3];
+          labelmaxlen : integer;
           comment     : string[3];
           { set to '$' if that character is allowed in symbol names, otherwise
             to alternate character by which '$' should be replaced }

+ 13 - 0
compiler/x86/agx86att.pas

@@ -441,6 +441,7 @@ interface
                                  system_x86_64_android,system_x86_64_haiku];
             flags : [af_needar,af_smartlink_sections,af_supports_dwarf];
             labelprefix : '.L';
+            labelmaxlen : -1;
             comment : '# ';
             dollarsign: '$';
           );
@@ -454,6 +455,7 @@ interface
             supported_targets : [system_x86_64_linux,system_x86_64_freebsd,system_x86_64_win64,system_x86_64_embedded];
             flags : [af_needar,af_smartlink_sections,af_supports_dwarf];
             labelprefix : '.L';
+            labelmaxlen : -1;
             comment : '# ';
             dollarsign: '$';
           );
@@ -467,6 +469,7 @@ interface
             supported_targets : [system_x86_64_solaris];
             flags : [af_needar,af_smartlink_sections,af_supports_dwarf];
             labelprefix : '.L';
+            labelmaxlen : -1;
             comment : '# ';
             dollarsign: '$';
           );
@@ -481,6 +484,7 @@ interface
             supported_targets : [system_x86_64_solaris];
             flags : [af_needar,af_smartlink_sections,af_supports_dwarf];
             labelprefix : '.L';
+            labelmaxlen : -1;
             comment : '# ';
             dollarsign: '$';
           );
@@ -496,6 +500,7 @@ interface
             supported_targets : [system_x86_64_darwin,system_x86_64_iphonesim];
             flags : [af_needar,af_smartlink_sections,af_supports_dwarf];
             labelprefix : 'L';
+            labelmaxlen : -1;
             comment : '# ';
             dollarsign: '$';
           );
@@ -509,6 +514,7 @@ interface
             supported_targets : [system_x86_64_darwin,system_x86_64_iphonesim];
             flags : [af_needar,af_smartlink_sections,af_supports_dwarf,af_no_stabs];
             labelprefix : 'L';
+            labelmaxlen : -1;
             comment : '# ';
             dollarsign: '$';
           );
@@ -526,6 +532,7 @@ interface
                                 system_i386_nativent,system_i386_android,system_i386_aros];
             flags : [af_needar,af_smartlink_sections,af_supports_dwarf];
             labelprefix : '.L';
+            labelmaxlen : -1;
             comment : '# ';
             dollarsign: '$';
           );
@@ -542,6 +549,7 @@ interface
                                 system_i386_nativent];
             flags : [af_needar,af_smartlink_sections,af_supports_dwarf];
             labelprefix : '.L';
+            labelmaxlen : -1;
             comment : '# ';
             dollarsign: '$';
           );
@@ -556,6 +564,7 @@ interface
             supported_targets : [system_i386_linux,system_i386_OS2,system_i386_freebsd,system_i386_netbsd,system_i386_openbsd,system_i386_EMX,system_i386_embedded];
             flags : [af_needar,af_stabs_use_function_absolute_addresses];
             labelprefix : 'L';
+            labelmaxlen : -1;
             comment : '# ';
             dollarsign: '$';
           );
@@ -570,6 +579,7 @@ interface
             supported_targets : [system_i386_darwin,system_i386_iphonesim];
             flags : [af_needar,af_smartlink_sections,af_supports_dwarf,af_stabs_use_function_absolute_addresses];
             labelprefix : 'L';
+            labelmaxlen : -1;
             comment : '# ';
             dollarsign: '$';
           );
@@ -583,6 +593,7 @@ interface
             supported_targets : [system_i386_darwin,system_i386_iphonesim];
             flags : [af_needar,af_smartlink_sections,af_supports_dwarf,af_no_stabs];
             labelprefix : 'L';
+            labelmaxlen : -1;
             comment : '# ';
             dollarsign: '$';
           );
@@ -599,6 +610,7 @@ interface
                                 system_x86_6432_linux,system_i386_android];
             flags : [af_needar,af_smartlink_sections,af_supports_dwarf];
             labelprefix : '.L';
+            labelmaxlen : -1;
             comment : '# ';
             dollarsign: '$';
           );
@@ -612,6 +624,7 @@ interface
             supported_targets : [system_i386_solaris];
             flags : [af_needar,af_smartlink_sections,af_supports_dwarf];
             labelprefix : '.L';
+            labelmaxlen : -1;
             comment : '# ';
             dollarsign: '$';
           );

+ 4 - 0
compiler/x86/agx86int.pas

@@ -1159,6 +1159,7 @@ implementation
             supported_targets : [system_i386_GO32V2,system_i386_Win32,system_i386_wdosx,system_i386_watcom,system_i386_wince];
             flags : [af_needar,af_labelprefix_only_inside_procedure];
             labelprefix : '@@';
+            labelmaxlen : -1;
             comment : '; ';
             dollarsign: '$';
           );
@@ -1172,6 +1173,7 @@ implementation
             supported_targets : [system_i386_GO32V2,system_i386_Win32,system_i386_wdosx,system_i386_watcom,system_i386_wince];
             flags : [af_needar];
             labelprefix : '@@';
+            labelmaxlen : -1;
             comment : '; ';
             dollarsign: '$';
           );
@@ -1185,6 +1187,7 @@ implementation
             supported_targets : [system_i386_watcom];
             flags : [af_needar];
             labelprefix : '@@';
+            labelmaxlen : -1;
             comment : '; ';
             dollarsign: '$';
           );
@@ -1199,6 +1202,7 @@ implementation
             supported_targets : [system_x86_64_win64];
             flags : [af_needar];
             labelprefix : '@@';
+            labelmaxlen : -1;
             comment : '; ';
             dollarsign: '$';
           );

+ 15 - 0
compiler/x86/agx86nsm.pas

@@ -1483,6 +1483,7 @@ interface
             supported_targets : [system_i8086_msdos,system_i8086_win16,system_i8086_embedded];
             flags : [af_needar,af_no_debug];
             labelprefix : '..@';
+            labelmaxlen : -1;
             comment : '; ';
             dollarsign: '$';
           );
@@ -1495,6 +1496,7 @@ interface
             supported_targets : [system_i8086_msdos,system_i8086_win16,system_i8086_embedded];
             flags : [af_needar,af_no_debug];
             labelprefix : '..@';
+            labelmaxlen : -1;
             comment : '; ';
             dollarsign: '$';
           );
@@ -1510,6 +1512,7 @@ interface
             supported_targets : [system_i386_go32v2];
             flags : [af_needar,af_no_debug];
             labelprefix : '..@';
+            labelmaxlen : -1;
             comment : '; ';
             dollarsign: '$';
           );
@@ -1523,6 +1526,7 @@ interface
             supported_targets : [system_i386_win32];
             flags : [af_needar,af_no_debug,af_smartlink_sections];
             labelprefix : '..@';
+            labelmaxlen : -1;
             comment : '; ';
             dollarsign: '$';
           );
@@ -1536,6 +1540,7 @@ interface
             supported_targets : [system_i386_embedded, system_i8086_msdos];
             flags : [af_needar,af_no_debug];
             labelprefix : '..@';
+            labelmaxlen : -1;
             comment : '; ';
             dollarsign: '$';
           );
@@ -1549,6 +1554,7 @@ interface
             supported_targets : [system_i386_wdosx];
             flags : [af_needar,af_no_debug];
             labelprefix : '..@';
+            labelmaxlen : -1;
             comment : '; ';
             dollarsign: '$';
           );
@@ -1563,6 +1569,7 @@ interface
             supported_targets : [system_i386_linux];
             flags : [af_needar,af_no_debug];
             labelprefix : '..@';
+            labelmaxlen : -1;
             comment : '; ';
             dollarsign: '$';
           );
@@ -1576,6 +1583,7 @@ interface
             supported_targets : [system_i386_darwin];
             flags : [af_needar,af_no_debug];
             labelprefix : '..@';
+            labelmaxlen : -1;
             comment : '; ';
             dollarsign: '$';
           );
@@ -1589,6 +1597,7 @@ interface
             supported_targets : [system_i386_beos];
             flags : [af_needar,af_no_debug];
             labelprefix : '..@';
+            labelmaxlen : -1;
             comment : '; ';
             dollarsign: '$';
           );
@@ -1602,6 +1611,7 @@ interface
             supported_targets : [system_i386_haiku];
             flags : [af_needar,af_no_debug];
             labelprefix : '..@';
+            labelmaxlen : -1;
             comment : '; ';
             dollarsign: '$';
           );
@@ -1614,6 +1624,7 @@ interface
             supported_targets : [system_any];
             flags : [af_needar,af_no_debug];
             labelprefix : '..@';
+            labelmaxlen : -1;
             comment : '; ';
             dollarsign: '$';
           );
@@ -1630,6 +1641,7 @@ interface
             supported_targets : [system_any];
             flags : [af_needar{,af_no_debug}];
             labelprefix : '..@';
+            labelmaxlen : -1;
             comment : '; ';
             dollarsign: '$';
           );
@@ -1643,6 +1655,7 @@ interface
             supported_targets : [system_x86_64_win64];
             flags : [af_needar,af_no_debug];
             labelprefix : '..@';
+            labelmaxlen : -1;
             comment : '; ';
             dollarsign: '$';
           );
@@ -1656,6 +1669,7 @@ interface
             supported_targets : [system_x86_64_linux];
             flags : [af_needar,af_no_debug];
             labelprefix : '..@';
+            labelmaxlen : -1;
             comment : '; ';
             dollarsign: '$';
           );
@@ -1670,6 +1684,7 @@ interface
             supported_targets : [system_x86_64_darwin];
             flags : [af_needar,af_no_debug];
             labelprefix : '..@';
+            labelmaxlen : -1;
             comment : '; ';
             dollarsign: '$';
           );

+ 1 - 0
compiler/x86_64/cpuelf.pas

@@ -699,6 +699,7 @@ implementation
                              system_x86_64_haiku];
         flags : [af_outputbinary,af_smartlink_sections,af_supports_dwarf];
         labelprefix : '.L';
+        labelmaxlen : -1;
         comment : '';
         dollarsign: '$';
       );

+ 1 - 0
compiler/xtensa/agcpugas.pas

@@ -176,6 +176,7 @@ unit agcpugas;
             supported_targets : [system_xtensa_embedded];
             flags : [af_needar,af_smartlink_sections,af_supports_dwarf,af_stabs_use_function_absolute_addresses];
             labelprefix : '.L';
+            labelmaxlen : -1;
             comment : '# ';
             dollarsign: '$';
           );

+ 1 - 0
compiler/z80/agsdasz80.pas

@@ -883,6 +883,7 @@ unit agsdasz80;
             supported_targets : [system_Z80_embedded];
             flags : [af_needar,af_smartlink_sections];
             labelprefix : '.L';
+            labelmaxlen : 79;
             comment : '; ';
             dollarsign: '$';
           );

+ 1 - 0
compiler/z80/agz80asm.pas

@@ -436,6 +436,7 @@ unit agz80asm;
             supported_targets : [system_Z80_embedded];
             flags : [af_needar,af_smartlink_sections];
             labelprefix : '.L';
+            labelmaxlen : -1;
             comment : '; ';
             dollarsign: 's';
           );