2
0
Эх сурвалжийг харах

* changed tf_use_function_relative_addresses into an assembler flag (with
the opposite meaning, af_stabs_use_function_absolute_addresses), because it
is different on Darwin for the internal and external assembler)

git-svn-id: trunk@14342 -

Jonas Maebe 15 жил өмнө
parent
commit
b4c8c73e70

+ 1 - 1
compiler/arm/agarmgas.pas

@@ -305,7 +305,7 @@ unit agarmgas;
             asmbin : 'as';
             asmcmd : '-o $OBJ $ASM -arch $ARCH';
             supported_targets : [system_arm_darwin];
-            flags : [af_allowdirect,af_needar,af_smartlink_sections,af_supports_dwarf];
+            flags : [af_allowdirect,af_needar,af_smartlink_sections,af_supports_dwarf,af_stabs_use_function_absolute_addresses];
             labelprefix : 'L';
             comment : '# ';
           );

+ 3 - 3
compiler/dbgstabs.pas

@@ -1038,7 +1038,7 @@ implementation
         if target_info.cpu=cpu_powerpc64 then
           ss:=ss+'.';
         ss:=ss+def.mangledname;
-        if (tf_use_function_relative_addresses in target_info.flags) then
+        if not(af_stabs_use_function_absolute_addresses in target_asm.flags) then
           begin
             ss:=ss+'-';
             if target_info.cpu=cpu_powerpc64 then
@@ -1050,7 +1050,7 @@ implementation
         templist.concat(Tai_stab.Create(stab_stabn,p));
         // RBRAC
         ss:=tostr(N_RBRAC)+',0,0,'+stabsendlabel.name;
-        if (tf_use_function_relative_addresses in target_info.flags) then
+        if not(af_stabs_use_function_absolute_addresses in target_asm.flags) then
           begin
             ss:=ss+'-';
             if target_info.cpu=cpu_powerpc64 then
@@ -1605,7 +1605,7 @@ implementation
                 if (currfileinfo.line>lastfileinfo.line) and (currfileinfo.line<>0) then
                   begin
                      if assigned(currfuncname) and
