1
0
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:
Adhemerval Zanella
2025-05-30 12:40:04 -03:00
parent d475e5bf4f
commit 404526ee2e
2 changed files with 8 additions and 0 deletions

View File

@ -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

View File

@ -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