summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--Config.in25
-rw-r--r--Makefile.flags9
-rw-r--r--scripts/defconfig2
3 files changed, 25 insertions, 11 deletions
diff --git a/Config.in b/Config.in
index 499233bc1..c5f8b3c0f 100644
--- a/Config.in
+++ b/Config.in
@@ -352,16 +352,25 @@ config DEBUG
Most people should answer N.
-config DEBUG_PESSIMIZE
- bool "Disable compiler optimizations."
+config WERROR
+ bool "Abort compilation on any warning"
default n
- depends on DEBUG
help
- The compiler's optimization of source code can eliminate and reorder
- code, resulting in an executable that's hard to understand when
- stepping through it with a debugger. This switches it off, resulting
- in a much bigger executable that more closely matches the source
- code.
+ Selecting this will add -Werror to gcc command line.
+
+ Most people should answer N.
+
+# Seems to be unused
+#config DEBUG_PESSIMIZE
+# bool "Disable compiler optimizations."
+# default n
+# depends on DEBUG
+# help
+# The compiler's optimization of source code can eliminate and reorder
+# code, resulting in an executable that's hard to understand when
+# stepping through it with a debugger. This switches it off, resulting
+# in a much bigger executable that more closely matches the source
+# code.
choice
prompt "Additional debugging library"
diff --git a/Makefile.flags b/Makefile.flags
index 8f6d0c9bd..cec73df8f 100644
--- a/Makefile.flags
+++ b/Makefile.flags
@@ -17,10 +17,15 @@ CPPFLAGS += \
# flag checks are grouped together to speed the checks up a bit..
CFLAGS += $(call cc-option,-Wall -Wshadow,)
+ifeq ($(CONFIG_WERROR),y)
+CFLAGS += $(call cc-option,-Werror,)
+endif
CFLAGS += $(call cc-option,-Wundef -Wold-style-definition -Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations,)
CFLAGS += $(call cc-option,-Os -fno-builtin-strlen -finline-limit=0 -fomit-frame-pointer -ffunction-sections -fdata-sections,)
-CFLAGS += $(call cc-option,-static-libgcc -funsigned-char,)
-CFLAGS += $(call cc-option,-falign-functions=1 -falign-jumps=1 -falign-loops=1,)
+# -fno-guess-branch-probability: prohibit pseudo-random guessing
+# of branch probabilities (hopefully makes bloatcheck more stable)
+CFLAGS += $(call cc-option,-funsigned-char -fno-guess-branch-probability -static-libgcc,)
+CFLAGS += $(call cc-option,-falign-functions=1 -falign-jumps=1 -falign-labels=1 -falign-loops=1,)
# FIXME: These warnings are at least partially to be concerned about and should
# be fixed..
diff --git a/scripts/defconfig b/scripts/defconfig
index ed9959985..a3e59c8aa 100644
--- a/scripts/defconfig
+++ b/scripts/defconfig
@@ -45,7 +45,7 @@ CONFIG_LFS=y
# Debugging Options
#
# CONFIG_DEBUG is not set
-# CONFIG_DEBUG_PESSIMIZE is not set
+# CONFIG_WERROR is not set
# CONFIG_NO_DEBUG_LIB is not set
# CONFIG_DMALLOC is not set
# CONFIG_EFENCE is not set