From 0991cb288d951680c2172659ee08b1ce61c50c9a Mon Sep 17 00:00:00 2001 From: peter Date: Tue, 25 Jan 2005 18:48:15 +0000 Subject: [PATCH] * tf_pic_uses_got added --- compiler/systems.pas | 8 ++++++-- compiler/systems/i_bsd.pas | 9 ++++++--- compiler/systems/i_linux.pas | 7 +++++-- compiler/x86/cgx86.pas | 8 ++++++-- 4 files changed, 23 insertions(+), 9 deletions(-) diff --git a/compiler/systems.pas b/compiler/systems.pas index 2e0f5904ca..6facb5c032 100644 --- a/compiler/systems.pas +++ b/compiler/systems.pas @@ -229,7 +229,8 @@ interface tf_needs_symbol_size, tf_smartlink_sections, tf_needs_dwarf_cfi, - tf_use_8_3 + tf_use_8_3, + tf_pic_uses_got ); psysteminfo = ^tsysteminfo; @@ -716,7 +717,10 @@ finalization end. { $Log$ - Revision 1.99 2004-12-28 20:43:00 hajny + Revision 1.100 2005-01-25 18:48:15 peter + * tf_pic_uses_got added + + Revision 1.99 2004/12/28 20:43:00 hajny * 8.3 fixes (short target name in paths) Revision 1.98 2004/12/12 00:35:19 florian diff --git a/compiler/systems/i_bsd.pas b/compiler/systems/i_bsd.pas index 340defc992..bcfe7c9979 100644 --- a/compiler/systems/i_bsd.pas +++ b/compiler/systems/i_bsd.pas @@ -36,7 +36,7 @@ unit i_bsd; system : system_i386_FreeBSD; name : 'FreeBSD/ELF for i386'; shortname : 'FreeBSD'; - flags : []; + flags : [tf_pic_uses_got]; cpu : cpu_i386; unit_env : 'BSDUNITS'; extradefines : 'UNIX;BSD;HASUNIX'; @@ -99,7 +99,7 @@ unit i_bsd; system : system_x86_64_freebsd; name : 'FreeBSD for x86-64'; shortname : 'FreeBSD'; - flags : [tf_needs_symbol_size,tf_smartlink_sections]; + flags : [tf_needs_symbol_size,tf_pic_uses_got{,tf_smartlink_sections}]; cpu : cpu_x86_64; unit_env : 'BSDUNITS'; extradefines : 'UNIX;HASUNIX'; @@ -506,7 +506,10 @@ initialization end. { $Log$ - Revision 1.14 2004-10-25 15:38:41 peter + Revision 1.15 2005-01-25 18:48:15 peter + * tf_pic_uses_got added + + Revision 1.14 2004/10/25 15:38:41 peter * heap and heapsize removed * checkpointer fixes diff --git a/compiler/systems/i_linux.pas b/compiler/systems/i_linux.pas index 69199204be..f1c173d5b2 100644 --- a/compiler/systems/i_linux.pas +++ b/compiler/systems/i_linux.pas @@ -33,7 +33,7 @@ unit i_linux; system : system_i386_LINUX; name : 'Linux for i386'; shortname : 'Linux'; - flags : [tf_needs_symbol_size{,tf_smartlink_sections}]; + flags : [tf_needs_symbol_size,tf_pic_uses_got{,tf_smartlink_sections}]; cpu : cpu_i386; unit_env : 'LINUXUNITS'; extradefines : 'UNIX;HASUNIX'; @@ -513,7 +513,10 @@ initialization end. { $Log$ - Revision 1.32 2004-12-11 14:39:03 florian + Revision 1.33 2005-01-25 18:48:15 peter + * tf_pic_uses_got added + + Revision 1.32 2004/12/11 14:39:03 florian * made some target short names look more nicer Revision 1.31 2004/10/25 15:38:41 peter diff --git a/compiler/x86/cgx86.pas b/compiler/x86/cgx86.pas index 5384802291..3f2f871c50 100644 --- a/compiler/x86/cgx86.pas +++ b/compiler/x86/cgx86.pas @@ -1700,7 +1700,8 @@ unit cgx86; end; { allocate PIC register } - if cs_create_pic in aktmoduleswitches then + if (cs_create_pic in aktmoduleswitches) and + (tf_pic_uses_got in target_info.flags) then begin a_call_name(list,'FPC_GETEIPINEBX'); list.concat(taicpu.op_sym_ofs_reg(A_ADD,tcgsize2opsize[OS_ADDR],objectlibrary.newasmsymbol('_GLOBAL_OFFSET_TABLE_',AB_EXTERNAL,AT_DATA),0,NR_PIC_OFFSET_REG)); @@ -1739,7 +1740,10 @@ unit cgx86; end. { $Log$ - Revision 1.141 2005-01-08 16:00:55 florian + Revision 1.142 2005-01-25 18:48:15 peter + * tf_pic_uses_got added + + Revision 1.141 2005/01/08 16:00:55 florian * fixed loadaddr; I wonder how it ever worked Revision 1.140 2004/12/12 10:50:35 florian