--- 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'!