diff --git a/src/lisp/Config.x86_common b/src/lisp/Config.x86_common
index d5537657b16f935775468c1603fb5c0c2726e5cd..94680801210c53e7ed1c8089ff8924625f119753 100644
--- a/src/lisp/Config.x86_common
+++ b/src/lisp/Config.x86_common
@@ -45,10 +45,11 @@ endif
 CPPFLAGS := $(CPP_DEFINE_OPTIONS) $(CPP_INCLUDE_OPTIONS) 
 CFLAGS += -Wstrict-prototypes -Wall -g -fno-omit-frame-pointer
 
-# 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 
+# Default optimization level.  This can be changed in the individual
+# configs.
+COPT = -O2
+
+ASFLAGS = -g
 
 ASSEM_SRC = x86-assem.S
 ARCH_SRC = x86-arch.c
diff --git a/src/lisp/Config.x86_darwin b/src/lisp/Config.x86_darwin
index 0c16404132e53eadfb18df9af0c4595782d4cc44..448e634e1a4ae1ad94f7b940237c1ba53ed6e4da 100644
--- a/src/lisp/Config.x86_darwin
+++ b/src/lisp/Config.x86_darwin
@@ -6,6 +6,7 @@ include Config.x86_common
 # you have the SDK available.
 MIN_VER = -mmacosx-version-min=10.6
 
+CFLAGS += $(COPT)
 CPPFLAGS += -DDARWIN $(MIN_VER) -m32
 CFLAGS += -g3 -mtune=generic
 ASFLAGS += -g3 $(MIN_VER)
diff --git a/src/lisp/Config.x86_linux b/src/lisp/Config.x86_linux
index 457a24a3454237c267e3765093eb84d474815fcb..b991683940163375ea8d8f390668237844ab39b5 100644
--- a/src/lisp/Config.x86_linux
+++ b/src/lisp/Config.x86_linux
@@ -1,6 +1,10 @@
 # -*- Mode: makefile -*-
 include Config.x86_common
 
+# 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.
+COPT = -O1
+CFLAGS += $(COPT)
 CPPFLAGS += -m32 -D__NO_CTYPE -D_GNU_SOURCE
 CFLAGS += -rdynamic  -march=pentium4 -mfpmath=sse -mtune=generic
 
diff --git a/src/lisp/Config.x86_linux_clang b/src/lisp/Config.x86_linux_clang
index cbfb4306a3e688df72a7035dad96d64ef8716e78..df4708222cd11279d4fb5b729c1086d111cecb6a 100644
--- a/src/lisp/Config.x86_linux_clang
+++ b/src/lisp/Config.x86_linux_clang
@@ -3,6 +3,7 @@ include Config.x86_common
 
 CC = clang
 CPPFLAGS += -m32 -D__NO_CTYPE -D_GNU_SOURCE
+CFLAGS += $(COPT)
 CFLAGS += -march=pentium4 -mfpmath=sse -mtune=generic
 
 UNDEFSYMPATTERN = -Xlinker -u -Xlinker &
diff --git a/src/lisp/Config.x86_netbsd b/src/lisp/Config.x86_netbsd
index beb93c23da87b393e37ba7b4f25c04ac8b5c4aee..529b057a0f46347ed13728ffa31e3833cb1b09fe 100644
--- a/src/lisp/Config.x86_netbsd
+++ b/src/lisp/Config.x86_netbsd
@@ -1,6 +1,7 @@
 # -*- Mode: makefile -*-
 include Config.x86_common
 
+CFLAGS += $(COPT)
 CPPFLAGS += -march=pentium4 -mfpmath=sse
 
 UNDEFSYMPATTERN = -Xlinker -u -Xlinker &
diff --git a/src/lisp/Config.x86_solaris_sunc b/src/lisp/Config.x86_solaris_sunc
index 0c137ae4f730b779c4511cf2f065d8cdb4cd4f76..b2c623955e840932082e208ee20776f437064857 100644
--- a/src/lisp/Config.x86_solaris_sunc
+++ b/src/lisp/Config.x86_solaris_sunc
@@ -2,6 +2,7 @@
 include Config.sparc_common
 
 CC = cc -xlibmieee -g
+CFLAGS += $(COPT)
 CFLAGS += -Di386
 CPP = cc -E
 DEPEND_FLAGS = -xM1