common.mk: update from platform2

  - e6588e5542d0813544a5910f935e231e2cf1cdd3 common-mk: check support for -Wxor-used-as-pow by Daniel Verkamp <dverkamp@chromium.org>
  - 9bcf2ab83ae46f7e190045091c730ccafb26f23b common-mk: Use -Bsymbolic-non-weak iff supported by Pierre-Clément Tosi <ptosi@google.com>
  - 09d3c04e01e1ca149c04b98ee31b827ec3a11dd8 common-mk: Replace -Wl,* args with -z or -Xlinker by Pierre-Clément Tosi <ptosi@google.com>
  - f4b5abc664a3961fd343ecd73b105455f745a6b1 common-mk: -fvisibility-inlines-hidden as CXXFLAGS by Pierre-Clément Tosi <ptosi@google.com>

GitOrigin-RevId: e6588e5542d0813544a5910f935e231e2cf1cdd3
Change-Id: I8f21a4228b21582667c59e396b1d474e6ef6b559
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/third_party/sis-updater/+/6447712
Reviewed-by: Niko Tsirakis <ntsirakis@google.com>
Auto-Submit: Mike Frysinger <vapier@chromium.org>
Commit-Queue: Niko Tsirakis <ntsirakis@google.com>
Tested-by: Mike Frysinger <vapier@chromium.org>
diff --git a/common.mk b/common.mk
index 7c2a904..03e886c 100644
--- a/common.mk
+++ b/common.mk
@@ -319,11 +319,12 @@
 # symbol resolution overhead. Therefore, pass -fvisibility-inlines-hidden in
 # addition to -fvisibility=hidden. (go/cros-symbol-slimming)
 COMMON_CFLAGS := -Wall -Wunused -Wno-unused-parameter -Wunreachable-code \
-  -Wbool-operation -Wstring-compare -Wxor-used-as-pow \
+  -Wbool-operation -Wstring-compare $(call check_cc,-Wxor-used-as-pow) \
   -Wint-in-bool-context -Wfree-nonheap-object \
-  -Werror -Wformat=2 -fno-strict-aliasing -fvisibility-inlines-hidden \
+  -Werror -Wformat=2 -fno-strict-aliasing  \
   $(SSP_CFLAGS) -O1
-CXXFLAGS += $(COMMON_CFLAGS) $(COMMON_CFLAGS-$(CXXDRIVER)) -std=gnu++20
+CXXFLAGS += $(COMMON_CFLAGS) $(COMMON_CFLAGS-$(CXXDRIVER)) -std=gnu++20 \
+  -fvisibility-inlines-hidden
 CFLAGS += $(COMMON_CFLAGS) $(COMMON_CFLAGS-$(CDRIVER)) -std=gnu17
 # We undefine _FORTIFY_SOURCE because some distros enable it by default in
 # their toolchains.  This makes the compiler issue warnings about redefines
@@ -360,8 +361,11 @@
 # Pass -Bsymbolic-non-weak which pre-binds symbols in the same DSO to improve
 # startup performance. We don't support interposing non-weak symbols.
 # (go/cros-symbol-slimming)
-LDFLAGS := $(LDFLAGS) -Wl,-z,relro -Wl,-z,noexecstack -Wl,-z,now \
-  -Wl,-Bsymbolic-non-weak
+LDFLAGS := $(LDFLAGS) \
+  -z relro \
+  -z noexecstack \
+  -z now \
+  $(call check_cc,-Xlinker -Bsymbolic-non-weak)
 
 # Fancy helpers for color if a prompt is defined
 ifeq ($(COLOR),1)