Prechádzať zdrojové kódy

* pic'fied startup code

florian 3 rokov pred
rodič
commit
baa28faa19
2 zmenil súbory, kde vykonal 7 pridanie a 7 odobranie
  1. 3 3
      rtl/linux/x86_64/si_c.inc
  2. 4 4
      rtl/linux/x86_64/si_g.inc

+ 3 - 3
rtl/linux/x86_64/si_c.inc

@@ -155,10 +155,10 @@ procedure _FPC_libc_start; assembler; nostackframe; public name '_start';
     pushq %rsp
 
     { Pass address of our own entry points to .fini and .init.  }
-    movq $ini_dummy, %r8
-    movq $ini_dummy, %rcx
+    movq ini_dummy@GOTPCREL(%rip), %r8
+    movq ini_dummy@GOTPCREL(%rip), %rcx
 
-    movq $main_stub, %rdi
+    movq main_stub@GOTPCREL(%rip), %rdi
 
     { Call the user's main function, and exit with its value.
      But let the libc call main.    }

+ 4 - 4
rtl/linux/x86_64/si_g.inc

@@ -56,7 +56,7 @@ procedure gmon_mcleanup; external name '_mcleanup';
 procedure _FPC_libc_start; forward;
 procedure _FPC_libc_haltproc(e:longint); forward;
 
- 
+
 procedure main_stub; assembler; nostackframe;
   asm
     { save return address }
@@ -169,10 +169,10 @@ procedure ini_dummy;
     pushq %rsp
 
     { Pass address of our own entry points to .fini and .init.  }
-    movq $ini_dummy, %r8
-    movq $ini_dummy, %rcx
+    movq ini_dummy@GOTPCREL(%rip), %r8
+    movq ini_dummy@GOTPCREL(%rip), %rcx
 
-    movq $main_stub, %rdi
+    movq main_stub@GOTPCREL(%rip), %rdi
 
     { Call the user's main function, and exit with its value.
      But let the libc call main.    }