-                        (tf_use_function_relative_addresses in target_info.flags) then
+                        not(af_stabs_use_function_absolute_addresses in target_asm.flags) then
                       begin
                         current_asmdata.getlabel(hlabel,alt_dbgline);
                         list.insertbefore(Tai_stab.Create_str(stab_stabn,tostr(n_textline)+',0,'+tostr(currfileinfo.line)+','+

+ 1 - 1
compiler/ncgutil.pas

@@ -2198,7 +2198,7 @@ implementation
             if assigned(previtem) and
                (target_info.system in systems_darwin) then
               list.concat(tai_directive.create(asd_reference,previtem.str));
-            if tf_use_function_relative_addresses in target_info.flags then
+            if not(af_stabs_use_function_absolute_addresses in target_asm.flags) then
               list.concat(Tai_function_name.create(item.str));
             previtem:=item;
             item := TCmdStrListItem(item.next);

+ 1 - 1
compiler/ppcgen/agppcgas.pas

@@ -444,7 +444,7 @@ unit agppcgas;
          asmbin : 'as';
          asmcmd : '-o $OBJ $ASM -arch $ARCH';
          supported_targets : [system_powerpc_darwin,system_powerpc64_darwin];
-         flags : [af_allowdirect,af_needar,af_smartlink_sections,af_supports_dwarf];
+         flags : [af_allowdirect,af_needar,af_smartlink_sections,af_supports_dwarf,af_stabs_use_function_absolute_addresses];
          labelprefix : 'L';
          comment : '# ';
        );

+ 2 - 2
compiler/systems/i_amiga.pas

@@ -34,7 +34,7 @@ unit i_amiga;
             system       : system_m68k_Amiga;
             name         : 'Commodore Amiga';
             shortname    : 'amiga';
-            flags        : [tf_files_case_aware,tf_use_function_relative_addresses];
+            flags        : [tf_files_case_aware];
             cpu          : cpu_m68k;
             unit_env     : '';
             extradefines : '';
@@ -95,7 +95,7 @@ unit i_amiga;
             system       : system_powerpc_Amiga;
             name         : 'AmigaOS for PowerPC';
             shortname    : 'amiga';
-            flags        : [tf_files_case_aware,tf_use_function_relative_addresses];
+            flags        : [tf_files_case_aware];
             cpu          : cpu_powerpc;
             unit_env     : '';
             extradefines : 'PPC603';

+ 1 - 1
compiler/systems/i_beos.pas

@@ -34,7 +34,7 @@ unit i_beos;
             system       : system_i386_BeOS;
             name         : 'Beos for i386';
             shortname    : 'Beos';
-            flags        : [tf_under_development,tf_needs_symbol_size,tf_files_case_sensitive,tf_use_function_relative_addresses,
+            flags        : [tf_under_development,tf_needs_symbol_size,tf_files_case_sensitive,
                             tf_smartlink_sections, tf_smartlink_library];
             cpu          : cpu_i386;
             unit_env     : 'BEOSUNITS';

+ 6 - 6
compiler/systems/i_bsd.pas

@@ -58,7 +58,7 @@ unit i_bsd;
             system       : system_i386_FreeBSD;
             name         : 'FreeBSD/ELF for i386';
             shortname    : 'FreeBSD';
-            flags        : [tf_pic_uses_got,tf_files_case_sensitive,tf_use_function_relative_addresses,
+            flags        : [tf_pic_uses_got,tf_files_case_sensitive,
 {$ifdef segment_threadvars}
                             tf_section_threadvars,
 {$endif segment_threadvars}
@@ -126,7 +126,7 @@ unit i_bsd;
             name         : 'FreeBSD for x86-64';
             shortname    : 'FreeBSD';
             flags        : [tf_needs_symbol_size,tf_needs_dwarf_cfi,tf_library_needs_pic,tf_needs_symbol_type,
-                            tf_files_case_sensitive,tf_use_function_relative_addresses,tf_smartlink_library,
+                            tf_files_case_sensitive,tf_smartlink_library,
                             tf_dwarf_only_local_labels
                             { tf_pic_uses_got,tf_smartlink_sections},tf_has_winlike_resources];
             cpu          : cpu_x86_64;
@@ -190,7 +190,7 @@ unit i_bsd;
             system       : system_i386_NetBSD;
             name         : 'NetBSD for i386';
             shortname    : 'NetBSD';
-            flags        : [tf_under_development,tf_files_case_sensitive,tf_smartlink_library,tf_use_function_relative_addresses,tf_has_winlike_resources];
+            flags        : [tf_under_development,tf_files_case_sensitive,tf_smartlink_library,tf_has_winlike_resources];
             cpu          : cpu_i386;
             unit_env     : 'BSDUNITS';
             extradefines : 'UNIX;BSD;HASUNIX';
@@ -251,7 +251,7 @@ unit i_bsd;
             system       : system_i386_OpenBSD;
             name         : 'OpenBSD for i386';
             shortname    : 'OpenBSD';
-            flags        : [tf_under_development,tf_files_case_sensitive,tf_use_function_relative_addresses,tf_smartlink_library,tf_has_winlike_resources];
+            flags        : [tf_under_development,tf_files_case_sensitive,tf_smartlink_library,tf_has_winlike_resources];
             cpu          : cpu_i386;
             unit_env     : 'BSDUNITS';
             extradefines : 'UNIX;BSD;HASUNIX';
@@ -312,7 +312,7 @@ unit i_bsd;
             system       : system_m68k_NetBSD;
             name         : 'NetBSD for m68k';
             shortname    : 'NetBSD';
-            flags        : [tf_under_development,tf_files_case_sensitive,tf_use_function_relative_addresses,tf_smartlink_library,tf_has_winlike_resources];
+            flags        : [tf_under_development,tf_files_case_sensitive,tf_smartlink_library,tf_has_winlike_resources];
             cpu          : cpu_m68k;
             unit_env     : 'BSDUNITS';
             extradefines : 'UNIX;BSD;HASUNIX';
@@ -373,7 +373,7 @@ unit i_bsd;
             system       : system_powerpc_netbsd;
             name         : 'NetBSD for PowerPC';
             shortname    : 'NetBSD';
-            flags        : [tf_under_development,tf_files_case_sensitive,tf_use_function_relative_addresses,tf_smartlink_library,tf_has_winlike_resources];
+            flags        : [tf_under_development,tf_files_case_sensitive,tf_smartlink_library,tf_has_winlike_resources];
             cpu          : cpu_powerpc;
             unit_env     : '';
             extradefines : 'UNIX;BSD;HASUNIX';

+ 2 - 2
compiler/systems/i_embed.pas

@@ -34,7 +34,7 @@ unit i_embed;
             name         : 'Embedded';
             shortname    : 'embedded';
             flags        : [tf_needs_symbol_size,tf_files_case_sensitive,
-                            tf_use_function_relative_addresses,tf_smartlink_sections];
+                            tf_smartlink_sections];
             cpu          : cpu_arm;
             unit_env     : '';
             extradefines : '';
@@ -95,7 +95,7 @@ unit i_embed;
             system       : system_avr_embedded;
             name         : 'Embedded';
             shortname    : 'embedded';
-            flags        : [tf_needs_symbol_size,tf_files_case_sensitive,tf_use_function_relative_addresses
+            flags        : [tf_needs_symbol_size,tf_files_case_sensitive
 	                          ,tf_smartlink_sections];
             cpu          : cpu_avr;
             unit_env     : '';

+ 1 - 1
compiler/systems/i_gba.pas

@@ -35,7 +35,7 @@ unit i_gba;
             name         : 'GameBoy Advance';
             shortname    : 'gba';
             flags        : [tf_needs_symbol_size,tf_files_case_sensitive,
-                            tf_use_function_relative_addresses,tf_requires_proper_alignment,tf_smartlink_sections];
+                            tf_requires_proper_alignment,tf_smartlink_sections];
             cpu          : cpu_arm;
             unit_env     : '';
             extradefines : '';

+ 1 - 1
compiler/systems/i_go32v2.pas

@@ -34,7 +34,7 @@ unit i_go32v2;
             system       : system_i386_GO32V2;
             name         : 'GO32 V2 DOS extender';
             shortname    : 'Go32v2';
-            flags        : [tf_use_8_3,tf_use_function_relative_addresses,tf_smartlink_library];
+            flags        : [tf_use_8_3,tf_smartlink_library];
             cpu          : cpu_i386;
             unit_env     : 'GO32V2UNITS';
             extradefines : 'DPMI';

+ 1 - 1
compiler/systems/i_haiku.pas

@@ -35,7 +35,7 @@ unit i_haiku;
             system       : system_i386_Haiku;
             name         : 'Haiku for i386';
             shortname    : 'Haiku';
-            flags        : [tf_under_development,tf_needs_symbol_size,tf_files_case_sensitive,tf_use_function_relative_addresses,
+            flags        : [tf_under_development,tf_needs_symbol_size,tf_files_case_sensitive,
                             tf_smartlink_sections, tf_smartlink_library];
             cpu          : cpu_i386;
             unit_env     : 'HAIKUUNITS';

+ 10 - 13
compiler/systems/i_linux.pas

@@ -38,7 +38,7 @@ unit i_linux;
 {$ifdef segment_threadvars}
                             tf_section_threadvars,
 {$endif segment_threadvars}
-                            tf_needs_symbol_type,tf_files_case_sensitive,tf_use_function_relative_addresses,
+                            tf_needs_symbol_type,tf_files_case_sensitive,
                             tf_smartlink_library,tf_needs_dwarf_cfi,tf_has_winlike_resources];
             cpu          : cpu_i386;
             unit_env     : 'LINUXUNITS';
@@ -101,7 +101,7 @@ unit i_linux;
             name         : 'Linux for x64_6432';
             shortname    : 'Linux6432';
             flags        : [tf_needs_symbol_size,tf_needs_symbol_type,tf_files_case_sensitive,
-                            tf_use_function_relative_addresses,tf_pic_uses_got{,tf_smartlink_sections},
+                            tf_pic_uses_got{,tf_smartlink_sections},
                             tf_smartlink_library,tf_has_winlike_resources];
             cpu          : cpu_x86_64;
             unit_env     : 'LINUXUNITS';
@@ -164,7 +164,6 @@ unit i_linux;
             name         : 'Linux for m68k';
             shortname    : 'Linux';
             flags        : [tf_needs_symbol_size,tf_needs_symbol_type,tf_files_case_sensitive,
-                            tf_use_function_relative_addresses,
                             tf_smartlink_library,tf_has_winlike_resources];
             cpu          : cpu_m68k;
             unit_env     : 'LINUXUNITS';
@@ -227,7 +226,6 @@ unit i_linux;
             name         : 'Linux for PowerPC';
             shortname    : 'Linux';
             flags        : [tf_needs_symbol_size,tf_needs_symbol_type,tf_files_case_sensitive,
-                            tf_use_function_relative_addresses,
                             tf_smartlink_library,tf_has_winlike_resources];
             cpu          : cpu_powerpc;
             unit_env     : '';
@@ -290,7 +288,6 @@ unit i_linux;
             name         : 'Linux for PowerPC64';
             shortname    : 'Linux';
             flags        : [tf_needs_symbol_size,tf_needs_symbol_type,tf_files_case_sensitive,
-                            tf_use_function_relative_addresses,
                             tf_requires_proper_alignment,tf_smartlink_library,tf_has_winlike_resources];
             cpu          : cpu_powerpc64;
             unit_env     : '';
@@ -353,7 +350,7 @@ unit i_linux;
             name         : 'Linux for Alpha';
             shortname    : 'Linux';
             flags        : [tf_needs_symbol_size,tf_needs_symbol_type,tf_files_case_sensitive,
-                            tf_use_function_relative_addresses,tf_smartlink_library,tf_has_winlike_resources];
+                            tf_smartlink_library,tf_has_winlike_resources];
             cpu          : cpu_alpha;
             unit_env     : 'LINUXUNITS';
             extradefines : 'UNIX;HASUNIX';
@@ -416,7 +413,7 @@ unit i_linux;
             shortname    : 'Linux';
             flags        : [tf_needs_symbol_size,tf_needs_dwarf_cfi,tf_smartlink_library,
                             tf_library_needs_pic,tf_needs_symbol_type,tf_files_case_sensitive,
-                            tf_use_function_relative_addresses,tf_has_winlike_resources];
+                            tf_has_winlike_resources];
             cpu          : cpu_x86_64;
             unit_env     : 'LINUXUNITS';
             extradefines : 'UNIX;HASUNIX';
@@ -479,7 +476,7 @@ unit i_linux;
             shortname    : 'Linux';
             flags        : [tf_needs_symbol_size,tf_library_needs_pic,tf_smartlink_sections,
                             tf_needs_symbol_type,tf_files_case_sensitive,tf_smartlink_library,
-                            tf_use_function_relative_addresses,tf_requires_proper_alignment,
+                            tf_requires_proper_alignment,
                             tf_has_winlike_resources];
             cpu          : cpu_SPARC;
             unit_env     : 'LINUXUNITS';
@@ -543,7 +540,7 @@ unit i_linux;
             name         : 'Linux for ARMEL';
             shortname    : 'Linux';
             flags        : [tf_needs_symbol_size,tf_needs_symbol_type,tf_files_case_sensitive,
-                            tf_use_function_relative_addresses,tf_requires_proper_alignment,
+                            tf_requires_proper_alignment,
                             tf_smartlink_sections,tf_smartlink_library,tf_has_winlike_resources];
             cpu          : cpu_arm;
             unit_env     : 'LINUXUNITS';
@@ -607,7 +604,7 @@ unit i_linux;
             name         : 'Linux for ARMEB';
             shortname    : 'Linux';
             flags        : [tf_needs_symbol_size,tf_needs_symbol_type,tf_files_case_sensitive,
-                            tf_use_function_relative_addresses,tf_requires_proper_alignment,
+                            tf_requires_proper_alignment,
                             tf_smartlink_sections,tf_smartlink_library,tf_has_winlike_resources];
             cpu          : cpu_arm;
             unit_env     : 'LINUXUNITS';
@@ -670,7 +667,7 @@ unit i_linux;
             name         : 'Linux for ARM';
             shortname    : 'Linux';
             flags        : [tf_needs_symbol_size,tf_needs_symbol_type,tf_files_case_sensitive,
-                            tf_use_function_relative_addresses,tf_requires_proper_alignment,
+                            tf_requires_proper_alignment,
                             tf_smartlink_sections,tf_smartlink_library,tf_has_winlike_resources];
             cpu          : cpu_arm;
             unit_env     : 'LINUXUNITS';
@@ -735,7 +732,7 @@ unit i_linux;
             name         : 'Linux for MIPS';
             shortname    : 'Linux';
             flags        : [tf_needs_symbol_size,tf_needs_symbol_type,tf_files_case_sensitive,
-                            tf_use_function_relative_addresses,tf_requires_proper_alignment,
+                            tf_requires_proper_alignment,
                             tf_smartlink_sections,tf_smartlink_library,tf_has_winlike_resources];
             cpu          : cpu_mips;
             unit_env     : 'LINUXUNITS';
@@ -799,7 +796,7 @@ unit i_linux;
             name         : 'Linux for MIPSEL';
             shortname    : 'Linux';
             flags        : [tf_needs_symbol_size,tf_needs_symbol_type,tf_files_case_sensitive,
-                            tf_use_function_relative_addresses,tf_requires_proper_alignment,
+                            tf_requires_proper_alignment,
                             tf_smartlink_sections,tf_smartlink_library,tf_has_winlike_resources];
             cpu          : cpu_mipsel;
             unit_env     : 'LINUXUNITS';

+ 1 - 1
compiler/systems/i_macos.pas

@@ -33,7 +33,7 @@ unit i_macos;
             system       : system_powerpc_MACOS;
             name         : 'Mac OS for PowerPC';
             shortname    : 'MacOS';
-            flags        : [tf_p_ext_support,tf_files_case_aware,tf_use_function_relative_addresses];
+            flags        : [tf_p_ext_support,tf_files_case_aware];
             cpu          : cpu_powerpc;
             unit_env     : '';
             extradefines : '';

+ 1 - 1
compiler/systems/i_morph.pas

@@ -34,7 +34,7 @@ unit i_morph;
             system       : system_powerpc_MorphOS;
             name         : 'MorphOS';
             shortname    : 'MorphOS';
-            flags        : [tf_files_case_aware,tf_use_function_relative_addresses,tf_smartlink_library];
+            flags        : [tf_files_case_aware,tf_smartlink_library];
             cpu          : cpu_powerpc;
             unit_env     : '';
             extradefines : '';

+ 1 - 1
compiler/systems/i_nds.pas

@@ -35,7 +35,7 @@ unit i_nds;
             name         : 'Nintendo DS';
             shortname    : 'nds';
             flags        : [tf_needs_symbol_size,tf_files_case_sensitive,
-                            tf_use_function_relative_addresses,tf_requires_proper_alignment,tf_smartlink_sections];
+                            tf_requires_proper_alignment,tf_smartlink_sections];
             cpu          : cpu_arm;
             unit_env     : '';
             extradefines : '';

