diff --git a/make/defs.mk b/make/defs.mk index 96e996a7..b12fece3 100644 --- a/make/defs.mk +++ b/make/defs.mk @@ -273,10 +273,16 @@ SUBDIRS_TO_ITERATE = $(filter-out $(IGNORE_SUBDIRS),$(SUBDIRS)) # compiler and linker # gcc -GCC_VERSION = $(shell gcc -v 2>&1 | grep "gcc version" | awk '{ print $$3;}') -GCC_MAJOR = $(shell gcc -v 2>&1 | grep "gcc version" | awk '{ split($$3,a,"."); print a[1];}') -GCC_MINOR = $(shell gcc -v 2>&1 | grep "gcc version" | awk '{ split($$3,a,"."); print a[2];}') -GCC_REV = $(shell gcc -v 2>&1 | grep "gcc version" | awk '{ split($$3,a,"."); print a[3];}') +GCC_VERSION := $(shell gcc -v 2>&1 | grep "gcc version" | awk '{ print $$3;}') +GCC_MAJOR := $(shell gcc -v 2>&1 | grep "gcc version" | awk '{ split($$3,a,"."); print a[1];}') +GCC_MINOR := $(shell gcc -v 2>&1 | grep "gcc version" | awk '{ split($$3,a,"."); print a[2];}') +GCC_REV := $(shell gcc -v 2>&1 | grep "gcc version" | awk '{ split($$3,a,"."); print a[3];}') + +LD_VERSION := $(shell ld -V | $(SED) '/GNU ld/ !d; s/(.*)//; s/[^0-9.-]*//') +LD_MAJOR := $(shell echo $(LD_VERSION) | cut -d. -f1) +LD_MINOR := $(shell echo $(LD_VERSION) | cut -d. -f2) +LD_REV := $(shell echo $(LD_VERSION) | cut -d. -f3) +UPDATE_REPO_SH := /opt/packager-server/bin/packager-server schedule-rebuild # clang CLANG_CPPFLAGS += -Wno-unused-private-field -Wno-self-assign-field -Wno-overloaded-virtual @@ -289,11 +295,15 @@ BUILD_CPPFLAGS += -std=c++11 endif endif -LD_VERSION = $(shell ld -V | $(SED) '/GNU ld/ !d; s/(.*)//; s/[^0-9.-]*//') -LD_MAJOR = $(shell echo $(LD_VERSION) | cut -d. -f1) -LD_MINOR = $(shell echo $(LD_VERSION) | cut -d. -f2) -LD_REV = $(shell echo $(LD_VERSION) | cut -d. -f3) -UPDATE_REPO_SH = /opt/packager-server/bin/packager-server schedule-rebuild +ifeq ($(shell test $(GCC_MAJOR) -ge 5; echo $$?),0) + ifeq ($(USE_CPP_FORCE_OVERRIDE),true) + GCC_CPPFLAGS += -Werror=suggest-override + endif +endif + +ifeq ($(USE_CPP_WARN_INCONSISTENT_OVERRIDE),true) + CLANG_CPPFLAGS += -Winconsistent-missing-override +endif # -- target files and dirs