Bläddra i källkod

Merged revisions 7743 via svnmerge from
http://svn.freepascal.org/svn/fpc/trunk

........
r7743 | yury | 2007-06-20 18:47:10 +0300 (‘а, 20 Ёо­ 2007) | 2 lines

* Restored relocs generation for dlls by internal linker. It fixes bug #9048.
* It is possible to generate relocs for exe with internal linker using -WB switch.
........

git-svn-id: branches/fixes_2_2@7744 -

yury 18 år sedan
förälder
incheckning
93e2d9c4f2
2 ändrade filer med 3 tillägg och 3 borttagningar
  1. 1 1
      compiler/ogbase.pas
  2. 2 2
      compiler/ogcoff.pas

+ 1 - 1
compiler/ogbase.pas

@@ -2357,7 +2357,7 @@ implementation
                           break;
                         end;
                   end;
-                if doremove then
+                if doremove and not (RelocSection and (exesec.Name='.reloc')) then
                   begin
                     Comment(V_Debug,'Deleting empty section '+exesec.name);
                     ExeSectionList[i]:=nil;

+ 2 - 2
compiler/ogcoff.pas

@@ -2517,12 +2517,12 @@ const pemagic : array[0..3] of byte = (
         i,j,k,offset : longint;
         w: word;
       begin
-        if not IsSharedLibrary then
+        if not RelocSection then
           exit;
         exesec:=FindExeSection('.reloc');
         if exesec=nil then
           exit;
-        objsec:=internalObjData.createsection('.reloc',0,exesec.SecOptions);
+        objsec:=internalObjData.createsection('.reloc',0,exesec.SecOptions+[oso_data]);
         exesec.AddObjSection(objsec);
         pgaddr:=-1;
         hdrpos:=-1;