Hi everyone, I'd like to make a commit to toolchain.eclass in a few
days. mgorny noticed some code which can be improved. Basically gcc
creates "fixed" include files from system headers because of the
requirement that it have ansi c compliant headers. These are fixed via
shells scripts during the build process, but we just delete them
afterwards. Rather than generate and then delete them, just don't
generate them in the first place. Its bug number #536878. I've tested
on gcc-3 to the latest and both approaches yield the same results.
Here's the patch so you don't have to go hunting for it:
diff -u -B -r1.647 toolchain.eclass
--- toolchain.eclass 15 Nov 2014 08:45:33 -0000 1.647
+++ toolchain.eclass 18 Jan 2015 20:36:08 -0000
@@ -595,6 +595,13 @@
einfo " ${f%%...}"
done
fi
+
+ # we don't want fixed includes :)
+ 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() {
@@ -1598,9 +1605,6 @@
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
@@ -1611,13 +1615,6 @@
fi
done
- # Remove generated headers, as they can cause things to break
- # (ncurses, openssl, etc).
- 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
--
Anthony G. Basile, Ph.D.
Gentoo Linux Developer [Hardened]
E-Mail : [email protected]
GnuPG FP : 1FED FAD9 D82C 52A5 3BAB DC79 9384 FA6E F52D 4BBA
GnuPG ID : F52D4BBA