This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
[PATCH] Add --enable-host-shared configuration option
- From: David Malcolm <dmalcolm at redhat dot com>
- To: gcc-patches at gcc dot gnu dot org
- Cc: David Malcolm <dmalcolm at redhat dot com>
- Date: Wed, 9 Oct 2013 20:25:33 -0400
- Subject: [PATCH] Add --enable-host-shared configuration option
- Authentication-results: sourceware.org; auth=none
My JIT branch requires embedding GCC's code as a shared library on the
host. To do requires building the host code as position-independent,
which unfortunately incurs a small speed hit.
Hence we need a configuration option, so that you can opt-in to
position-independent host code.
This patch adds an "--enable-host-shared" option throughout the various
configure/Make machinery for host code, adding "-fPIC" where appropriate
when enabled.
It is equivalent to the changes I currently have on my "dmalcolm/jit"
branch in git.
My first time attempt at this handled --enable-host-shared by detecting
it in each child "configure" script (as generated from configure.ac) and
conditionally appending -fPIC to makefile variables such as CFLAGS,
CXXFLAGS and LDFLAGS.
This worked when invoking "make" from each subdirectory, but not when
running "make" in the top-level directory: the top-level make would
pass in "CFLAGS=-g -O2" to the child makes, overriding their CFLAGS,
thus erroneously omitting the "-fPIC" flag.
This patch instead adds a PICFLAG variable, set up in the child
configure scripts, to contain -fPIC if configured with
--enable-host-shared. The PICFLAG variable is then added to an
appropriate variable in each child makefile to ensure that it is used
when building host code.
This ensures that -fPIC is present if requested, when building both
from the top-level directory, and from the child directories.
There's precedent for both "PICFLAG" and "PIC_FLAG" in the source tree:
libiberty uses "PICFLAG", libbacktrace usss "PIC_FLAG". I went with
"PICFLAG" for the new flags.
The patch uses -fPIC rather than -fpic.
Successfully bootstrapped and regtesting on x86_64-unknown-linux.
OK for trunk?
ChangeLog follows inline:
/
* configure.ac: Add --enable-host-shared
* configure: Regenerate.
gcc/
* Makefile.in (PICFLAG): New.
(enable_host_shared): New.
(INTERNAL_CFLAGS): Use PICFLAG.
(LIBIBERTY): Use pic build of libiberty.a if configured with
--enable-host-shared.
* configure.ac: Add --enable-host-shared, setting up new
PICFLAG variable.
* configure: Regenerate.
libbacktrace/
* configure.ac: Add --enable-host-shared, setting up
pre-existing PIC_FLAG variable within Makefile.am et al.
* configure: Regenerate.
libcpp/
* Makefile.in (PICFLAG): New.
(ALL_CFLAGS): Add PICFLAG.
(ALL_CXXFLAGS): Likewise.
* configure.ac: Add --enable-host-shared, setting up new
PICFLAG variable.
* configure: Regenerate.
libdecnumber/
* Makefile.in (PICFLAG): New.
(ALL_CFLAGS): Add PICFLAG.
* configure.ac: Add --enable-host-shared, setting up new
PICFLAG variable.
* configure: Regenerate.
libiberty/
* configure.ac: If --enable-host-shared, use -fPIC.
* configure: Regenerate.
zlib/
* configure.ac: Add --enable-host-shared, setting up new
PICFLAG variable.
* Makefile.am: Add PICFLAG to libz_a_CFLAGS.
* Makefile.in: Regenerate.
* configure: Regenerate.
---
configure | 13 +++++++++++++
configure.ac | 7 +++++++
gcc/Makefile.in | 14 +++++++++++++-
gcc/configure | 20 ++++++++++++++++++--
gcc/configure.ac | 9 +++++++++
libbacktrace/configure | 12 ++++++++++--
libbacktrace/configure.ac | 5 +++++
libcpp/Makefile.in | 5 +++--
libcpp/configure | 13 +++++++++++++
libcpp/configure.ac | 7 +++++++
libdecnumber/Makefile.in | 3 ++-
libdecnumber/configure | 13 +++++++++++++
libdecnumber/configure.ac | 7 +++++++
libiberty/configure | 6 ++++++
libiberty/configure.ac | 6 ++++++
zlib/Makefile.am | 2 +-
zlib/Makefile.in | 3 ++-
zlib/configure | 16 ++++++++++++++--
zlib/configure.ac | 6 ++++++
19 files changed, 155 insertions(+), 12 deletions(-)
diff --git a/configure b/configure
index 6ad3c49..d62285c 100755
--- a/configure
+++ b/configure
@@ -556,6 +556,7 @@ enable_option_checking=no
ac_subst_vars='LTLIBOBJS
LIBOBJS
compare_exclusions
+host_shared
stage2_werror_flag
stage1_checking
stage1_cflags
@@ -787,6 +788,7 @@ with_build_time_tools
enable_maintainer_mode
enable_stage1_checking
enable_werror
+enable_host_shared
'
ac_precious_vars='build_alias
host_alias
@@ -1490,6 +1492,7 @@ Optional Features:
choose additional checking for stage1 of the
compiler
--enable-werror enable -Werror in bootstrap stage2 and later
+ --enable-host-shared build host code as shared libraries
Optional Packages:
--with-PACKAGE[=ARG] use PACKAGE [ARG=yes]
@@ -14570,6 +14573,16 @@ case ${enable_werror} in
esac
+# Enable --enable-host-shared.
+# Check whether --enable-host-shared was given.
+if test "${enable_host_shared+set}" = set; then :
+ enableval=$enable_host_shared; host_shared=$enableval
+else
+ host_shared=no
+fi
+
+
+
# Specify what files to not compare during bootstrap.
compare_exclusions="gcc/cc*-checksum\$(objext) | gcc/ada/*tools/*"
diff --git a/configure.ac b/configure.ac
index b5caebb..4c23652 100644
--- a/configure.ac
+++ b/configure.ac
@@ -3301,6 +3301,13 @@ case ${enable_werror} in
esac
AC_SUBST(stage2_werror_flag)
+# Enable --enable-host-shared.
+AC_ARG_ENABLE(host-shared,
+[AS_HELP_STRING([--enable-host-shared],
+ [build host code as shared libraries])],
+[host_shared=$enableval], [host_shared=no])
+AC_SUBST(host_shared)
+
# Specify what files to not compare during bootstrap.
compare_exclusions="gcc/cc*-checksum\$(objext) | gcc/ada/*tools/*"
diff --git a/gcc/Makefile.in b/gcc/Makefile.in
index 4e396aa..ee19ca2 100644
--- a/gcc/Makefile.in
+++ b/gcc/Makefile.in
@@ -135,6 +135,9 @@ CFLAGS = @CFLAGS@
CXXFLAGS = @CXXFLAGS@
LDFLAGS = @LDFLAGS@
+# Should we build position-independent host code?
+PICFLAG = @PICFLAG@
+
# Flags to determine code coverage. When coverage is disabled, this will
# contain the optimization flags, as you normally want code coverage
# without optimization.
@@ -346,6 +349,8 @@ PLUGINLIBS = @pluginlibs@
enable_plugin = @enable_plugin@
+enable_host_shared = @enable_host_shared@
+
CPPLIB = ../libcpp/libcpp.a
CPPINC = -I$(srcdir)/../libcpp/include
@@ -955,7 +960,7 @@ CONTEXT_H = context.h
# programs built during a bootstrap.
# autoconf inserts -DCROSS_DIRECTORY_STRUCTURE if we are building a
# cross compiler which does not use the native headers and libraries.
-INTERNAL_CFLAGS = -DIN_GCC @CROSS@
+INTERNAL_CFLAGS = -DIN_GCC $(PICFLAG) @CROSS@
# This is the variable actually used when we compile. If you change this,
# you probably want to update BUILD_CFLAGS in configure.ac
@@ -978,8 +983,15 @@ ALL_COMPILERFLAGS = $(ALL_CXXFLAGS)
ALL_LINKERFLAGS = $(ALL_CXXFLAGS)
# Build and host support libraries.
+
+# Use the "pic" build of libiberty if --enable-host-shared.
+ifeq ($(enable_host_shared),yes)
+LIBIBERTY = ../libiberty/pic/libiberty.a
+BUILD_LIBIBERTY = $(build_libobjdir)/libiberty/pic/libiberty.a
+else
LIBIBERTY = ../libiberty/libiberty.a
BUILD_LIBIBERTY = $(build_libobjdir)/libiberty/libiberty.a
+endif
# Dependencies on the intl and portability libraries.
LIBDEPS= libcommon.a $(CPPLIB) $(LIBIBERTY) $(LIBINTL_DEP) $(LIBICONV_DEP) \
diff --git a/gcc/configure b/gcc/configure
index 2ac0347..40043bb 100755
--- a/gcc/configure
+++ b/gcc/configure
@@ -600,6 +600,8 @@ ac_includes_default="\
ac_subst_vars='LTLIBOBJS
LIBOBJS
+PICFLAG
+enable_host_shared
enable_plugin
pluginlibs
CLOOGINC
@@ -921,6 +923,7 @@ enable_maintainer_mode
enable_link_mutex
enable_version_specific_runtime_libs
enable_plugin
+enable_host_shared
enable_libquadmath_support
with_linker_hash_style
'
@@ -1636,6 +1639,7 @@ Optional Features:
specify that runtime libraries should be installed
in a compiler-specific directory
--enable-plugin enable plugin support
+ --enable-host-shared build host code as shared libraries
--disable-libquadmath-support
disable libquadmath support for Fortran
@@ -17893,7 +17897,7 @@ else
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
lt_status=$lt_dlunknown
cat > conftest.$ac_ext <<_LT_EOF
-#line 17896 "configure"
+#line 17900 "configure"
#include "confdefs.h"
#if HAVE_DLFCN_H
@@ -17999,7 +18003,7 @@ else
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
lt_status=$lt_dlunknown
cat > conftest.$ac_ext <<_LT_EOF
-#line 18002 "configure"
+#line 18006 "configure"
#include "confdefs.h"
#if HAVE_DLFCN_H
@@ -27694,6 +27698,18 @@ $as_echo "#define ENABLE_PLUGIN 1" >>confdefs.h
fi
+# Enable --enable-host-shared
+# Check whether --enable-host-shared was given.
+if test "${enable_host_shared+set}" = set; then :
+ enableval=$enable_host_shared; PICFLAG=-fPIC
+else
+ PICFLAG=
+fi
+
+
+
+
+
# Check whether --enable-libquadmath-support was given.
if test "${enable_libquadmath_support+set}" = set; then :
enableval=$enable_libquadmath_support; ENABLE_LIBQUADMATH_SUPPORT=$enableval
diff --git a/gcc/configure.ac b/gcc/configure.ac
index f216962..5111109 100644
--- a/gcc/configure.ac
+++ b/gcc/configure.ac
@@ -5399,6 +5399,15 @@ if test x"$enable_plugin" = x"yes"; then
fi
+# Enable --enable-host-shared
+AC_ARG_ENABLE(host-shared,
+[AS_HELP_STRING([--enable-host-shared],
+ [build host code as shared libraries])],
+[PICFLAG=-fPIC], [PICFLAG=])
+AC_SUBST(enable_host_shared)
+AC_SUBST(PICFLAG)
+
+
AC_ARG_ENABLE(libquadmath-support,
[AS_HELP_STRING([--disable-libquadmath-support],
[disable libquadmath support for Fortran])],
diff --git a/libbacktrace/configure b/libbacktrace/configure
index e8ef1ff..e6b13c0 100755
--- a/libbacktrace/configure
+++ b/libbacktrace/configure
@@ -731,6 +731,7 @@ with_gnu_ld
enable_libtool_lock
enable_multilib
with_system_libunwind
+enable_host_shared
'
ac_precious_vars='build_alias
host_alias
@@ -1369,6 +1370,7 @@ Optional Features:
optimize for fast installation [default=yes]
--disable-libtool-lock avoid locking (might break parallel builds)
--enable-multilib build many library versions (default)
+ --enable-host-shared build host code as shared libraries
Optional Packages:
--with-PACKAGE[=ARG] use PACKAGE [ARG=yes]
@@ -11087,7 +11089,7 @@ else
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
lt_status=$lt_dlunknown
cat > conftest.$ac_ext <<_LT_EOF
-#line 11090 "configure"
+#line 11092 "configure"
#include "confdefs.h"
#if HAVE_DLFCN_H
@@ -11193,7 +11195,7 @@ else
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
lt_status=$lt_dlunknown
cat > conftest.$ac_ext <<_LT_EOF
-#line 11196 "configure"
+#line 11198 "configure"
#include "confdefs.h"
#if HAVE_DLFCN_H
@@ -11696,6 +11698,12 @@ PIC_FLAG=
if test -n "${with_target_subdir}"; then
PIC_FLAG=-fPIC
fi
+# Similarly, use -fPIC with --enable-host-shared:
+# Check whether --enable-host-shared was given.
+if test "${enable_host_shared+set}" = set; then :
+ enableval=$enable_host_shared; PIC_FLAG=-fPIC
+fi
+
# Test for __sync support.
diff --git a/libbacktrace/configure.ac b/libbacktrace/configure.ac
index 28b2a1c..48c8620 100644
--- a/libbacktrace/configure.ac
+++ b/libbacktrace/configure.ac
@@ -165,6 +165,11 @@ PIC_FLAG=
if test -n "${with_target_subdir}"; then
PIC_FLAG=-fPIC
fi
+# Similarly, use -fPIC with --enable-host-shared:
+AC_ARG_ENABLE(host-shared,
+[AS_HELP_STRING([--enable-host-shared],
+ [build host code as shared libraries])],
+[PIC_FLAG=-fPIC], [])
AC_SUBST(PIC_FLAG)
# Test for __sync support.
diff --git a/libcpp/Makefile.in b/libcpp/Makefile.in
index 2353c9c..30bf896 100644
--- a/libcpp/Makefile.in
+++ b/libcpp/Makefile.in
@@ -57,6 +57,7 @@ CCDEPMODE = @CCDEPMODE@
CXXDEPMODE = @CXXDEPMODE@
DEPDIR = @DEPDIR@
NOEXCEPTION_FLAGS = @noexception_flags@
+PICFLAG = @PICFLAG@
datarootdir = @datarootdir@
datadir = @datadir@
@@ -72,9 +73,9 @@ depcomp = $(SHELL) $(srcdir)/../depcomp
INCLUDES = -I$(srcdir) -I. -I$(srcdir)/../include @INCINTL@ \
-I$(srcdir)/include
-ALL_CFLAGS = $(CFLAGS) $(WARN_CFLAGS) $(INCLUDES) $(CPPFLAGS)
+ALL_CFLAGS = $(CFLAGS) $(WARN_CFLAGS) $(INCLUDES) $(CPPFLAGS) $(PICFLAG)
ALL_CXXFLAGS = $(CXXFLAGS) $(WARN_CXXFLAGS) $(NOEXCEPTION_FLAGS) $(INCLUDES) \
- $(CPPFLAGS)
+ $(CPPFLAGS) $(PICFLAG)
# The name of the compiler to use.
COMPILER = $(CXX)
diff --git a/libcpp/configure b/libcpp/configure
index 60ce2e5..782a710 100755
--- a/libcpp/configure
+++ b/libcpp/configure
@@ -592,6 +592,7 @@ ac_includes_default="\
#endif"
ac_subst_vars='LTLIBOBJS
+PICFLAG
MAINT
USED_CATALOGS
PACKAGE
@@ -701,6 +702,7 @@ with_libiconv_prefix
enable_maintainer_mode
enable_checking
enable_canonical_system_headers
+enable_host_shared
'
ac_precious_vars='build_alias
host_alias
@@ -1340,6 +1342,7 @@ Optional Features:
other strings
--enable-canonical-system-headers
enable or disable system headers canonicalization
+ --enable-host-shared build host code as shared libraries
Optional Packages:
--with-PACKAGE[=ARG] use PACKAGE [ARG=yes]
@@ -7204,6 +7207,16 @@ fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
esac
+# Enable --enable-host-shared.
+# Check whether --enable-host-shared was given.
+if test "${enable_host_shared+set}" = set; then :
+ enableval=$enable_host_shared; PICFLAG=-fPIC
+else
+ PICFLAG=
+fi
+
+
+
# Output.
ac_config_headers="$ac_config_headers config.h:config.in"
diff --git a/libcpp/configure.ac b/libcpp/configure.ac
index 799301f..a70603c 100644
--- a/libcpp/configure.ac
+++ b/libcpp/configure.ac
@@ -220,6 +220,13 @@ case $target in
[Define to 1 if you can assemble SSE4 insns.])])
esac
+# Enable --enable-host-shared.
+AC_ARG_ENABLE(host-shared,
+[AS_HELP_STRING([--enable-host-shared],
+ [build host code as shared libraries])],
+[PICFLAG=-fPIC], [PICFLAG=])
+AC_SUBST(PICFLAG)
+
# Output.
AC_CONFIG_HEADERS(config.h:config.in, [echo timestamp > stamp-h1])
diff --git a/libdecnumber/Makefile.in b/libdecnumber/Makefile.in
index e67ff27..b6f3842 100644
--- a/libdecnumber/Makefile.in
+++ b/libdecnumber/Makefile.in
@@ -40,6 +40,7 @@ INSTALL_PROGRAM = @INSTALL_PROGRAM@
LDFLAGS = @LDFLAGS@
LIBICONV = @LIBICONV@
PACKAGE = @PACKAGE@
+PICFLAG = @PICFLAG@
RANLIB = @RANLIB@
SHELL = @SHELL@
objext = @OBJEXT@
@@ -57,7 +58,7 @@ enable_decimal_float= @enable_decimal_float@
INCLUDES = -I$(srcdir) -I.
-ALL_CFLAGS = $(CFLAGS) $(WARN_CFLAGS) $(INCLUDES) $(CPPFLAGS)
+ALL_CFLAGS = $(CFLAGS) $(WARN_CFLAGS) $(INCLUDES) $(CPPFLAGS) $(PICFLAG)
bid_OBJS = bid2dpd_dpd2bid.$(objext) host-ieee32.$(objext) \
host-ieee64.$(objext) host-ieee128.$(objext)
diff --git a/libdecnumber/configure b/libdecnumber/configure
index 4a1896e..2720f46 100755
--- a/libdecnumber/configure
+++ b/libdecnumber/configure
@@ -593,6 +593,7 @@ ac_includes_default="\
ac_subst_vars='LTLIBOBJS
LIBOBJS
+PICFLAG
ADDITIONAL_OBJS
enable_decimal_float
target_os
@@ -670,6 +671,7 @@ enable_option_checking
enable_werror_always
enable_maintainer_mode
enable_decimal_float
+enable_host_shared
'
ac_precious_vars='build_alias
host_alias
@@ -1301,6 +1303,7 @@ Optional Features:
enable decimal float extension to C. Selecting 'bid'
or 'dpd' choses which decimal floating point format
to use
+ --enable-host-shared build host code as shared libraries
Some influential environment variables:
CC C compiler command
@@ -4889,6 +4892,16 @@ $as_echo "#define AC_APPLE_UNIVERSAL_BUILD 1" >>confdefs.h
esac
+# Enable --enable-host-shared.
+# Check whether --enable-host-shared was given.
+if test "${enable_host_shared+set}" = set; then :
+ enableval=$enable_host_shared; PICFLAG=-fPIC
+else
+ PICFLAG=
+fi
+
+
+
# Output.
ac_config_headers="$ac_config_headers config.h:config.in"
diff --git a/libdecnumber/configure.ac b/libdecnumber/configure.ac
index 6cfc803..dd0499c 100644
--- a/libdecnumber/configure.ac
+++ b/libdecnumber/configure.ac
@@ -95,6 +95,13 @@ AC_SUBST(ADDITIONAL_OBJS)
AC_C_BIGENDIAN
+# Enable --enable-host-shared.
+AC_ARG_ENABLE(host-shared,
+[AS_HELP_STRING([--enable-host-shared],
+ [build host code as shared libraries])],
+[PICFLAG=-fPIC], [PICFLAG=])
+AC_SUBST(PICFLAG)
+
# Output.
AC_CONFIG_HEADERS(config.h:config.in, [echo timestamp > stamp-h1])
diff --git a/libiberty/configure b/libiberty/configure
index e601ccd..b71141a 100755
--- a/libiberty/configure
+++ b/libiberty/configure
@@ -4963,6 +4963,12 @@ case "${enable_shared}" in
"") shared=no ;;
*) shared=yes ;;
esac
+
+# ...unless --enable-host-shared was passed from top-level config:
+if [ "${enable_host_shared}" = "yes" ]; then
+ shared=yes
+fi
+
if [ "${shared}" != "yes" ]; then
PICFLAG=
fi
diff --git a/libiberty/configure.ac b/libiberty/configure.ac
index fcea46f..4ad88a9 100644
--- a/libiberty/configure.ac
+++ b/libiberty/configure.ac
@@ -225,6 +225,12 @@ case "${enable_shared}" in
"") shared=no ;;
*) shared=yes ;;
esac
+
+# ...unless --enable-host-shared was passed from top-level config:
+if [[ "${enable_host_shared}" = "yes" ]]; then
+ shared=yes
+fi
+
if [[ "${shared}" != "yes" ]]; then
PICFLAG=
fi
diff --git a/zlib/Makefile.am b/zlib/Makefile.am
index a9c42cb..82f709d 100644
--- a/zlib/Makefile.am
+++ b/zlib/Makefile.am
@@ -16,7 +16,7 @@ libzgcj_convenience_la_SOURCES = $(ZLIB_SOURCES)
else
toolexeclib_LIBRARIES = libz.a
libz_a_SOURCES = $(ZLIB_SOURCES)
-libz_a_CFLAGS = $(AM_CFLAGS)
+libz_a_CFLAGS = $(AM_CFLAGS) $(PICFLAG)
endif
# Work around what appears to be a GNU make bug handling MAKEFLAGS
diff --git a/zlib/Makefile.in b/zlib/Makefile.in
index f5ef37a..3c8fd59 100644
--- a/zlib/Makefile.in
+++ b/zlib/Makefile.in
@@ -177,6 +177,7 @@ PACKAGE_TARNAME = @PACKAGE_TARNAME@
PACKAGE_URL = @PACKAGE_URL@
PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
+PICFLAG = @PICFLAG@
RANLIB = @RANLIB@
SED = @SED@
SET_MAKE = @SET_MAKE@
@@ -255,7 +256,7 @@ zconf.h.in zlib.h zutil.c zutil.h
@TARGET_LIBRARY_TRUE@libzgcj_convenience_la_SOURCES = $(ZLIB_SOURCES)
@TARGET_LIBRARY_FALSE@toolexeclib_LIBRARIES = libz.a
@TARGET_LIBRARY_FALSE@libz_a_SOURCES = $(ZLIB_SOURCES)
-@TARGET_LIBRARY_FALSE@libz_a_CFLAGS = $(AM_CFLAGS)
+@TARGET_LIBRARY_FALSE@libz_a_CFLAGS = $(AM_CFLAGS) $(PICFLAG)
# Work around what appears to be a GNU make bug handling MAKEFLAGS
# values defined in terms of make variables, as is the case for CC and
diff --git a/zlib/configure b/zlib/configure
index c71984f..32e33e7 100755
--- a/zlib/configure
+++ b/zlib/configure
@@ -602,6 +602,7 @@ ac_subst_vars='am__EXEEXT_FALSE
am__EXEEXT_TRUE
LTLIBOBJS
LIBOBJS
+PICFLAG
TARGET_LIBRARY_FALSE
TARGET_LIBRARY_TRUE
toolexeclibdir
@@ -736,6 +737,7 @@ with_pic
enable_fast_install
with_gnu_ld
enable_libtool_lock
+enable_host_shared
'
ac_precious_vars='build_alias
host_alias
@@ -1370,6 +1372,7 @@ Optional Features:
--enable-fast-install[=PKGS]
optimize for fast installation [default=yes]
--disable-libtool-lock avoid locking (might break parallel builds)
+ --enable-host-shared build host code as shared libraries
Optional Packages:
--with-PACKAGE[=ARG] use PACKAGE [ARG=yes]
@@ -10400,7 +10403,7 @@ else
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
lt_status=$lt_dlunknown
cat > conftest.$ac_ext <<_LT_EOF
-#line 10403 "configure"
+#line 10406 "configure"
#include "confdefs.h"
#if HAVE_DLFCN_H
@@ -10506,7 +10509,7 @@ else
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
lt_status=$lt_dlunknown
cat > conftest.$ac_ext <<_LT_EOF
-#line 10509 "configure"
+#line 10512 "configure"
#include "confdefs.h"
#if HAVE_DLFCN_H
@@ -11202,6 +11205,15 @@ else
multilib_arg=
fi
+# Check whether --enable-host-shared was given.
+if test "${enable_host_shared+set}" = set; then :
+ enableval=$enable_host_shared; PICFLAG=-fPIC
+else
+ PICFLAG=
+fi
+
+
+
ac_config_files="$ac_config_files Makefile"
cat >confcache <<\_ACEOF
diff --git a/zlib/configure.ac b/zlib/configure.ac
index 80253e4..fb8d943 100644
--- a/zlib/configure.ac
+++ b/zlib/configure.ac
@@ -119,5 +119,11 @@ else
multilib_arg=
fi
+AC_ARG_ENABLE(host-shared,
+[AS_HELP_STRING([--enable-host-shared],
+ [build host code as shared libraries])],
+[PICFLAG=-fPIC], [PICFLAG=])
+AC_SUBST(PICFLAG)
+
AC_CONFIG_FILES([Makefile])
AC_OUTPUT
--
1.7.11.7