From: Arnout Vandecappelle Date: Mon, 3 Jul 2017 08:41:06 +0000 (+0200) Subject: package/Makefile.in: add host-cc-option macro X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=91a08ecc998;p=buildroot.git package/Makefile.in: add host-cc-option macro This macro allows to test if HOSTCC supports a specific option. It is needed to pass '-no-pie' on recent Debian, Ubuntu and Gentoo hosts. Signed-off-by: Arnout Vandecappelle (Essensium/Mind) Signed-off-by: Thomas Petazzoni --- diff --git a/package/Makefile.in b/package/Makefile.in index a2b0d90f32..a1a5316051 100644 --- a/package/Makefile.in +++ b/package/Makefile.in @@ -222,6 +222,27 @@ HOST_CFLAGS += $(HOST_CPPFLAGS) HOST_CXXFLAGS += $(HOST_CFLAGS) HOST_LDFLAGS += -L$(HOST_DIR)/lib -Wl,-rpath,$(HOST_DIR)/lib +# The macros below are taken from linux 4.11 and adapted slightly. +# Copy more when needed. + +# try-run +# Usage: option = $(call try-run, $(CC)...-o "$$TMP",option-ok,otherwise) +# Exit code chooses option. "$$TMP" is can be used as temporary file and +# is automatically cleaned up. +try-run = $(shell set -e; \ + TMP="$$(tempfile)"; \ + if ($(1)) >/dev/null 2>&1; \ + then echo "$(2)"; \ + else echo "$(3)"; \ + fi; \ + rm -f "$$TMP") + +# host-cc-option +# Usage: HOST_FOO_CFLAGS += $(call host-cc-option,-no-pie,) +host-cc-option = $(call try-run,\ + $(HOSTCC) $(HOST_CFLAGS) $(1) -c -x c /dev/null -o "$$TMP",$(1),$(2)) + + # host-intltool should be executed with the system perl, so we save # the path to the system perl, before a host-perl built by Buildroot # might get installed into $(HOST_DIR)/bin and therefore appears