diff options
| author | Alejandro Colomar <alx@kernel.org> | 2024-07-17 19:02:52 +0200 |
|---|---|---|
| committer | Alejandro Colomar <alx@kernel.org> | 2024-07-20 11:06:44 +0200 |
| commit | 35a780a99bd8895009de2a708c0308d9bf8b66ac (patch) | |
| tree | 55b4c47675cf893a63e027aee82fd3b3e6aaf918 | |
| parent | 89f5f1aa550a150f3002628b7d566297ad2e48ea (diff) | |
| download | man-pages-35a780a99bd8895009de2a708c0308d9bf8b66ac.tar.gz | |
share/mk/: CPPFLAGS: Only define _FORTIFY_SOURCE if it's not already defined
Some distros patch GCC to have that definition built in. Redefining it
ourselves would result in a redefinition, and consequently a diagnostic.
Reported-by: Sam James <sam@gentoo.org>
Signed-off-by: Alejandro Colomar <alx@kernel.org>
Cherry-picked-from: liba2i.git 31bfd8f14a11 (2024-07-17, "share/mk/: CPPFLAGS: Only define _FORTIFY_SOURCE if it's not already defined")
Signed-off-by: Alejandro Colomar <alx@kernel.org>
| -rw-r--r-- | share/mk/configure/build-depends/cpp/cpp.mk | 21 |
1 files changed, 18 insertions, 3 deletions
diff --git a/share/mk/configure/build-depends/cpp/cpp.mk b/share/mk/configure/build-depends/cpp/cpp.mk index be7594e771..367be0c5c1 100644 --- a/share/mk/configure/build-depends/cpp/cpp.mk +++ b/share/mk/configure/build-depends/cpp/cpp.mk @@ -6,17 +6,32 @@ ifndef MAKEFILE_CONFIGURE_BUILD_DEPENDS_CPP_CPP_INCLUDED MAKEFILE_CONFIGURE_BUILD_DEPENDS_CPP_CPP_INCLUDED := 1 +include $(MAKEFILEDIR)/configure/build-depends/coreutils/echo.mk include $(MAKEFILEDIR)/configure/build-depends/gcc/cc.mk +include $(MAKEFILEDIR)/configure/build-depends/grep/grep.mk include $(MAKEFILEDIR)/configure/build-depends/pkgconf/pkgconf.mk include $(MAKEFILEDIR)/configure/verbose.mk +CPP := $(CC) $(CFLAGS_) -E + + +CPP_HAS_ALREADY_D_FORTIFY_SOURCE := \ + $(shell \ + $(CPP) -dM - -Wno-error </dev/null \ + | $(GREP) '#define _FORTIFY_SOURCE ' >/dev/null \ + && $(ECHO) yes \ + || $(ECHO) no; \ + ) + + DEFAULT_CPPFLAGS := \ - $(shell $(PKGCONF_CMD) --cflags $(PKGCONF_LIBS) $(HIDE_ERR)) \ - -D_FORTIFY_SOURCE=2 + $(shell $(PKGCONF_CMD) --cflags $(PKGCONF_LIBS) $(HIDE_ERR)) +ifeq ($(CPP_HAS_ALREADY_D_FORTIFY_SOURCE),no) +DEFAULT_CPPFLAGS += -D_FORTIFY_SOURCE=2 +endif CPPFLAGS := CPPFLAGS_ := $(DEFAULT_CPPFLAGS) $(CPPFLAGS) -CPP := $(CC) $(CFLAGS_) -E endif # include guard |
