From patchwork Mon Nov 18 02:04:11 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Maciej W. Rozycki" X-Patchwork-Id: 1196490 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=gcc.gnu.org (client-ip=209.132.180.131; helo=sourceware.org; envelope-from=gcc-patches-return-513866-incoming=patchwork.ozlabs.org@gcc.gnu.org; receiver=) Authentication-Results: ozlabs.org; dmarc=fail (p=none dis=none) header.from=wdc.com Authentication-Results: ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=gcc.gnu.org header.i=@gcc.gnu.org header.b="xzLHjTMA"; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=wdc.com header.i=@wdc.com header.b="ojtw+hs9"; dkim-atps=neutral Received: from sourceware.org (server1.sourceware.org [209.132.180.131]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 47GXMq4cmtz9sPT for ; Mon, 18 Nov 2019 13:04:53 +1100 (AEDT) DomainKey-Signature: a=rsa-sha1; c=nofws; d=gcc.gnu.org; h=list-id :list-unsubscribe:list-archive:list-post:list-help:sender:date :from:to:cc:subject:in-reply-to:message-id:references :mime-version:content-type; q=dns; s=default; b=PvHiIZE8LPmBPdc3 h5tH34zV+dNODSiAyxZzwMTMmhR0z+B4VI7VlRjqfUH7Yjt5vEIkNgVqV+tz3IKr URPyhvpiXnue552xVZugMQ4Nq8jBBO3aUmhsQBcHTOBdB84GlnzFEKd7GAiq6bwf Gbz3X0zMCLg2cx6VIBbLoFpLZxI= 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:date :from:to:cc:subject:in-reply-to:message-id:references :mime-version:content-type; s=default; bh=mbZThYJ0SaaIyUIPXelX2e FM484=; b=xzLHjTMAtY2N+5s9Kz6yrTL2A4t/UwdSstKbx+H9Jx4qH7eXYmu+Zc I34zAcLnhA1aFSqAbYRT0ozJQA2+/mD6eqNmASoTr5bNml9L3ZXPV8TeC0zAjzkQ I9sn4LBnt72uDaGKlhre+Q1fNhrm5YoVve/GrtMbNT+kpahVYDyr4= Received: (qmail 74958 invoked by alias); 18 Nov 2019 02:04:32 -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 74936 invoked by uid 89); 18 Nov 2019 02:04:32 -0000 Authentication-Results: sourceware.org; auth=none X-Spam-SWARE-Status: No, score=-9.0 required=5.0 tests=AWL, BAYES_00, GIT_PATCH_2, GIT_PATCH_3, KAM_ASCII_DIVIDERS, KAM_SHORT autolearn=ham version=3.3.1 spammy=arrangement, H*Ad:U*libffi-discuss, H*Ad:D*googlegroups.com, H*MI:sk:alpine. X-HELO: esa3.hgst.iphmx.com Received: from esa3.hgst.iphmx.com (HELO esa3.hgst.iphmx.com) (216.71.153.141) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Mon, 18 Nov 2019 02:04:20 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=wdc.com; i=@wdc.com; q=dns/txt; s=dkim.wdc.com; t=1574042660; x=1605578660; h=date:from:to:cc:subject:in-reply-to:message-id: references:mime-version; bh=dMW0INRPQYPgvp0Ekku1ckMf2eMHbcys/kQQYwBp+dM=; b=ojtw+hs9Mg2zclL1NTY3CQ+k3zp2X/6sVHhdzAGyYvr+BLEA9ydoy/W3 F+77ROKJBekSNOogQhoLHMTMclduI06D7Bl2r/txKlOE1U29w8nrzqQKm AdLSrVNEiWujwmSxCu3ar569xR8+BnI861+x3fh3sTPUNcJBwvGAmPcgt kjva2z0p7UmIKk6Ts36XyhBWEPJDvjaySc44GMMUVKjm7lguMS5VVt5Pm 4uSzbqWh85asZT8Ik+EYnGuIzcWhE6i8dXCWF2k3DtZadpN4dEAy9lN5o m9tttk1sAwpP6oWQaFB2+CeuygJrla25H2b0LttKPVItze3Y7uAhPsUbY Q==; IronPort-SDR: YCpLABFDj+adi5EE2n6ogwA6WP4gT05Xnf/Wed1nKPM1DepAvuuOdjz77uh5kFcE5wUPwFODrL pawGA3Y7z9wskfn/geVAp8xHVVH8xPUi/UExDVkMdNrE47lxvKMzBVApxXnDuCypuScbt+FiC4 ECV2C/aW6jIp3cjQvD2wxHYrlRBrmTf8eAPneHyAYb/ne5CMVV/WGPejsCjCkGhS2tEKF+nXrN IGI8ThdRCmZ9E2Vo6823mGT3NtAYKa+GQJ98Z/lo2cadGZcsHxQf+FdbtX/lC+ErO6zYlXP1v7 rjg= Received: from uls-op-cesaip02.wdc.com (HELO uls-op-cesaep02.wdc.com) ([199.255.45.15]) by ob1.hgst.iphmx.com with ESMTP; 18 Nov 2019 10:04:19 +0800 IronPort-SDR: 90jam3MOlRu+yc2hGdl4J2rPVF6MBLxifd/Su7uEwaepDYP/0Ii2vyBeJxzzvvAPPHuhigZ+9K Q3EgxT5/Bce17lkEnMJiwlRs2OTot9lEhGb9vhAOem69ElcT6Q8PQowQLFDaPJvrMwu/xPHFke raN9CJ+YI4NR9aoHlBHhpHkqA2MYoS8DIoBqqCckWemM8McqaBTYTMZEBx85tWvxA7Os9sdUwe gBOy33wmfLjTsPV0NRziin4395E6f9fwl4oaVUV01qYQ849xwlHUKia5jD4Wy0uc5ZZstylfgo cbwXqU64wGWIfTUvDMwmXudm Received: from uls-op-cesaip01.wdc.com ([10.248.3.36]) by uls-op-cesaep02.wdc.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 17 Nov 2019 17:59:10 -0800 IronPort-SDR: kLq4aGS0nuTJvtBDogxzNyeapvjor9QzmSMci/tSybjDeaKPbUpXwXkh62zF4BPjVI1IEeuqph AEERjChkP07TDsU6CIIzBDwSzCbqMdIq419Owl6zqSE9TkJ4Klai+5JGPYPWRDaeztwNfbx+F1 F2ja/zWdbuYvYQqjCXWobYUOVchgNuR5z0Yy8tfs2HqJKyYzkFkbW0/n8bkHYq26D5/ZtLPxYa bDtxAXgHSsCidLBwftciFCbGOZbvtcZ4lir0N8uspIZpenVsSI4B4OwQAYpbDTbegZbrabRoFG nBw= WDCIronportException: Internal Received: from unknown (HELO redsun52) ([10.149.66.28]) by uls-op-cesaip01.wdc.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 17 Nov 2019 18:04:16 -0800 Date: Mon, 18 Nov 2019 02:04:11 +0000 (GMT) From: "Maciej W. Rozycki" To: Joseph Myers , gcc-patches@gcc.gnu.org cc: libffi-discuss@sourceware.org, golang-dev@googlegroups.com, zlib@gzip.org Subject: [PATCH v2] Add `--with-install-sysroot=' configuration option In-Reply-To: Message-ID: References: User-Agent: Alpine 2.21 (LFD 202 2017-01-01) MIME-Version: 1.0 Provide means, in the form of a `--with-install-sysroot=' configuration option, to override the default installation directory for target libraries, otherwise known as $toolexeclibdir. This is so that it is possible to get newly-built libraries, particularly the shared ones, installed in a common sysroot, so that they can be readily used by the target system as their host libraries, possibly over NFS, without a need to manually copy them over from the currently hardcoded location they would otherwise be installed in. The name of the configuration option is chosen such as to give it a meaning, rather than referring to obscure $toolexeclibdir. Arguments are interpreted as with the `--with-sysroot=' option. The default is the current value of $toolexeclibdir, so in the absence of the option from the invocation of the `configure' script the installation location for target libraries remains unchanged from the current arrangement. In the presence of the `--enable-version-specific-runtime-libs' option and for configurations building native GCC the option is ignored. config/ * install-sysroot.m4: New file. gcc/ * doc/install.texi (Cross-Compiler-Specific Options): Document `--with-install-sysroot' option. libada/ * Makefile.in (configure_deps): Add `install-sysroot.m4'. * configure.ac: Handle `--with-install-sysroot='. * configure: Regenerate. libatomic/ * configure.ac: Handle `--with-install-sysroot='. * Makefile.in: Regenerate. * aclocal.m4: Regenerate. * configure: Regenerate. * testsuite/Makefile.in: Regenerate. libffi/ * configure.ac: Handle `--with-install-sysroot='. * Makefile.in: Regenerate. * aclocal.m4: Regenerate. * configure: Regenerate. * include/Makefile.in: Regenerate. * man/Makefile.in: Regenerate. * testsuite/Makefile.in: Regenerate. libgcc/ * Makefile.in (configure_deps): Add `install-sysroot.m4'. * configure.ac: Handle `--with-install-sysroot='. * configure: Regenerate. libgfortran/ * configure.ac: Handle `--with-install-sysroot='. * Makefile.in: Regenerate. * aclocal.m4: Regenerate. * configure: Regenerate. libgo/ * configure.ac: Handle `--with-install-sysroot='. * Makefile.in: Regenerate. * aclocal.m4: Regenerate. * configure: Regenerate. * testsuite/Makefile.in: Regenerate. libgomp/ * configure.ac: Handle `--with-install-sysroot='. * Makefile.in: Regenerate. * aclocal.m4: Regenerate. * configure: Regenerate. * testsuite/Makefile.in: Regenerate. libhsail-rt/ * configure.ac: Handle `--with-install-sysroot='. * Makefile.in: Regenerate. * aclocal.m4: Regenerate. * configure: Regenerate. libitm/ * configure.ac: Handle `--with-install-sysroot='. * Makefile.in: Regenerate. * aclocal.m4: Regenerate. * configure: Regenerate. * testsuite/Makefile.in: Regenerate. libobjc/ * Makefile.in (aclocal_deps): Add `install-sysroot.m4'. * aclocal.m4: Include `install-sysroot.m4'. * configure.ac: Handle `--with-install-sysroot='. * configure: Regenerate. liboffloadmic/ * plugin/configure.ac: Handle `--with-install-sysroot='. * plugin/Makefile.in: Regenerate. * plugin/aclocal.m4: Regenerate. * plugin/configure: Regenerate. * configure.ac: Handle `--with-install-sysroot='. * Makefile.in: Regenerate. * aclocal.m4: Regenerate. * configure: Regenerate. libphobos/ * m4/druntime.m4: Handle `--with-install-sysroot='. * m4/Makefile.in: Regenerate. * libdruntime/Makefile.in: Regenerate. * src/Makefile.in: Regenerate. * testsuite/Makefile.in: Regenerate. * Makefile.in: Regenerate. * aclocal.m4: Regenerate. * configure: Regenerate. libquadmath/ * configure.ac: Handle `--with-install-sysroot='. * Makefile.in: Regenerate. * aclocal.m4: Regenerate. * configure: Regenerate. libsanitizer/ * configure.ac: Handle `--with-install-sysroot='. * Makefile.in: Regenerate. * aclocal.m4: Regenerate. * configure: Regenerate. * asan/Makefile.in: Regenerate. * interception/Makefile.in: Regenerate. * libbacktrace/Makefile.in: Regenerate. * lsan/Makefile.in: Regenerate. * sanitizer_common/Makefile.in: Regenerate. * tsan/Makefile.in: Regenerate. * ubsan/Makefile.in: Regenerate. libssp/ * configure.ac: Handle `--with-install-sysroot='. * Makefile.in: Regenerate. * aclocal.m4: Regenerate. * configure: Regenerate. libstdc++-v3/ * acinclude.m4: Handle `--with-install-sysroot='. * Makefile.in: Regenerate. * aclocal.m4: Regenerate. * configure: Regenerate. * doc/Makefile.in: Regenerate. * include/Makefile.in: Regenerate. * libsupc++/Makefile.in: Regenerate. * po/Makefile.in: Regenerate. * python/Makefile.in: Regenerate. * src/Makefile.in: Regenerate. * src/c++11/Makefile.in: Regenerate. * src/c++17/Makefile.in: Regenerate. * src/c++98/Makefile.in: Regenerate. * src/filesystem/Makefile.in: Regenerate. * testsuite/Makefile.in: Regenerate. libvtv/ * configure.ac: Handle `--with-install-sysroot='. * Makefile.in: Regenerate. * aclocal.m4: Regenerate. * configure: Regenerate. * testsuite/Makefile.in: Regenerate. zlib/ * configure.ac: Handle `--with-install-sysroot='. * Makefile.in: Regenerate. * aclocal.m4: Regenerate. * configure: Regenerate. --- Hi Joseph, Thank you for your review. On Thu, 14 Nov 2019, Joseph Myers wrote: > > Questions, comments, OK to apply? > > 1. This needs documentation in install.texi. Good point, I forgot about that document. > 2. A common macro in config/ would be better than duplicating code in each > configure.ac file. I guess at this point I could factor out the AC_ARG_WITH invocation. There is a minor issue with different subdirs using different ways to refer to the machine alias, specifically one of: $(target_noncanonical), $(target_alias), $(host_noncanonical), ${host_alias}. As none of the libraries concerned has a notion of a target (possibly different from the host a library has been configured for; unlikely e.g. libbfd) and GCC's target becomes the host they get configured for, they should all really use $(host_noncanonical), and I gather the current inconsistency is historical baggage, possibly from someone's misunderstanding how the build/host/target concept has been formulated. That I think is however material for a separate clean-up, to be applied throughout the respective `configure' scripts and possibly other files (Makefiles). So instead I have provided GCC_WITH_INSTALL_SYSROOT with an argument that passes the form consistent with the rest of the `configure' script in question down to the expansion. When the time comes and the clean-up mentioned is done the argument can be removed. The rest of the code added is in the middle of existing mostly though not completely duplicated code. I think it would benefit from a clean-up too, but I'd suggest it as a separate change. > 3. To confirm (this should be made clear in the documentation), this is > nonsensical given --enable-version-specific-runtime-libs? If so, maybe > the configure macro should give an error for the combination if possible. Now that you mention it I have given it some thought and it seems infeasible to me, specifically because we currently have mixed defaults for the `--enable-version-specific-runtime-libs' option; for historical reasons it defaults to `yes' for libada/ and to `no' for other subdirs. I think it makes sense to allow people changing the installation directory for subdirs that default to `no' without requiring them to flip the setting for libada/. NB documentation for the `--enable-version-specific-runtime-libs' option does not appear to be up to date WRT subdirs supported; I'll see if I can squeeze out some time to make a suitable change. > 4. How does this interact with sysroot suffixes (again, this should be > made clear in the documentation)? There is no interaction, the patch merely changes where the libraries are installed. If the installation sysroot directory chosen is not one known by the GCC driver, then the newly-installed target libraries won't be automatically used (that of course can be changed with the appropriate use of the `-B', `-L' and `--sysroot=' driver options). > 5. With this option, does the multilib OS directory (e.g. "../lib64") get > used for anything at all outside the sysroot? If not, is it valid with > this option to have the same value of that directory for more than one > multilib (that use different sysroot suffixes)? Again, the option does not affect the library search path used by the GCC driver; any multilib OS directory paths are applied as appropriate by the driver to the library paths chosen. > (The basic complication in configurations with multiple sysroots is that > the multilib OS directory currently gets used outside the sysroot, so > needs to be unique. But you also want a version that's only unique inside > the sysroot - if you have sysroots for different CPU variants, each should > have libraries in e.g. lib64 inside that sysroot. At present, in such > cases, you need to set STARTFILE_PREFIX_SPEC for the libraries to be found > at link time inside the sysroot; see > for some commentary on > that.) I have given it all some thought and I have come to the conclusion that your questions #4 and #5 are really tangential to my proposed change, and I believe we need not consider them to move forward with the change. This is because in the `--enable-version-specific-runtime-libs=no' case our installation recipes for files that end up in $toolexeclibdir apply the same $multi_os_directory transformation whether $toolexeclibdir is derived from $(libdir) or $(exec_prefix)/$(target_noncanonical)/lib. So either the GCC driver handles both of these cases right already (and I believe it does, as `for_each_path' appears to be consistently called throughout `gcc.c') or it does not, however my proposed change does not affect it, and therefore I think we need not determine it to proceed with the proposed change. Here's an updated change, beside verifying it to recreate the same installation directory structure as v1 did I have checked generated `gccinstall.info' and `gccinstall.pdf' files as well. Questions, comments, OK to apply? Maciej Changes from v1: - The handling of `--with-install-sysroot=' moved to install-sysroot.m4. - Documentation added for `--with-install-sysroot=' to install.texi. --- config/install-sysroot.m4 | 35 +++++++++++++++++++++ gcc/doc/install.texi | 11 ++++++ libada/Makefile.in | 1 libada/configure | 31 ++++++++++++++++++ libada/configure.ac | 12 ++++++- libatomic/Makefile.in | 1 libatomic/aclocal.m4 | 1 libatomic/configure | 35 +++++++++++++++++++-- libatomic/configure.ac | 11 ++++++ libatomic/testsuite/Makefile.in | 1 libffi/Makefile.in | 1 libffi/aclocal.m4 | 1 libffi/configure | 35 +++++++++++++++++++-- libffi/configure.ac | 11 ++++++ libffi/include/Makefile.in | 1 libffi/man/Makefile.in | 1 libffi/testsuite/Makefile.in | 1 libgcc/Makefile.in | 1 libgcc/configure | 40 +++++++++++++++++++++++- libgcc/configure.ac | 25 ++++++++++++--- libgfortran/Makefile.in | 1 libgfortran/aclocal.m4 | 1 libgfortran/configure | 35 +++++++++++++++++++-- libgfortran/configure.ac | 11 ++++++ libgo/Makefile.in | 1 libgo/aclocal.m4 | 1 libgo/configure | 35 +++++++++++++++++++-- libgo/configure.ac | 11 ++++++ libgo/testsuite/Makefile.in | 1 libgomp/Makefile.in | 1 libgomp/aclocal.m4 | 1 libgomp/configure | 35 +++++++++++++++++++-- libgomp/configure.ac | 11 ++++++ libgomp/testsuite/Makefile.in | 1 libhsail-rt/Makefile.in | 1 libhsail-rt/aclocal.m4 | 1 libhsail-rt/configure | 35 +++++++++++++++++++-- libhsail-rt/configure.ac | 11 ++++++ libitm/Makefile.in | 1 libitm/aclocal.m4 | 1 libitm/configure | 35 +++++++++++++++++++-- libitm/configure.ac | 11 ++++++ libitm/testsuite/Makefile.in | 1 libobjc/Makefile.in | 1 libobjc/aclocal.m4 | 1 libobjc/configure | 35 +++++++++++++++++++-- libobjc/configure.ac | 11 ++++++ liboffloadmic/Makefile.in | 1 liboffloadmic/aclocal.m4 | 1 liboffloadmic/configure | 35 +++++++++++++++++++-- liboffloadmic/configure.ac | 11 ++++++ liboffloadmic/plugin/Makefile.in | 1 liboffloadmic/plugin/aclocal.m4 | 1 liboffloadmic/plugin/configure | 35 +++++++++++++++++++-- liboffloadmic/plugin/configure.ac | 11 ++++++ libphobos/Makefile.in | 1 libphobos/aclocal.m4 | 1 libphobos/configure | 35 +++++++++++++++++++-- libphobos/libdruntime/Makefile.in | 1 libphobos/m4/druntime.m4 | 11 ++++++ libphobos/src/Makefile.in | 1 libphobos/testsuite/Makefile.in | 1 libquadmath/Makefile.in | 1 libquadmath/aclocal.m4 | 1 libquadmath/configure | 35 +++++++++++++++++++-- libquadmath/configure.ac | 11 ++++++ libsanitizer/Makefile.in | 1 libsanitizer/aclocal.m4 | 1 libsanitizer/asan/Makefile.in | 1 libsanitizer/configure | 35 +++++++++++++++++++-- libsanitizer/configure.ac | 11 ++++++ libsanitizer/interception/Makefile.in | 1 libsanitizer/libbacktrace/Makefile.in | 1 libsanitizer/lsan/Makefile.in | 1 libsanitizer/sanitizer_common/Makefile.in | 1 libsanitizer/tsan/Makefile.in | 1 libsanitizer/ubsan/Makefile.in | 1 libssp/Makefile.in | 1 libssp/aclocal.m4 | 1 libssp/configure | 35 +++++++++++++++++++-- libssp/configure.ac | 11 ++++++ libstdc++-v3/Makefile.in | 1 libstdc++-v3/acinclude.m4 | 11 ++++++ libstdc++-v3/aclocal.m4 | 1 libstdc++-v3/configure | 49 +++++++++++++++++++++++------- libstdc++-v3/doc/Makefile.in | 1 libstdc++-v3/include/Makefile.in | 1 libstdc++-v3/libsupc++/Makefile.in | 1 libstdc++-v3/po/Makefile.in | 1 libstdc++-v3/python/Makefile.in | 1 libstdc++-v3/src/Makefile.in | 1 libstdc++-v3/src/c++11/Makefile.in | 1 libstdc++-v3/src/c++17/Makefile.in | 1 libstdc++-v3/src/c++98/Makefile.in | 1 libstdc++-v3/src/filesystem/Makefile.in | 1 libstdc++-v3/testsuite/Makefile.in | 1 libvtv/Makefile.in | 1 libvtv/aclocal.m4 | 1 libvtv/configure | 35 +++++++++++++++++++-- libvtv/configure.ac | 11 ++++++ libvtv/testsuite/Makefile.in | 1 zlib/Makefile.in | 1 zlib/aclocal.m4 | 1 zlib/configure | 35 +++++++++++++++++++-- zlib/configure.ac | 11 ++++++ 105 files changed, 932 insertions(+), 83 deletions(-) gcc-install-sysroot.diff Index: gcc/config/install-sysroot.m4 =================================================================== --- /dev/null +++ gcc/config/install-sysroot.m4 @@ -0,0 +1,35 @@ +dnl Install sysroot support. +dnl Copyright (C) 2019 Free Software Foundation, Inc. +dnl +dnl This program is free software; you can redistribute it and/or modify +dnl it under the terms of the GNU General Public License as published by +dnl the Free Software Foundation; either version 3, or (at your option) +dnl any later version. +dnl +dnl This program is distributed in the hope that it will be useful, +dnl but WITHOUT ANY WARRANTY; without even the implied warranty of +dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +dnl GNU General Public License for more details. +dnl +dnl You should have received a copy of the GNU General Public License +dnl along with this program; see the file COPYING3. If not see +dnl . + +# GCC_WITH_INSTALL_SYSROOT([machine-alias]) +AC_DEFUN([GCC_WITH_INSTALL_SYSROOT], +[AC_ARG_WITH(install-sysroot, + [AS_HELP_STRING([--with-install-sysroot=DIR], + [install libraries within DIR])], + [dnl +case ${with_install_sysroot} in + /) + ;; + */) + with_install_sysroot=`echo $with_install_sysroot | sed 's,/$,,'` + ;; + yes) + with_install_sysroot='$(exec_prefix)/$1/sys-root' + ;; +esac], + [with_install_sysroot=no]) +]) Index: gcc/gcc/doc/install.texi =================================================================== --- gcc.orig/gcc/doc/install.texi +++ gcc/gcc/doc/install.texi @@ -2245,6 +2245,17 @@ If you specify the @option{--with-native option then the compiler will search that directory within @var{dirname} for native system headers rather than the default @file{/usr/include}. +@item --with-install-sysroot +@itemx --with-install-sysroot=@var{dir} +Tells GCC to install target libraries in @var{dir} rather than +@option{$@{gcc_tooldir@}/lib} except where the use of a compiler-specific +subdirectory has been selected, either with +@option{--enable-version-specific-runtime-libs}, or defaulted. This +option does not however itself make newly-built GCC search the specified +directory for libraries. The default value, in case +@option{--with-install-sysroot} is not given an argument, is +@option{$@{gcc_tooldir@}/sys-root}. + @item --with-headers @itemx --with-headers=@var{dir} Deprecated in favor of @option{--with-sysroot}. Index: gcc/libada/Makefile.in =================================================================== --- gcc.orig/libada/Makefile.in +++ gcc/libada/Makefile.in @@ -183,6 +183,7 @@ AUTOCONF = autoconf configure_deps = \ $(srcdir)/configure.ac \ $(srcdir)/../config/acx.m4 \ + $(srcdir)/../config/install-sysroot.m4 \ $(srcdir)/../config/multi.m4 \ $(srcdir)/../config/override.m4 \ $(srcdir)/../config/picflag.m4 \ Index: gcc/libada/configure =================================================================== --- gcc.orig/libada/configure +++ gcc/libada/configure @@ -704,6 +704,7 @@ enable_option_checking with_build_libsubdir enable_version_specific_runtime_libs enable_maintainer_mode +with_install_sysroot enable_multilib enable_shared with_system_libunwind @@ -1339,6 +1340,8 @@ if test -n "$ac_init_help"; then --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) --with-build-libsubdir=DIR Directory where to find libraries for build system + --with-install-sysroot=DIR + install libraries within DIR --with-system-libunwind use installed libunwind --with-gcc-major-version-only use only GCC major number in filesystem paths @@ -2249,6 +2252,25 @@ else fi + +# Check whether --with-install-sysroot was given. +if test "${with_install_sysroot+set}" = set; then : + withval=$with_install_sysroot; case ${with_install_sysroot} in + /) + ;; + */) + with_install_sysroot=`echo $with_install_sysroot | sed 's,/$,,'` + ;; + yes) + with_install_sysroot='$(exec_prefix)/$(target_alias)/sys-root' + ;; +esac +else + with_install_sysroot=no +fi + + + # Default to --enable-multilib # Check whether --enable-multilib was given. if test "${enable_multilib+set}" = set; then : @@ -2301,7 +2323,14 @@ case ${enable_version_specific_runtime_l test x"$with_cross_host" != x"no"; then # Install a library built with a cross compiler in tooldir, not libdir. toolexecdir='$(exec_prefix)/$(target_alias)' - toolexeclibdir='$(toolexecdir)/lib' + case ${with_install_sysroot} in + no) + toolexeclibdir='$(toolexecdir)/lib' + ;; + *) + toolexeclibdir=${with_install_sysroot}/lib + ;; + esac else toolexecdir='$(libdir)/gcc-lib/$(target_alias)' toolexeclibdir='$(libdir)' Index: gcc/libada/configure.ac =================================================================== --- gcc.orig/libada/configure.ac +++ gcc/libada/configure.ac @@ -16,6 +16,7 @@ # . sinclude(../config/acx.m4) +sinclude(../config/install-sysroot.m4) sinclude(../config/multi.m4) sinclude(../config/override.m4) sinclude(../config/picflag.m4) @@ -67,6 +68,8 @@ AC_ARG_ENABLE([maintainer-mode], [MAINT='#']) AC_SUBST([MAINT])dnl +GCC_WITH_INSTALL_SYSROOT([$(target_alias)]) + AM_ENABLE_MULTILIB(, ..) # Calculate toolexeclibdir # Also toolexecdir, though it's only used in toolexeclibdir @@ -83,7 +86,14 @@ case ${enable_version_specific_runtime_l test x"$with_cross_host" != x"no"; then # Install a library built with a cross compiler in tooldir, not libdir. toolexecdir='$(exec_prefix)/$(target_alias)' - toolexeclibdir='$(toolexecdir)/lib' + case ${with_install_sysroot} in + no) + toolexeclibdir='$(toolexecdir)/lib' + ;; + *) + toolexeclibdir=${with_install_sysroot}/lib + ;; + esac else toolexecdir='$(libdir)/gcc-lib/$(target_alias)' toolexeclibdir='$(libdir)' Index: gcc/libatomic/Makefile.in =================================================================== --- gcc.orig/libatomic/Makefile.in +++ gcc/libatomic/Makefile.in @@ -101,6 +101,7 @@ subdir = . ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/../config/acx.m4 \ $(top_srcdir)/../config/depstand.m4 \ + $(top_srcdir)/../config/install-sysroot.m4 \ $(top_srcdir)/../config/lead-dot.m4 \ $(top_srcdir)/../config/lthostflags.m4 \ $(top_srcdir)/../config/multi.m4 \ Index: gcc/libatomic/aclocal.m4 =================================================================== --- gcc.orig/libatomic/aclocal.m4 +++ gcc/libatomic/aclocal.m4 @@ -1189,6 +1189,7 @@ AC_SUBST([am__untar]) m4_include([../config/acx.m4]) m4_include([../config/depstand.m4]) +m4_include([../config/install-sysroot.m4]) m4_include([../config/lead-dot.m4]) m4_include([../config/lthostflags.m4]) m4_include([../config/multi.m4]) Index: gcc/libatomic/configure =================================================================== --- gcc.orig/libatomic/configure +++ gcc/libatomic/configure @@ -794,6 +794,7 @@ enable_version_specific_runtime_libs enable_generated_files_in_srcdir enable_silent_rules enable_multilib +with_install_sysroot enable_dependency_tracking enable_shared enable_static @@ -1459,6 +1460,8 @@ if test -n "$ac_init_help"; then Optional Packages: --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) + --with-install-sysroot=DIR + install libraries within DIR --with-pic try to use only PIC/non-PIC objects [default=use both] --with-gnu-ld assume the C compiler uses GNU ld [default=no] @@ -3343,6 +3346,25 @@ fi ac_config_commands="$ac_config_commands default-1" + +# Check whether --with-install-sysroot was given. +if test "${with_install_sysroot+set}" = set; then : + withval=$with_install_sysroot; case ${with_install_sysroot} in + /) + ;; + */) + with_install_sysroot=`echo $with_install_sysroot | sed 's,/$,,'` + ;; + yes) + with_install_sysroot='$(exec_prefix)/$(target_alias)/sys-root' + ;; +esac +else + with_install_sysroot=no +fi + + + # Calculate toolexeclibdir # Also toolexecdir, though it's only used in toolexeclibdir case ${enable_version_specific_runtime_libs} in @@ -3358,7 +3380,14 @@ case ${enable_version_specific_runtime_l test x"$with_cross_host" != x"no"; then # Install a library built with a cross compiler in tooldir, not libdir. toolexecdir='$(exec_prefix)/$(target_alias)' - toolexeclibdir='$(toolexecdir)/lib' + case ${with_install_sysroot} in + no) + toolexeclibdir='$(toolexecdir)/lib' + ;; + *) + toolexeclibdir=${with_install_sysroot}/lib + ;; + esac else toolexecdir='$(libdir)/gcc-lib/$(target_alias)' toolexeclibdir='$(libdir)' @@ -11360,7 +11389,7 @@ else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<_LT_EOF -#line 11363 "configure" +#line 11392 "configure" #include "confdefs.h" #if HAVE_DLFCN_H @@ -11466,7 +11495,7 @@ else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<_LT_EOF -#line 11469 "configure" +#line 11498 "configure" #include "confdefs.h" #if HAVE_DLFCN_H Index: gcc/libatomic/configure.ac =================================================================== --- gcc.orig/libatomic/configure.ac +++ gcc/libatomic/configure.ac @@ -84,6 +84,8 @@ target_alias=${target_alias-$host_alias} AM_INIT_AUTOMAKE([1.9.0 foreign no-dist -Wall -Wno-portability -Wno-override]) AM_ENABLE_MULTILIB(, ..) +GCC_WITH_INSTALL_SYSROOT([$(target_alias)]) + # Calculate toolexeclibdir # Also toolexecdir, though it's only used in toolexeclibdir case ${enable_version_specific_runtime_libs} in @@ -99,7 +101,14 @@ case ${enable_version_specific_runtime_l test x"$with_cross_host" != x"no"; then # Install a library built with a cross compiler in tooldir, not libdir. toolexecdir='$(exec_prefix)/$(target_alias)' - toolexeclibdir='$(toolexecdir)/lib' + case ${with_install_sysroot} in + no) + toolexeclibdir='$(toolexecdir)/lib' + ;; + *) + toolexeclibdir=${with_install_sysroot}/lib + ;; + esac else toolexecdir='$(libdir)/gcc-lib/$(target_alias)' toolexeclibdir='$(libdir)' Index: gcc/libatomic/testsuite/Makefile.in =================================================================== --- gcc.orig/libatomic/testsuite/Makefile.in +++ gcc/libatomic/testsuite/Makefile.in @@ -92,6 +92,7 @@ subdir = testsuite ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/../config/acx.m4 \ $(top_srcdir)/../config/depstand.m4 \ + $(top_srcdir)/../config/install-sysroot.m4 \ $(top_srcdir)/../config/lead-dot.m4 \ $(top_srcdir)/../config/lthostflags.m4 \ $(top_srcdir)/../config/multi.m4 \ Index: gcc/libffi/Makefile.in =================================================================== --- gcc.orig/libffi/Makefile.in +++ gcc/libffi/Makefile.in @@ -100,6 +100,7 @@ ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/../config/acx.m4 \ $(top_srcdir)/../config/asmcfi.m4 \ $(top_srcdir)/../config/depstand.m4 \ + $(top_srcdir)/../config/install-sysroot.m4 \ $(top_srcdir)/../config/lead-dot.m4 \ $(top_srcdir)/../config/multi.m4 \ $(top_srcdir)/../config/override.m4 \ Index: gcc/libffi/aclocal.m4 =================================================================== --- gcc.orig/libffi/aclocal.m4 +++ gcc/libffi/aclocal.m4 @@ -1190,6 +1190,7 @@ AC_SUBST([am__untar]) m4_include([../config/acx.m4]) m4_include([../config/asmcfi.m4]) m4_include([../config/depstand.m4]) +m4_include([../config/install-sysroot.m4]) m4_include([../config/lead-dot.m4]) m4_include([../config/multi.m4]) m4_include([../config/override.m4]) Index: gcc/libffi/configure =================================================================== --- gcc.orig/libffi/configure +++ gcc/libffi/configure @@ -813,6 +813,7 @@ enable_debug enable_structs enable_raw_api enable_purify_safety +with_install_sysroot enable_symvers with_gcc_major_version_only ' @@ -1476,6 +1477,8 @@ if test -n "$ac_init_help"; then --with-pic try to use only PIC/non-PIC objects [default=use both] --with-gnu-ld assume the C compiler uses GNU ld [default=no] + --with-install-sysroot=DIR + install libraries within DIR --with-gcc-major-version-only use only GCC major number in filesystem paths @@ -11557,7 +11560,7 @@ else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<_LT_EOF -#line 11560 "configure" +#line 11563 "configure" #include "confdefs.h" #if HAVE_DLFCN_H @@ -11663,7 +11666,7 @@ else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<_LT_EOF -#line 11666 "configure" +#line 11669 "configure" #include "confdefs.h" #if HAVE_DLFCN_H @@ -16177,10 +16180,36 @@ $as_echo "#define USING_PURIFY 1" >>conf fi + +# Check whether --with-install-sysroot was given. +if test "${with_install_sysroot+set}" = set; then : + withval=$with_install_sysroot; case ${with_install_sysroot} in + /) + ;; + */) + with_install_sysroot=`echo $with_install_sysroot | sed 's,/$,,'` + ;; + yes) + with_install_sysroot='$(exec_prefix)/$(target_alias)/sys-root' + ;; +esac +else + with_install_sysroot=no +fi + + + if test -n "$with_cross_host" && test x"$with_cross_host" != x"no"; then toolexecdir='$(exec_prefix)/$(target_alias)' - toolexeclibdir='$(toolexecdir)/lib' + case ${with_install_sysroot} in + no) + toolexeclibdir='$(toolexecdir)/lib' + ;; + *) + toolexeclibdir=${with_install_sysroot}/lib + ;; + esac else toolexecdir='$(libdir)/gcc-lib/$(target_alias)' toolexeclibdir='$(libdir)' Index: gcc/libffi/configure.ac =================================================================== --- gcc.orig/libffi/configure.ac +++ gcc/libffi/configure.ac @@ -332,10 +332,19 @@ AC_ARG_ENABLE(purify-safety, AC_DEFINE(USING_PURIFY, 1, [Define this if you are using Purify and want to suppress spurious messages.]) fi) +GCC_WITH_INSTALL_SYSROOT([$(target_alias)]) + if test -n "$with_cross_host" && test x"$with_cross_host" != x"no"; then toolexecdir='$(exec_prefix)/$(target_alias)' - toolexeclibdir='$(toolexecdir)/lib' + case ${with_install_sysroot} in + no) + toolexeclibdir='$(toolexecdir)/lib' + ;; + *) + toolexeclibdir=${with_install_sysroot}/lib + ;; + esac else toolexecdir='$(libdir)/gcc-lib/$(target_alias)' toolexeclibdir='$(libdir)' Index: gcc/libffi/include/Makefile.in =================================================================== --- gcc.orig/libffi/include/Makefile.in +++ gcc/libffi/include/Makefile.in @@ -94,6 +94,7 @@ ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/../config/acx.m4 \ $(top_srcdir)/../config/asmcfi.m4 \ $(top_srcdir)/../config/depstand.m4 \ + $(top_srcdir)/../config/install-sysroot.m4 \ $(top_srcdir)/../config/lead-dot.m4 \ $(top_srcdir)/../config/multi.m4 \ $(top_srcdir)/../config/override.m4 \ Index: gcc/libffi/man/Makefile.in =================================================================== --- gcc.orig/libffi/man/Makefile.in +++ gcc/libffi/man/Makefile.in @@ -93,6 +93,7 @@ ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/../config/acx.m4 \ $(top_srcdir)/../config/asmcfi.m4 \ $(top_srcdir)/../config/depstand.m4 \ + $(top_srcdir)/../config/install-sysroot.m4 \ $(top_srcdir)/../config/lead-dot.m4 \ $(top_srcdir)/../config/multi.m4 \ $(top_srcdir)/../config/override.m4 \ Index: gcc/libffi/testsuite/Makefile.in =================================================================== --- gcc.orig/libffi/testsuite/Makefile.in +++ gcc/libffi/testsuite/Makefile.in @@ -93,6 +93,7 @@ ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/../config/acx.m4 \ $(top_srcdir)/../config/asmcfi.m4 \ $(top_srcdir)/../config/depstand.m4 \ + $(top_srcdir)/../config/install-sysroot.m4 \ $(top_srcdir)/../config/lead-dot.m4 \ $(top_srcdir)/../config/multi.m4 \ $(top_srcdir)/../config/override.m4 \ Index: gcc/libgcc/Makefile.in =================================================================== --- gcc.orig/libgcc/Makefile.in +++ gcc/libgcc/Makefile.in @@ -164,6 +164,7 @@ config.status: $(srcdir)/configure $(src AUTOCONF = autoconf configure_deps = \ $(srcdir)/../config/enable.m4 \ + $(srcdir)/../config/install-sysroot.m4 \ $(srcdir)/../config/tls.m4 \ $(srcdir)/../config/acx.m4 \ $(srcdir)/../config/no-executables.m4 \ Index: gcc/libgcc/configure =================================================================== --- gcc.orig/libgcc/configure +++ gcc/libgcc/configure @@ -705,6 +705,7 @@ enable_gcov enable_vtable_verify with_aix_soname enable_version_specific_runtime_libs +with_install_sysroot with_slibdir enable_maintainer_mode with_build_libsubdir @@ -1369,6 +1370,8 @@ if test -n "$ac_init_help"; then --with-aix-soname=aix|svr4|both shared library versioning (aka "SONAME") variant to provide on AIX + --with-install-sysroot=DIR + install libraries within DIR --with-slibdir=DIR shared libraries in DIR LIBDIR --with-build-libsubdir=DIR Directory where to find libraries for build system --with-system-libunwind use installed libunwind @@ -2464,6 +2467,25 @@ fi $as_echo "$version_specific_libs" >&6; } +# Check whether --with-install-sysroot was given. +if test "${with_install_sysroot+set}" = set; then : + withval=$with_install_sysroot; case ${with_install_sysroot} in + /) + ;; + */) + with_install_sysroot=`echo $with_install_sysroot | sed 's,/$,,'` + ;; + yes) + with_install_sysroot='$(exec_prefix)/$(host_noncanonical)/sys-root' + ;; +esac +else + with_install_sysroot=no +fi + + + + # Check whether --with-slibdir was given. if test "${with_slibdir+set}" = set; then : withval=$with_slibdir; slibdir="$with_slibdir" @@ -2471,7 +2493,14 @@ else if test "${version_specific_libs}" = yes; then slibdir='$(libsubdir)' elif test -n "$with_cross_host" && test x"$with_cross_host" != x"no"; then - slibdir='$(exec_prefix)/$(host_noncanonical)/lib' + case ${with_install_sysroot} in + no) + slibdir='$(exec_prefix)/$(host_noncanonical)/lib' + ;; + *) + slibdir=${with_install_sysroot}/lib + ;; + esac else slibdir='$(libdir)' fi @@ -2701,7 +2730,14 @@ case ${version_specific_libs} in test x"$with_cross_host" != x"no"; then # Install a library built with a cross compiler in tooldir, not libdir. toolexecdir='$(exec_prefix)/$(target_noncanonical)' - toolexeclibdir='$(toolexecdir)/lib' + case ${with_install_sysroot} in + no) + toolexeclibdir='$(toolexecdir)/lib' + ;; + *) + toolexeclibdir=${with_install_sysroot}/lib + ;; + esac else toolexecdir='$(libdir)/gcc-lib/$(target_noncanonical)' toolexeclibdir='$(libdir)' Index: gcc/libgcc/configure.ac =================================================================== --- gcc.orig/libgcc/configure.ac +++ gcc/libgcc/configure.ac @@ -1,6 +1,7 @@ dnl Process this file with autoconf to produce a configure script. sinclude(../config/enable.m4) +sinclude(../config/install-sysroot.m4) sinclude(../config/tls.m4) sinclude(../config/acx.m4) sinclude(../config/no-executables.m4) @@ -113,16 +114,25 @@ AC_ARG_ENABLE(version-specific-runtime-l [version_specific_libs=no]) AC_MSG_RESULT($version_specific_libs) +GCC_WITH_INSTALL_SYSROOT([$(host_noncanonical)]) + AC_ARG_WITH(slibdir, [ --with-slibdir=DIR shared libraries in DIR [LIBDIR]], slibdir="$with_slibdir", -if test "${version_specific_libs}" = yes; then +[if test "${version_specific_libs}" = yes; then slibdir='$(libsubdir)' elif test -n "$with_cross_host" && test x"$with_cross_host" != x"no"; then - slibdir='$(exec_prefix)/$(host_noncanonical)/lib' + case ${with_install_sysroot} in + no) + slibdir='$(exec_prefix)/$(host_noncanonical)/lib' + ;; + *) + slibdir=${with_install_sysroot}/lib + ;; + esac else slibdir='$(libdir)' -fi) +fi]) AC_SUBST(slibdir) # Command-line options. @@ -168,7 +178,14 @@ case ${version_specific_libs} in test x"$with_cross_host" != x"no"; then # Install a library built with a cross compiler in tooldir, not libdir. toolexecdir='$(exec_prefix)/$(target_noncanonical)' - toolexeclibdir='$(toolexecdir)/lib' + case ${with_install_sysroot} in + no) + toolexeclibdir='$(toolexecdir)/lib' + ;; + *) + toolexeclibdir=${with_install_sysroot}/lib + ;; + esac else toolexecdir='$(libdir)/gcc-lib/$(target_noncanonical)' toolexeclibdir='$(libdir)' Index: gcc/libgfortran/Makefile.in =================================================================== --- gcc.orig/libgfortran/Makefile.in +++ gcc/libgfortran/Makefile.in @@ -162,6 +162,7 @@ subdir = . ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/../config/depstand.m4 \ $(top_srcdir)/../config/hwcaps.m4 \ + $(top_srcdir)/../config/install-sysroot.m4 \ $(top_srcdir)/../config/lead-dot.m4 \ $(top_srcdir)/../config/lthostflags.m4 \ $(top_srcdir)/../config/multi.m4 \ Index: gcc/libgfortran/aclocal.m4 =================================================================== --- gcc.orig/libgfortran/aclocal.m4 +++ gcc/libgfortran/aclocal.m4 @@ -1169,6 +1169,7 @@ AC_SUBST([am__untar]) m4_include([../config/depstand.m4]) m4_include([../config/hwcaps.m4]) +m4_include([../config/install-sysroot.m4]) m4_include([../config/lead-dot.m4]) m4_include([../config/lthostflags.m4]) m4_include([../config/multi.m4]) Index: gcc/libgfortran/configure =================================================================== --- gcc.orig/libgfortran/configure +++ gcc/libgfortran/configure @@ -809,6 +809,7 @@ enable_silent_rules enable_maintainer_mode enable_multilib enable_dependency_tracking +with_install_sysroot enable_cet enable_symvers with_gnu_ld @@ -1480,6 +1481,8 @@ if test -n "$ac_init_help"; then --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) --with-build-libsubdir=DIR Directory where to find libraries for build system + --with-install-sysroot=DIR + install libraries within DIR --with-gnu-ld assume the C compiler uses GNU ld [default=no] --with-pic try to use only PIC/non-PIC objects [default=use both] @@ -5173,6 +5176,25 @@ $as_echo "$ac_cv_safe_to_define___extens + +# Check whether --with-install-sysroot was given. +if test "${with_install_sysroot+set}" = set; then : + withval=$with_install_sysroot; case ${with_install_sysroot} in + /) + ;; + */) + with_install_sysroot=`echo $with_install_sysroot | sed 's,/$,,'` + ;; + yes) + with_install_sysroot='$(exec_prefix)/$(target_alias)/sys-root' + ;; +esac +else + with_install_sysroot=no +fi + + + # Calculate toolexeclibdir # Also toolexecdir, though it's only used in toolexeclibdir case ${version_specific_libs} in @@ -5188,7 +5210,14 @@ case ${version_specific_libs} in test x"$with_cross_host" != x"no"; then # Install a library built with a cross compiler in tooldir, not libdir. toolexecdir='$(exec_prefix)/$(target_alias)' - toolexeclibdir='$(toolexecdir)/lib' + case ${with_install_sysroot} in + no) + toolexeclibdir='$(toolexecdir)/lib' + ;; + *) + toolexeclibdir=${with_install_sysroot}/lib + ;; + esac else toolexecdir='$(libdir)/gcc-lib/$(target_alias)' toolexeclibdir='$(libdir)' @@ -12692,7 +12721,7 @@ else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<_LT_EOF -#line 12695 "configure" +#line 12724 "configure" #include "confdefs.h" #if HAVE_DLFCN_H @@ -12798,7 +12827,7 @@ else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<_LT_EOF -#line 12801 "configure" +#line 12830 "configure" #include "confdefs.h" #if HAVE_DLFCN_H Index: gcc/libgfortran/configure.ac =================================================================== --- gcc.orig/libgfortran/configure.ac +++ gcc/libgfortran/configure.ac @@ -86,6 +86,8 @@ fi AC_USE_SYSTEM_EXTENSIONS +GCC_WITH_INSTALL_SYSROOT([$(target_alias)]) + # Calculate toolexeclibdir # Also toolexecdir, though it's only used in toolexeclibdir case ${version_specific_libs} in @@ -101,7 +103,14 @@ case ${version_specific_libs} in test x"$with_cross_host" != x"no"; then # Install a library built with a cross compiler in tooldir, not libdir. toolexecdir='$(exec_prefix)/$(target_alias)' - toolexeclibdir='$(toolexecdir)/lib' + case ${with_install_sysroot} in + no) + toolexeclibdir='$(toolexecdir)/lib' + ;; + *) + toolexeclibdir=${with_install_sysroot}/lib + ;; + esac else toolexecdir='$(libdir)/gcc-lib/$(target_alias)' toolexeclibdir='$(libdir)' Index: gcc/libgo/Makefile.in =================================================================== --- gcc.orig/libgo/Makefile.in +++ gcc/libgo/Makefile.in @@ -110,6 +110,7 @@ subdir = . ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/../config/depstand.m4 \ $(top_srcdir)/../config/hwcaps.m4 \ + $(top_srcdir)/../config/install-sysroot.m4 \ $(top_srcdir)/../config/lead-dot.m4 \ $(top_srcdir)/../config/multi.m4 \ $(top_srcdir)/../config/override.m4 \ Index: gcc/libgo/aclocal.m4 =================================================================== --- gcc.orig/libgo/aclocal.m4 +++ gcc/libgo/aclocal.m4 @@ -1189,6 +1189,7 @@ AC_SUBST([am__untar]) m4_include([../config/depstand.m4]) m4_include([../config/hwcaps.m4]) +m4_include([../config/install-sysroot.m4]) m4_include([../config/lead-dot.m4]) m4_include([../config/multi.m4]) m4_include([../config/override.m4]) Index: gcc/libgo/configure =================================================================== --- gcc.orig/libgo/configure +++ gcc/libgo/configure @@ -849,6 +849,7 @@ enable_fast_install enable_libtool_lock enable_werror enable_version_specific_runtime_libs +with_install_sysroot with_libffi with_libatomic with_system_libunwind @@ -1503,6 +1504,8 @@ if test -n "$ac_init_help"; then --with-gnu-ld assume the C compiler uses GNU ld [default=no] --with-pic try to use only PIC/non-PIC objects [default=use both] + --with-install-sysroot=DIR + install libraries within DIR --without-libffi don't use libffi --without-libatomic don't use libatomic --with-system-libunwind use installed libunwind @@ -11486,7 +11489,7 @@ else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<_LT_EOF -#line 11489 "configure" +#line 11492 "configure" #include "confdefs.h" #if HAVE_DLFCN_H @@ -11592,7 +11595,7 @@ else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<_LT_EOF -#line 11595 "configure" +#line 11598 "configure" #include "confdefs.h" #if HAVE_DLFCN_H @@ -13800,6 +13803,25 @@ fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $version_specific_libs" >&5 $as_echo "$version_specific_libs" >&6; } + +# Check whether --with-install-sysroot was given. +if test "${with_install_sysroot+set}" = set; then : + withval=$with_install_sysroot; case ${with_install_sysroot} in + /) + ;; + */) + with_install_sysroot=`echo $with_install_sysroot | sed 's,/$,,'` + ;; + yes) + with_install_sysroot='$(exec_prefix)/$(target_alias)/sys-root' + ;; +esac +else + with_install_sysroot=no +fi + + + # Version-specific runtime libs processing. if test $version_specific_libs = yes; then glibgo_toolexecdir='${libdir}/gcc/${host_alias}' @@ -13811,7 +13833,14 @@ fi if test -n "$with_cross_host" && test x"$with_cross_host" != x"no"; then nover_glibgo_toolexecdir='${exec_prefix}/${host_alias}' - nover_glibgo_toolexeclibdir='${toolexecdir}/lib' + case ${with_install_sysroot} in + no) + nover_glibgo_toolexeclibdir='${toolexecdir}/lib' + ;; + *) + nover_glibgo_toolexeclibdir=${with_install_sysroot}/lib + ;; + esac else nover_glibgo_toolexecdir='${libdir}/gcc/${host_alias}' nover_glibgo_toolexeclibdir='${libdir}' Index: gcc/libgo/configure.ac =================================================================== --- gcc.orig/libgo/configure.ac +++ gcc/libgo/configure.ac @@ -80,6 +80,8 @@ AC_ARG_ENABLE([version-specific-runtime- [version_specific_libs=no]) AC_MSG_RESULT($version_specific_libs) +GCC_WITH_INSTALL_SYSROOT([$(target_alias)]) + # Version-specific runtime libs processing. if test $version_specific_libs = yes; then glibgo_toolexecdir='${libdir}/gcc/${host_alias}' @@ -91,7 +93,14 @@ fi if test -n "$with_cross_host" && test x"$with_cross_host" != x"no"; then nover_glibgo_toolexecdir='${exec_prefix}/${host_alias}' - nover_glibgo_toolexeclibdir='${toolexecdir}/lib' + case ${with_install_sysroot} in + no) + nover_glibgo_toolexeclibdir='${toolexecdir}/lib' + ;; + *) + nover_glibgo_toolexeclibdir=${with_install_sysroot}/lib + ;; + esac else nover_glibgo_toolexecdir='${libdir}/gcc/${host_alias}' nover_glibgo_toolexeclibdir='${libdir}' Index: gcc/libgo/testsuite/Makefile.in =================================================================== --- gcc.orig/libgo/testsuite/Makefile.in +++ gcc/libgo/testsuite/Makefile.in @@ -92,6 +92,7 @@ subdir = testsuite ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/../config/depstand.m4 \ $(top_srcdir)/../config/hwcaps.m4 \ + $(top_srcdir)/../config/install-sysroot.m4 \ $(top_srcdir)/../config/lead-dot.m4 \ $(top_srcdir)/../config/multi.m4 \ $(top_srcdir)/../config/override.m4 \ Index: gcc/libgomp/Makefile.in =================================================================== --- gcc.orig/libgomp/Makefile.in +++ gcc/libgomp/Makefile.in @@ -129,6 +129,7 @@ am__aclocal_m4_deps = $(top_srcdir)/../c $(top_srcdir)/../config/depstand.m4 \ $(top_srcdir)/../config/enable.m4 \ $(top_srcdir)/../config/futex.m4 \ + $(top_srcdir)/../config/install-sysroot.m4 \ $(top_srcdir)/../config/lead-dot.m4 \ $(top_srcdir)/../config/lthostflags.m4 \ $(top_srcdir)/../config/multi.m4 \ Index: gcc/libgomp/aclocal.m4 =================================================================== --- gcc.orig/libgomp/aclocal.m4 +++ gcc/libgomp/aclocal.m4 @@ -1172,6 +1172,7 @@ m4_include([../config/ax_count_cpus.m4]) m4_include([../config/depstand.m4]) m4_include([../config/enable.m4]) m4_include([../config/futex.m4]) +m4_include([../config/install-sysroot.m4]) m4_include([../config/lead-dot.m4]) m4_include([../config/lthostflags.m4]) m4_include([../config/multi.m4]) Index: gcc/libgomp/configure =================================================================== --- gcc.orig/libgomp/configure +++ gcc/libgomp/configure @@ -826,6 +826,7 @@ enable_version_specific_runtime_libs enable_generated_files_in_srcdir enable_silent_rules enable_multilib +with_install_sysroot enable_dependency_tracking enable_shared enable_static @@ -1505,6 +1506,8 @@ if test -n "$ac_init_help"; then Optional Packages: --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) + --with-install-sysroot=DIR + install libraries within DIR --with-pic try to use only PIC/non-PIC objects [default=use both] --with-gnu-ld assume the C compiler uses GNU ld [default=no] @@ -3501,6 +3504,25 @@ fi ac_config_commands="$ac_config_commands default-1" + +# Check whether --with-install-sysroot was given. +if test "${with_install_sysroot+set}" = set; then : + withval=$with_install_sysroot; case ${with_install_sysroot} in + /) + ;; + */) + with_install_sysroot=`echo $with_install_sysroot | sed 's,/$,,'` + ;; + yes) + with_install_sysroot='$(exec_prefix)/$(target_alias)/sys-root' + ;; +esac +else + with_install_sysroot=no +fi + + + # Calculate toolexeclibdir # Also toolexecdir, though it's only used in toolexeclibdir case ${enable_version_specific_runtime_libs} in @@ -3516,7 +3538,14 @@ case ${enable_version_specific_runtime_l test x"$with_cross_host" != x"no"; then # Install a library built with a cross compiler in tooldir, not libdir. toolexecdir='$(exec_prefix)/$(target_alias)' - toolexeclibdir='$(toolexecdir)/lib' + case ${with_install_sysroot} in + no) + toolexeclibdir='$(toolexecdir)/lib' + ;; + *) + toolexeclibdir=${with_install_sysroot}/lib + ;; + esac else toolexecdir='$(libdir)/gcc-lib/$(target_alias)' toolexeclibdir='$(libdir)' @@ -11405,7 +11434,7 @@ else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<_LT_EOF -#line 11408 "configure" +#line 11437 "configure" #include "confdefs.h" #if HAVE_DLFCN_H @@ -11511,7 +11540,7 @@ else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<_LT_EOF -#line 11514 "configure" +#line 11543 "configure" #include "confdefs.h" #if HAVE_DLFCN_H Index: gcc/libgomp/configure.ac =================================================================== --- gcc.orig/libgomp/configure.ac +++ gcc/libgomp/configure.ac @@ -64,6 +64,8 @@ target_alias=${target_alias-$host_alias} AM_INIT_AUTOMAKE([1.9.0 foreign no-dist -Wall -Wno-portability -Wno-override]) AM_ENABLE_MULTILIB(, ..) +GCC_WITH_INSTALL_SYSROOT([$(target_alias)]) + # Calculate toolexeclibdir # Also toolexecdir, though it's only used in toolexeclibdir case ${enable_version_specific_runtime_libs} in @@ -79,7 +81,14 @@ case ${enable_version_specific_runtime_l test x"$with_cross_host" != x"no"; then # Install a library built with a cross compiler in tooldir, not libdir. toolexecdir='$(exec_prefix)/$(target_alias)' - toolexeclibdir='$(toolexecdir)/lib' + case ${with_install_sysroot} in + no) + toolexeclibdir='$(toolexecdir)/lib' + ;; + *) + toolexeclibdir=${with_install_sysroot}/lib + ;; + esac else toolexecdir='$(libdir)/gcc-lib/$(target_alias)' toolexeclibdir='$(libdir)' Index: gcc/libgomp/testsuite/Makefile.in =================================================================== --- gcc.orig/libgomp/testsuite/Makefile.in +++ gcc/libgomp/testsuite/Makefile.in @@ -95,6 +95,7 @@ am__aclocal_m4_deps = $(top_srcdir)/../c $(top_srcdir)/../config/depstand.m4 \ $(top_srcdir)/../config/enable.m4 \ $(top_srcdir)/../config/futex.m4 \ + $(top_srcdir)/../config/install-sysroot.m4 \ $(top_srcdir)/../config/lead-dot.m4 \ $(top_srcdir)/../config/lthostflags.m4 \ $(top_srcdir)/../config/multi.m4 \ Index: gcc/libhsail-rt/Makefile.in =================================================================== --- gcc.orig/libhsail-rt/Makefile.in +++ gcc/libhsail-rt/Makefile.in @@ -137,6 +137,7 @@ subdir = . ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/../config/acx.m4 \ $(top_srcdir)/../config/depstand.m4 \ + $(top_srcdir)/../config/install-sysroot.m4 \ $(top_srcdir)/../config/lead-dot.m4 \ $(top_srcdir)/../config/override.m4 \ $(top_srcdir)/../libtool.m4 $(top_srcdir)/../ltoptions.m4 \ Index: gcc/libhsail-rt/aclocal.m4 =================================================================== --- gcc.orig/libhsail-rt/aclocal.m4 +++ gcc/libhsail-rt/aclocal.m4 @@ -1169,6 +1169,7 @@ AC_SUBST([am__untar]) m4_include([../config/acx.m4]) m4_include([../config/depstand.m4]) +m4_include([../config/install-sysroot.m4]) m4_include([../config/lead-dot.m4]) m4_include([../config/override.m4]) m4_include([../libtool.m4]) Index: gcc/libhsail-rt/configure =================================================================== --- gcc.orig/libhsail-rt/configure +++ gcc/libhsail-rt/configure @@ -773,6 +773,7 @@ enable_silent_rules enable_maintainer_mode enable_dependency_tracking enable_version_specific_runtime_libs +with_install_sysroot enable_shared enable_static with_pic @@ -1435,6 +1436,8 @@ if test -n "$ac_init_help"; then Optional Packages: --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) + --with-install-sysroot=DIR + install libraries within DIR --with-pic try to use only PIC/non-PIC objects [default=use both] --with-gnu-ld assume the C compiler uses GNU ld [default=no] @@ -4653,6 +4656,25 @@ fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_version_specific_runtime_libs" >&5 $as_echo "$enable_version_specific_runtime_libs" >&6; } + +# Check whether --with-install-sysroot was given. +if test "${with_install_sysroot+set}" = set; then : + withval=$with_install_sysroot; case ${with_install_sysroot} in + /) + ;; + */) + with_install_sysroot=`echo $with_install_sysroot | sed 's,/$,,'` + ;; + yes) + with_install_sysroot='$(exec_prefix)/$(target_alias)/sys-root' + ;; +esac +else + with_install_sysroot=no +fi + + + # Calculate toolexeclibdir # Also toolexecdir, though it's only used in toolexeclibdir case ${enable_version_specific_runtime_libs} in @@ -4668,7 +4690,14 @@ case ${enable_version_specific_runtime_l test x"$with_cross_host" != x"no"; then # Install a library built with a cross compiler in tooldir, not libdir. toolexecdir='$(exec_prefix)/$(target_alias)' - toolexeclibdir='$(toolexecdir)/lib' + case ${with_install_sysroot} in + no) + toolexeclibdir='$(toolexecdir)/lib' + ;; + *) + toolexeclibdir=${with_install_sysroot}/lib + ;; + esac else toolexecdir='$(libdir)/gcc-lib/$(target_alias)' toolexeclibdir='$(libdir)' @@ -11212,7 +11241,7 @@ else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<_LT_EOF -#line 11215 "configure" +#line 11244 "configure" #include "confdefs.h" #if HAVE_DLFCN_H @@ -11318,7 +11347,7 @@ else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<_LT_EOF -#line 11321 "configure" +#line 11350 "configure" #include "confdefs.h" #if HAVE_DLFCN_H Index: gcc/libhsail-rt/configure.ac =================================================================== --- gcc.orig/libhsail-rt/configure.ac +++ gcc/libhsail-rt/configure.ac @@ -69,6 +69,8 @@ ler-specific directory]), [enable_version_specific_runtime_libs=no]) AC_MSG_RESULT($enable_version_specific_runtime_libs) +GCC_WITH_INSTALL_SYSROOT([$(target_alias)]) + # Calculate toolexeclibdir # Also toolexecdir, though it's only used in toolexeclibdir case ${enable_version_specific_runtime_libs} in @@ -84,7 +86,14 @@ case ${enable_version_specific_runtime_l test x"$with_cross_host" != x"no"; then # Install a library built with a cross compiler in tooldir, not libdir. toolexecdir='$(exec_prefix)/$(target_alias)' - toolexeclibdir='$(toolexecdir)/lib' + case ${with_install_sysroot} in + no) + toolexeclibdir='$(toolexecdir)/lib' + ;; + *) + toolexeclibdir=${with_install_sysroot}/lib + ;; + esac else toolexecdir='$(libdir)/gcc-lib/$(target_alias)' toolexeclibdir='$(libdir)' Index: gcc/libitm/Makefile.in =================================================================== --- gcc.orig/libitm/Makefile.in +++ gcc/libitm/Makefile.in @@ -101,6 +101,7 @@ am__aclocal_m4_deps = $(top_srcdir)/../c $(top_srcdir)/../config/enable.m4 \ $(top_srcdir)/../config/futex.m4 \ $(top_srcdir)/../config/hwcaps.m4 \ + $(top_srcdir)/../config/install-sysroot.m4 \ $(top_srcdir)/../config/lead-dot.m4 \ $(top_srcdir)/../config/mmap.m4 \ $(top_srcdir)/../config/multi.m4 \ Index: gcc/libitm/aclocal.m4 =================================================================== --- gcc.orig/libitm/aclocal.m4 +++ gcc/libitm/aclocal.m4 @@ -1193,6 +1193,7 @@ m4_include([../config/depstand.m4]) m4_include([../config/enable.m4]) m4_include([../config/futex.m4]) m4_include([../config/hwcaps.m4]) +m4_include([../config/install-sysroot.m4]) m4_include([../config/lead-dot.m4]) m4_include([../config/mmap.m4]) m4_include([../config/multi.m4]) Index: gcc/libitm/configure =================================================================== --- gcc.orig/libitm/configure +++ gcc/libitm/configure @@ -802,6 +802,7 @@ enable_version_specific_runtime_libs enable_generated_files_in_srcdir enable_silent_rules enable_multilib +with_install_sysroot enable_dependency_tracking enable_shared enable_static @@ -1472,6 +1473,8 @@ if test -n "$ac_init_help"; then Optional Packages: --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) + --with-install-sysroot=DIR + install libraries within DIR --with-pic try to use only PIC/non-PIC objects [default=use both] --with-gnu-ld assume the C compiler uses GNU ld [default=no] @@ -3527,6 +3530,25 @@ fi ac_config_commands="$ac_config_commands default-1" + +# Check whether --with-install-sysroot was given. +if test "${with_install_sysroot+set}" = set; then : + withval=$with_install_sysroot; case ${with_install_sysroot} in + /) + ;; + */) + with_install_sysroot=`echo $with_install_sysroot | sed 's,/$,,'` + ;; + yes) + with_install_sysroot='$(exec_prefix)/$(target_alias)/sys-root' + ;; +esac +else + with_install_sysroot=no +fi + + + # Calculate toolexeclibdir # Also toolexecdir, though it's only used in toolexeclibdir case ${enable_version_specific_runtime_libs} in @@ -3542,7 +3564,14 @@ case ${enable_version_specific_runtime_l test x"$with_cross_host" != x"no"; then # Install a library built with a cross compiler in tooldir, not libdir. toolexecdir='$(exec_prefix)/$(target_alias)' - toolexeclibdir='$(toolexecdir)/lib' + case ${with_install_sysroot} in + no) + toolexeclibdir='$(toolexecdir)/lib' + ;; + *) + toolexeclibdir=${with_install_sysroot}/lib + ;; + esac else toolexecdir='$(libdir)/gcc-lib/$(target_alias)' toolexeclibdir='$(libdir)' @@ -12037,7 +12066,7 @@ else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<_LT_EOF -#line 12040 "configure" +#line 12069 "configure" #include "confdefs.h" #if HAVE_DLFCN_H @@ -12143,7 +12172,7 @@ else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<_LT_EOF -#line 12146 "configure" +#line 12175 "configure" #include "confdefs.h" #if HAVE_DLFCN_H Index: gcc/libitm/configure.ac =================================================================== --- gcc.orig/libitm/configure.ac +++ gcc/libitm/configure.ac @@ -78,6 +78,8 @@ target_alias=${target_alias-$host_alias} AM_INIT_AUTOMAKE([1.9.0 foreign no-dist -Wall -Wno-portability -Wno-override]) AM_ENABLE_MULTILIB(, ..) +GCC_WITH_INSTALL_SYSROOT([$(target_alias)]) + # Calculate toolexeclibdir # Also toolexecdir, though it's only used in toolexeclibdir case ${enable_version_specific_runtime_libs} in @@ -93,7 +95,14 @@ case ${enable_version_specific_runtime_l test x"$with_cross_host" != x"no"; then # Install a library built with a cross compiler in tooldir, not libdir. toolexecdir='$(exec_prefix)/$(target_alias)' - toolexeclibdir='$(toolexecdir)/lib' + case ${with_install_sysroot} in + no) + toolexeclibdir='$(toolexecdir)/lib' + ;; + *) + toolexeclibdir=${with_install_sysroot}/lib + ;; + esac else toolexecdir='$(libdir)/gcc-lib/$(target_alias)' toolexeclibdir='$(libdir)' Index: gcc/libitm/testsuite/Makefile.in =================================================================== --- gcc.orig/libitm/testsuite/Makefile.in +++ gcc/libitm/testsuite/Makefile.in @@ -96,6 +96,7 @@ am__aclocal_m4_deps = $(top_srcdir)/../c $(top_srcdir)/../config/enable.m4 \ $(top_srcdir)/../config/futex.m4 \ $(top_srcdir)/../config/hwcaps.m4 \ + $(top_srcdir)/../config/install-sysroot.m4 \ $(top_srcdir)/../config/lead-dot.m4 \ $(top_srcdir)/../config/mmap.m4 \ $(top_srcdir)/../config/multi.m4 \ Index: gcc/libobjc/Makefile.in =================================================================== --- gcc.orig/libobjc/Makefile.in +++ gcc/libobjc/Makefile.in @@ -290,6 +290,7 @@ AUTOCONF = autoconf ACLOCAL = aclocal ACLOCAL_AMFLAGS = -I ../config -I .. aclocal_deps = \ + $(srcdir)/../config/install-sysroot.m4 \ $(srcdir)/../config/multi.m4 \ $(srcdir)/../config/override.m4 \ $(srcdir)/../config/proginstall.m4 \ Index: gcc/libobjc/aclocal.m4 =================================================================== --- gcc.orig/libobjc/aclocal.m4 +++ gcc/libobjc/aclocal.m4 @@ -150,6 +150,7 @@ m4_include([../ltsugar.m4]) m4_include([../ltversion.m4]) m4_include([../lt~obsolete.m4]) m4_include([../config/cet.m4]) +m4_include([../config/install-sysroot.m4]) m4_include([../config/lthostflags.m4]) m4_include([../config/multi.m4]) m4_include([../config/override.m4]) Index: gcc/libobjc/configure =================================================================== --- gcc.orig/libobjc/configure +++ gcc/libobjc/configure @@ -746,6 +746,7 @@ with_target_subdir with_cross_host enable_version_specific_runtime_libs enable_multilib +with_install_sysroot enable_cet enable_maintainer_mode enable_shared @@ -1402,6 +1403,8 @@ if test -n "$ac_init_help"; then --with-target-subdir=SUBDIR configuring in a subdirectory --with-cross-host=HOST configuring with a cross compiler + --with-install-sysroot=DIR + install libraries within DIR --with-pic try to use only PIC/non-PIC objects [default=use both] --with-gnu-ld assume the C compiler uses GNU ld [default=no] @@ -2502,6 +2505,25 @@ case $srcdir in esac + +# Check whether --with-install-sysroot was given. +if test "${with_install_sysroot+set}" = set; then : + withval=$with_install_sysroot; case ${with_install_sysroot} in + /) + ;; + */) + with_install_sysroot=`echo $with_install_sysroot | sed 's,/$,,'` + ;; + yes) + with_install_sysroot='$(exec_prefix)/$(target_noncanonical)/sys-root' + ;; +esac +else + with_install_sysroot=no +fi + + + # Calculate toolexeclibdir # Also toolexecdir, though it's only used in toolexeclibdir case ${version_specific_libs} in @@ -2517,7 +2539,14 @@ case ${version_specific_libs} in test x"$with_cross_host" != x"no"; then # Install a library built with a cross compiler in tooldir, not libdir. toolexecdir='$(exec_prefix)/$(target_noncanonical)' - toolexeclibdir='$(toolexecdir)/lib' + case ${with_install_sysroot} in + no) + toolexeclibdir='$(toolexecdir)/lib' + ;; + *) + toolexeclibdir=${with_install_sysroot}/lib + ;; + esac else toolexecdir='$(libdir)/gcc-lib/$(target_noncanonical)' toolexeclibdir='$(libdir)' @@ -10748,7 +10777,7 @@ else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<_LT_EOF -#line 10751 "configure" +#line 10780 "configure" #include "confdefs.h" #if HAVE_DLFCN_H @@ -10854,7 +10883,7 @@ else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<_LT_EOF -#line 10857 "configure" +#line 10886 "configure" #include "confdefs.h" #if HAVE_DLFCN_H Index: gcc/libobjc/configure.ac =================================================================== --- gcc.orig/libobjc/configure.ac +++ gcc/libobjc/configure.ac @@ -76,6 +76,8 @@ case $srcdir in esac AC_SUBST(glibcpp_srcdir) +GCC_WITH_INSTALL_SYSROOT([$(target_noncanonical)]) + # Calculate toolexeclibdir # Also toolexecdir, though it's only used in toolexeclibdir case ${version_specific_libs} in @@ -91,7 +93,14 @@ case ${version_specific_libs} in test x"$with_cross_host" != x"no"; then # Install a library built with a cross compiler in tooldir, not libdir. toolexecdir='$(exec_prefix)/$(target_noncanonical)' - toolexeclibdir='$(toolexecdir)/lib' + case ${with_install_sysroot} in + no) + toolexeclibdir='$(toolexecdir)/lib' + ;; + *) + toolexeclibdir=${with_install_sysroot}/lib + ;; + esac else toolexecdir='$(libdir)/gcc-lib/$(target_noncanonical)' toolexeclibdir='$(libdir)' Index: gcc/liboffloadmic/Makefile.in =================================================================== --- gcc.orig/liboffloadmic/Makefile.in +++ gcc/liboffloadmic/Makefile.in @@ -123,6 +123,7 @@ subdir = . ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/../config/acx.m4 \ $(top_srcdir)/../config/depstand.m4 \ + $(top_srcdir)/../config/install-sysroot.m4 \ $(top_srcdir)/../config/lead-dot.m4 \ $(top_srcdir)/../config/multi.m4 \ $(top_srcdir)/../config/override.m4 \ Index: gcc/liboffloadmic/aclocal.m4 =================================================================== --- gcc.orig/liboffloadmic/aclocal.m4 +++ gcc/liboffloadmic/aclocal.m4 @@ -1169,6 +1169,7 @@ AC_SUBST([am__untar]) m4_include([../config/acx.m4]) m4_include([../config/depstand.m4]) +m4_include([../config/install-sysroot.m4]) m4_include([../config/lead-dot.m4]) m4_include([../config/multi.m4]) m4_include([../config/override.m4]) Index: gcc/liboffloadmic/configure =================================================================== --- gcc.orig/liboffloadmic/configure +++ gcc/liboffloadmic/configure @@ -775,6 +775,7 @@ enable_maintainer_mode enable_dependency_tracking enable_multilib enable_version_specific_runtime_libs +with_install_sysroot enable_shared enable_static with_pic @@ -1437,6 +1438,8 @@ if test -n "$ac_init_help"; then Optional Packages: --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) + --with-install-sysroot=DIR + install libraries within DIR --with-pic try to use only PIC/non-PIC objects [default=use both] --with-gnu-ld assume the C compiler uses GNU ld [default=no] @@ -5293,6 +5296,25 @@ else fi + +# Check whether --with-install-sysroot was given. +if test "${with_install_sysroot+set}" = set; then : + withval=$with_install_sysroot; case ${with_install_sysroot} in + /) + ;; + */) + with_install_sysroot=`echo $with_install_sysroot | sed 's,/$,,'` + ;; + yes) + with_install_sysroot='$(exec_prefix)/$(target_alias)/sys-root' + ;; +esac +else + with_install_sysroot=no +fi + + + # Calculate toolexeclibdir. # Also toolexecdir, though it's only used in toolexeclibdir. case ${enable_version_specific_runtime_libs} in @@ -5308,7 +5330,14 @@ case ${enable_version_specific_runtime_l test x"$with_cross_host" != x"no"; then # Install a library built with a cross compiler in tooldir, not libdir. toolexecdir='$(exec_prefix)/$(target_alias)' - toolexeclibdir='$(toolexecdir)/lib' + case ${with_install_sysroot} in + no) + toolexeclibdir='$(toolexecdir)/lib' + ;; + *) + toolexeclibdir=${with_install_sysroot}/lib + ;; + esac else toolexecdir='$(libdir)/gcc-lib/$(target_alias)' toolexeclibdir='$(libdir)' @@ -11403,7 +11432,7 @@ else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<_LT_EOF -#line 11406 "configure" +#line 11435 "configure" #include "confdefs.h" #if HAVE_DLFCN_H @@ -11509,7 +11538,7 @@ else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<_LT_EOF -#line 11512 "configure" +#line 11541 "configure" #include "confdefs.h" #if HAVE_DLFCN_H Index: gcc/liboffloadmic/configure.ac =================================================================== --- gcc.orig/liboffloadmic/configure.ac +++ gcc/liboffloadmic/configure.ac @@ -79,6 +79,8 @@ case "$enable_liboffloadmic" in esac AM_CONDITIONAL(LIBOFFLOADMIC_HOST, [test x"$enable_liboffloadmic" = xhost]) +GCC_WITH_INSTALL_SYSROOT([$(target_alias)]) + # Calculate toolexeclibdir. # Also toolexecdir, though it's only used in toolexeclibdir. case ${enable_version_specific_runtime_libs} in @@ -94,7 +96,14 @@ case ${enable_version_specific_runtime_l test x"$with_cross_host" != x"no"; then # Install a library built with a cross compiler in tooldir, not libdir. toolexecdir='$(exec_prefix)/$(target_alias)' - toolexeclibdir='$(toolexecdir)/lib' + case ${with_install_sysroot} in + no) + toolexeclibdir='$(toolexecdir)/lib' + ;; + *) + toolexeclibdir=${with_install_sysroot}/lib + ;; + esac else toolexecdir='$(libdir)/gcc-lib/$(target_alias)' toolexeclibdir='$(libdir)' Index: gcc/liboffloadmic/plugin/Makefile.in =================================================================== --- gcc.orig/liboffloadmic/plugin/Makefile.in +++ gcc/liboffloadmic/plugin/Makefile.in @@ -123,6 +123,7 @@ subdir = . ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/../../config/acx.m4 \ $(top_srcdir)/../../config/depstand.m4 \ + $(top_srcdir)/../../config/install-sysroot.m4 \ $(top_srcdir)/../../config/lead-dot.m4 \ $(top_srcdir)/../../config/multi.m4 \ $(top_srcdir)/../../config/override.m4 \ Index: gcc/liboffloadmic/plugin/aclocal.m4 =================================================================== --- gcc.orig/liboffloadmic/plugin/aclocal.m4 +++ gcc/liboffloadmic/plugin/aclocal.m4 @@ -1169,6 +1169,7 @@ AC_SUBST([am__untar]) m4_include([../../config/acx.m4]) m4_include([../../config/depstand.m4]) +m4_include([../../config/install-sysroot.m4]) m4_include([../../config/lead-dot.m4]) m4_include([../../config/multi.m4]) m4_include([../../config/override.m4]) Index: gcc/liboffloadmic/plugin/configure =================================================================== --- gcc.orig/liboffloadmic/plugin/configure +++ gcc/liboffloadmic/plugin/configure @@ -771,6 +771,7 @@ enable_maintainer_mode enable_dependency_tracking enable_multilib enable_version_specific_runtime_libs +with_install_sysroot enable_shared enable_static with_pic @@ -1434,6 +1435,8 @@ if test -n "$ac_init_help"; then Optional Packages: --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) + --with-install-sysroot=DIR + install libraries within DIR --with-pic try to use only PIC/non-PIC objects [default=use both] --with-gnu-ld assume the C compiler uses GNU ld [default=no] @@ -4542,6 +4545,25 @@ fi $as_echo "$enable_version_specific_runtime_libs" >&6; } + +# Check whether --with-install-sysroot was given. +if test "${with_install_sysroot+set}" = set; then : + withval=$with_install_sysroot; case ${with_install_sysroot} in + /) + ;; + */) + with_install_sysroot=`echo $with_install_sysroot | sed 's,/$,,'` + ;; + yes) + with_install_sysroot='$(exec_prefix)/$(target_alias)/sys-root' + ;; +esac +else + with_install_sysroot=no +fi + + + # Calculate toolexeclibdir. # Also toolexecdir, though it's only used in toolexeclibdir. case ${enable_version_specific_runtime_libs} in @@ -4557,7 +4579,14 @@ case ${enable_version_specific_runtime_l test x"$with_cross_host" != x"no"; then # Install a library built with a cross compiler in tooldir, not libdir. toolexecdir='$(exec_prefix)/$(target_alias)' - toolexeclibdir='$(toolexecdir)/lib' + case ${with_install_sysroot} in + no) + toolexeclibdir='$(toolexecdir)/lib' + ;; + *) + toolexeclibdir=${with_install_sysroot}/lib + ;; + esac else toolexecdir='$(libdir)/gcc-lib/$(target_alias)' toolexeclibdir='$(libdir)' @@ -11050,7 +11079,7 @@ else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<_LT_EOF -#line 11053 "configure" +#line 11082 "configure" #include "confdefs.h" #if HAVE_DLFCN_H @@ -11156,7 +11185,7 @@ else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<_LT_EOF -#line 11159 "configure" +#line 11188 "configure" #include "confdefs.h" #if HAVE_DLFCN_H Index: gcc/liboffloadmic/plugin/configure.ac =================================================================== --- gcc.orig/liboffloadmic/plugin/configure.ac +++ gcc/liboffloadmic/plugin/configure.ac @@ -95,6 +95,8 @@ AC_ARG_ENABLE([version-specific-runtime- AC_MSG_RESULT($enable_version_specific_runtime_libs) +GCC_WITH_INSTALL_SYSROOT([$(target_alias)]) + # Calculate toolexeclibdir. # Also toolexecdir, though it's only used in toolexeclibdir. case ${enable_version_specific_runtime_libs} in @@ -110,7 +112,14 @@ case ${enable_version_specific_runtime_l test x"$with_cross_host" != x"no"; then # Install a library built with a cross compiler in tooldir, not libdir. toolexecdir='$(exec_prefix)/$(target_alias)' - toolexeclibdir='$(toolexecdir)/lib' + case ${with_install_sysroot} in + no) + toolexeclibdir='$(toolexecdir)/lib' + ;; + *) + toolexeclibdir=${with_install_sysroot}/lib + ;; + esac else toolexecdir='$(libdir)/gcc-lib/$(target_alias)' toolexeclibdir='$(libdir)' Index: gcc/libphobos/Makefile.in =================================================================== --- gcc.orig/libphobos/Makefile.in +++ gcc/libphobos/Makefile.in @@ -108,6 +108,7 @@ target_triplet = @target@ subdir = . ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/../config/acx.m4 \ + $(top_srcdir)/../config/install-sysroot.m4 \ $(top_srcdir)/../config/lead-dot.m4 \ $(top_srcdir)/../config/multi.m4 \ $(top_srcdir)/../config/override.m4 \ Index: gcc/libphobos/aclocal.m4 =================================================================== --- gcc.orig/libphobos/aclocal.m4 +++ gcc/libphobos/aclocal.m4 @@ -873,6 +873,7 @@ AC_SUBST([am__untar]) ]) # _AM_PROG_TAR m4_include([../config/acx.m4]) +m4_include([../config/install-sysroot.m4]) m4_include([../config/lead-dot.m4]) m4_include([../config/multi.m4]) m4_include([../config/override.m4]) Index: gcc/libphobos/configure =================================================================== --- gcc.orig/libphobos/configure +++ gcc/libphobos/configure @@ -837,6 +837,7 @@ with_libbacktrace with_target_system_zlib with_cross_host enable_version_specific_runtime_libs +with_install_sysroot enable_libphobos ' ac_precious_vars='build_alias @@ -1504,6 +1505,8 @@ if test -n "$ac_init_help"; then --with-target-system-zlib={yes,no,auto} use installed libz (default: no) --with-cross-host=HOST configuring with a cross compiler + --with-install-sysroot=DIR + install libraries within DIR Some influential environment variables: CC C compiler command @@ -11640,7 +11643,7 @@ else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<_LT_EOF -#line 11643 "configure" +#line 11646 "configure" #include "confdefs.h" #if HAVE_DLFCN_H @@ -11746,7 +11749,7 @@ else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<_LT_EOF -#line 11749 "configure" +#line 11752 "configure" #include "confdefs.h" #if HAVE_DLFCN_H @@ -15237,6 +15240,25 @@ fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $version_specific_libs" >&5 $as_echo "$version_specific_libs" >&6; } + +# Check whether --with-install-sysroot was given. +if test "${with_install_sysroot+set}" = set; then : + withval=$with_install_sysroot; case ${with_install_sysroot} in + /) + ;; + */) + with_install_sysroot=`echo $with_install_sysroot | sed 's,/$,,'` + ;; + yes) + with_install_sysroot='$(exec_prefix)/${host_alias}/sys-root' + ;; +esac +else + with_install_sysroot=no +fi + + + # Version-specific runtime libs processing. if test $version_specific_libs = yes; then libphobos_toolexecdir='${libdir}/gcc/${host_alias}' @@ -15246,7 +15268,14 @@ $as_echo "$version_specific_libs" >&6; } # Install a library built with a cross compiler in tooldir, not libdir. if test -n "$with_cross_host" && test x"$with_cross_host" != x"no"; then libphobos_toolexecdir='${exec_prefix}/${host_alias}' - libphobos_toolexeclibdir='${toolexecdir}/lib' + case ${with_install_sysroot} in + no) + libphobos_toolexeclibdir='${toolexecdir}/lib' + ;; + *) + libphobos_toolexeclibdir=${with_install_sysroot}/lib + ;; + esac else libphobos_toolexecdir='${libdir}/gcc/${host_alias}' libphobos_toolexeclibdir='${libdir}' Index: gcc/libphobos/libdruntime/Makefile.in =================================================================== --- gcc.orig/libphobos/libdruntime/Makefile.in +++ gcc/libphobos/libdruntime/Makefile.in @@ -133,6 +133,7 @@ target_triplet = @target@ subdir = libdruntime ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/../config/acx.m4 \ + $(top_srcdir)/../config/install-sysroot.m4 \ $(top_srcdir)/../config/lead-dot.m4 \ $(top_srcdir)/../config/multi.m4 \ $(top_srcdir)/../config/override.m4 \ Index: gcc/libphobos/m4/druntime.m4 =================================================================== --- gcc.orig/libphobos/m4/druntime.m4 +++ gcc/libphobos/m4/druntime.m4 @@ -80,6 +80,8 @@ AC_DEFUN([DRUNTIME_INSTALL_DIRECTORIES], [version_specific_libs=no]) AC_MSG_RESULT($version_specific_libs) + GCC_WITH_INSTALL_SYSROOT([${host_alias}]) + # Version-specific runtime libs processing. if test $version_specific_libs = yes; then libphobos_toolexecdir='${libdir}/gcc/${host_alias}' @@ -89,7 +91,14 @@ AC_DEFUN([DRUNTIME_INSTALL_DIRECTORIES], # Install a library built with a cross compiler in tooldir, not libdir. if test -n "$with_cross_host" && test x"$with_cross_host" != x"no"; then libphobos_toolexecdir='${exec_prefix}/${host_alias}' - libphobos_toolexeclibdir='${toolexecdir}/lib' + case ${with_install_sysroot} in + no) + libphobos_toolexeclibdir='${toolexecdir}/lib' + ;; + *) + libphobos_toolexeclibdir=${with_install_sysroot}/lib + ;; + esac else libphobos_toolexecdir='${libdir}/gcc/${host_alias}' libphobos_toolexeclibdir='${libdir}' Index: gcc/libphobos/src/Makefile.in =================================================================== --- gcc.orig/libphobos/src/Makefile.in +++ gcc/libphobos/src/Makefile.in @@ -93,6 +93,7 @@ target_triplet = @target@ subdir = src ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/../config/acx.m4 \ + $(top_srcdir)/../config/install-sysroot.m4 \ $(top_srcdir)/../config/lead-dot.m4 \ $(top_srcdir)/../config/multi.m4 \ $(top_srcdir)/../config/override.m4 \ Index: gcc/libphobos/testsuite/Makefile.in =================================================================== --- gcc.orig/libphobos/testsuite/Makefile.in +++ gcc/libphobos/testsuite/Makefile.in @@ -93,6 +93,7 @@ target_triplet = @target@ subdir = testsuite ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/../config/acx.m4 \ + $(top_srcdir)/../config/install-sysroot.m4 \ $(top_srcdir)/../config/lead-dot.m4 \ $(top_srcdir)/../config/multi.m4 \ $(top_srcdir)/../config/override.m4 \ Index: gcc/libquadmath/Makefile.in =================================================================== --- gcc.orig/libquadmath/Makefile.in +++ gcc/libquadmath/Makefile.in @@ -95,6 +95,7 @@ subdir = . ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/../config/acx.m4 \ $(top_srcdir)/../config/depstand.m4 \ + $(top_srcdir)/../config/install-sysroot.m4 \ $(top_srcdir)/../config/lead-dot.m4 \ $(top_srcdir)/../config/lthostflags.m4 \ $(top_srcdir)/../config/multi.m4 \ Index: gcc/libquadmath/aclocal.m4 =================================================================== --- gcc.orig/libquadmath/aclocal.m4 +++ gcc/libquadmath/aclocal.m4 @@ -1169,6 +1169,7 @@ AC_SUBST([am__untar]) m4_include([../config/acx.m4]) m4_include([../config/depstand.m4]) +m4_include([../config/install-sysroot.m4]) m4_include([../config/lead-dot.m4]) m4_include([../config/lthostflags.m4]) m4_include([../config/multi.m4]) Index: gcc/libquadmath/configure =================================================================== --- gcc.orig/libquadmath/configure +++ gcc/libquadmath/configure @@ -786,6 +786,7 @@ enable_fast_install with_gnu_ld enable_libtool_lock enable_maintainer_mode +with_install_sysroot enable_symvers enable_cet enable_generated_files_in_srcdir @@ -1451,6 +1452,8 @@ if test -n "$ac_init_help"; then --with-pic try to use only PIC/non-PIC objects [default=use both] --with-gnu-ld assume the C compiler uses GNU ld [default=no] + --with-install-sysroot=DIR + install libraries within DIR --with-gcc-major-version-only use only GCC major number in filesystem paths @@ -10810,7 +10813,7 @@ else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<_LT_EOF -#line 10813 "configure" +#line 10816 "configure" #include "confdefs.h" #if HAVE_DLFCN_H @@ -10916,7 +10919,7 @@ else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<_LT_EOF -#line 10919 "configure" +#line 10922 "configure" #include "confdefs.h" #if HAVE_DLFCN_H @@ -12088,6 +12091,25 @@ ac_link='$CC -o conftest$ac_exeext $CFLA ac_compiler_gnu=$ac_cv_c_compiler_gnu + +# Check whether --with-install-sysroot was given. +if test "${with_install_sysroot+set}" = set; then : + withval=$with_install_sysroot; case ${with_install_sysroot} in + /) + ;; + */) + with_install_sysroot=`echo $with_install_sysroot | sed 's,/$,,'` + ;; + yes) + with_install_sysroot='$(exec_prefix)/$(target_alias)/sys-root' + ;; +esac +else + with_install_sysroot=no +fi + + + # Calculate toolexeclibdir # Also toolexecdir, though it's only used in toolexeclibdir case ${version_specific_libs} in @@ -12103,7 +12125,14 @@ case ${version_specific_libs} in test x"$with_cross_host" != x"no"; then # Install a library built with a cross compiler in tooldir, not libdir. toolexecdir='$(exec_prefix)/$(target_alias)' - toolexeclibdir='$(toolexecdir)/lib' + case ${with_install_sysroot} in + no) + toolexeclibdir='$(toolexecdir)/lib' + ;; + *) + toolexeclibdir=${with_install_sysroot}/lib + ;; + esac else toolexecdir='$(libdir)/gcc-lib/$(target_alias)' toolexeclibdir='$(libdir)' Index: gcc/libquadmath/configure.ac =================================================================== --- gcc.orig/libquadmath/configure.ac +++ gcc/libquadmath/configure.ac @@ -82,6 +82,8 @@ if test "x$GCC" != "xyes"; then fi AC_PROG_CPP +GCC_WITH_INSTALL_SYSROOT([$(target_alias)]) + # Calculate toolexeclibdir # Also toolexecdir, though it's only used in toolexeclibdir case ${version_specific_libs} in @@ -97,7 +99,14 @@ case ${version_specific_libs} in test x"$with_cross_host" != x"no"; then # Install a library built with a cross compiler in tooldir, not libdir. toolexecdir='$(exec_prefix)/$(target_alias)' - toolexeclibdir='$(toolexecdir)/lib' + case ${with_install_sysroot} in + no) + toolexeclibdir='$(toolexecdir)/lib' + ;; + *) + toolexeclibdir=${with_install_sysroot}/lib + ;; + esac else toolexecdir='$(libdir)/gcc-lib/$(target_alias)' toolexeclibdir='$(libdir)' Index: gcc/libsanitizer/Makefile.in =================================================================== --- gcc.orig/libsanitizer/Makefile.in +++ gcc/libsanitizer/Makefile.in @@ -100,6 +100,7 @@ subdir = . ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/../config/acx.m4 \ $(top_srcdir)/../config/depstand.m4 \ + $(top_srcdir)/../config/install-sysroot.m4 \ $(top_srcdir)/../config/lead-dot.m4 \ $(top_srcdir)/../config/libstdc++-raw-cxx.m4 \ $(top_srcdir)/../config/multi.m4 \ Index: gcc/libsanitizer/aclocal.m4 =================================================================== --- gcc.orig/libsanitizer/aclocal.m4 +++ gcc/libsanitizer/aclocal.m4 @@ -1189,6 +1189,7 @@ AC_SUBST([am__untar]) m4_include([../config/acx.m4]) m4_include([../config/depstand.m4]) +m4_include([../config/install-sysroot.m4]) m4_include([../config/lead-dot.m4]) m4_include([../config/libstdc++-raw-cxx.m4]) m4_include([../config/multi.m4]) Index: gcc/libsanitizer/asan/Makefile.in =================================================================== --- gcc.orig/libsanitizer/asan/Makefile.in +++ gcc/libsanitizer/asan/Makefile.in @@ -97,6 +97,7 @@ subdir = asan ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/../config/acx.m4 \ $(top_srcdir)/../config/depstand.m4 \ + $(top_srcdir)/../config/install-sysroot.m4 \ $(top_srcdir)/../config/lead-dot.m4 \ $(top_srcdir)/../config/libstdc++-raw-cxx.m4 \ $(top_srcdir)/../config/multi.m4 \ Index: gcc/libsanitizer/configure =================================================================== --- gcc.orig/libsanitizer/configure +++ gcc/libsanitizer/configure @@ -806,6 +806,7 @@ enable_version_specific_runtime_libs enable_dependency_tracking enable_silent_rules enable_maintainer_mode +with_install_sysroot enable_shared enable_static with_pic @@ -1470,6 +1471,8 @@ if test -n "$ac_init_help"; then Optional Packages: --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) + --with-install-sysroot=DIR + install libraries within DIR --with-pic try to use only PIC/non-PIC objects [default=use both] --with-gnu-ld assume the C compiler uses GNU ld [default=no] @@ -5012,6 +5015,25 @@ fi + +# Check whether --with-install-sysroot was given. +if test "${with_install_sysroot+set}" = set; then : + withval=$with_install_sysroot; case ${with_install_sysroot} in + /) + ;; + */) + with_install_sysroot=`echo $with_install_sysroot | sed 's,/$,,'` + ;; + yes) + with_install_sysroot='$(exec_prefix)/$(target_alias)/sys-root' + ;; +esac +else + with_install_sysroot=no +fi + + + # Calculate toolexeclibdir # Also toolexecdir, though it's only used in toolexeclibdir case ${version_specific_libs} in @@ -5027,7 +5049,14 @@ case ${version_specific_libs} in test x"$with_cross_host" != x"no"; then # Install a library built with a cross compiler in tooldir, not libdir. toolexecdir='$(exec_prefix)/$(target_alias)' - toolexeclibdir='$(toolexecdir)/lib' + case ${with_install_sysroot} in + no) + toolexeclibdir='$(toolexecdir)/lib' + ;; + *) + toolexeclibdir=${with_install_sysroot}/lib + ;; + esac else toolexecdir='$(libdir)/gcc-lib/$(target_alias)' toolexeclibdir='$(libdir)' @@ -12334,7 +12363,7 @@ else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<_LT_EOF -#line 12337 "configure" +#line 12366 "configure" #include "confdefs.h" #if HAVE_DLFCN_H @@ -12440,7 +12469,7 @@ else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<_LT_EOF -#line 12443 "configure" +#line 12472 "configure" #include "confdefs.h" #if HAVE_DLFCN_H Index: gcc/libsanitizer/configure.ac =================================================================== --- gcc.orig/libsanitizer/configure.ac +++ gcc/libsanitizer/configure.ac @@ -29,6 +29,8 @@ GCC_LIBSTDCXX_RAW_CXX_FLAGS AM_INIT_AUTOMAKE(foreign no-dist) AM_MAINTAINER_MODE +GCC_WITH_INSTALL_SYSROOT([$(target_alias)]) + # Calculate toolexeclibdir # Also toolexecdir, though it's only used in toolexeclibdir case ${version_specific_libs} in @@ -44,7 +46,14 @@ case ${version_specific_libs} in test x"$with_cross_host" != x"no"; then # Install a library built with a cross compiler in tooldir, not libdir. toolexecdir='$(exec_prefix)/$(target_alias)' - toolexeclibdir='$(toolexecdir)/lib' + case ${with_install_sysroot} in + no) + toolexeclibdir='$(toolexecdir)/lib' + ;; + *) + toolexeclibdir=${with_install_sysroot}/lib + ;; + esac else toolexecdir='$(libdir)/gcc-lib/$(target_alias)' toolexeclibdir='$(libdir)' Index: gcc/libsanitizer/interception/Makefile.in =================================================================== --- gcc.orig/libsanitizer/interception/Makefile.in +++ gcc/libsanitizer/interception/Makefile.in @@ -93,6 +93,7 @@ subdir = interception ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/../config/acx.m4 \ $(top_srcdir)/../config/depstand.m4 \ + $(top_srcdir)/../config/install-sysroot.m4 \ $(top_srcdir)/../config/lead-dot.m4 \ $(top_srcdir)/../config/libstdc++-raw-cxx.m4 \ $(top_srcdir)/../config/multi.m4 \ Index: gcc/libsanitizer/libbacktrace/Makefile.in =================================================================== --- gcc.orig/libsanitizer/libbacktrace/Makefile.in +++ gcc/libsanitizer/libbacktrace/Makefile.in @@ -124,6 +124,7 @@ subdir = libbacktrace ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/../config/acx.m4 \ $(top_srcdir)/../config/depstand.m4 \ + $(top_srcdir)/../config/install-sysroot.m4 \ $(top_srcdir)/../config/lead-dot.m4 \ $(top_srcdir)/../config/libstdc++-raw-cxx.m4 \ $(top_srcdir)/../config/multi.m4 \ Index: gcc/libsanitizer/lsan/Makefile.in =================================================================== --- gcc.orig/libsanitizer/lsan/Makefile.in +++ gcc/libsanitizer/lsan/Makefile.in @@ -95,6 +95,7 @@ subdir = lsan ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/../config/acx.m4 \ $(top_srcdir)/../config/depstand.m4 \ + $(top_srcdir)/../config/install-sysroot.m4 \ $(top_srcdir)/../config/lead-dot.m4 \ $(top_srcdir)/../config/libstdc++-raw-cxx.m4 \ $(top_srcdir)/../config/multi.m4 \ Index: gcc/libsanitizer/sanitizer_common/Makefile.in =================================================================== --- gcc.orig/libsanitizer/sanitizer_common/Makefile.in +++ gcc/libsanitizer/sanitizer_common/Makefile.in @@ -99,6 +99,7 @@ subdir = sanitizer_common ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/../config/acx.m4 \ $(top_srcdir)/../config/depstand.m4 \ + $(top_srcdir)/../config/install-sysroot.m4 \ $(top_srcdir)/../config/lead-dot.m4 \ $(top_srcdir)/../config/libstdc++-raw-cxx.m4 \ $(top_srcdir)/../config/multi.m4 \ Index: gcc/libsanitizer/tsan/Makefile.in =================================================================== --- gcc.orig/libsanitizer/tsan/Makefile.in +++ gcc/libsanitizer/tsan/Makefile.in @@ -96,6 +96,7 @@ subdir = tsan ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/../config/acx.m4 \ $(top_srcdir)/../config/depstand.m4 \ + $(top_srcdir)/../config/install-sysroot.m4 \ $(top_srcdir)/../config/lead-dot.m4 \ $(top_srcdir)/../config/libstdc++-raw-cxx.m4 \ $(top_srcdir)/../config/multi.m4 \ Index: gcc/libsanitizer/ubsan/Makefile.in =================================================================== --- gcc.orig/libsanitizer/ubsan/Makefile.in +++ gcc/libsanitizer/ubsan/Makefile.in @@ -95,6 +95,7 @@ subdir = ubsan ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/../config/acx.m4 \ $(top_srcdir)/../config/depstand.m4 \ + $(top_srcdir)/../config/install-sysroot.m4 \ $(top_srcdir)/../config/lead-dot.m4 \ $(top_srcdir)/../config/libstdc++-raw-cxx.m4 \ $(top_srcdir)/../config/multi.m4 \ Index: gcc/libssp/Makefile.in =================================================================== --- gcc.orig/libssp/Makefile.in +++ gcc/libssp/Makefile.in @@ -96,6 +96,7 @@ am__aclocal_m4_deps = $(top_srcdir)/../c $(top_srcdir)/../config/cet.m4 \ $(top_srcdir)/../config/depstand.m4 \ $(top_srcdir)/../config/enable.m4 \ + $(top_srcdir)/../config/install-sysroot.m4 \ $(top_srcdir)/../config/lead-dot.m4 \ $(top_srcdir)/../config/lthostflags.m4 \ $(top_srcdir)/../config/multi.m4 \ Index: gcc/libssp/aclocal.m4 =================================================================== --- gcc.orig/libssp/aclocal.m4 +++ gcc/libssp/aclocal.m4 @@ -1171,6 +1171,7 @@ m4_include([../config/acx.m4]) m4_include([../config/cet.m4]) m4_include([../config/depstand.m4]) m4_include([../config/enable.m4]) +m4_include([../config/install-sysroot.m4]) m4_include([../config/lead-dot.m4]) m4_include([../config/lthostflags.m4]) m4_include([../config/multi.m4]) Index: gcc/libssp/configure =================================================================== --- gcc.orig/libssp/configure +++ gcc/libssp/configure @@ -781,6 +781,7 @@ with_pic enable_fast_install with_gnu_ld enable_libtool_lock +with_install_sysroot with_gcc_major_version_only ' ac_precious_vars='build_alias @@ -1432,6 +1433,8 @@ if test -n "$ac_init_help"; then --with-pic try to use only PIC/non-PIC objects [default=use both] --with-gnu-ld assume the C compiler uses GNU ld [default=no] + --with-install-sysroot=DIR + install libraries within DIR --with-gcc-major-version-only use only GCC major number in filesystem paths @@ -10992,7 +10995,7 @@ else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<_LT_EOF -#line 10995 "configure" +#line 10998 "configure" #include "confdefs.h" #if HAVE_DLFCN_H @@ -11098,7 +11101,7 @@ else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<_LT_EOF -#line 11101 "configure" +#line 11104 "configure" #include "confdefs.h" #if HAVE_DLFCN_H @@ -11360,6 +11363,25 @@ esac + +# Check whether --with-install-sysroot was given. +if test "${with_install_sysroot+set}" = set; then : + withval=$with_install_sysroot; case ${with_install_sysroot} in + /) + ;; + */) + with_install_sysroot=`echo $with_install_sysroot | sed 's,/$,,'` + ;; + yes) + with_install_sysroot='$(exec_prefix)/$(target_alias)/sys-root' + ;; +esac +else + with_install_sysroot=no +fi + + + # Calculate toolexeclibdir # Also toolexecdir, though it's only used in toolexeclibdir case ${version_specific_libs} in @@ -11375,7 +11397,14 @@ case ${version_specific_libs} in test x"$with_cross_host" != x"no"; then # Install a library built with a cross compiler in tooldir, not libdir. toolexecdir='$(exec_prefix)/$(target_alias)' - toolexeclibdir='$(toolexecdir)/lib' + case ${with_install_sysroot} in + no) + toolexeclibdir='$(toolexecdir)/lib' + ;; + *) + toolexeclibdir=${with_install_sysroot}/lib + ;; + esac else toolexecdir='$(libdir)/gcc-lib/$(target_alias)' toolexeclibdir='$(libdir)' Index: gcc/libssp/configure.ac =================================================================== --- gcc.orig/libssp/configure.ac +++ gcc/libssp/configure.ac @@ -163,6 +163,8 @@ ACX_LT_HOST_FLAGS AC_SUBST(enable_shared) AC_SUBST(enable_static) +GCC_WITH_INSTALL_SYSROOT([$(target_alias)]) + # Calculate toolexeclibdir # Also toolexecdir, though it's only used in toolexeclibdir case ${version_specific_libs} in @@ -178,7 +180,14 @@ case ${version_specific_libs} in test x"$with_cross_host" != x"no"; then # Install a library built with a cross compiler in tooldir, not libdir. toolexecdir='$(exec_prefix)/$(target_alias)' - toolexeclibdir='$(toolexecdir)/lib' + case ${with_install_sysroot} in + no) + toolexeclibdir='$(toolexecdir)/lib' + ;; + *) + toolexeclibdir=${with_install_sysroot}/lib + ;; + esac else toolexecdir='$(libdir)/gcc-lib/$(target_alias)' toolexeclibdir='$(libdir)' Index: gcc/libstdc++-v3/Makefile.in =================================================================== --- gcc.orig/libstdc++-v3/Makefile.in +++ gcc/libstdc++-v3/Makefile.in @@ -95,6 +95,7 @@ am__aclocal_m4_deps = $(top_srcdir)/../c $(top_srcdir)/../config/futex.m4 \ $(top_srcdir)/../config/hwcaps.m4 \ $(top_srcdir)/../config/iconv.m4 \ + $(top_srcdir)/../config/install-sysroot.m4 \ $(top_srcdir)/../config/lead-dot.m4 \ $(top_srcdir)/../config/lib-ld.m4 \ $(top_srcdir)/../config/lib-link.m4 \ Index: gcc/libstdc++-v3/acinclude.m4 =================================================================== --- gcc.orig/libstdc++-v3/acinclude.m4 +++ gcc/libstdc++-v3/acinclude.m4 @@ -782,6 +782,8 @@ AC_DEFUN([GLIBCXX_EXPORT_INSTALL_INFO], [version_specific_libs=no]) AC_MSG_RESULT($version_specific_libs) + GCC_WITH_INSTALL_SYSROOT([${host_alias}]) + # Default case for install directory for include files. if test $version_specific_libs = no && test $gxx_include_dir = no; then gxx_include_dir='include/c++/${gcc_version}' @@ -812,7 +814,14 @@ AC_DEFUN([GLIBCXX_EXPORT_INSTALL_INFO], if test -n "$with_cross_host" && test x"$with_cross_host" != x"no"; then glibcxx_toolexecdir='${exec_prefix}/${host_alias}' - glibcxx_toolexeclibdir='${toolexecdir}/lib' + case ${with_install_sysroot} in + no) + glibcxx_toolexeclibdir='${toolexecdir}/lib' + ;; + *) + glibcxx_toolexeclibdir=${with_install_sysroot}/lib + ;; + esac else glibcxx_toolexecdir='${libdir}/gcc/${host_alias}' glibcxx_toolexeclibdir='${libdir}' Index: gcc/libstdc++-v3/aclocal.m4 =================================================================== --- gcc.orig/libstdc++-v3/aclocal.m4 +++ gcc/libstdc++-v3/aclocal.m4 @@ -857,6 +857,7 @@ m4_include([../config/enable.m4]) m4_include([../config/futex.m4]) m4_include([../config/hwcaps.m4]) m4_include([../config/iconv.m4]) +m4_include([../config/install-sysroot.m4]) m4_include([../config/lead-dot.m4]) m4_include([../config/lib-ld.m4]) m4_include([../config/lib-link.m4]) Index: gcc/libstdc++-v3/configure =================================================================== --- gcc.orig/libstdc++-v3/configure +++ gcc/libstdc++-v3/configure @@ -942,6 +942,7 @@ enable_libstdcxx_filesystem_ts enable_cet with_gxx_include_dir enable_version_specific_runtime_libs +with_install_sysroot with_gcc_major_version_only ' ac_precious_vars='build_alias @@ -1669,6 +1670,8 @@ if test -n "$ac_init_help"; then set the std::string ABI to use by default --with-gxx-include-dir=DIR installation directory for include files + --with-install-sysroot=DIR + install libraries within DIR --with-gcc-major-version-only use only GCC major number in filesystem paths @@ -12053,7 +12056,7 @@ else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<_LT_EOF -#line 12056 "configure" +#line 12059 "configure" #include "confdefs.h" #if HAVE_DLFCN_H @@ -12159,7 +12162,7 @@ else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<_LT_EOF -#line 12162 "configure" +#line 12165 "configure" #include "confdefs.h" #if HAVE_DLFCN_H @@ -15851,7 +15854,7 @@ $as_echo "$glibcxx_cv_atomic_long_long" # Fake what AC_TRY_COMPILE does. cat > conftest.$ac_ext << EOF -#line 15854 "configure" +#line 15857 "configure" int main() { typedef bool atomic_type; @@ -15886,7 +15889,7 @@ $as_echo "$glibcxx_cv_atomic_bool" >&6; rm -f conftest* cat > conftest.$ac_ext << EOF -#line 15889 "configure" +#line 15892 "configure" int main() { typedef short atomic_type; @@ -15921,7 +15924,7 @@ $as_echo "$glibcxx_cv_atomic_short" >&6; rm -f conftest* cat > conftest.$ac_ext << EOF -#line 15924 "configure" +#line 15927 "configure" int main() { // NB: _Atomic_word not necessarily int. @@ -15957,7 +15960,7 @@ $as_echo "$glibcxx_cv_atomic_int" >&6; } rm -f conftest* cat > conftest.$ac_ext << EOF -#line 15960 "configure" +#line 15963 "configure" int main() { typedef long long atomic_type; @@ -16110,7 +16113,7 @@ $as_echo "mutex" >&6; } # unnecessary for this test. cat > conftest.$ac_ext << EOF -#line 16113 "configure" +#line 16116 "configure" int main() { _Decimal32 d1; @@ -16152,7 +16155,7 @@ ac_compiler_gnu=$ac_cv_cxx_compiler_gnu # unnecessary for this test. cat > conftest.$ac_ext << EOF -#line 16155 "configure" +#line 16158 "configure" template struct same { typedef T2 type; }; @@ -16186,7 +16189,7 @@ $as_echo "$enable_int128" >&6; } rm -f conftest* cat > conftest.$ac_ext << EOF -#line 16189 "configure" +#line 16192 "configure" template struct same { typedef T2 type; }; @@ -76493,6 +76496,25 @@ fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $version_specific_libs" >&5 $as_echo "$version_specific_libs" >&6; } + +# Check whether --with-install-sysroot was given. +if test "${with_install_sysroot+set}" = set; then : + withval=$with_install_sysroot; case ${with_install_sysroot} in + /) + ;; + */) + with_install_sysroot=`echo $with_install_sysroot | sed 's,/$,,'` + ;; + yes) + with_install_sysroot='$(exec_prefix)/${host_alias}/sys-root' + ;; +esac +else + with_install_sysroot=no +fi + + + # Default case for install directory for include files. if test $version_specific_libs = no && test $gxx_include_dir = no; then gxx_include_dir='include/c++/${gcc_version}' @@ -76523,7 +76545,14 @@ $as_echo "$version_specific_libs" >&6; } if test -n "$with_cross_host" && test x"$with_cross_host" != x"no"; then glibcxx_toolexecdir='${exec_prefix}/${host_alias}' - glibcxx_toolexeclibdir='${toolexecdir}/lib' + case ${with_install_sysroot} in + no) + glibcxx_toolexeclibdir='${toolexecdir}/lib' + ;; + *) + glibcxx_toolexeclibdir=${with_install_sysroot}/lib + ;; + esac else glibcxx_toolexecdir='${libdir}/gcc/${host_alias}' glibcxx_toolexeclibdir='${libdir}' Index: gcc/libstdc++-v3/doc/Makefile.in =================================================================== --- gcc.orig/libstdc++-v3/doc/Makefile.in +++ gcc/libstdc++-v3/doc/Makefile.in @@ -95,6 +95,7 @@ am__aclocal_m4_deps = $(top_srcdir)/../c $(top_srcdir)/../config/futex.m4 \ $(top_srcdir)/../config/hwcaps.m4 \ $(top_srcdir)/../config/iconv.m4 \ + $(top_srcdir)/../config/install-sysroot.m4 \ $(top_srcdir)/../config/lead-dot.m4 \ $(top_srcdir)/../config/lib-ld.m4 \ $(top_srcdir)/../config/lib-link.m4 \ Index: gcc/libstdc++-v3/include/Makefile.in =================================================================== --- gcc.orig/libstdc++-v3/include/Makefile.in +++ gcc/libstdc++-v3/include/Makefile.in @@ -95,6 +95,7 @@ am__aclocal_m4_deps = $(top_srcdir)/../c $(top_srcdir)/../config/futex.m4 \ $(top_srcdir)/../config/hwcaps.m4 \ $(top_srcdir)/../config/iconv.m4 \ + $(top_srcdir)/../config/install-sysroot.m4 \ $(top_srcdir)/../config/lead-dot.m4 \ $(top_srcdir)/../config/lib-ld.m4 \ $(top_srcdir)/../config/lib-link.m4 \ Index: gcc/libstdc++-v3/libsupc++/Makefile.in =================================================================== --- gcc.orig/libstdc++-v3/libsupc++/Makefile.in +++ gcc/libstdc++-v3/libsupc++/Makefile.in @@ -97,6 +97,7 @@ am__aclocal_m4_deps = $(top_srcdir)/../c $(top_srcdir)/../config/futex.m4 \ $(top_srcdir)/../config/hwcaps.m4 \ $(top_srcdir)/../config/iconv.m4 \ + $(top_srcdir)/../config/install-sysroot.m4 \ $(top_srcdir)/../config/lead-dot.m4 \ $(top_srcdir)/../config/lib-ld.m4 \ $(top_srcdir)/../config/lib-link.m4 \ Index: gcc/libstdc++-v3/po/Makefile.in =================================================================== --- gcc.orig/libstdc++-v3/po/Makefile.in +++ gcc/libstdc++-v3/po/Makefile.in @@ -95,6 +95,7 @@ am__aclocal_m4_deps = $(top_srcdir)/../c $(top_srcdir)/../config/futex.m4 \ $(top_srcdir)/../config/hwcaps.m4 \ $(top_srcdir)/../config/iconv.m4 \ + $(top_srcdir)/../config/install-sysroot.m4 \ $(top_srcdir)/../config/lead-dot.m4 \ $(top_srcdir)/../config/lib-ld.m4 \ $(top_srcdir)/../config/lib-link.m4 \ Index: gcc/libstdc++-v3/python/Makefile.in =================================================================== --- gcc.orig/libstdc++-v3/python/Makefile.in +++ gcc/libstdc++-v3/python/Makefile.in @@ -96,6 +96,7 @@ am__aclocal_m4_deps = $(top_srcdir)/../c $(top_srcdir)/../config/futex.m4 \ $(top_srcdir)/../config/hwcaps.m4 \ $(top_srcdir)/../config/iconv.m4 \ + $(top_srcdir)/../config/install-sysroot.m4 \ $(top_srcdir)/../config/lead-dot.m4 \ $(top_srcdir)/../config/lib-ld.m4 \ $(top_srcdir)/../config/lib-link.m4 \ Index: gcc/libstdc++-v3/src/Makefile.in =================================================================== --- gcc.orig/libstdc++-v3/src/Makefile.in +++ gcc/libstdc++-v3/src/Makefile.in @@ -96,6 +96,7 @@ am__aclocal_m4_deps = $(top_srcdir)/../c $(top_srcdir)/../config/futex.m4 \ $(top_srcdir)/../config/hwcaps.m4 \ $(top_srcdir)/../config/iconv.m4 \ + $(top_srcdir)/../config/install-sysroot.m4 \ $(top_srcdir)/../config/lead-dot.m4 \ $(top_srcdir)/../config/lib-ld.m4 \ $(top_srcdir)/../config/lib-link.m4 \ Index: gcc/libstdc++-v3/src/c++11/Makefile.in =================================================================== --- gcc.orig/libstdc++-v3/src/c++11/Makefile.in +++ gcc/libstdc++-v3/src/c++11/Makefile.in @@ -96,6 +96,7 @@ am__aclocal_m4_deps = $(top_srcdir)/../c $(top_srcdir)/../config/futex.m4 \ $(top_srcdir)/../config/hwcaps.m4 \ $(top_srcdir)/../config/iconv.m4 \ + $(top_srcdir)/../config/install-sysroot.m4 \ $(top_srcdir)/../config/lead-dot.m4 \ $(top_srcdir)/../config/lib-ld.m4 \ $(top_srcdir)/../config/lib-link.m4 \ Index: gcc/libstdc++-v3/src/c++17/Makefile.in =================================================================== --- gcc.orig/libstdc++-v3/src/c++17/Makefile.in +++ gcc/libstdc++-v3/src/c++17/Makefile.in @@ -96,6 +96,7 @@ am__aclocal_m4_deps = $(top_srcdir)/../c $(top_srcdir)/../config/futex.m4 \ $(top_srcdir)/../config/hwcaps.m4 \ $(top_srcdir)/../config/iconv.m4 \ + $(top_srcdir)/../config/install-sysroot.m4 \ $(top_srcdir)/../config/lead-dot.m4 \ $(top_srcdir)/../config/lib-ld.m4 \ $(top_srcdir)/../config/lib-link.m4 \ Index: gcc/libstdc++-v3/src/c++98/Makefile.in =================================================================== --- gcc.orig/libstdc++-v3/src/c++98/Makefile.in +++ gcc/libstdc++-v3/src/c++98/Makefile.in @@ -96,6 +96,7 @@ am__aclocal_m4_deps = $(top_srcdir)/../c $(top_srcdir)/../config/futex.m4 \ $(top_srcdir)/../config/hwcaps.m4 \ $(top_srcdir)/../config/iconv.m4 \ + $(top_srcdir)/../config/install-sysroot.m4 \ $(top_srcdir)/../config/lead-dot.m4 \ $(top_srcdir)/../config/lib-ld.m4 \ $(top_srcdir)/../config/lib-link.m4 \ Index: gcc/libstdc++-v3/src/filesystem/Makefile.in =================================================================== --- gcc.orig/libstdc++-v3/src/filesystem/Makefile.in +++ gcc/libstdc++-v3/src/filesystem/Makefile.in @@ -96,6 +96,7 @@ am__aclocal_m4_deps = $(top_srcdir)/../c $(top_srcdir)/../config/futex.m4 \ $(top_srcdir)/../config/hwcaps.m4 \ $(top_srcdir)/../config/iconv.m4 \ + $(top_srcdir)/../config/install-sysroot.m4 \ $(top_srcdir)/../config/lead-dot.m4 \ $(top_srcdir)/../config/lib-ld.m4 \ $(top_srcdir)/../config/lib-link.m4 \ Index: gcc/libstdc++-v3/testsuite/Makefile.in =================================================================== --- gcc.orig/libstdc++-v3/testsuite/Makefile.in +++ gcc/libstdc++-v3/testsuite/Makefile.in @@ -95,6 +95,7 @@ am__aclocal_m4_deps = $(top_srcdir)/../c $(top_srcdir)/../config/futex.m4 \ $(top_srcdir)/../config/hwcaps.m4 \ $(top_srcdir)/../config/iconv.m4 \ + $(top_srcdir)/../config/install-sysroot.m4 \ $(top_srcdir)/../config/lead-dot.m4 \ $(top_srcdir)/../config/lib-ld.m4 \ $(top_srcdir)/../config/lib-link.m4 \ Index: gcc/libvtv/Makefile.in =================================================================== --- gcc.orig/libvtv/Makefile.in +++ gcc/libvtv/Makefile.in @@ -96,6 +96,7 @@ subdir = . ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/../config/acx.m4 \ $(top_srcdir)/../config/depstand.m4 \ + $(top_srcdir)/../config/install-sysroot.m4 \ $(top_srcdir)/../config/lead-dot.m4 \ $(top_srcdir)/../config/libstdc++-raw-cxx.m4 \ $(top_srcdir)/../config/lthostflags.m4 \ Index: gcc/libvtv/aclocal.m4 =================================================================== --- gcc.orig/libvtv/aclocal.m4 +++ gcc/libvtv/aclocal.m4 @@ -1169,6 +1169,7 @@ AC_SUBST([am__untar]) m4_include([../config/acx.m4]) m4_include([../config/depstand.m4]) +m4_include([../config/install-sysroot.m4]) m4_include([../config/lead-dot.m4]) m4_include([../config/libstdc++-raw-cxx.m4]) m4_include([../config/lthostflags.m4]) Index: gcc/libvtv/configure =================================================================== --- gcc.orig/libvtv/configure +++ gcc/libvtv/configure @@ -790,6 +790,7 @@ enable_vtable_verify enable_dependency_tracking enable_silent_rules enable_maintainer_mode +with_install_sysroot enable_shared enable_static with_pic @@ -1450,6 +1451,8 @@ if test -n "$ac_init_help"; then Optional Packages: --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) + --with-install-sysroot=DIR + install libraries within DIR --with-pic try to use only PIC/non-PIC objects [default=use both] --with-gnu-ld assume the C compiler uses GNU ld [default=no] @@ -4807,6 +4810,25 @@ fi + +# Check whether --with-install-sysroot was given. +if test "${with_install_sysroot+set}" = set; then : + withval=$with_install_sysroot; case ${with_install_sysroot} in + /) + ;; + */) + with_install_sysroot=`echo $with_install_sysroot | sed 's,/$,,'` + ;; + yes) + with_install_sysroot='$(exec_prefix)/$(target_alias)/sys-root' + ;; +esac +else + with_install_sysroot=no +fi + + + # Calculate toolexeclibdir # Also toolexecdir, though it's only used in toolexeclibdir case ${version_specific_libs} in @@ -4822,7 +4844,14 @@ case ${version_specific_libs} in test x"$with_cross_host" != x"no"; then # Install a library built with a cross compiler in tooldir, not libdir. toolexecdir='$(exec_prefix)/$(target_alias)' - toolexeclibdir='$(toolexecdir)/lib' + case ${with_install_sysroot} in + no) + toolexeclibdir='$(toolexecdir)/lib' + ;; + *) + toolexeclibdir=${with_install_sysroot}/lib + ;; + esac else toolexecdir='$(libdir)/gcc-lib/$(target_alias)' toolexeclibdir='$(libdir)' @@ -12235,7 +12264,7 @@ else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<_LT_EOF -#line 12238 "configure" +#line 12267 "configure" #include "confdefs.h" #if HAVE_DLFCN_H @@ -12341,7 +12370,7 @@ else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<_LT_EOF -#line 12344 "configure" +#line 12373 "configure" #include "confdefs.h" #if HAVE_DLFCN_H Index: gcc/libvtv/configure.ac =================================================================== --- gcc.orig/libvtv/configure.ac +++ gcc/libvtv/configure.ac @@ -78,6 +78,8 @@ AM_MAINTAINER_MODE LIBVTV_CONFIGURE +GCC_WITH_INSTALL_SYSROOT([$(target_alias)]) + # Calculate toolexeclibdir # Also toolexecdir, though it's only used in toolexeclibdir case ${version_specific_libs} in @@ -93,7 +95,14 @@ case ${version_specific_libs} in test x"$with_cross_host" != x"no"; then # Install a library built with a cross compiler in tooldir, not libdir. toolexecdir='$(exec_prefix)/$(target_alias)' - toolexeclibdir='$(toolexecdir)/lib' + case ${with_install_sysroot} in + no) + toolexeclibdir='$(toolexecdir)/lib' + ;; + *) + toolexeclibdir=${with_install_sysroot}/lib + ;; + esac else toolexecdir='$(libdir)/gcc-lib/$(target_alias)' toolexeclibdir='$(libdir)' Index: gcc/libvtv/testsuite/Makefile.in =================================================================== --- gcc.orig/libvtv/testsuite/Makefile.in +++ gcc/libvtv/testsuite/Makefile.in @@ -92,6 +92,7 @@ subdir = testsuite ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/../config/acx.m4 \ $(top_srcdir)/../config/depstand.m4 \ + $(top_srcdir)/../config/install-sysroot.m4 \ $(top_srcdir)/../config/lead-dot.m4 \ $(top_srcdir)/../config/libstdc++-raw-cxx.m4 \ $(top_srcdir)/../config/lthostflags.m4 \ Index: gcc/zlib/Makefile.in =================================================================== --- gcc.orig/zlib/Makefile.in +++ gcc/zlib/Makefile.in @@ -93,6 +93,7 @@ target_triplet = @target@ subdir = . ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/../config/depstand.m4 \ + $(top_srcdir)/../config/install-sysroot.m4 \ $(top_srcdir)/../config/lead-dot.m4 \ $(top_srcdir)/../config/multi.m4 \ $(top_srcdir)/../config/override.m4 \ Index: gcc/zlib/aclocal.m4 =================================================================== --- gcc.orig/zlib/aclocal.m4 +++ gcc/zlib/aclocal.m4 @@ -1168,6 +1168,7 @@ AC_SUBST([am__untar]) ]) # _AM_PROG_TAR m4_include([../config/depstand.m4]) +m4_include([../config/install-sysroot.m4]) m4_include([../config/lead-dot.m4]) m4_include([../config/multi.m4]) m4_include([../config/override.m4]) Index: gcc/zlib/configure =================================================================== --- gcc.orig/zlib/configure +++ gcc/zlib/configure @@ -774,6 +774,7 @@ with_pic enable_fast_install with_gnu_ld enable_libtool_lock +with_install_sysroot enable_host_shared ' ac_precious_vars='build_alias @@ -1427,6 +1428,8 @@ if test -n "$ac_init_help"; then --with-pic try to use only PIC/non-PIC objects [default=use both] --with-gnu-ld assume the C compiler uses GNU ld [default=no] + --with-install-sysroot=DIR + install libraries within DIR Some influential environment variables: CC C compiler command @@ -10648,7 +10651,7 @@ else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<_LT_EOF -#line 10651 "configure" +#line 10654 "configure" #include "confdefs.h" #if HAVE_DLFCN_H @@ -10754,7 +10757,7 @@ else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<_LT_EOF -#line 10757 "configure" +#line 10760 "configure" #include "confdefs.h" #if HAVE_DLFCN_H @@ -11379,10 +11382,36 @@ fi done + +# Check whether --with-install-sysroot was given. +if test "${with_install_sysroot+set}" = set; then : + withval=$with_install_sysroot; case ${with_install_sysroot} in + /) + ;; + */) + with_install_sysroot=`echo $with_install_sysroot | sed 's,/$,,'` + ;; + yes) + with_install_sysroot='$(exec_prefix)/$(target_alias)/sys-root' + ;; +esac +else + with_install_sysroot=no +fi + + + if test -n "$with_cross_host" && test x"$with_cross_host" != x"no"; then toolexecdir='$(exec_prefix)/$(target_alias)' - toolexeclibdir='$(toolexecdir)/lib' + case ${with_install_sysroot} in + no) + toolexeclibdir='$(toolexecdir)/lib' + ;; + *) + toolexeclibdir=${with_install_sysroot}/lib + ;; + esac else toolexecdir='$(libdir)/gcc-lib/$(target_alias)' toolexeclibdir='$(libdir)' Index: gcc/zlib/configure.ac =================================================================== --- gcc.orig/zlib/configure.ac +++ gcc/zlib/configure.ac @@ -81,10 +81,19 @@ fi AC_CHECK_HEADERS(unistd.h) +GCC_WITH_INSTALL_SYSROOT([$(target_alias)]) + if test -n "$with_cross_host" && test x"$with_cross_host" != x"no"; then toolexecdir='$(exec_prefix)/$(target_alias)' - toolexeclibdir='$(toolexecdir)/lib' + case ${with_install_sysroot} in + no) + toolexeclibdir='$(toolexecdir)/lib' + ;; + *) + toolexeclibdir=${with_install_sysroot}/lib + ;; + esac else toolexecdir='$(libdir)/gcc-lib/$(target_alias)' toolexeclibdir='$(libdir)'