diff --git a/src/lisp/Config.x86_linux b/src/lisp/Config.x86_linux index cacc0f513ae652a0496d969af3751f08e4591105..8ed11ef5f128ea07681bcb82e92b55b2747b09df 100644 --- a/src/lisp/Config.x86_linux +++ b/src/lisp/Config.x86_linux @@ -2,7 +2,7 @@ include Config.x86_common CFLAGS += $(COPT) -CPPFLAGS += -m32 -D__NO_CTYPE -D_GNU_SOURCE +CPPFLAGS += -m32 -D__NO_CTYPE CFLAGS += -rdynamic -march=pentium4 -mfpmath=sse -mtune=generic UNDEFSYMPATTERN = -Xlinker -u -Xlinker & diff --git a/src/lisp/Config.x86_linux_clang b/src/lisp/Config.x86_linux_clang index c534e868b781214a328e23296654f167bc8fa7d1..169bf07784f2116f51f105528be6d805275f05e1 100644 --- a/src/lisp/Config.x86_linux_clang +++ b/src/lisp/Config.x86_linux_clang @@ -2,7 +2,7 @@ include Config.x86_common CC = clang -CPPFLAGS += -m32 -D__NO_CTYPE -D_GNU_SOURCE +CPPFLAGS += -m32 -D__NO_CTYPE CFLAGS += $(COPT) # Allow sse2 instructions (-msse2); and tune for pentium4 diff --git a/src/lisp/Linux-os.c b/src/lisp/Linux-os.c index daee0f4185b4bea4a8fe1ea652722f90167227df..078ae8b1694b6181aacc6f09aa83fd751984532c 100644 --- a/src/lisp/Linux-os.c +++ b/src/lisp/Linux-os.c @@ -17,6 +17,8 @@ * */ +#define _GNU_SOURCE /* for reg_* constants in uc_mcontext.gregs */ +#include <signal.h> #include <stdio.h> #include <sys/param.h> #include <sys/file.h> @@ -198,6 +200,8 @@ os_sigcontext_reg(ucontext_t *scp, int offset) return (unsigned long *) &scp->uc_mcontext.gregs[REG_ESI]; case 14: return (unsigned long *) &scp->uc_mcontext.gregs[REG_EDI]; + case 16: + return (unsigned long*) &scp->uc_mcontext.gregs[REG_EFL]; } return NULL; } diff --git a/src/lisp/x86-lispregs.h b/src/lisp/x86-lispregs.h index aa9608f2a078b7d044663faefcaac18074581407..ff7228f724f348bbd7e2a311539eb917590f01f1 100644 --- a/src/lisp/x86-lispregs.h +++ b/src/lisp/x86-lispregs.h @@ -30,6 +30,7 @@ #define reg_EBP REG(10) #define reg_ESI REG(12) #define reg_EDI REG(14) +#define reg_EFL REG(16) #define reg_SP reg_ESP #define reg_FP reg_EBP @@ -60,7 +61,7 @@ #define SC_EFLAGS(sc) ((sc)->uc_mcontext->ss.eflags) #endif #elif defined(__linux__) -#define SC_EFLAGS(sc) ((sc)->uc_mcontext.gregs[REG_EFL]) +#define SC_EFLAGS(sc) SC_REG(sc, reg_EFL) #elif defined(__NetBSD__) #define SC_EFLAGS(sc) ((sc)->uc_mcontext.__gregs[_REG_EFL]) #elif defined(SOLARIS)