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
