diff --git a/common/config_preproc.cc b/common/config_preproc.cc
index d3a8a0b464a5ddb9a1e5e8cd546c444da4ac1a9b..198d939fa2f8e2dc86bdbc0ce56a82b4cf2d8331 100644
--- a/common/config_preproc.cc
+++ b/common/config_preproc.cc
@@ -15,6 +15,10 @@
 #include <stdio.h>
 #include <stdlib.h>
 
+// Solaris 10 on x86 may define ERR in /usr/include/sys/regset.h depending on compiler and flags.
+// Workaround enum conflict with undef.
+#undef ERR
+
 void string_chain_add(string_chain_t **ec, char *s)
 {
   string_chain_t *i = *ec, *new_ec;