Restore the old way of dealing with fixed includes for bsd, bug #536878.
authorAnthony G. Basile <blueness@gentoo.org>
Thu, 5 Feb 2015 23:28:17 +0000 (23:28 +0000)
committerAnthony G. Basile <blueness@gentoo.org>
Thu, 5 Feb 2015 23:28:17 +0000 (23:28 +0000)
eclass/ChangeLog
eclass/toolchain.eclass

index 69db1dc500227bc959efab378f065c8350199617..6fa61a55945ba258737ec63baa6daf9dbd8f10d5 100644 (file)
@@ -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 <blueness@gentoo.org> toolchain.eclass:
+  Restore the old way of dealing with fixed includes for bsd, bug #536878.
 
   04 Feb 2015; Ulrich Müller <ulm@gentoo.org> git-r3.eclass:
   Respect the EVCS_UMASK variable to override the default umask when writing
index 7a98ab70f2f5107e5702dd9816edade7cf7e59b4..f1fc90d0bc4a68af4b25901d282c211f27c58af0 100644 (file)
@@ -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 <toolchain@gentoo.org>
 
@@ -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