summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* eclass/toolchain: fix double @MAINTAINERAaron Bauman2020-12-161-1/+1
| | | | Signed-off-by: Aaron Bauman <bman@gentoo.org>
* eclass/toolchain: fixup documentationAaron Bauman2020-12-151-1/+7
| | | | Signed-off-by: Aaron Bauman <bman@gentoo.org>
* toolchain.eclass: add USE=custom-cflags for gcc-11Sergei Trofimovich2020-11-081-6/+13
| | | | | | | | | | | | | Sometimes it's useful to build gcc quickly with CFLAGS=-O0 as a smoke test for sanity. CFLAGS=-O3 should also generally work as a code generation stres test. But not in general case. Some options like -flto would probably not work as is. Let's allow users to experiment with gcc flags if they really want to. Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>
* eutils.eclass: Deprecate use_if_iuse().Ulrich Müller2020-09-121-34/+43
| | | | | | | | The function is not called from any ebuilds in the gentoo repository. Inline it as "in_iuse foo && use foo" in other eclasses, or define it as a local function when it is called multiple times. Signed-off-by: Ulrich Müller <ulm@gentoo.org>
* toolchain.eclass: add rv32 abi namesAndreas K. Hüttel2020-09-021-1/+1
| | | | Signed-off-by: Andreas K. Hüttel <dilfridge@gentoo.org>
* toolchain.eclass: fix relocation of libgccjitSergei Trofimovich2020-08-241-0/+6
| | | | | | | | | | | | | | | | | Before the change libgccjit.so was installed to /usr/lib. Relocation code in toolchain.eclass:gcc_movelibs() only handles /usr/$(get_libdir) -> $LIBDIR location. As a result gcc did not relocate libraries to version-speciifc firectory: caused collisions and installed library into wrong LIBDIR. The change handles libgccjit special case by relocating it explicitly. Reported-by: Michał Górny Bug: https://bugs.gentoo.org/583010 Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>
* toolchain.eclass: always enable --with-long-double-128 for glibc targetsSergei Trofimovich2020-08-201-0/+8
| | | | | | | | | | | | | | | Unless overridden glibc enables 128-bit 'long double' for glibc 2.4 and above. But with crossdev change 7283a01 ("set --without-headers by default") we don't install any headers for stage1-gcc. As a result gcc pessimistically disables 128-bit 'long double'. The change enables --with-long-double-128 for glibc targets for stage1-gcc. Reported-by: hanetzer@startmail.com Closes: https://bugs.gentoo.org/738248 Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>
* toolchain.eclass: stop installing /usr/bin/c89 and /usr/bin/c99Sergei Trofimovich2020-08-191-15/+0
| | | | | | | | Ownership of /usr/bin/c89 and /usr/bin/c99 was switched to sys-devel/gcc-config-2.3.1. Closes: https://bugs.gentoo.org/728722 Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>
* toolchain.eclass: raise minimum gcc-config up to 2.3Sergei Trofimovich2020-08-071-1/+1
| | | | | | | | | | In #736040 gcc-config-1.9 was not able to handle gcc-10 paths. Let's raise lower bound to minimum stable version currently in ::gentoo. Reported-by: Dennis Nezic Bug: https://bugs.gentoo.org/736040 Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>
* toolchain.eclass: drop java binary renames for <gcc-4Sergei Trofimovich2020-07-311-41/+0
| | | | Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>
* toolchain.eclass: drop --as-needed spec workaround for <gcc-3.4.4Sergei Trofimovich2020-07-311-7/+0
| | | | Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>
* toolchain.eclass: always validate gcc/BASE-VER (assume >=gcc-4.1)Sergei Trofimovich2020-07-311-6/+4
| | | | Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>
* toolchain.eclass: drop fixheadtails.eclass use for <gcc-4.3Sergei Trofimovich2020-07-311-10/+1
| | | | Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>
* toolchain.eclass: drop tweak for pythondir for gcc-{4.5..4.7}Sergei Trofimovich2020-07-311-8/+0
| | | | Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>
* toolchain.eclass: drop support for standalone lang=dSergei Trofimovich2020-07-311-16/+0
| | | | | | | 'd' is merged and maintained upstream. Dropped support for external patches. No ::gentoo ebuilds are using it. Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>
* toolchain.eclass: drop IUSE=boundschecking supportSergei Trofimovich2020-07-311-29/+1
| | | | | | boundschecking patch is superseded by IUSE=sanitize Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>
* toolchain.eclass: simplify LICENSE= by leaving >=gcc-4.6 caseSergei Trofimovich2020-07-311-14/+1
| | | | Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>
* toolchain.eclass: drop handling of /usr/lib/gcc-lib for gcc-3.3Sergei Trofimovich2020-07-311-5/+1
| | | | Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>
* toolchain.eclass: drop IUSE=mudflap handlingSergei Trofimovich2020-07-311-7/+0
| | | | | | mudflap was removed in favour of sanitizers. Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>
* toolchain.eclass: avoid libquadmath in stage1-gccSergei Trofimovich2020-07-301-0/+3
| | | | | | | | | | | | | | libquadmath relies on libc presence (sqrt symbols). When initial toolchain is bootstrapped libc is not available yet. The change disables libquadmath for bootstrap cases when libc is not installed yet. gcc-stage2 still uses platform defaults for libquadmath. Reported-by: Andrew Aladjev Closes: https://bugs.gentoo.org/734820 Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>
* toolchain.eclass: also delete /usr/bin/fix_libtool_files.shSergei Trofimovich2020-07-301-0/+1
| | | | | | Reported-by: Silvio Closes: https://bugs.gentoo.org/734008 Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>
* toolchain.eclass: install libquadmath by defaultSergei Trofimovich2020-07-301-6/+0
| | | | | | | | | | libquadmath is a small support runtime library for _Float128 types. sci-libs/fftw happens to use it and expects it to be provided by gcc. Let's provide it unconditionally. Reported-by: Fredric Johansson Closes: https://bugs.gentoo.org/608990 Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>
* toolchain.eclass: add USE=valgrind for annotations for valgrindSergei Trofimovich2020-07-061-0/+9
| | | | | | | This adds annotation hints to memory handling code into gcc to ease debugging it under valgrind. Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>
* toolchain.eclass: drop fix_libtool_files.shSergei Trofimovich2020-06-191-31/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | fixlafiles.awk can mangle two things in .la fils: 1. patch reference 'from .../libstdc++.la' to '-lstdc++' 2. change ${CHOST} when user switches CHOST and rebuilds the system [1.] is not relevant since gcc-4 in Gentoo where we started deleting libstdc++.la on gcc installation. Nothing should embed libstdc++.la paths anymore. [2.] is a rare one-off step that has a lot more caveats than just .la file patching. Generally .la files are tracked by package manager and should not be changed after they are installed on disk. 'fix_libtool_files.sh' breaks that invariant. On top of that portage's FEATURES=fixlafiles removes nested .la files references. Let's remove 'fix_libtool_files.sh' and 'fixlafiles.awk' completely. If really needed we can reintroduce it as a separate tool. Closes: https://bugs.gentoo.org/722554 Closes: https://bugs.gentoo.org/657330 Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>
* toolchain.eclass: drop unused --enable-altivecSergei Trofimovich2020-06-101-4/+7
| | | | | | | | | | | | | | --enable-altivec does not do anything since gcc-4: https://gcc.gnu.org/legacy-ml/gcc/2005-03/msg01091.html The change drops passing of --enable-altivec for all gcc versions and drops IUSE=altivec for gcc-10+. Once gcc-10 is stable everywhere we can drop IUSE=altivec for all gcc versions. Reported-by: Georgy Yakovlev Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>
* toolchain.eclass: downgrade znver2 to znver1Alexey Sokolov2020-05-101-0/+1
| | | | | | | | Multiple other downgrades are missing here after 4.9 though Closes: https://bugs.gentoo.org/721690 Closes: https://github.com/gentoo/gentoo/pull/15733 Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>
* toolchain.eclass: use https:// for git protocol, bug #717056Sergei Trofimovich2020-04-111-1/+1
| | | | | | Reported-by: Hanno Böck Closes: https://bugs.gentoo.org/717056 Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>
* toolchain.eclass: fix ada build with ltoAlfredo Tupone2020-04-101-2/+2
| | | | | | Closes: https://bugs.gentoo.org/716570 Signed-off-by: Alfredo Tupone <tupone@gentoo.org>
* toolchain.eclass: add support to ada during compileTupone Alfredo2020-04-041-3/+22
| | | | Signed-off-by: Alfredo Tupone <tupone@gentoo.org>
* toolchain.eclass: drop I_PROMISE_TO_SUPPLY_PATCHES_WITH_BUGS guardSergei Trofimovich2020-04-021-16/+0
| | | | | | Let's rely on keywording alone to guard against accidental installation. Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>
* toolchain.eclass: drop USE=sanitize support for <gcc-5Sergei Trofimovich2020-03-211-5/+10
| | | | | | | | Sanitizer support appeared in gcc-4.8, but <gcc-5 does not support modern glibc. Let's just drop support for it on older gccs. Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>
* toolchain.eclass: fix cygwinports patchingMichael Haubenwallner2020-03-171-1/+7
| | | | | | | Introduction of tc_apply_patches dropped patch dir, per commit bd758f25a82460f6e7011314f9fb7923864e9e1e Signed-off-by: Michael Haubenwallner <haubi@gentoo.org>
* toolchain.eclass: move --build dependencies to BDEPENDDavid Michael2020-03-091-1/+6
| | | | | | | | This allows cross-compiling comilers with a much smaller dependency set. Bug: https://bugs.gentoo.org/700898 Signed-off-by: David Michael <fedora.dm0@gmail.com> Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>
* toolchain.eclass: tweak commentSergei Trofimovich2020-03-071-1/+1
| | | | Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>
* toolchain.eclass: always use -O2, even when no -O is passed in.Sergei Trofimovich2020-03-061-1/+5
| | | | | | | | | Mike noticed that CFLAGS without any optimization options still effectively are -O0. Let's follow glibc ebuild here and always use -O2. Suggested-by: Mike Gilbert Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>
* toolchain.eclass: mangle -O3 down to -O2, not -O0Sergei Trofimovich2020-03-051-1/+1
| | | | | | | | | | | | | | In bug #701786 'strip-flags' removed all unsafe options first including -O3 and only then mangled -O? to -O2. This effectively made gcc to compalie wth -O0, generated huge slow profile and confused LTO. Let's default to safer -O3->-O2 transition. Reported-by: jeff.lemos.a@gmail.com Closes: https://bugs.gentoo.org/701786 Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>
* toolchain.eclass: add USE=zstd for gcc-10Sergei Trofimovich2020-02-291-0/+9
| | | | | | | gcc-10 added support for zstd compression algorithm for LTO streaming. Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>
* toolchain.eclass: update default live branchesSergei Trofimovich2020-02-251-1/+1
| | | | | | Change live branch from gcc-<N>-branch to releases/gcc-<N> Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>
* toolchain.eclass: don't strip EPREFIX in dosymSergei Trofimovich2020-02-161-2/+2
| | | | | | | | | | This reverts 'dosym' part of "toolchain.eclass: Prepend/strip EPREFIX" patch. portage-2.3.85 and above contains "dosym: revert deprecated prefix compat (bug 615594)" patch. That effectively breaks gcc's /usr/bin/ symlinks. Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>
* */*: Bump copyright on files touched this yearMichał Górny2020-02-111-1/+1
| | | | | | | Update the copyright notice on all files that were touched since January 1st but did not have the notice updated. Signed-off-by: Michał Górny <mgorny@gentoo.org>
* toolchain.eclass: assert GCC_RELEASE_VER to match gcc/BASE-VERSergei Trofimovich2020-02-091-3/+1
| | | | | Bug: https://bugs.gentoo.org/706588 Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>
* toolchain.eclass: drop GCC_A_FAKEIT and gcc_quick_unpack()Sergei Trofimovich2020-02-091-54/+1
| | | | | | | | | gnal-gpl was the only user of GCC_A_FAKEIT as it provided modified gcc tarballs. It was migrated to GCC_TARBALL_SRC_URI to override default tarball. Bug: https://bugs.gentoo.org/706588 Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>
* toolchain.eclass: don't allow overriding GCC_CONFIG_VERSergei Trofimovich2020-02-091-6/+11
| | | | | | | dev-lang/gnat-gpl migrated from GCC_CONFIG_VER to TOOLCHAIN_GCC_PV. Bug: https://bugs.gentoo.org/706588 Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>
* toolchain.eclass: make toolchain_src_unpack() a default_src_unpack()Sergei Trofimovich2020-02-011-16/+19
| | | | | | | | | | | | | | | | | | Before tha change toolchain_src_unpack() did not unpack every SRC_URI entry and instead relied on toolchain_src_unpack() to unpack only needed tarballs. Any special handling was only needed for old USE=d versions of gcc. This change moves all source code mangling to src_prepare() and makes toolchain_src_unpack() a default_src_unpack(). The only exception is ebuild users of 'GCC_A_FAKEIT' (dev-lang/gnat-gpl) who have to use it to workaround non-standard behaviour of toolchain_src_unpack() The change will allow dev-lang/gnat-gpl to migrate to default_src_unpack(). Bug: https://bugs.gentoo.org/706588 Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>
* toolchain.eclass: provide a way to override gcc tarball pathSergei Trofimovich2020-02-011-0/+7
| | | | | | | | | To ease gnal-gpl packaging allow external user to override SRC_URI for main gcc tarball. gnal-gpl uses gcc small fork, but otherwise looks like a gcc tarball. Bug: https://bugs.gentoo.org/706588 Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>
* toolchain.eclass: make ${GCC_CONFIG_VER} != ${GCC_RELEASE_VER} nonfatalSergei Trofimovich2020-01-261-1/+3
| | | | | | | dev-lang/gnat-gpl uses ${GCC_CONFIG_VER} to override exposed gcc version. Let's keep it nonfatal until ada ebuilds are fixed. Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>
* toolchain.eclass: fix typo in GCC_CONFIG_VER assignmentSergei Trofimovich2020-01-261-1/+1
| | | | Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>
* toolchain.eclass: restore an option to override GCC_CONFIG_VERSergei Trofimovich2020-01-261-1/+3
| | | | | | | | dev-lang/gnat-gpl ebuilds override this option and affect at least default slot installed. Let's partially revert the behaviour until ada is migrated. Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>
* toolchain.eclass: don't add _pre suffixes to toolsSergei Trofimovich2020-01-261-3/+4
| | | | | | | | | | ${GCC_CONFIG_VER} != ${GCC_RELEASE_VER} does not really work today. We don't override enough paths and don't rename tool versions. Let's keep thins simpler and stick to upstream versioning. Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>
* toolchain.eclass: don't override release vesion, assert it insteadSergei Trofimovich2020-01-261-3/+5
| | | | | Closes: https://bugs.gentoo.org/706240 Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>