diff mbox series

[pushed] configure: Allow host fragments to react to --enable-host-shared.

Message ID BFF5013A-4430-44CF-8FA3-88DADC4401CA@sandoe.co.uk
State New
Headers show
Series [pushed] configure: Allow host fragments to react to --enable-host-shared. | expand

Commit Message

Iain Sandoe Aug. 18, 2021, 6:50 p.m. UTC
Hi,

It is possible that a host makefile fragment might need to adapt
to the setting of —enable-host-shared.

This makes the host_shared value available to host makefile
fragments.

It uses this to adjust Darwin's mdynamic-no-pic in the case that
shared host resources are required.

tested on i686, x86_64-darwin, x86_64,powerpc64-linux,
pushed to master (the non-darwin-specific change is trivial).

thanks
Iain

Signed-off-by: Iain Sandoe <iain@sandoe.co.uk>

ChangeLog:

	* Makefile.in: Regenerate.
	* Makefile.tpl: Make the state of the configured host
	shared flag available to makefile fragements.

config/ChangeLog:

	* mh-darwin: Require a non-shared host configuration to
	enable  mdynamic-no-pic where that is supported.
---
 Makefile.in      | 3 +++
 Makefile.tpl     | 3 +++
 config/mh-darwin | 8 ++++++++
 3 files changed, 14 insertions(+)
diff mbox series

Patch

diff --git a/Makefile.tpl b/Makefile.tpl
index bffd85bd68e..9adf4f94728 100644
--- a/Makefile.tpl
+++ b/Makefile.tpl
@@ -112,6 +112,9 @@  RPATH_ENVVAR = @RPATH_ENVVAR@
 # executables in PATH.
 GCC_SHLIB_SUBDIR = @GCC_SHLIB_SUBDIR@
 
+# If the build should make suitable code for shared host resources.
+host_shared = @host_shared@
+
 # Build programs are put under this directory.
 BUILD_SUBDIR = @build_subdir@
 # This is set by the configure script to the arguments to use when configuring
diff --git a/config/mh-darwin b/config/mh-darwin
index fb2bb5ad1d9..b72835ae953 100644
--- a/config/mh-darwin
+++ b/config/mh-darwin
@@ -11,9 +11,15 @@ 
 # non-bootstrapped compiler), later stages will be built by GCC which supports
 # the required flags.
 
+# We cannot use mdynamic-no-pic when building shared host resources.
+
+ifeq (${host_shared},no)
 BOOTSTRAP_TOOL_CAN_USE_MDYNAMIC_NO_PIC := $(shell \
   $(CC) -S -xc /dev/null -o /dev/null -Werror -mno-dynamic-no-pic 2>/dev/null \
   && echo true)
+else
+BOOTSTRAP_TOOL_CAN_USE_MDYNAMIC_NO_PIC := false
+endif
 
 @if gcc-bootstrap
 ifeq (${BOOTSTRAP_TOOL_CAN_USE_MDYNAMIC_NO_PIC},true)
@@ -21,8 +27,10 @@  STAGE1_CFLAGS += -mdynamic-no-pic
 else
 STAGE1_CFLAGS += -fPIC
 endif
+ifeq (${host_shared},no)
 # Add -mdynamic-no-pic to later stages when we know it is built with GCC.
 BOOT_CFLAGS += -mdynamic-no-pic
+endif
 @endif gcc-bootstrap
 
 @unless gcc-bootstrap