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"
# 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..
# 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