mirror of
https://sourceware.org/git/glibc.git
synced 2025-08-01 10:06:57 +03:00
sparc: Fix argument passing to __libc_start_main (BZ 32981)
sparc start.S does not provide the final argument for __libc_start_main, which is the highest stack address used to update the __libc_stack_end.A This fixes elf/tst-execstack-prog-static-tunable on sparc64. On sparcv9 this does not happen because the kernel puts an auxv value, which turns to point to a value in the stack itself. Checked on sparc64-linux-gnu. Reviewed-by: Florian Weimer <fweimer@redhat.com>
This commit is contained in:
@ -73,6 +73,10 @@ _start:
|
||||
be NULL. */
|
||||
mov %g1, %o5
|
||||
|
||||
/* Provide the highest stack address to update the __libc_stack_end (used
|
||||
to enable executable stacks if required). */
|
||||
st %sp, [%sp+23*4]
|
||||
|
||||
/* Let libc do the rest of the initialization, and call main. */
|
||||
call __libc_start_main
|
||||
nop
|
||||
|
@ -74,6 +74,10 @@ _start:
|
||||
be NULL. */
|
||||
mov %g1, %o5
|
||||
|
||||
/* Provide the highest stack address to update the __libc_stack_end (used
|
||||
to enable executable stacks if required). */
|
||||
stx %sp, [%sp+STACK_BIAS+22*8]
|
||||
|
||||
/* Let libc do the rest of the initialization, and call main. */
|
||||
call __libc_start_main
|
||||
nop
|
||||
|
Reference in New Issue
Block a user