diff --git a/src/lisp/Config.x86_common b/src/lisp/Config.x86_common
index 31aebfc1ebfe73e6daf128d669fca5104016f638..d5537657b16f935775468c1603fb5c0c2726e5cd 100644
--- a/src/lisp/Config.x86_common
+++ b/src/lisp/Config.x86_common
@@ -44,7 +44,10 @@ endif
 
 CPPFLAGS := $(CPP_DEFINE_OPTIONS) $(CPP_INCLUDE_OPTIONS) 
 CFLAGS += -Wstrict-prototypes -Wall -g -fno-omit-frame-pointer
-CFLAGS += -O2
+
+# gcc 8.1.1 and 8.3.1 (and probably anything after 8.1.1?) won't
+# produce a working lisp with -O2.  Just use -O1.
+CFLAGS += -O1
 ASFLAGS = -g 
 
 ASSEM_SRC = x86-assem.S