summaryrefslogtreecommitdiff
path: root/compiler/finput.pas
diff options
context:
space:
mode:
authorpeter <peter@3ad0048d-3df7-0310-abae-a5850022a9f2>2006-04-17 20:48:22 +0000
committerpeter <peter@3ad0048d-3df7-0310-abae-a5850022a9f2>2006-04-17 20:48:22 +0000
commitab13252c1b1460875ca7d9a83c311059b0360da7 (patch)
tree3c6531ec6dd760857a79ace086069bf30e7d4727 /compiler/finput.pas
parentd670add274b908f7da52c0832dcb3f9165d0ac12 (diff)
downloadfpc-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.pas7
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);