Bladeren bron

Merged revisions 2060 via svnmerge from
svn+ssh://[email protected]/FPC/svn/fpc/trunk

r2060 (jonas)
* don't change the binding of real external symbols in the patch
of r2058, fixes the binary writer

git-svn-id: branches/fixes_2_0@2061 -

Jonas Maebe 20 jaren geleden
bovenliggende
commit
d1d38d7078
1 gewijzigde bestanden met toevoegingen van 11 en 5 verwijderingen
  1. 11 5
      compiler/psub.pas

+ 11 - 5
compiler/psub.pas

@@ -1338,11 +1338,17 @@ implementation
          constsymtable:=oldconstsymtable;
 
          { make sure that references to forward-declared functions are not }
-         { treated as references to external symbols, needed for darwin    }
-         if (po_global in pd.procoptions) then
-           objectlibrary.newasmsymbol(pd.mangledname,AB_GLOBAL,AT_FUNCTION)
-         else
-           objectlibrary.newasmsymbol(pd.mangledname,AB_LOCAL,AT_FUNCTION);
+         { treated as references to external symbols, needed for darwin.   }
+
+         { make sure we don't change the binding of real external symbols }
+         if not(po_external in pd.procoptions) then
+           begin
+             if (po_global in pd.procoptions) or
+                (cs_profile in aktmoduleswitches) then
+               objectlibrary.newasmsymbol(pd.mangledname,AB_GLOBAL,AT_FUNCTION)
+             else
+               objectlibrary.newasmsymbol(pd.mangledname,AB_LOCAL,AT_FUNCTION);
+           end;
 
          current_procinfo:=old_current_procinfo;
       end;