This is the mail archive of the libc-alpha@sourceware.org mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

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~


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]