From 23e289387f0bf5bf31d1b0caf97c6526756a9f25 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=B6rn=20Heusipp?= Date: Thu, 13 Aug 2020 11:42:35 +0000 Subject: [PATCH] [Mod] build: Makefile: Consolidate warning otiosn for all GCC and all Clang backends. [Mod] build: Makefile: Add -Wpedantic to default set of warnigns for all compilers. git-svn-id: https://source.openmpt.org/svn/openmpt/trunk/OpenMPT@13468 56274372-70c3-4bfc-bfc3-4c3a0b034d27 --- Makefile | 4 +-- build/make/config-afl.mk | 2 ++ build/make/config-clang.mk | 26 +------------------- build/make/config-djgpp.mk | 2 +- build/make/config-emscripten.mk | 13 +--------- build/make/config-gcc.mk | 22 +---------------- build/make/config-mingw64-win32.mk | 2 +- build/make/config-mingw64-win64.mk | 2 +- build/make/config-mingw64-winrt-amd64.mk | 2 +- build/make/config-mingw64-winrt-x86.mk | 2 +- build/make/warnings-clang.mk | 31 ++++++++++++++++++++++++ build/make/warnings-gcc.mk | 23 ++++++++++++++++++ 12 files changed, 66 insertions(+), 65 deletions(-) create mode 100644 build/make/warnings-clang.mk create mode 100644 build/make/warnings-gcc.mk diff --git a/Makefile b/Makefile index 3e4421f7f3..490653894c 100644 --- a/Makefile +++ b/Makefile @@ -372,8 +372,8 @@ CXXFLAGS += -fno-omit-frame-pointer CFLAGS += -fno-omit-frame-pointer endif -CXXFLAGS += -Wall -Wextra -Wundef -Wcast-qual -Wcast-align $(CXXFLAGS_WARNINGS) -CFLAGS += -Wall -Wextra -Wundef -Wcast-qual -Wcast-align $(CFLAGS_WARNINGS) +CXXFLAGS += -Wall -Wextra -Wpedantic $(CXXFLAGS_WARNINGS) +CFLAGS += -Wall -Wextra -Wpedantic $(CFLAGS_WARNINGS) LDFLAGS += $(LDFLAGS_WARNINGS) endif diff --git a/build/make/config-afl.mk b/build/make/config-afl.mk index fd073cd261..0aa5e1d767 100644 --- a/build/make/config-afl.mk +++ b/build/make/config-afl.mk @@ -35,6 +35,8 @@ CXXFLAGS += -fsanitize=undefined CFLAGS += -fsanitize=undefined endif +include build/make/warnings-clang.mk + EXESUFFIX= FUZZ=1 diff --git a/build/make/config-clang.mk b/build/make/config-clang.mk index cb5e4fe3ef..7b6a56aafa 100644 --- a/build/make/config-clang.mk +++ b/build/make/config-clang.mk @@ -36,30 +36,6 @@ CXXFLAGS += -fsanitize=undefined CFLAGS += -fsanitize=undefined endif -CXXFLAGS_WARNINGS += -Wmissing-declarations -Wshift-count-negative -Wshift-count-overflow -Wshift-overflow -Wshift-sign-overflow -Wshift-op-parentheses -CFLAGS_WARNINGS += -Wmissing-prototypes -Wshift-count-negative -Wshift-count-overflow -Wshift-overflow -Wshift-sign-overflow -Wshift-op-parentheses - -CXXFLAGS_WARNINGS += -Wdeprecated -Wextra-semi -Wnon-virtual-dtor -Wreserved-id-macro -Wglobal-constructors -Wimplicit-fallthrough - -#CXXFLAGS_WARNINGS += -Wdocumentation -#CXXFLAGS_WARNINGS += -Wconversion -#CXXFLAGS_WARNINGS += -Weverything -Wno-c++98-compat -Wno-c++98-compat-pedantic -Wno-padded -Wno-shadow -Wno-sign-conversion -Wno-weak-vtables - -ifeq ($(MODERN),1) -LDFLAGS += -fuse-ld=lld -CXXFLAGS_WARNINGS += -Wpedantic -Wframe-larger-than=16000 -CFLAGS_WARNINGS += -Wpedantic -Wframe-larger-than=4000 -LDFLAGS_WARNINGS += -Wl,-no-undefined -Wl,--detect-odr-violations -# re-renable after 1.29 branch -#CXXFLAGS_WARNINGS += -Wdouble-promotion -#CFLAGS_WARNINGS += -Wdouble-promotion -endif - -CFLAGS_SILENT += -Wno-cast-align -CFLAGS_SILENT += -Wno-cast-qual -CFLAGS_SILENT += -Wno-missing-prototypes -CFLAGS_SILENT += -Wno-sign-compare -CFLAGS_SILENT += -Wno-unused-function -CFLAGS_SILENT += -Wno-unused-parameter +include build/make/warnings-clang.mk EXESUFFIX= diff --git a/build/make/config-djgpp.mk b/build/make/config-djgpp.mk index 2a96e340f6..f3b549f244 100644 --- a/build/make/config-djgpp.mk +++ b/build/make/config-djgpp.mk @@ -24,7 +24,7 @@ LDFLAGS_ALLEGRO42 := LDLIBS_ALLEGRO42 := include/allegro42/lib/liballeg.a endif -CFLAGS_SILENT += -Wno-unused-parameter -Wno-unused-function -Wno-cast-qual -Wno-old-style-declaration -Wno-type-limits -Wno-unused-but-set-variable +include build/make/warnings-gcc.mk EXESUFFIX=.exe diff --git a/build/make/config-emscripten.mk b/build/make/config-emscripten.mk index a01b829d97..2c067fd070 100644 --- a/build/make/config-emscripten.mk +++ b/build/make/config-emscripten.mk @@ -81,18 +81,7 @@ CXXFLAGS += -s DISABLE_EXCEPTION_CATCHING=0 -s ERROR_ON_UNDEFINED_SYMBOLS=1 -s E CFLAGS += -s DISABLE_EXCEPTION_CATCHING=0 -s ERROR_ON_UNDEFINED_SYMBOLS=1 -s ERROR_ON_MISSING_LIBRARIES=1 -ffast-math -fno-strict-aliasing LDFLAGS += -s DISABLE_EXCEPTION_CATCHING=0 -s ERROR_ON_UNDEFINED_SYMBOLS=1 -s ERROR_ON_MISSING_LIBRARIES=1 -s EXPORT_NAME="'libopenmpt'" -CFLAGS_SILENT += -Wno-\#warnings -CFLAGS_SILENT += -Wno-cast-align -CFLAGS_SILENT += -Wno-cast-qual -CFLAGS_SILENT += -Wno-format -CFLAGS_SILENT += -Wno-missing-prototypes -CFLAGS_SILENT += -Wno-sign-compare -CFLAGS_SILENT += -Wno-unused-function -CFLAGS_SILENT += -Wno-unused-parameter -CFLAGS_SILENT += -Wno-unused-variable - -CXXFLAGS_WARNINGS += -Wmissing-declarations -CFLAGS_WARNINGS += -Wmissing-prototypes +include build/make/warnings-clang.mk REQUIRES_RUNPREFIX=1 diff --git a/build/make/config-gcc.mk b/build/make/config-gcc.mk index b8ca466f03..6a44023119 100644 --- a/build/make/config-gcc.mk +++ b/build/make/config-gcc.mk @@ -32,27 +32,7 @@ CXXFLAGS += -fsanitize=undefined CFLAGS += -fsanitize=undefined endif -CXXFLAGS_WARNINGS += -Wfloat-conversion -Wsuggest-override -Wno-psabi - -ifeq ($(MODERN),1) -LDFLAGS += -fuse-ld=gold -CXXFLAGS_WARNINGS += -Wpedantic -Wlogical-op -Wframe-larger-than=16000 -CFLAGS_WARNINGS += -Wpedantic -Wlogical-op -Wframe-larger-than=4000 -LDFLAGS_WARNINGS += -Wl,-no-undefined -Wl,--detect-odr-violations -# re-renable after 1.29 branch -#CXXFLAGS_WARNINGS += -Wdouble-promotion -#CFLAGS_WARNINGS += -Wdouble-promotion -endif - -CFLAGS_SILENT += -Wno-cast-qual -CFLAGS_SILENT += -Wno-empty-body -CFLAGS_SILENT += -Wno-implicit-fallthrough -CFLAGS_SILENT += -Wno-old-style-declaration -CFLAGS_SILENT += -Wno-sign-compare -CFLAGS_SILENT += -Wno-type-limits -CFLAGS_SILENT += -Wno-unused-but-set-variable -CFLAGS_SILENT += -Wno-unused-function -CFLAGS_SILENT += -Wno-unused-parameter +include build/make/warnings-gcc.mk EXESUFFIX= diff --git a/build/make/config-mingw64-win32.mk b/build/make/config-mingw64-win32.mk index a991f1a09a..0444b858ac 100644 --- a/build/make/config-mingw64-win32.mk +++ b/build/make/config-mingw64-win32.mk @@ -16,7 +16,7 @@ LDFLAGS += LDLIBS += -lm -lrpcrt4 -lwinmm ARFLAGS := rcs -CFLAGS_SILENT += -Wno-unused-parameter -Wno-unused-function -Wno-cast-qual -Wno-old-style-declaration -Wno-type-limits -Wno-unused-but-set-variable +include build/make/warnings-gcc.mk EXESUFFIX=.exe SOSUFFIX=.dll diff --git a/build/make/config-mingw64-win64.mk b/build/make/config-mingw64-win64.mk index 0b6f500013..3a5e322679 100644 --- a/build/make/config-mingw64-win64.mk +++ b/build/make/config-mingw64-win64.mk @@ -16,7 +16,7 @@ LDFLAGS += LDLIBS += -lm -lrpcrt4 -lwinmm ARFLAGS := rcs -CFLAGS_SILENT += -Wno-unused-parameter -Wno-unused-function -Wno-cast-qual -Wno-old-style-declaration -Wno-type-limits -Wno-unused-but-set-variable +include build/make/warnings-gcc.mk EXESUFFIX=.exe SOSUFFIX=.dll diff --git a/build/make/config-mingw64-winrt-amd64.mk b/build/make/config-mingw64-winrt-amd64.mk index dd848ce3ce..2604ce4bca 100644 --- a/build/make/config-mingw64-winrt-amd64.mk +++ b/build/make/config-mingw64-winrt-amd64.mk @@ -16,7 +16,7 @@ LDFLAGS += LDLIBS += -lm -lole32 -lwinmm ARFLAGS := rcs -CFLAGS_SILENT += -Wno-unused-parameter -Wno-unused-function -Wno-cast-qual -Wno-old-style-declaration -Wno-type-limits -Wno-unused-but-set-variable +include build/make/warnings-gcc.mk EXESUFFIX=.exe SOSUFFIX=.dll diff --git a/build/make/config-mingw64-winrt-x86.mk b/build/make/config-mingw64-winrt-x86.mk index 62cc0e210a..b7dfc150c5 100644 --- a/build/make/config-mingw64-winrt-x86.mk +++ b/build/make/config-mingw64-winrt-x86.mk @@ -16,7 +16,7 @@ LDFLAGS += LDLIBS += -lm -lole32 -lwinmm ARFLAGS := rcs -CFLAGS_SILENT += -Wno-unused-parameter -Wno-unused-function -Wno-cast-qual -Wno-old-style-declaration -Wno-type-limits -Wno-unused-but-set-variable +include build/make/warnings-gcc.mk EXESUFFIX=.exe SOSUFFIX=.dll diff --git a/build/make/warnings-clang.mk b/build/make/warnings-clang.mk new file mode 100644 index 0000000000..2faf23197c --- /dev/null +++ b/build/make/warnings-clang.mk @@ -0,0 +1,31 @@ + +CXXFLAGS_WARNINGS += -Wcast-align -Wcast-qual -Wundef +CFLAGS_WARNINGS += -Wcast-align -Wcast-qual -Wundef + +CXXFLAGS_WARNINGS += -Wmissing-declarations -Wshift-count-negative -Wshift-count-overflow -Wshift-overflow -Wshift-sign-overflow -Wshift-op-parentheses +CFLAGS_WARNINGS += -Wmissing-prototypes -Wshift-count-negative -Wshift-count-overflow -Wshift-overflow -Wshift-sign-overflow -Wshift-op-parentheses + +CXXFLAGS_WARNINGS += -Wdeprecated -Wextra-semi -Wnon-virtual-dtor -Wreserved-id-macro -Wglobal-constructors -Wimplicit-fallthrough + +#CXXFLAGS_WARNINGS += -Wdocumentation +#CXXFLAGS_WARNINGS += -Wconversion +#CXXFLAGS_WARNINGS += -Weverything -Wno-c++98-compat -Wno-c++98-compat-pedantic -Wno-padded -Wno-shadow -Wno-sign-conversion -Wno-weak-vtables + +ifeq ($(MODERN),1) +LDFLAGS += -fuse-ld=lld +CXXFLAGS_WARNINGS += -Wpedantic -Wframe-larger-than=16000 +CFLAGS_WARNINGS += -Wpedantic -Wframe-larger-than=4000 +LDFLAGS_WARNINGS += -Wl,-no-undefined -Wl,--detect-odr-violations +# re-renable after 1.29 branch +#CXXFLAGS_WARNINGS += -Wdouble-promotion +#CFLAGS_WARNINGS += -Wdouble-promotion +endif + +CFLAGS_SILENT += -Wno-\#warnings +CFLAGS_SILENT += -Wno-cast-align +CFLAGS_SILENT += -Wno-cast-qual +CFLAGS_SILENT += -Wno-missing-prototypes +CFLAGS_SILENT += -Wno-sign-compare +CFLAGS_SILENT += -Wno-unused-function +CFLAGS_SILENT += -Wno-unused-parameter +CFLAGS_SILENT += -Wno-unused-variable diff --git a/build/make/warnings-gcc.mk b/build/make/warnings-gcc.mk new file mode 100644 index 0000000000..03ff0b7228 --- /dev/null +++ b/build/make/warnings-gcc.mk @@ -0,0 +1,23 @@ + +CXXFLAGS_WARNINGS += -Wcast-align -Wcast-qual -Wfloat-conversion -Wsuggest-override -Wundef -Wno-psabi +CFLAGS_WARNINGS += -Wcast-align -Wcast-qual -Wfloat-conversion -Wundef + +ifeq ($(MODERN),1) +LDFLAGS += -fuse-ld=gold +CXXFLAGS_WARNINGS += -Wlogical-op -Wframe-larger-than=16000 +CFLAGS_WARNINGS += -Wlogical-op -Wframe-larger-than=4000 +LDFLAGS_WARNINGS += -Wl,-no-undefined -Wl,--detect-odr-violations +# re-renable after 1.29 branch +#CXXFLAGS_WARNINGS += -Wdouble-promotion +#CFLAGS_WARNINGS += -Wdouble-promotion +endif + +CFLAGS_SILENT += -Wno-cast-qual +CFLAGS_SILENT += -Wno-empty-body +CFLAGS_SILENT += -Wno-implicit-fallthrough +CFLAGS_SILENT += -Wno-old-style-declaration +CFLAGS_SILENT += -Wno-sign-compare +CFLAGS_SILENT += -Wno-type-limits +CFLAGS_SILENT += -Wno-unused-but-set-variable +CFLAGS_SILENT += -Wno-unused-function +CFLAGS_SILENT += -Wno-unused-parameter