Avoid conflicts with Solaris <sys/regset.h> defines that clash with our names
When building on Solaris with _XOPEN_SOURCE set to a recent XPG release, <stdlib.h> and other core headers start including <sys/regset.h>, which has a bunch of unfortunately named macros such as "CS", "ES", etc. for x86 & x64 registers which clash with existing variable & struct member names in Xorg - so #undef these so they don't interfere with our use. (Yes, have filed a bug against the system headers for exposing these, but this solves the problem for building on existing releases.) Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com> Reviewed-by: Adam Jackson <ajax@redhat.com>
This commit is contained in:
parent
d7f9be0f85
commit
c4c154d18e
|
@ -38,6 +38,16 @@
|
||||||
****************************************************************************/
|
****************************************************************************/
|
||||||
|
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
|
|
||||||
|
#if defined(__sun) && defined(CS) /* avoid conflicts with Solaris sys/regset.h */
|
||||||
|
# undef CS
|
||||||
|
# undef DS
|
||||||
|
# undef SS
|
||||||
|
# undef ES
|
||||||
|
# undef FS
|
||||||
|
# undef GS
|
||||||
|
#endif
|
||||||
|
|
||||||
#include "x86emu/x86emui.h"
|
#include "x86emu/x86emui.h"
|
||||||
|
|
||||||
/*----------------------------- Implementation ----------------------------*/
|
/*----------------------------- Implementation ----------------------------*/
|
||||||
|
|
|
@ -112,6 +112,15 @@ struct i386_special_regs {
|
||||||
* CS, DS, ES, SS.
|
* CS, DS, ES, SS.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
#if defined(__sun) && defined(CS) /* avoid conflicts with Solaris sys/regset.h */
|
||||||
|
# undef CS
|
||||||
|
# undef DS
|
||||||
|
# undef SS
|
||||||
|
# undef ES
|
||||||
|
# undef FS
|
||||||
|
# undef GS
|
||||||
|
#endif
|
||||||
|
|
||||||
struct i386_segment_regs {
|
struct i386_segment_regs {
|
||||||
u16 CS, DS, SS, ES, FS, GS;
|
u16 CS, DS, SS, ES, FS, GS;
|
||||||
};
|
};
|
||||||
|
|
|
@ -73,7 +73,17 @@
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
#endif
|
/* avoid conflicts with Solaris sys/regset.h */
|
||||||
|
# if defined(__sun) && defined(CS)
|
||||||
|
# undef CS
|
||||||
|
# undef DS
|
||||||
|
# undef SS
|
||||||
|
# undef ES
|
||||||
|
# undef FS
|
||||||
|
# undef GS
|
||||||
|
# endif
|
||||||
|
#endif /* NO_SYS_HEADERS */
|
||||||
|
|
||||||
/*--------------------------- Inline Functions ----------------------------*/
|
/*--------------------------- Inline Functions ----------------------------*/
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
|
|
|
@ -1393,6 +1393,10 @@ typedef struct {
|
||||||
short first, last; /* if for extension, major opcode interval */
|
short first, last; /* if for extension, major opcode interval */
|
||||||
} SetInfoRec, *SetInfoPtr;
|
} SetInfoRec, *SetInfoPtr;
|
||||||
|
|
||||||
|
#if defined(ERR) && defined(__sun)
|
||||||
|
#undef ERR /* Avoid conflict with Solaris <sys/regset.h> */
|
||||||
|
#endif
|
||||||
|
|
||||||
/* These constant are used to index into an array of SetInfoRec. */
|
/* These constant are used to index into an array of SetInfoRec. */
|
||||||
enum { REQ, /* set info for requests */
|
enum { REQ, /* set info for requests */
|
||||||
REP, /* set info for replies */
|
REP, /* set info for replies */
|
||||||
|
|
Loading…
Reference in New Issue