Sfoglia il codice sorgente

* cross-darwin support

git-svn-id: trunk@1796 -
marco 19 anni fa
parent
commit
d2e7a4e587
1 ha cambiato i file con 12 aggiunte e 2 eliminazioni
  1. 12 2
      compiler/systems/t_bsd.pas

+ 12 - 2
compiler/systems/t_bsd.pas

@@ -364,7 +364,12 @@ begin
       linklibc := true;
       linklibc := true;
       if not(isdll) then
       if not(isdll) then
         if not(cs_profile in aktmoduleswitches) then
         if not(cs_profile in aktmoduleswitches) then
-          prtobj:='/usr/lib/crt1.o'
+          begin
+             if librarysearchpath.FindFile('crt1.o',s) then
+             prtobj:=s
+            else
+             prtobj:='/usr/lib/crt1.o';
+          end
         else
         else
           prtobj:='/usr/lib/gcrt1.o'
           prtobj:='/usr/lib/gcrt1.o'
       else
       else
@@ -544,7 +549,12 @@ begin
    DynLinkStr:='-dynamic-linker='+Info.DynamicLinker;
    DynLinkStr:='-dynamic-linker='+Info.DynamicLinker;
 
 
   if CShared Then
   if CShared Then
-   DynLinKStr:=DynLinkStr+' --shared';
+   begin
+   if  (target_info.system <> system_powerpc_darwin) then
+     DynLinKStr:=DynLinkStr+' --shared'
+    else
+     DynLinKStr:=DynLinkStr+' -dynamic'; // one dash!
+   end;  
 { Write used files and libraries }
 { Write used files and libraries }
   WriteResponseFile(false);
   WriteResponseFile(false);