Browse Source

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

git-svn-id: trunk@10663 -

Jonas Maebe 17 years ago
parent
commit
7901625134
1 changed files with 10 additions and 0 deletions
  1. 10 0
      rtl/linux/i386/si_prc.inc

+ 10 - 0
rtl/linux/i386/si_prc.inc

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