summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* 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>
* toolchain.eclass: use ${GCC_CONFIG_VER} in snapshot, don't mangle ${PV}Sergei Trofimovich2020-01-261-5/+1
| | | | Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>
* toolchain.eclass: drop PRERELEASE supportSergei Trofimovich2020-01-261-37/+17
| | | | | | | | | | | | gcc's mirrors don't have prerelrease directories anymore and only have weekly snapshots and release candidates. Those now are covered by the following version schema: 1.0.0_pre9999: live ebuild 1.2.3_alphaYYYYMMDD: weekly snapshots 1.2.3_rcYYYYMMDD: release candidates Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>
* toolchain.eclass: hide '${PV} == *9999*' to tc_is_live helperSergei Trofimovich2020-01-261-8/+16
| | | | Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>
* toolchain.eclass: include commit into gcc version for live ebuildsSergei Trofimovich2020-01-181-0/+4
| | | | Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>
* toolchain.eclass: fix arch downgrade for gcc-10Sergei Trofimovich2020-01-111-8/+9
| | | | | | The bug is in lexical comparison instead of version compare. Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>
* toolchain.eclass: allow applying patchsets to live ebuildsSergei Trofimovich2020-01-111-2/+4
| | | | Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>
* toolchain.eclass: add an upstream bug reference to ELFv2 ABISergei Trofimovich2020-01-051-0/+1
| | | | | | Closes: https://bugs.gentoo.org/704784 Bug: https://gcc.gnu.org/PR93157 Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>
* toolchain.eclass: enable elfv2 abi on powerpc64-*-musl unconditionallyGeorgy Yakovlev2020-01-041-0/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | on ppc64 gcc assumes the following: from gcc ppc64 manual: -mabi=elfv1 Change the current ABI to use the ELFv1 ABI. This is the default ABI for big-endian PowerPC 64-bit Linux. Overriding the default ABI requires special system support and is likely to fail in spectacular ways. -mabi=elfv2 Change the current ABI to use the ELFv2 ABI. This is the default ABI for little-endian PowerPC 64-bit Linux. Overriding the default ABI requires special system support and is likely to fail in spectacular ways. Since we are taking gcc defaults, let's pass --with-abi=elfv2 on musl targets without it it will fail, since musl does not support elfv1 at all. from musl INSTALL file: * PowerPC64 * Both little and big endian variants are supported * Compiler toolchain must provide 64-bit long double, not IBM double-double or IEEE quad * Compiler toolchain must use the new (ELFv2) ABI regardless of whether it is for little or big endian https://git.musl-libc.org/cgit/musl/tree/INSTALL Closes: https://github.com/gentoo/gentoo/pull/14234 Closes: https://bugs.gentoo.org/704784 Revieved-by: Sergei Trofimovich <slyfox@gentoo.org> Signed-off-by: Georgy Yakovlev <gyakovlev@gentoo.org>
* toolchain.eclass: disable sandbox on gcc's test suiteSergei Trofimovich2019-12-221-2/+4
| | | | | | | | 'asan' wants to be preloaded first, so does 'sandbox'. To make asan tests work disable sandbox for all of test suite. 'backtrace' tests also does not like 'libsandbox.so' presence. Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>
* toolchain.eclass: drop USE=graphite support for <gcc-6.5Sergei Trofimovich2019-12-011-19/+17
| | | | | | Reported-by: Rolf Eike Beer Closes: https://bugs.gentoo.org/701270 Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>
* toolchain.eclass: Copy gnat files during installTupone Alfredo2019-11-251-1/+1
| | | | Signed-off-by: Alfredo Tupone <tupone@gentoo.org>
* toolchain.eclass: advertise fortran support for >=gcc-4.2+Sergei Trofimovich2019-11-101-1/+3
| | | | Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>
* toolchain.eclass: restore RESTRICT=strip on <gcc-9.2-r1, bug #699446Sergei Trofimovich2019-11-061-10/+10
| | | | | | | | | | | | | | commit d16e2840220 ("rename USE=regression-test to USE=test") added a 'RESTRICT="!test? ( test )"' assignment and accidentally overrode existing RESTRICT="strip" one. That reintroduced excessive stripping regression. Move RESTRICT assignments closer to one another and restore RESTRICT="strip". Reported-by: sargastic@gmail.com Closes: https://bugs.gentoo.org/699446 Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>
* toolchain.eclass: rename USE=regression-test to USE=testSergei Trofimovich2019-11-041-27/+6
| | | | | | | | | | | | | gcc-8.3 is stable on all the platforms for a while. Renaming 'regression-test' to 'test' for older ebuilds as well. While at it: - make test runs unconditional - drop installation of test results - add RESTRICT="!test? ( test )" - drop 'regression-test' from metadata files Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>
* toolchain.eclass: set SLOT=${GCCMAJOR} for gcc-10*Sergei Trofimovich2019-10-271-1/+7
| | | | Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>
* toolchain.eclass: filter out -mstackrealign, bug #688580Sergei Trofimovich2019-10-261-0/+7
| | | | | | | | | | | | -mstackrealign breaks stack unwinding via _Unwind_RaiseException in libgcc_s.so.1. Not clear why exactly. Probably by breaking unwinding information during realignment. The change works it around by dropping -mstackrealign when building gcc. Reported-by: Erik Bug: https://bugs.gentoo.org/688580 Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>
* toolchain.eclass: switch to git-r3 for live ebuildsSergei Trofimovich2019-10-201-6/+8
| | | | Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>
* toolchain.eclass: enable selective stipping for EAPI=7Sergei Trofimovich2019-10-191-4/+16
| | | | | | | | | | | | | | Before the change we stripped no binaries or object files for gcc on any EAPI. After the change we strip all native binaries, libraries and object files (only on EAPI=7). Non-native binaries (cross-compiler case) is skipped by means of 'dostrip -x'. Bug: https://bugs.gentoo.org/686512 Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>
* toolchain.eclass: drop support for deprecated mingw-runtimeSergei Trofimovich2019-10-191-2/+1
| | | | | Bug: https://bugs.gentoo.org/584858 Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>
* toolchain.eclass: add bug references to commentsSergei Trofimovich2019-10-191-12/+18
| | | | | | No functional changes. Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>
* toolchain.eclass: port to EAPI=7Sergei Trofimovich2019-10-191-2/+4
| | | | Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>
* toolchain.eclass: isolate 'epatch' into 'tc_apply_patches'Sergei Trofimovich2019-10-191-20/+23
| | | | | | | | | tc_apply_patches applies all patches and patchsets. Will ease eventual migration to EAPI=7. While at it dropped use of EPATCH_SUFFIX. Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>
* toolchain.eclass: drop PIE patch support for <gcc-4.2Sergei Trofimovich2019-10-191-17/+3
| | | | | | | | ::gentoo and ::toolchain don't have any ebuilds using PIE patchset. If someone really needs to resurrect these old patches it's easier to reshuffle the patchset itself. Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>
* toolchain.eclass: drop support for 'BRANCH_UPDATE'Sergei Trofimovich2019-10-191-24/+0
| | | | | | | BRANCH_UPDATE needs explicit tarball creation. Live ebuilds or weekly snapshots suit better for tracking upstream development. Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>
* toolchain.eclass: clarify use case of GCC_A_FAKEITSergei Trofimovich2019-10-191-0/+2
| | | | Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>
* toolchain.eclass: move gentoo patches into own helperSergei Trofimovich2019-10-191-13/+17
| | | | | | Cleanup. No functional change. Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>
* toolchain.eclass: drop PATH and ROOTPATH from /etc/env.d/gcc/Sergei Trofimovich2019-09-051-2/+0
| | | | | | | | | | | | | toolchain.eclass constructs correct GCC_PATH since 2007: commit 7d9f89700a2ee50674c0d871ec6d21b468ac6206 ("start moving to GCC_PATH for env.d #174422 and cleanup " "gcc-config logic so that it doesnt matter what the ROOT value is") gcc-config moved over as well. Let's leave GCC_PATH as the only available variable to locate gcc's whereabouts. Bug: https://bugs.gentoo.org/174422 Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>
* toolchain.eclass: cleanup create_revdep_rebuild_entry()Sergei Trofimovich2019-08-251-2/+2
| | | | | | | | | | | | | From #gentoo-toolchain: """ <+[Arfrever]> It will cause that empty /etc/revdep-rebuild directory will be installed by gcc. Please move dodir to after 'is_crosscompile || return 0'. <+[Arfrever]> ${revdep_rebuild_file} should be quoted. """ Reported-by: Arfrever Frehtes Taifersar Arahesis Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>
* eclass/toolchain.eclass: mask LIBPATH for cross-case, bug #692844Sergei Trofimovich2019-08-251-0/+15
| | | | | | | | | | | | | | | | | /usr/lib/gcc/${CTARGET}/${GCC_CONFIG_VER} contains libraries destined to be used by ${CTARGET}. revdep-rebuild complains about missing dependencies against them as we don't populate LDPATH (or anything else) for them. The change populates /etc/revdep-rebuild/05cross-${CTARGET}-${GCC_CONFIG_VER} with a single entry: SEARCH_DIRS_MASK="/usr/lib/gcc/${CTARGET}/${GCC_CONFIG_VER}" crossdev will still own root's SEARCH_DIRS_MASK="/usr/${CTARGET}". Reported-by: crocket Closes: https://bugs.gentoo.org/692844 Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>
* toolchain.eclass: drop USE=nptl from kgcc64, bug #642932Sergei Trofimovich2019-08-221-6/+8
| | | | | | | | | USE=nptl is neededonly for compilers that target userspace. kgcc64 is for building kernels only. Reported-by: Rolf Eike Beer Closes: https://bugs.gentoo.org/642932 Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>
* toolchain.eclass: Fix gcj's automagic dependency on dev-java/antlrJames Le Cuirot2019-08-211-4/+5
| | | | | Closes: https://bugs.gentoo.org/552882 Signed-off-by: James Le Cuirot <chewi@gentoo.org>