[ignoring newsgroups] On 28/06/17 09:48, 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. > this is a c++ abi change (name mangling of c++ function taking ucontext_t* arguments changes, but such arg should be rare in extern functions) > #define MD_FALLBACK_FRAME_STATE_FOR arc_fallback_frame_state > > static __attribute__((noinline)) _Unwind_Reason_Code > arc_fallback_frame_state (struct _Unwind_Context *context, > _Unwind_FrameState *fs) > { > struct rt_sigframe { > siginfo_t info; > struct ucontext uc; > unsigned int sigret_magic; > }; > > Can we atleast define a preprocessor macro to indicate this ABI change so downstream projects can support both > things in short term ? > this is not an abi issue but api (source code) issue: there is no 'struct ucontext' in the public api, only ucontext_t (without struct) so i think libgcc should be fixed anyway. > I see other threads on mailing list about distros being notifed etc of this ... > > -Vineet