+ 1 - 1
compiler/systems/i_nwl.pas

@@ -34,7 +34,7 @@ unit i_nwl;
             system       : system_i386_netwlibc;
             name         : 'Netware for i386(libc)';
             shortname    : 'Netwlibc';
-            flags        : [tf_use_function_relative_addresses,tf_smartlink_library];
+            flags        : [tf_smartlink_library];
             cpu          : cpu_i386;
             unit_env     : 'NETWLIBCUNITS';
             extradefines : 'NETWARE;NETWARE_LIBC';

+ 1 - 1
compiler/systems/i_nwm.pas

@@ -34,7 +34,7 @@ unit i_nwm;
             system       : system_i386_netware;
             name         : 'Netware for i386(clib)';
             shortname    : 'Netware';
-            flags        : [tf_use_function_relative_addresses,tf_smartlink_library];
+            flags        : [tf_smartlink_library];
             cpu          : cpu_i386;
             unit_env     : 'NETWAREUNITS';
             extradefines : 'NETWARE_CLIB';

+ 2 - 3
compiler/systems/i_sunos.pas

@@ -36,7 +36,6 @@ unit i_sunos;
             shortname    : 'solaris';
             flags        : [tf_under_development,tf_needs_symbol_size,
                             tf_files_case_sensitive,tf_requires_proper_alignment,
-                            tf_use_function_relative_addresses,
                             tf_smartlink_library,tf_has_winlike_resources];
             cpu          : cpu_i386;
             unit_env     : 'SOLARISUNITS';
