mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-04-10 23:20:29 +02:00
- RTL, Linux/FreeBSD shared library startup: removed FPC_SHARED_LIB_EXIT label, it is a leftover from times when library startup code was erroneously halting owning process on exit.
git-svn-id: trunk@25737 -
This commit is contained in:
parent
f2a4d1bbbc
commit
a3364a4b80
@ -75,9 +75,6 @@ FPC_SHARED_LIB_START:
|
||||
.type _haltproc,@function
|
||||
|
||||
_haltproc:
|
||||
.globl FPC_SHARED_LIB_EXIT
|
||||
.type FPC_SHARED_LIB_EXIT,@function
|
||||
FPC_SHARED_LIB_EXIT:
|
||||
call FPC_LIB_EXIT@PLT
|
||||
mov $1,%eax
|
||||
movzwl operatingsystem_result,%ebx
|
||||
|
@ -62,9 +62,6 @@ FPC_SHARED_LIB_START:
|
||||
/* this routine is only called when the halt() routine of the RTL embedded in
|
||||
the shared library is called */
|
||||
_haltproc:
|
||||
.globl FPC_SHARED_LIB_EXIT
|
||||
.type FPC_SHARED_LIB_EXIT,@function
|
||||
FPC_SHARED_LIB_EXIT:
|
||||
call FPC_LIB_EXIT@PLT
|
||||
movl $1,%eax /* exit syscall */
|
||||
movq operatingsystem_result(%rip),%rbx
|
||||
|
@ -48,9 +48,6 @@ FPC_SHARED_LIB_START:
|
||||
.type _haltproc,@function
|
||||
_haltproc:
|
||||
_haltproc2: # GAS <= 2.15 bug: generates larger jump if a label is exported
|
||||
.globl FPC_SHARED_LIB_EXIT
|
||||
.type FPC_SHARED_LIB_EXIT,@function
|
||||
FPC_SHARED_LIB_EXIT:
|
||||
subl $12, %esp /* align back to 16 bytes if it was before the call */
|
||||
call lib_exit
|
||||
xorl %eax,%eax
|
||||
|
@ -36,9 +36,6 @@ FPC_SHARED_LIB_START:
|
||||
.globl _haltproc
|
||||
.type _haltproc,@function
|
||||
haltproc:
|
||||
.globl FPC_SHARED_LIB_EXIT
|
||||
.type FPC_SHARED_LIB_EXIT,@function
|
||||
FPC_SHARED_LIB_EXIT:
|
||||
moveq.l #1,%d0
|
||||
move.w U_SYSLINUX_EXITCODE,%d1
|
||||
trap #0
|
||||
|
@ -133,11 +133,8 @@ _start:
|
||||
.size _start, .-_start
|
||||
|
||||
.globl _haltproc
|
||||
.globl FPC_SHARED_LIB_EXIT
|
||||
.ent _haltproc
|
||||
.type _haltproc,@function
|
||||
.type FPC_SHARED_LIB_EXIT,@function
|
||||
FPC_SHARED_LIB_EXIT:
|
||||
_haltproc:
|
||||
/* TODO: need to check whether __dl_fini is non-zero and call the function pointer in case */
|
||||
|
||||
@ -156,3 +153,4 @@ _haltproc:
|
||||
.comm operatingsystem_parameter_argc,4
|
||||
.comm operatingsystem_parameter_argv,4
|
||||
|
||||
.section .note.GNU-stack,"",@progbits
|
||||
|
@ -48,10 +48,7 @@ FPC_SHARED_LIB_START:
|
||||
blr
|
||||
|
||||
.globl _haltproc
|
||||
.globl FPC_SHARED_LIB_EXIT
|
||||
.type FPC_SHARED_LIB_EXIT,@function
|
||||
.type _haltproc,@function
|
||||
FPC_SHARED_LIB_EXIT:
|
||||
_haltproc:
|
||||
lis 11,operatingsystem_result@ha
|
||||
lwz 3,operatingsystem_result@l(3)
|
||||
|
@ -359,7 +359,6 @@ FUNCTION_PROLOG FPC_SHARED_LIB_START
|
||||
/* this routine is only called when the halt() routine of the RTL embedded in
|
||||
the shared library is called */
|
||||
FUNCTION_PROLOG _haltproc
|
||||
FUNCTION_PROLOG FPC_SHARED_LIB_EXIT
|
||||
/* exit_group call */
|
||||
LOAD_64BIT_VAL 3, operatingsystem_result
|
||||
lwz 3, 0(3)
|
||||
|
@ -68,9 +68,6 @@ _startlib:
|
||||
.globl _haltproc
|
||||
.type _haltproc,@function
|
||||
_haltproc:
|
||||
.globl FPC_SHARED_LIB_EXIT
|
||||
.type FPC_SHARED_LIB_EXIT,@function
|
||||
FPC_SHARED_LIB_EXIT:
|
||||
movl $231,%eax /* exit_group call */
|
||||
movq operatingsystem_result@GOTPCREL(%rip),%rbx
|
||||
movzwl (%rbx),%edi
|
||||
|
Loading…
Reference in New Issue
Block a user