[COMMITTED] sparc: Fix sparc32 Fix argument passing to __libc_start_main (BZ 32981)

Adhemerval Zanella Netto adhemerval.zanella@linaro.org
Wed Jun 18 16:16:58 GMT 2025



On 18/06/25 11:32, Andreas Schwab wrote:
> On Jun 18 2025, Adhemerval Zanella wrote:
> 
>> diff --git a/sysdeps/sparc/sparc32/start.S b/sysdeps/sparc/sparc32/start.S
>> index cef7c96cac..8393760da6 100644
>> --- a/sysdeps/sparc/sparc32/start.S
>> +++ b/sysdeps/sparc/sparc32/start.S
>> @@ -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
> 
> FRAME_SIZE+64?

Hum, it did not cross my mind but it makes sense.


More information about the Libc-alpha mailing list