#REFACTORING by cg
authorClaus Gittinger <cg@exept.de>
Thu, 28 Mar 2019 16:27:18 +0100
changeset 4401 4e87a9cca486
parent 4400 978971f3de9e
child 4402 365edc34920c
#REFACTORING by cg class: ObjectFileLoader class changed: #createLoadableObjectFor:
ObjectFileLoader.st
--- a/ObjectFileLoader.st	Thu Mar 28 16:20:20 2019 +0100
+++ b/ObjectFileLoader.st	Thu Mar 28 16:27:18 2019 +0100
@@ -2647,19 +2647,21 @@
      Other systems may require more ..."
 
     |osType baseFilename oFileName soFileName expFileName librunExpFileName
-     needSharedObject ld ldArg expFile ok outfile output libDir libDirBasename
+     needSharedObject linker ld ldArg expFile ok outfile output libDir libDirBasename
      errorMessage homeDir fmt|
 
     osType := OperatingSystem getOSType.
     baseFilename := baseFilenameString asFilename.
 
+    linker := Filename possiblyQuotedPathname:(self linkCommand).
+
     osType = #win32 ifTrue:[
         self activityNotification:'generating shared object'.
         ParserFlags linkArgs isNil ifTrue:[
-            ld := self linkCommand , ' ' , baseFilenameString , '.obj'.
+            ld := linker , ' ' , (Filename possiblyQuotedPathname:(baseFilenameString,'.obj')).
             ld := ld
                , ' /NOPACK /NOLOGO /DEBUG /MACHINE:I386 /DLL'
-               , ' /OUT:' , baseFilenameString , '.dll '
+               , ' /OUT:' , (Filename possiblyQuotedPathname:(baseFilenameString,'.dll'))
 "/               , ' /DEF:' , baseFileName , '.def'.
         ] ifFalse:[
 "/            libDir := ParserFlags libDirectory.
@@ -2699,24 +2701,24 @@
 "/            ].
 
             ParserFlags useBorlandC ifTrue:[
-                ld := self linkCommand , ' ' , (ParserFlags linkArgs bindWith:baseFilenameString).
-                ld := ld , ' c0d32.obj ' , baseFilenameString , '.obj '.
-                ld := ld , ',' , baseFilenameString , '.dll,,',libDir,'\librun.lib '.
+                ld := linker , ' ' , (ParserFlags linkArgs bindWith:baseFilenameString).
+                ld := ld , ' c0d32.obj ' , (Filename possiblyQuotedPathname:(baseFilenameString , '.obj')).
+                ld := ld , ',' , (Filename possiblyQuotedPathname:(baseFilenameString,'.dll')),',,',libDir,'\librun.lib '.
                 ld := ld , (ParserFlags searchedLibraries asStringCollection asStringWith: $ ).
                 ld := ld , ' ',libDir,'\cs32i.lib,,'.
             ] ifFalse:[
                 ParserFlags useVisualC ifTrue:[
                     "/ todo: fix for correct link libs
-                    ld := self linkCommand , ' ' , (ParserFlags linkArgs bindWith:baseFilenameString).
-                    ld := ld , ' c0d32.obj ' , baseFilenameString , '.obj '.
-                    ld := ld , ',' , baseFilenameString , '.dll,,',libDir,'\librun.lib '.
+                    ld := linker , ' ' , (ParserFlags linkArgs bindWith:baseFilenameString).
+                    ld := ld , ' c0d32.obj ' , (Filename possiblyQuotedPathname:(baseFilenameString,'.obj')).
+                    ld := ld , ',' , (Filename possiblyQuotedPathname:(baseFilenameString,'.dll')),',,',libDir,'\librun.lib '.
                     ld := ld , (ParserFlags searchedLibraries asStringCollection asStringWith: $ ).
                     ld := ld , ' ',libDir,'\cs32i.lib,,'.
                 ] ifFalse:[
                     (ParserFlags useMingw64 or:[ParserFlags useMingw32]) ifTrue:[
-                        ld := self linkCommand , ' ' , (ParserFlags linkArgs bindWith:baseFilenameString).
-                        ld := ld , ' -shared -o ',baseFilenameString,'.dll '.
-                        ld := ld , baseFilenameString,'.obj '.
+                        ld := linker , ' ' , (ParserFlags linkArgs bindWith:baseFilenameString).
+                        ld := ld , ' -shared -o ',(Filename possiblyQuotedPathname:(baseFilenameString,'.dll')).
+                        ld := ld , (Filename possiblyQuotedPathname:(baseFilenameString,'.obj')).
                         ld := ld , libDir,'\librun.lib '.
                         ld := ld , (ParserFlags searchedLibraries asStringCollection asStringWith: $ ).
                     ] ifFalse:[
@@ -2728,7 +2730,7 @@
             ]
         ].
 
-        outfile := (baseFilenameString , '.out').
+        outfile := (Filename possiblyQuotedPathname:(baseFilenameString , '.out')).
         (Verbose or:[ STCCompilerInterface verbose ]) ifTrue:[
             Transcript showCR:('executing: ',ld).
         ].
@@ -2762,7 +2764,7 @@
 
     "/ UNIX systems
 
-    ld := self linkCommand ? 'ld'.
+    ld := linker ? 'ld'.
     needSharedObject := false.
 
     fmt := self loadableBinaryObjectFormat.
@@ -2772,7 +2774,7 @@
          link it to a shared object with 'ld -shared'
         "
         needSharedObject := true.
-        ld := self linkCommand ? 'cc'.
+        ld := linker ? 'cc'.
         ldArg := self linkSharedArgs.
         ldArg isNil ifTrue:[
             "/ some default
@@ -2888,6 +2890,7 @@
 
     "Modified: / 29-07-2004 / 17:29:44 / stefan"
     "Modified: / 25-02-2017 / 09:18:42 / cg"
+    "Modified: / 28-03-2019 / 16:27:04 / Claus Gittinger"
 ! !
 
 !ObjectFileLoader class methodsFor:'lowlevel object loading'!