diff options
author | Sergei Trofimovich <slyfox@gentoo.org> | 2019-10-19 19:56:59 +0100 |
---|---|---|
committer | Sergei Trofimovich <slyfox@gentoo.org> | 2019-10-19 22:20:33 +0100 |
commit | 1d684f1e6c6f212a2a92e1e90de6a66f33d28f9d (patch) | |
tree | ed4b62666283db6c5d6c9b06c7c518061c27e23f /eclass | |
parent | toolchain.eclass: port to EAPI=7 (diff) | |
download | gentoo-1d684f1e6c6f212a2a92e1e90de6a66f33d28f9d.tar.gz gentoo-1d684f1e6c6f212a2a92e1e90de6a66f33d28f9d.tar.bz2 gentoo-1d684f1e6c6f212a2a92e1e90de6a66f33d28f9d.zip |
toolchain.eclass: add bug references to comments
No functional changes.
Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>
Diffstat (limited to 'eclass')
-rw-r--r-- | eclass/toolchain.eclass | 30 |
1 files changed, 18 insertions, 12 deletions
diff --git a/eclass/toolchain.eclass b/eclass/toolchain.eclass index 6f70d8061006..aec5ba4314c8 100644 --- a/eclass/toolchain.eclass +++ b/eclass/toolchain.eclass @@ -358,7 +358,6 @@ get_gcc_src_uri() { [[ -n ${PATCH_VER} ]] && \ GCC_SRC_URI+=" $(gentoo_urls gcc-${PATCH_GCC_VER}-patches-${PATCH_VER}.tar.bz2)" - # strawberry pie, Cappuccino and a Gauloises (it's a good thing) [[ -n ${PIE_VER} ]] && \ PIE_CORE=${PIE_CORE:-gcc-${PIE_GCC_VER}-piepatches-v${PIE_VER}.tar.bz2} && \ GCC_SRC_URI+=" $(gentoo_urls ${PIE_CORE})" @@ -625,6 +624,7 @@ toolchain_src_prepare() { tc_apply_patches "Remove texinfo (bug #198182, bug ##464008)" "${FILESDIR}"/gcc-configure-texinfo.patch fi + # >=gcc-4 if [[ -x contrib/gcc_update ]] ; then einfo "Touching generated files" ./contrib/gcc_update --touch | \ @@ -675,11 +675,10 @@ do_gcc_CYGWINPORTS_patches() { # configure to build with the hardened GCC specs as the default make_gcc_hard() { - local gcc_hard_flags="" # If we use gcc-6 or newer with pie enable to compile older gcc we need to pass -no-pie - # to stage1; bug 618908 + # to stage1; bug #618908 if ! tc_version_is_at_least 6.0 && [[ $(gcc-major-version) -ge 6 ]] ; then einfo "Disabling PIE in stage1 (only) ..." sed -i -e "/^STAGE1_LDFLAGS/ s/$/ -no-pie/" "${S}"/Makefile.in || die @@ -694,7 +693,10 @@ make_gcc_hard() { einfo "Updating gcc to use automatic SSP building ..." fi if use_if_iuse hardened ; then - # Will add some optimatizion as default. + # Will add some hardened options as default, like: + # -fstack-clash-protection + # -z now + # see *_all_extra-options.patch gcc patches. gcc_hard_flags+=" -DEXTRA_OPTIONS" # rebrand to make bug reports easier BRANDING_GCC_PKGVERSION=${BRANDING_GCC_PKGVERSION/Gentoo/Gentoo Hardened} @@ -946,9 +948,9 @@ toolchain_src_configure() { tc_version_is_at_least 3.4 || confgcc+=( --disable-libunwind-exceptions ) # Use the default ("release") checking because upstream usually neglects - # to test "disabled" so it has a history of breaking. #317217 + # to test "disabled" so it has a history of breaking. bug #317217 if tc_version_is_at_least 3.4 && in_iuse debug ; then - # The "release" keyword is new to 4.0. #551636 + # The "release" keyword is new to 4.0. bug #551636 local off=$(tc_version_is_at_least 4.0 && echo release || echo no) confgcc+=( --enable-checking="${GCC_CHECKS_LIST:-$(usex debug yes ${off})}" ) fi @@ -966,12 +968,12 @@ toolchain_src_configure() { # allow gcc to search for clock funcs in the main C lib. # if it can't find them, then tough cookies -- we aren't - # going to link in -lrt to all C++ apps. #411681 + # going to link in -lrt to all C++ apps. bug #411681 if tc_version_is_at_least 4.4 && is_cxx ; then confgcc+=( --enable-libstdcxx-time ) fi - # Build compiler using LTO + # Build compiler itself using LTO if tc_version_is_at_least 9.1 && use_if_iuse lto ; then confgcc+=( --with-build-config=bootstrap-lto ) fi @@ -984,7 +986,9 @@ toolchain_src_configure() { # The jit language requires this. is_jit && confgcc+=( --enable-host-shared ) - # # Turn on the -Wl,--build-id flag by default for ELF targets. #525942 + # build-id was disabled for file collisions: bug #526144 + # + # # Turn on the -Wl,--build-id flag by default for ELF targets. bug #525942 # # This helps with locating debug files. # case ${CTARGET} in # *-linux-*|*-elf|*-eabi) @@ -1025,10 +1029,12 @@ toolchain_src_configure() { *-klibc) needed_libc=klibc;; *-musl*) needed_libc=musl;; *-uclibc*) + # Enable shared library support only on targets + # that support it: bug #291870 if ! echo '#include <features.h>' | \ $(tc-getCPP ${CTARGET}) -E -dD - 2>/dev/null | \ grep -q __HAVE_SHARED__ - then #291870 + then confgcc+=( --disable-shared ) fi needed_libc=uclibc-ng @@ -1751,7 +1757,7 @@ toolchain_src_test() { toolchain_src_install() { cd "${WORKDIR}"/build - # Do allow symlinks in private gcc include dir as this can break the build + # Don't 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 @@ -1847,7 +1853,7 @@ toolchain_src_install() { fi fi - # TODO: implement stripping (we use RESTRICT=strip) + # TODO(bug #686512): implement stripping (we use RESTRICT=strip) # As gcc installs object files both build against ${CHOST} and ${CTARGET} # we will ned to run stripping using different tools: # Using ${CHOST} tools: |