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