* call finalization routine of dynamic linker before exiting (forgot to

commit earlier)

git-svn-id: trunk@10663 -
This commit is contained in:
Jonas Maebe 2008-04-14 12:00:48 +00:00
parent 18e663240a
commit 7901625134

View File

@ -40,6 +40,9 @@ procedure PASCALMAIN; external name 'PASCALMAIN';
******************************************************************************} ******************************************************************************}
{$asmmode ATT} {$asmmode ATT}
var
dlexitproc: pointer;
procedure _FPC_proc_start; assembler; nostackframe; public name '_start'; procedure _FPC_proc_start; assembler; nostackframe; public name '_start';
asm asm
{ First locate the start of the environment variables } { First locate the start of the environment variables }
@ -52,6 +55,8 @@ asm
movl %ecx,operatingsystem_parameter_argc movl %ecx,operatingsystem_parameter_argc
movl %ebx,operatingsystem_parameter_argv movl %ebx,operatingsystem_parameter_argv
movl %edx, dlexitproc
fninit { initialize fpu } fninit { initialize fpu }
fwait fwait
fldcw Default8087CW fldcw Default8087CW
@ -70,6 +75,11 @@ end;
procedure _FPC_proc_haltproc; assembler; nostackframe; public name '_haltproc'; procedure _FPC_proc_haltproc; assembler; nostackframe; public name '_haltproc';
asm asm
.Lhaltproc: .Lhaltproc:
movl dlexitproc,%eax
testl %eax,%eax
je .Lnodlexitproc
call *%eax
.Lnodlexitproc:
movl syscall_nr_exit_group,%eax movl syscall_nr_exit_group,%eax
{$if sizeof(ExitCode)=2} {$if sizeof(ExitCode)=2}
movzwl ExitCode,%ebx movzwl ExitCode,%ebx