@@ -100,7 +99,7 @@ unit i_sunos;
             name         : 'Solaris for x86-64';
             shortname    : 'solaris';
             flags        : [tf_needs_symbol_size,tf_under_development,
-                            tf_files_case_sensitive,tf_use_function_relative_addresses,
+                            tf_files_case_sensitive,
                             tf_requires_proper_alignment,tf_smartlink_library,tf_library_needs_pic,
                             tf_has_winlike_resources];
             cpu          : cpu_x86_64;
@@ -165,7 +164,7 @@ unit i_sunos;
             name         : 'Solaris for SPARC';
             shortname    : 'solaris';
             flags        : [tf_needs_symbol_size,tf_under_development,
-                            tf_files_case_sensitive,tf_use_function_relative_addresses,
+                            tf_files_case_sensitive,
                             tf_requires_proper_alignment,tf_smartlink_library,
                             tf_has_winlike_resources];
             cpu          : cpu_SPARC;

+ 1 - 2
compiler/systems/i_symbian.pas

@@ -36,7 +36,7 @@ unit i_symbian;
             name         : 'Symbian OS for i386';
             shortname    : 'Symbian';
             flags        : [tf_files_case_aware, tf_has_dllscanner,
-                            tf_smartlink_library,tf_use_function_relative_addresses];
+                            tf_smartlink_library];
             cpu          : cpu_i386;
             unit_env     : 'SYMBIANUNITS';
             extradefines : 'SYMBIAN';
