This is the mail archive of the
libc-alpha@sourceware.org
mailing list for the glibc project.
Re: tst-pthread-getattr changes break sparc
On 07/27/2012 07:36 AM, Siddhesh Poyarekar wrote:
> - /* ??? STACK_POINTER_OFFSET is always defined now. */
> -#if defined (STACK_DYNAMIC_OFFSET) || defined (STACK_POINTER_OFFSET)
> +#if defined (STACK_DYNAMIC_OFFSET) || STACK_POINTER_OFFSET
> must_align = true;
> extra_align = BITS_PER_UNIT;
> #endif
Ah, well, fyi, doing a test in the #if isn't going to work.
Also, I'll note that STACK_DYNAMIC_OFFSET has a default too, it's just not here in explow.c, but in function.c. Further, as the comment above says, we can't actually evaluate S_D_O at this time.
Which is going to leave us with something like
if (ACCUMULATE_OUTGOING_ARGS || STACK_POINTER_OFFSET)
must_align = true, extra_align = BITS_PER_UNIT;
We *could* probably arrange for STACK_DYNAMIC_OFFSET to be forced to be aligned to some value that
gets computed from the maximum required by dynamic allocation though. That way we wouldn't have to
take S_D_O into account at all -- we'd know it was cooperating.
Wanna file a gcc bz enhancement request for this?
r~