Raymond Toy pushed to branch master at cmucl / cmucl
Commits: f4ccaa45 by Raymond Toy at 2022-06-26T22:07:54+00:00 Fix #122: gcc 11 can't build cmucl
- - - - - 00907500 by Raymond Toy at 2022-06-26T22:07:54+00:00 Merge branch 'issue-122-gnu-source' into 'master'
Fix #122: gcc 11 can't build cmucl
Closes #122
See merge request cmucl/cmucl!84 - - - - -
4 changed files:
- src/lisp/Config.x86_linux - src/lisp/Config.x86_linux_clang - src/lisp/Linux-os.c - src/lisp/x86-lispregs.h
Changes:
===================================== 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 &
===================================== 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
===================================== 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; }
===================================== 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)
View it on GitLab: https://gitlab.common-lisp.net/cmucl/cmucl/-/compare/ca3deab27d85d3fbfbc6d96...