mirror of git://sourceware.org/git/glibc.git
sparc: Fix sparc32 Fix argument passing to __libc_start_main (BZ 32981)
Commit 404526ee2e
changed _start to write
the last argument to __libc_start_main without taking into consideration
that the function did not create a full stack frame, which leads to
overwriting the argv[0].
This commit is contained in:
parent
0dbbc44bfd
commit
8788bd77d6
|
@ -35,6 +35,7 @@
|
|||
|
||||
#include <sysdep.h>
|
||||
|
||||
#define FRAME_SIZE 104
|
||||
|
||||
.section ".text"
|
||||
.align 4
|
||||
|
@ -48,12 +49,12 @@ _start:
|
|||
/* Terminate the stack frame, and reserve space for functions to
|
||||
drop their arguments. */
|
||||
mov %g0, %fp
|
||||
sub %sp, 6*4, %sp
|
||||
sub %sp, FRAME_SIZE, %sp
|
||||
|
||||
/* Extract the arguments and environment as encoded on the stack. The
|
||||
argument info starts after one register window (16 words) past the SP. */
|
||||
ld [%sp+22*4], %o1
|
||||
add %sp, 23*4, %o2
|
||||
ld [%sp+168], %o1
|
||||
add %sp, 172, %o2
|
||||
|
||||
/* Load the addresses of the user entry points. */
|
||||
#ifndef PIC
|
||||
|
|
Loading…
Reference in New Issue