diff options
author | Luboš Luňák <l.lunak@collabora.com> | 2019-10-03 13:43:23 +0200 |
---|---|---|
committer | Luboš Luňák <l.lunak@collabora.com> | 2019-10-04 08:58:14 +0200 |
commit | 87608490f205b2fbc2b453ad8ded33050ac29b90 (patch) | |
tree | d121631cb6d1d29b0a6873b3cfddb88a9ef31174 /solenv | |
parent | 127250edb6d613a2425fe303bc6cdb9fa2c3b99c (diff) |
filter arguments to MSVC to avoid the annoying D9025 warning
GCC/Clang do not bother with warning about overriding e.g. -O2
with -O0, AFAICT it's quite a common practice, and I really don't
see any good reason for the warning, and even less so for not even
being able to disable it. Without this, enabling SSE2/AVX2
would warn about overriding the default -arch:SSE (that's hardcoded
by configure to be part of the compiler command).
Change-Id: I9f9109b77de90085486bc2a98f1b453a41755e60
Reviewed-on: https://gerrit.libreoffice.org/80123
Tested-by: Jenkins
Reviewed-by: Luboš Luňák <l.lunak@collabora.com>
Diffstat (limited to 'solenv')
-rw-r--r-- | solenv/gbuild/platform/com_GCC_class.mk | 9 | ||||
-rw-r--r-- | solenv/gbuild/platform/com_GCC_defs.mk | 2 | ||||
-rw-r--r-- | solenv/gbuild/platform/com_MSC_class.mk | 17 | ||||
-rw-r--r-- | solenv/gbuild/platform/com_MSC_defs.mk | 2 |
4 files changed, 21 insertions, 9 deletions
diff --git a/solenv/gbuild/platform/com_GCC_class.mk b/solenv/gbuild/platform/com_GCC_class.mk index 18170c8eae2d..fd3703b875b5 100644 --- a/solenv/gbuild/platform/com_GCC_class.mk +++ b/solenv/gbuild/platform/com_GCC_class.mk @@ -65,7 +65,8 @@ $(call gb_Helper_abbreviate_dirs,\ $(if $(WARNINGS_NOT_ERRORS),$(if $(ENABLE_WERROR),$(if $(PLUGIN_WARNINGS_AS_ERRORS),$(gb_COMPILER_PLUGINS_WARNINGS_AS_ERRORS))),$(gb_CFLAGS_WERROR)) \ $(if $(5),$(gb_COMPILER_PLUGINS)) \ $(if $(COMPILER_TEST),-fsyntax-only -ferror-limit=0 -Xclang -verify) \ - $(if $(WARNINGS_DISABLED),$(call gb_Helper_disable_warnings,$(2)),$(2)) \ + $(2) \ + $(if $(WARNINGS_DISABLED),$(gb_CXXFLAGS_DISABLE_WARNINGS)) \ $(if $(EXTERNAL_CODE),$(gb_CXXFLAGS_Wundef),$(gb_DEFS_INTERNAL)) \ -c $(3) \ -o $(1) \ @@ -98,7 +99,8 @@ $(call gb_Helper_abbreviate_dirs,\ CCACHE_DISABLE=1 $(gb_COMPILER_SETUP) \ $(gb_CXX) \ -x c++-header \ - $(if $(WARNINGS_DISABLED),$(call gb_Helper_disable_warnings,$(4) $(5)),$(4) $(5)) \ + $(4) $(5) \ + $(if $(WARNINGS_DISABLED),$(gb_CXXFLAGS_DISABLE_WARNINGS)) \ $(gb_COMPILERDEPFLAGS) \ $(if $(VISIBILITY),,$(gb_VISIBILITY_FLAGS)) \ $(if $(EXTERNAL_CODE),$(gb_CXXFLAGS_Wundef),$(gb_DEFS_INTERNAL)) \ @@ -123,7 +125,8 @@ $(call gb_Helper_abbreviate_dirs,\ CCACHE_DISABLE=1 $(gb_COMPILER_SETUP) \ $(gb_CXX) \ -x c++-header \ - $(if $(WARNINGS_DISABLED),$(call gb_Helper_disable_warnings,$(4) $(5)),$(4) $(5)) \ + $(4) $(5) \ + $(if $(WARNINGS_DISABLED),$(gb_CXXFLAGS_DISABLE_WARNINGS)) \ $(gb_COMPILERDEPFLAGS) \ $(if $(VISIBILITY),,$(gb_VISIBILITY_FLAGS)) \ $(if $(EXTERNAL_CODE),$(gb_CXXFLAGS_Wundef),$(gb_DEFS_INTERNAL)) \ diff --git a/solenv/gbuild/platform/com_GCC_defs.mk b/solenv/gbuild/platform/com_GCC_defs.mk index 485bd6e99d3d..654e75f7de25 100644 --- a/solenv/gbuild/platform/com_GCC_defs.mk +++ b/solenv/gbuild/platform/com_GCC_defs.mk @@ -82,7 +82,7 @@ gb_CXXFLAGS_COMMON := \ -fno-common \ -pipe \ -gb_Helper_disable_warnings = $(1) -w +gb_CXXFLAGS_DISABLE_WARNINGS = -w ifeq ($(HAVE_BROKEN_GCC_WMAYBE_UNINITIALIZED),TRUE) gb_CXXFLAGS_COMMON += -Wno-maybe-uninitialized diff --git a/solenv/gbuild/platform/com_MSC_class.mk b/solenv/gbuild/platform/com_MSC_class.mk index adbbfe126ae2..afdc424b80c5 100644 --- a/solenv/gbuild/platform/com_MSC_class.mk +++ b/solenv/gbuild/platform/com_MSC_class.mk @@ -43,15 +43,23 @@ define gb_CObject__compiler $(MSVC_CXX) -I$(SRCDIR)/solenv/clang-cl,$(gb_CXX))))) endef +# Avoid annoying warning D9025 about overriding command-line arguments. +gb_Helper_remove_overriden_flags = \ + $(filter-out -W4 -w -arch:SSE -arch:AVX2 -Od -O2,$(1)) \ + $(lastword $(filter -W4 -w,$(1))) \ + $(lastword $(filter -Od -O2,$(1))) \ + $(lastword $(filter -arch:SSE -arch:AVX2,$(1))) + # $(call gb_CObject__command_pattern,object,flags,source,dep-file,compiler-plugins,symbols) define gb_CObject__command_pattern $(call gb_Helper_abbreviate_dirs,\ mkdir -p $(dir $(1)) $(dir $(4)) && \ unset INCLUDE && \ - $(call gb_CObject__compiler,$(2),$(3)) \ + $(filter-out -arch:SSE,$(call gb_CObject__compiler,$(2),$(3))) \ $(DEFS) \ $(gb_LTOFLAGS) \ - $(if $(WARNINGS_DISABLED),$(call gb_Helper_disable_warnings,$(2)),$(2)) \ + $(call gb_Helper_remove_overriden_flags,$(filter -arch:SSE,$(call gb_CObject__compiler,$(2),$(3))) \ + $(2) $(if $(WARNINGS_DISABLED),$(gb_CXXFLAGS_DISABLE_WARNINGS))) \ $(if $(EXTERNAL_CODE), \ $(if $(filter -clr,$(2)),,$(if $(COM_IS_CLANG),-Wno-undef)), \ $(gb_DEFS_INTERNAL)) \ @@ -86,8 +94,9 @@ $(call gb_Output_announce,$(2),$(true),PCH,1) $(call gb_Helper_abbreviate_dirs,\ mkdir -p $(dir $(1)) $(dir $(call gb_PrecompiledHeader_get_dep_target,$(2),$(7))) && \ unset INCLUDE && \ - $(call gb_CObject__compiler,$(4) $(5),$(3)) \ - $(if $(WARNINGS_DISABLED),$(call gb_Helper_disable_warnings,$(4) $(5)),$(4) $(5)) \ + $(filter-out -arch:SSE,$(call gb_CObject__compiler,$(4) $(5),$(3))) \ + $(call gb_Helper_remove_overriden_flags,$(filter -arch:SSE,$(call gb_CObject__compiler,$(4) $(5),$(3))) \ + $(4) $(5) $(if $(WARNINGS_DISABLED),$(gb_CXXFLAGS_DISABLE_WARNINGS))) \ -Fd$(PDBFILE) \ $(if $(EXTERNAL_CODE),$(if $(COM_IS_CLANG),-Wno-undef),$(gb_DEFS_INTERNAL)) \ $(gb_LTOFLAGS) \ diff --git a/solenv/gbuild/platform/com_MSC_defs.mk b/solenv/gbuild/platform/com_MSC_defs.mk index 8a3bda2cb6a2..775481821ca4 100644 --- a/solenv/gbuild/platform/com_MSC_defs.mk +++ b/solenv/gbuild/platform/com_MSC_defs.mk @@ -156,7 +156,7 @@ gb_CFLAGS := \ -wd4800 \ -wd4267 \ -gb_Helper_disable_warnings = $(filter-out -W4,$(1)) -w +gb_CXXFLAGS_DISABLE_WARNINGS = -w ifneq ($(COM_IS_CLANG),TRUE) |