@@ -98,7 +98,6 @@ unit i_symbian;
             name         : 'Symbian OS for ARM';
             shortname    : 'Symbian';
             flags        : [tf_files_case_aware, tf_has_dllscanner,
-                            tf_use_function_relative_addresses,
                             tf_requires_proper_alignment,tf_no_pic_supported];
             cpu          : cpu_arm;
             unit_env     : 'SYMBIANUNITS';

+ 1 - 1
compiler/systems/i_watcom.pas

@@ -34,7 +34,7 @@ unit i_watcom;
             system       : system_i386_Watcom;
             name         : 'Watcom compatible DOS extenders';
             shortname    : 'WATCOM';
-            flags        : [tf_use_8_3,tf_use_function_relative_addresses];
+            flags        : [tf_use_8_3];
             cpu          : cpu_i386;
             unit_env     : 'WATCOMUNITS';
             extradefines : 'DPMI';

+ 1 - 1
compiler/systems/i_wdosx.pas

@@ -34,7 +34,7 @@ unit i_wdosx;
             system       : system_i386_wdosx;
             name         : 'WDOSX DOS extender';
             shortname    : 'WDOSX';
-            flags        : [tf_use_8_3,tf_use_function_relative_addresses,tf_has_dllscanner];
+            flags        : [tf_use_8_3,tf_has_dllscanner];
             cpu          : cpu_i386;
             unit_env     : 'WDOSXUNITS';
             extradefines : 'MSWINDOWS';

