It turns out there are many examples of external C code that expects the register index defines after a #include <sys/ucontext.h> so we've decided to just back this out for the moment. Sorry about the noise and trouble.
Gordon On Sat, Oct 17, 2015 at 8:44 AM, Gordon Ross <[email protected]> wrote: > After 5876, the header file sys/regset.h is no longer > included by sys/ucontext.h, and therefore no longer > indirectly included by sys/signal.h, stdlib.h etc. > > Most programs are not affected at all. Many programs > no longer need to work around "surprise" defines for > SS, CS, ERR, and the like. > > A few programs will require changes as a result of > this header change, where the code expected symbols > like EAX to be defined after include <sys/ucontex.h>. > Such program are easily adapted to this change by > adding an include <sys/regset.h>. Without that, > the code will fail to compile with errors like: > "signal.c", line 79: undefined symbol: UESP > "signal.c", line 80: undefined symbol: EIP > "signal.c", line 81: undefined symbol: EFL > "signal.c", line 82: undefined symbol: EAX > "signal.c", line 83: undefined symbol: EDX > > There were several examples in illumos-gate where > this change was required. Here's one example: > --- a/usr/src/cmd/csh/i386/signal.c > +++ b/usr/src/cmd/csh/i386/signal.c > @@ -28,6 +26,7 @@ > #include <sys/types.h> > #include <sys/siginfo.h> > #include <sys/ucontext.h> > +#include <sys/regset.h> > #include <signal.h> > #include "signal.h" > #include <errno.h> > > The new rule is basically: If your source module needs the register > name defines (EIP etc.) it needs to include <sys/regset.h>. > > I hope this solves more problems than it causes. ------------------------------------------- illumos-discuss Archives: https://www.listbox.com/member/archive/182180/=now RSS Feed: https://www.listbox.com/member/archive/rss/182180/21175430-2e6923be Modify Your Subscription: https://www.listbox.com/member/?member_id=21175430&id_secret=21175430-6a77cda4 Powered by Listbox: http://www.listbox.com
