diff options
author | svenbarth <svenbarth@3ad0048d-3df7-0310-abae-a5850022a9f2> | 2015-11-22 18:13:20 +0000 |
---|---|---|
committer | svenbarth <svenbarth@3ad0048d-3df7-0310-abae-a5850022a9f2> | 2015-11-22 18:13:20 +0000 |
commit | f66b9f4c81a917c6900a85bd7e6371503448df5b (patch) | |
tree | 29fdfa00fbb5c45aa98c2c1e38ceb57c7aa4610c | |
parent | bd62be9970660f4a265b1fc8c5be50b8858092e3 (diff) | |
download | fpc-f66b9f4c81a917c6900a85bd7e6371503448df5b.tar.gz |
Improve PIC startup code when not using C libraries. It correctly reaches PascalMain, but it crashes inside fpc_cpucodeinit when setting has_mmx_support :/
git-svn-id: http://svn.freepascal.org/svn/fpc/branches/svenbarth@32497 3ad0048d-3df7-0310-abae-a5850022a9f2
-rw-r--r-- | packages/rtl/linux/i386/si_prc.inc | 15 |
1 files changed, 8 insertions, 7 deletions
diff --git a/packages/rtl/linux/i386/si_prc.inc b/packages/rtl/linux/i386/si_prc.inc index 39d21583c8..846762a4bd 100644 --- a/packages/rtl/linux/i386/si_prc.inc +++ b/packages/rtl/linux/i386/si_prc.inc @@ -107,22 +107,23 @@ asm addl $_GLOBAL_OFFSET_TABLE_,%ebx movl SysInitEntryInformation@GOT(%ebx),%ecx - movl %eax,SysInitEntryInformation.Platform.envp(%ebx) + + movl %eax,TEntryInformation.Platform.envp(%ecx) popl %eax - movl %eax,SysInitEntryInformation.Platform.argc(%ebx) + movl %eax,TEntryInformation.Platform.argc(%ecx) popl %eax - movl %eax,SysInitEntryInformation.Platform.argv(%ebx) + movl %eax,TEntryInformation.Platform.argv(%ecx) - leal _FPC_proc_haltproc,%eax - movl %eax,SysInitEntryInformation.Platform.haltproc(%ebx) + movl _FPC_proc_haltproc@GOT(%ebx),%eax + movl %eax,TEntryInformation.Platform.haltproc(%ecx) call SysResetFPU - movl %esp,SysInitEntryInformation.Platform.stkptr(%ebx) + movl %esp,TEntryInformation.Platform.stkptr(%ecx) - movl %ebx,%eax + movl %ecx,%eax {$else FPC_PIC} movl %eax,SysInitEntryInformation.Platform.envp movl %ecx,SysInitEntryInformation.Platform.argc |