+ 4 - 4
compiler/systems/i_win.pas

@@ -34,7 +34,7 @@ unit i_win;
             system       : system_i386_WIN32;
             name         : 'Win32 for i386';
             shortname    : 'Win32';
-            flags        : [tf_files_case_aware,tf_has_dllscanner,tf_use_function_relative_addresses,tf_smartlink_library
+            flags        : [tf_files_case_aware,tf_has_dllscanner,tf_smartlink_library
                             ,tf_smartlink_sections{,tf_section_threadvars}{,tf_needs_dwarf_cfi},
                             tf_winlikewidestring,tf_no_pic_supported,
                             tf_no_generic_stackcheck,tf_has_winlike_resources,
@@ -99,7 +99,7 @@ unit i_win;
             system       : system_x86_64_win64;
             name         : 'Win64 for x64';
             shortname    : 'Win64';
-            flags        : [tf_files_case_aware,tf_has_dllscanner,tf_use_function_relative_addresses,
+            flags        : [tf_files_case_aware,tf_has_dllscanner,
                             tf_smartlink_sections,tf_smartlink_library,tf_winlikewidestring,tf_no_pic_supported,
                             tf_no_generic_stackcheck,tf_has_winlike_resources];
             cpu          : cpu_x86_64;
@@ -162,7 +162,7 @@ unit i_win;
             system       : system_arm_wince;
             name         : 'WinCE for ARM';
             shortname    : 'WinCE';
-            flags        : [tf_files_case_aware,tf_use_function_relative_addresses{,tf_winlikewidestring},
+            flags        : [tf_files_case_aware{,tf_winlikewidestring},
                             tf_smartlink_sections,tf_requires_proper_alignment,tf_no_pic_supported,
                             tf_has_winlike_resources];
             cpu          : cpu_arm;
@@ -225,7 +225,7 @@ unit i_win;
             system       : system_i386_wince;
             name         : 'WinCE for i386';
             shortname    : 'WinCE';
-            flags        : [tf_files_case_aware,tf_use_function_relative_addresses
+            flags        : [tf_files_case_aware
                             {,tf_winlikewidestring},tf_smartlink_sections,tf_no_pic_supported,
                             tf_has_winlike_resources];
             cpu          : cpu_i386;

+ 2 - 2
compiler/x86/agx86att.pas

@@ -353,7 +353,7 @@ interface
             asmbin : 'as';
             asmcmd : '-o $OBJ $ASM';
             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_allowdirect,af_needar];
+            flags : [af_allowdirect,af_needar,af_stabs_use_function_absolute_addresses];
             labelprefix : 'L';
             comment : '# ';
           );
@@ -366,7 +366,7 @@ interface
             asmbin : 'as';
             asmcmd : '-o $OBJ $ASM -arch i386';
             supported_targets : [system_i386_darwin];
-            flags : [af_allowdirect,af_needar,af_smartlink_sections,af_supports_dwarf];
+            flags : [af_allowdirect,af_needar,af_smartlink_sections,af_supports_dwarf,af_stabs_use_function_absolute_addresses];
             labelprefix : 'L';
             comment : '# ';
           );