From patchwork Thu Oct 10 00:25:33 2013 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: David Malcolm X-Patchwork-Id: 282101 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from sourceware.org (server1.sourceware.org [209.132.180.131]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (Client did not present a certificate) by ozlabs.org (Postfix) with ESMTPS id 389452C011C for ; Thu, 10 Oct 2013 11:26:10 +1100 (EST) DomainKey-Signature: a=rsa-sha1; c=nofws; d=gcc.gnu.org; h=list-id :list-unsubscribe:list-archive:list-post:list-help:sender:from :to:cc:subject:date:message-id; q=dns; s=default; b=Nm9gONz6KoTm H/biy7Ieusmyh47HvOrGPEdiehrp60AntiI9oC9SGyyAWOSRVnph4uHVju80kbO1 Bef/ksSzFZKObWBTRujNFrbd6uDamKbfOCb4elQPvNKNz4bhVIzVEaWK60yLcUUD DJ2caapUMZnRfwupFcDPYN99T1jvJOI= DKIM-Signature: v=1; a=rsa-sha1; c=relaxed; d=gcc.gnu.org; h=list-id :list-unsubscribe:list-archive:list-post:list-help:sender:from :to:cc:subject:date:message-id; s=default; bh=O3vTtQm9Gx/PeM054D prPFh6ofI=; b=Mrza2tBI6THiYVVj/P9i8CSzNYLtwPJdVpTEzbwRI6JBrBYfQX aZKPlgWZ4n+SLZhtUOg8mjYBP7NYakau3MsZsJvOJLV84fkPMMpQkvfHt17ISXUM 95+ZRd0G/sBM4smI4BQcOt++FL+KbLoC4ZavLkrc3NB1rSMaIYuXJcwyE= Received: (qmail 1555 invoked by alias); 10 Oct 2013 00:26:03 -0000 Mailing-List: contact gcc-patches-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Unsubscribe: List-Archive: List-Post: List-Help: Sender: gcc-patches-owner@gcc.gnu.org Delivered-To: mailing list gcc-patches@gcc.gnu.org Received: (qmail 1546 invoked by uid 89); 10 Oct 2013 00:26:03 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-3.1 required=5.0 tests=AWL, BAYES_00, RP_MATCHES_RCVD, SPF_HELO_PASS, SPF_PASS autolearn=ham version=3.3.2 X-HELO: mx1.redhat.com Received: from mx1.redhat.com (HELO mx1.redhat.com) (209.132.183.28) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Thu, 10 Oct 2013 00:26:00 +0000 Received: from int-mx11.intmail.prod.int.phx2.redhat.com (int-mx11.intmail.prod.int.phx2.redhat.com [10.5.11.24]) by mx1.redhat.com (8.14.4/8.14.4) with ESMTP id r9A0Pxub004680 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK) for ; Wed, 9 Oct 2013 20:25:59 -0400 Received: from surprise.redhat.com (vpn-239-98.phx2.redhat.com [10.3.239.98]) by int-mx11.intmail.prod.int.phx2.redhat.com (8.14.4/8.14.4) with ESMTP id r9A0Pw9j003886; Wed, 9 Oct 2013 20:25:58 -0400 From: David Malcolm To: gcc-patches@gcc.gnu.org Cc: David Malcolm Subject: [PATCH] Add --enable-host-shared configuration option Date: Wed, 9 Oct 2013 20:25:33 -0400 Message-Id: <1381364733-32475-1-git-send-email-dmalcolm@redhat.com> X-IsSubscribed: yes 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