ucontect vs. ucontext_t (was Re: [RFC 4/6] ARC: Initial port to glibc)

Joseph Myers joseph at codesourcery.com
Wed Jun 28 02:30:01 PDT 2017


On Wed, 28 Jun 2017, Vineet Gupta wrote:

> On 06/27/2017 02:56 PM, Joseph Myers wrote:
> > > +/* Userlevel context.  */
> > > +typedef struct ucontext
> > > +  {
> > > +    unsigned long uc_flags;
> > > +    struct ucontext *uc_link;
> > This is now struct ucontext_t.
> 
> Isn't this an ABI change. After making change as you suggested, building
> gcc/libgcc itself fails now as the ARC libgcc unwinder expects ucontext.

Florian established a lack of ucontext in C++ mangled names in Fedora.

> Can we atleast define a preprocessor macro to indicate this ABI change so
> downstream projects can support both things in short term ?

Projects should use the standard typedef name ucontext_t unconditionally, 
not the tag; the typedef name was already present in glibc before this 
change and should be present in any library implementing these interfaces.  
See my libgcc patch 
<https://gcc.gnu.org/ml/gcc-patches/2017-06/msg02032.html>, now committed 
to trunk.  This is much like the removal of the struct siginfo tag a few 
years ago (including the same motivation, to follow POSIX namespace 
rules); projects had to use siginfo_t, which already existed, instead.

I see no references to ucontext at all in ARC libgcc (ARC doesn't have a 
linux-unwind.h file).

-- 
Joseph S. Myers
joseph at codesourcery.com



More information about the linux-snps-arc mailing list