* generic support for setting islibrary to true for libraries (+ changed

tlibrary1 to test this)

git-svn-id: trunk@12377 -
This commit is contained in:
Jonas Maebe 2008-12-17 17:49:16 +00:00
parent d4d7b695c7
commit d3923b315a
3 changed files with 15 additions and 10 deletions

View File

@ -1960,13 +1960,7 @@ implementation
procedure gen_entry_code(list:TAsmList);
var
paraloc1,
paraloc2 : tcgpara;
begin
paraloc1.init;
paraloc2.init;
{ the actual profile code can clobber some registers,
therefore if the context must be saved, do it before
the actual call to the profile code
@ -1987,7 +1981,10 @@ implementation
begin
{ initialize units }
cg.allocallcpuregisters(list);
cg.a_call_name(list,'FPC_INITIALIZEUNITS',false);
if not(current_module.islibrary) then
cg.a_call_name(list,'FPC_INITIALIZEUNITS',false)
else
cg.a_call_name(list,'FPC_LIBINITIALIZEUNITS',false);
cg.deallocallcpuregisters(list);
end;
@ -1996,9 +1993,6 @@ implementation
{$ifdef OLDREGVARS}
load_regvars(list,nil);
{$endif OLDREGVARS}
paraloc1.done;
paraloc2.done;
end;

View File

@ -769,6 +769,15 @@ begin
end;
procedure internal_initializeunits; external name 'FPC_INITIALIZEUNITS';
procedure fpc_LibInitializeUnits;[public,alias:'FPC_LIBINITIALIZEUNITS'];
begin
IsLibrary:=true;
internal_initializeunits;
end;
procedure FinalizeUnits;[public,alias:'FPC_FINALIZEUNITS'];
begin
with {$ifdef FPC_HAS_INDIRECT_MAIN_INFORMATION}PInitFinalTable(EntryInformation.{$endif FPC_HAS_INDIRECT_MAIN_INFORMATION}

View File

@ -36,6 +36,8 @@ const
procedure Test;export;
begin
if not islibrary then
halt(1);
writeln('Hoi');
end;