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

* initialize SysInitUnit in InitSysInitUnitName on BSD

git-svn-id: trunk@41700 -
nickysn 6 жил өмнө
parent
commit
caf1b11db9

+ 14 - 2
compiler/systems/t_bsd.pas

@@ -256,7 +256,9 @@ End;
 procedure TLinkerBSD.InitSysInitUnitName;
 var
   cprtobj,
-  gprtobj : string[80];
+  gprtobj,
+  si_cprt,
+  si_gprt : string[80];
 begin
   if target_info.system in systems_darwin then
     begin
@@ -275,12 +277,18 @@ begin
           prtobj:='dllprt0';
           cprtobj:='dllprt0';
           gprtobj:='dllprt0';
+          SysInitUnit:='si_dll';
+          si_cprt:='si_dll';
+          si_gprt:='si_dll';
         end
       else
         begin
           prtobj:='prt0';
           cprtobj:='cprt0';
           gprtobj:='gprt0';
+          SysInitUnit:='si_prc';
+          si_cprt:='si_c';
+          si_gprt:='si_g';
         end;
       // this one is a bit complex.
       // Only reorder for now if -XL or -XO params are given
@@ -293,6 +301,7 @@ begin
       if cs_profile in current_settings.moduleswitches then
        begin
          prtobj:=gprtobj;
+         SysInitUnit:=si_gprt;
          AddSharedLibrary('c');
          LibrarySuffix:='p';
          linklibc:=true;
@@ -300,7 +309,10 @@ begin
       else
        begin
          if linklibc then
-          prtobj:=cprtobj;
+           begin
+             prtobj:=cprtobj;
+             SysInitUnit:=si_cprt;
+           end;
        end;
     end;
 end;