summaryrefslogtreecommitdiff
path: root/solenv/gbuild
diff options
context:
space:
mode:
authorLuboš Luňák <l.lunak@collabora.com>2019-10-03 13:43:23 +0200
committerLuboš Luňák <l.lunak@collabora.com>2019-10-04 08:58:14 +0200
commit87608490f205b2fbc2b453ad8ded33050ac29b90 (patch)
treed121631cb6d1d29b0a6873b3cfddb88a9ef31174 /solenv/gbuild
parent127250edb6d613a2425fe303bc6cdb9fa2c3b99c (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/gbuild')
-rw-r--r--solenv/gbuild/platform/com_GCC_class.mk9
-rw-r--r--solenv/gbuild/platform/com_GCC_defs.mk2
-rw-r--r--solenv/gbuild/platform/com_MSC_class.mk17
-rw-r--r--solenv/gbuild/platform/com_MSC_defs.mk2
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)