Răsfoiți Sursa

* tf_pic_uses_got added

peter 20 ani în urmă
părinte
comite
0991cb288d

+ 6 - 2
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

+ 6 - 3
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
 

+ 5 - 2
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

+ 6 - 2
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