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

+ ELF linker: handle R_386_GOTOFF and R_X86_64_GOTOFF64 relocations

git-svn-id: trunk@22830 -
sergei 13 жил өмнө
parent
commit
90d564e6a5

+ 4 - 1
compiler/i386/cpuelf.pas

@@ -408,7 +408,10 @@ implementation
                   address:=address+relocval;
                 end;
 
-              //R_386_GOTOFF:  !!TODO
+              R_386_GOTOFF:
+                begin
+                  address:=address+relocval-gotsymbol.address;
+                end;
 
               else
                 begin

+ 5 - 0
compiler/x86_64/cpuelf.pas

@@ -484,6 +484,11 @@ implementation
                   address:=address+relocval;
                 end;
 
+              R_X86_64_GOTOFF64:
+                begin
+                  address:=address+relocval-gotsymbol.address;
+                end;
+
               else
                 begin
                   writeln(objreloc.typ);