From 7d6ce0b2e2ec1c64858186a19d60e59701d86a03 Mon Sep 17 00:00:00 2001 From: "Anthony G. Basile" Date: Thu, 5 Feb 2015 23:28:17 +0000 Subject: [PATCH] Restore the old way of dealing with fixed includes for bsd, bug #536878. --- eclass/ChangeLog | 5 ++++- eclass/toolchain.eclass | 27 ++++++++++++++++----------- 2 files changed, 20 insertions(+), 12 deletions(-) diff --git a/eclass/ChangeLog b/eclass/ChangeLog index 69db1dc50022..6fa61a55945b 100644 --- a/eclass/ChangeLog +++ b/eclass/ChangeLog @@ -1,6 +1,9 @@ # ChangeLog for eclass directory # Copyright 1999-2015 Gentoo Foundation; Distributed under the GPL v2 -# $Header: /var/cvsroot/gentoo-x86/eclass/ChangeLog,v 1.1521 2015/02/04 09:44:24 ulm Exp $ +# $Header: /var/cvsroot/gentoo-x86/eclass/ChangeLog,v 1.1522 2015/02/05 23:28:17 blueness Exp $ + + 05 Feb 2015; Anthony G. Basile toolchain.eclass: + Restore the old way of dealing with fixed includes for bsd, bug #536878. 04 Feb 2015; Ulrich Müller git-r3.eclass: Respect the EVCS_UMASK variable to override the default umask when writing diff --git a/eclass/toolchain.eclass b/eclass/toolchain.eclass index 7a98ab70f2f5..f1fc90d0bc4a 100644 --- a/eclass/toolchain.eclass +++ b/eclass/toolchain.eclass @@ -1,6 +1,6 @@ -# Copyright 1999-2014 Gentoo Foundation +# Copyright 1999-2015 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 -# $Header: /var/cvsroot/gentoo-x86/eclass/toolchain.eclass,v 1.648 2015/01/21 21:59:31 blueness Exp $ +# $Header: /var/cvsroot/gentoo-x86/eclass/toolchain.eclass,v 1.649 2015/02/05 23:28:17 blueness Exp $ # Maintainer: Toolchain Ninjas @@ -595,15 +595,6 @@ toolchain_src_prepare() { einfo " ${f%%...}" done fi - - # We don't need fixed header files. This is a gcc hack for dealing with broken - # (ie non-ansi compliant) header files on old unix systems. On modern systems, - # these "fixed" headers are known to break things. We just stub them out. - if tc_version_is_at_least 4.0; then - echo : > "${S}"/fixincludes/fixinc.in || die - else - echo : > "${S}"/gcc/fixinc/fixincl.sh || die - fi } guess_patch_type_in_dir() { @@ -1607,6 +1598,9 @@ toolchain_src_test() { toolchain_src_install() { cd "${WORKDIR}"/build + # Do allow symlinks in private gcc include dir as this can break the build + find gcc/include*/ -type l -delete + # Copy over the info pages. We disabled their generation earlier, but the # build system only expects to install out of the build dir, not the source. #464008 mkdir -p gcc/doc @@ -1617,6 +1611,17 @@ toolchain_src_install() { fi done + # We remove the generated fixincludes, as they can cause things to break + # (ncurses, openssl, etc). We do not prevent them from being built, as + # in the following commit which we revert: + # http://sources.gentoo.org/cgi-bin/viewvc.cgi/gentoo-x86/eclass/toolchain.eclass?r1=1.647&r2=1.648 + # This is because bsd userland needs fixedincludes to build gcc, while + # linux does not. Both can dispose of them afterwards. + while read x ; do + grep -q 'It has been auto-edited by fixincludes from' "${x}" \ + && rm -f "${x}" + done < <(find gcc/include*/ -name '*.h') + # Do the 'make install' from the build directory S="${WORKDIR}"/build emake -j1 DESTDIR="${D}" install || die -- 2.26.2