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