diff options
author | peter <peter@3ad0048d-3df7-0310-abae-a5850022a9f2> | 2006-04-17 20:48:22 +0000 |
---|---|---|
committer | peter <peter@3ad0048d-3df7-0310-abae-a5850022a9f2> | 2006-04-17 20:48:22 +0000 |
commit | ab13252c1b1460875ca7d9a83c311059b0360da7 (patch) | |
tree | 3c6531ec6dd760857a79ace086069bf30e7d4727 /compiler/finput.pas | |
parent | d670add274b908f7da52c0832dcb3f9165d0ac12 (diff) | |
download | fpc-ab13252c1b1460875ca7d9a83c311059b0360da7.tar.gz |
* fix coff section names to fix resourcestrings with
the external linker
* create import libraries for dll imports, this uses
the new objdata framework to generate the binary
object files directly without needing an assembler pass
* store import_dll and import_name in ppu
* external linker uses import libraries
* internal linker uses import info from symtables,
no dlls are needed anymore
git-svn-id: http://svn.freepascal.org/svn/fpc/trunk@3255 3ad0048d-3df7-0310-abae-a5850022a9f2
Diffstat (limited to 'compiler/finput.pas')
-rw-r--r-- | compiler/finput.pas | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/compiler/finput.pas b/compiler/finput.pas index c46c13e408..3bcbcb6bd0 100644 --- a/compiler/finput.pas +++ b/compiler/finput.pas @@ -146,6 +146,7 @@ interface objfilename, { fullname of the objectfile } newfilename, { fullname of the assemblerfile } ppufilename, { fullname of the ppufile } + importlibfilename, { fullname of the import libraryfile } staticlibfilename, { fullname of the static libraryfile } sharedlibfilename, { fullname of the shared libraryfile } mapfilename, { fullname of the mapfile } @@ -630,6 +631,7 @@ uses stringdispose(objfilename); stringdispose(newfilename); stringdispose(ppufilename); + stringdispose(importlibfilename); stringdispose(staticlibfilename); stringdispose(sharedlibfilename); stringdispose(mapfilename); @@ -677,13 +679,16 @@ uses if OutputExtension <> '' then extension := OutputExtension; end; + importlibfilename:=stringdup(p+target_info.staticClibprefix+'imp'+n+target_info.staticlibext); staticlibfilename:=stringdup(p+target_info.staticlibprefix+n+target_info.staticlibext); + { output dir of exe can be specified separatly } if AllowOutput and (OutputExeDir<>'') then p:=OutputExeDir else p:=path^; sharedlibfilename:=stringdup(p+prefix+n+suffix+extension); + { don't use extension alone to check, it can be empty !! } if (OutputFile<>'') or (OutputExtension<>'') then exefilename:=stringdup(p+n+OutputExtension) @@ -701,6 +706,7 @@ uses ppufilename:=nil; objfilename:=nil; newfilename:=nil; + importlibfilename:=nil; staticlibfilename:=nil; sharedlibfilename:=nil; exefilename:=nil; @@ -731,6 +737,7 @@ uses stringdispose(objfilename); stringdispose(newfilename); stringdispose(ppufilename); + stringdispose(importlibfilename); stringdispose(staticlibfilename); stringdispose(sharedlibfilename); stringdispose(exefilename); |