@@ -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
@@ -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
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(+)