summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* eclass: add support to toolchain.eclass for muslJory Pratt2019-05-231-0/+3
| | | | Signed-off-by: Jory Pratt <anarchy@gentoo.org>
* {sys-devel/gcc,dev-lang/gnat-gpl}: add a USE for building GCC with LTOShane Peelar2019-05-131-0/+6
| | | | | | | Bug: https://bugs.gentoo.org/685634 Signed-off-by: Shane Peelar <lookatyouhacker@gmail.com> Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>
* toolchain.eclass: add D language to gcc-9Sergei Trofimovich2019-05-031-0/+1
| | | | Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>
* toolchain.eclass: USE=mpx was dropped upstream from >=gcc-9Sergei Trofimovich2019-05-031-1/+2
| | | | Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>
* toolchain.eclass: disable USE=jit for cross-compilers, bug #594572Sergei Trofimovich2019-04-271-0/+4
| | | | | | | | | | | | | | | USE=jit is not very useful for a cross-compiler as it assumes running generated code on the host. At least avr-* targets can't build libgccjit.so. The change disables IUSE=jit for cross-compilers only. Cross-built compilers could still get libgccjit.so built for a target. Reported-by: Maciej Piechotka Reported-by: Marco Sirabella Closes: https://bugs.gentoo.org/594572 Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>
* toolchain.eclass: add support for EAPI=6Sergei Trofimovich2019-03-021-3/+8
| | | | | | | | This is s small incremental change over EAPI=5. For example epatch() is still heavily used, we'll sort it out for EAPI=7. Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>
* toolchain.eclass: avoid in_iuse in global scopeSergei Trofimovich2019-02-271-11/+20
| | | | | | | | | | | | Another tiny step towards EAPI=6+ support. 'in_iuse' helper is not allowed to query IUSE (even though we set all values locally in the eclass). Use 'TC_FEATURES' array and 'tc_has_feature' helper for equivalent purpose. Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>
* toolchain.eclass: enable verbose test loggingSergei Trofimovich2019-02-241-1/+2
| | | | Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>
* toolchain.eclass: never pass --enable-libvtv to ./configureSergei Trofimovich2019-02-151-2/+5
| | | | | | | | | | | gcc treats --enable-libvtv as an override on top of autodetection. It it never what we want. Happens to break at least powerpc64 cross-compilers: https://bugs.gentoo.org/661252 Reported-by: Ilia Mirkin Closes: https://bugs.gentoo.org/661252 Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>
* toolchain.eclass: prepare to rename USE=regression-test->testSergei Trofimovich2019-02-101-5/+13
| | | | | | | Starting from gcc-8.3.0 FEATURES=test USE=test will be enough to run gcc's testsuite. Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>
* toolchain.eclass: fix comment typosSergei Trofimovich2019-02-041-2/+2
| | | | | Reported-by: Arfrever Frehtes Taifersar Arahesis Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>
* toolchain.eclass: never pass --enable-libsanitizer to ./configureSergei Trofimovich2019-02-031-1/+18
| | | | | | | | | | gcc treats --enable-libsanitizer as an override on top of autodetection. It it never what we want. Happens to break at least mips cross-compilers and likely many more minor targets. Bug: https://gcc.gnu.org/PR85663 Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>
* toolchain.eclass: drop IUSE_DEF arraySergei Trofimovich2019-02-031-8/+4
| | | | | | | | | IUSE_DEF is just an IUSE with '+' prepended. IUSE_DEF was not used consistently. Use '+' form consistently. Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>
* toolchain.eclass: move from versionator to eapi7-ver eclassSergei Trofimovich2018-12-091-12/+12
| | | | | | Preparation to EAPI=6+ support in gcc ebuilds. Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>
* toolchain.eclass: drop info/dir index, bug #672408Sergei Trofimovich2018-12-041-0/+8
| | | | | | | | | | | | | | | | | As explained by Zac in #672408 prepinfo() was used to drop 'info/dir' index to allow portage regenerate it. gcc package does not always install 'info/dir' files (USE-dependent). This causes nondeterminism for 'info/dir' to be owned or be an orphan file. This change drops 'info/dir' unconditionally to avoid owned/orphan collisions and always make it an orphan file. Reported-by: Michal Jakubowski Bug: https://bugs.gentoo.org/672408 Bug: https://bugs.gentoo.org/587316 Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>
* toolchain.eclass: follow move from uclibc to uclibc-ngSergei Trofimovich2018-12-021-1/+1
| | | | Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>
* toolchain.eclass: filter out -Wstack-protector for gcc-4.0Sergei Trofimovich2018-11-301-0/+1
| | | | Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>
* toolchain.eclass: drop prepstrip(), bug #587316Sergei Trofimovich2018-11-251-8/+9
| | | | | | | | | | This disables all stripping in gcc. As PMS does not provide an alternative just drop stripping for now. Reported-by: Michał Górny Closes: https://bugs.gentoo.org/587316 Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>
* toolchain.eclass: drop prepman() and prepstrip(), bug #587316Sergei Trofimovich2018-11-221-6/+0
| | | | | | | These functions are no-op in portage-2.3.50+. Bug: https://bugs.gentoo.org/587316 Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>
* toolchain.eclass: don't delete 'go' and 'gofmt' for cross-compilersSergei Trofimovich2018-10-231-6/+11
| | | | | | | | | gcc does not build final 'go' and 'gofmt' tools when cross-compiler is built (CHOST != CTARGET). This change fixes gcc-stage2 building for USE=go case. Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>
* toolchain.eclass: filter out -Wextra -Wstack-protectorSergei Trofimovich2018-10-061-0/+2
| | | | | | | On gcc-3.x -Wextra -Wstack-protector were not yet present. These options are seen occasionally in users' CFLAGS. Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>
* toolchain.eclass: pass CONFIG_SHELL to emake, bug #664486Sergei Trofimovich2018-09-301-1/+6
| | | | | | | | | | | | | | | | | | | | | | Christian reports 'make install' failure caused by limitation of ancient autotools in detecting CONFIG_SHELL: ``` /bin/bash .../gcc-3.3.6/libstdc++-v3/../mkinstalldirs \ .../gcc-3.3.6-r2/image//usr/lib/../lib32 /bin/bash ../libtool --mode=install /bin/bash .../gcc-3.3.6/install-sh \ -c libsupc++.la .../gcc-3.3.6-r2/image//usr/lib/../lib32/libsupc++.la libtool: install: `.../gcc-3.3.6-r2/image//usr/lib/../lib32/libsupc++.la' \ is not a directory ``` We already pass CONFIG_SHELL to top-level ./configure. The workaround is to pass CONFIG_SHELL variable to 'make' as well. Reported-by: Christian Schmidt Fixed-by: Christian Schmidt Bug: https://bugs.gentoo.org/664486 Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>
* toolchain.eclass: filter out -fdiagnostics-show-option on gcc-4.0 and olderSergei Trofimovich2018-09-161-0/+3
| | | | | | -fdiagnostics-show-option was added in gcc-4.1.0. Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>
* toolchain.eclass: add @SUPPORTED_EAPISMichał Górny2018-08-151-0/+1
|
* toolchain.eclass: support gcc patches from cygwinportsMichael Haubenwallner2018-07-091-0/+28
| | | | | | Download and apply patches found in Cygwin's gcc.cygport, maintained at github/cygwinports/gcc, for a compiler running on cygwin. The ebuild can define the cygwinports' git commit id as CYGWINPORTS_GITREV.
* toolchain.eclass: Cygwin provides posix threadsMichael Haubenwallner2018-07-091-1/+1
| | | | | Upstream Cygwin does build their gcc with posix threads for ages, at least since gcc4-4.5.1-1.cygport (committed on Oct 3, 2010).
* toolchain.eclass: D->ED for where to start cleanupsMichael Haubenwallner2018-07-091-5/+5
|
* toolchain.eclass: ROOT->EROOT at looking for gcc specs fileMichael Haubenwallner2018-07-091-1/+1
|
* toolchain.eclass: EAPI 7 aware for D,ED,ROOT,EROOTMichael Haubenwallner2018-07-091-18/+18
| | | | | | | | | These variables may or may not have the trailing slash. Additionally, avoid leading double slash (a network location for Cygwin) with ROOT and EROOT because they may be empty, while D and ED never should be empty and there is no reason so far to avoid double slashes in between. On the other hand, eclass variables like DATAPATH and LIBPATH do contain the leading slash, so an extra slash reduces readability for no reason.
* toolchain.eclass: Do not pass unused --disable-libgcj option in GCC >=7.Arfrever Frehtes Taifersar Arahesis2018-07-011-4/+6
| | | | | Closes: https://bugs.gentoo.org/659798 Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>
* toolchain.eclass: add IUSE=systemtap to gcc-8Sergei Trofimovich2018-05-161-0/+11
| | | | | | | | Avoid automagic dependency on systemtap installed. Reported-by: lekto@o2.pl Bug: https://bugs.gentoo.org/654748 Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>
* toolchain.eclass: disallow USE="ssp -libssp" on mingw targetsSergei Trofimovich2018-05-051-1/+11
| | | | | | | | | | | | | | | | | gcc-8 added --disable-libssp flag. It used to be gentoo-specific flag up to gcc-5.4.0 and gentoo was passing --disable-libssp on all targets except solaris. On gcc-6 gentoo stopped providing --disable-libssp flag (it became no-op). USE=ssp became the default with gcc-6. gcc-8 reintroduced --disable-libssp and that broke mingw. mingw libc does not provide stack_check_*() functions and USE=ssp forces compiler to emit those calls. This change disallows disabling libssp on mingw if USE=ssp is set. Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>
* toolchain.eclass: drop IUSE=gcj from gcc-7 (removed upstream)Sergei Trofimovich2018-05-031-1/+2
| | | | Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>
* toolchain.eclass: drop IUSE=cilk from gcc-8 (removed upstream)Sergei Trofimovich2018-05-031-1/+2
| | | | Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>
* eclass/toolchain.eclass: disable libstdcxx-time for bare metalSergei Trofimovich2018-04-291-1/+8
| | | | | | | | | | | | | | | | | | | | | Historically Gentoo unconditionally sets --enable-libstdcxx-time=yes to avoid --enable-libstdcxx-time=rt on linux targets, bug #411681 Unfortunately this conflicts with arm-none-eabi and other bare-metal targets that don't provide enough plumbing to support for POSIX timers. This change ogerrides our default to --disable-libstdcxx-time on *-elf and *-eabi targets. Tested as: $ crossdev --stage4 arm-none-eabi Reported-by: scheer@wsoptics.de Reported-by: Thomas Schneider Bug: https://bugs.gentoo.org/411681 Bug: https://bugs.gentoo.org/589672 Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>
* toolchain.eclass: Transition deps to x11-base/xorg-protoMatt Turner2018-04-271-2/+1
|
* toolchain.eclass: don't install libcp1plugin.laSergei Trofimovich2018-04-141-0/+2
| | | | | | | | | | | | Don't install plugin's .la file. Plugins are meant to be loaded at runtime (they all export the same sympols, etc.). Plugins don't have static library equivalent. Drop 'libcp1plugin.la'. Reported-by: Paolo Pedroni Closes: https://bugs.gentoo.org/638216 Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>
* toolchain.eclass: Use :0= for dependency on >=dev-libs/isl-0.14.Arfrever Frehtes Taifersar Arahesis2018-03-131-1/+1
| | | | | Closes: https://bugs.gentoo.org/650170 Signed-off-by: Anthony G. Basile <blueness@gentoo.org>
* eclass/toolchain.eclass: die early in case of EAPI < 5Matthias Maier2018-02-011-2/+2
| | | | | | With the latest changes (slot operators) we need at least EAPI 5 when inheriting toolchain.eclass. Thus, in case of EAPI=4, die early with a more descriptive error message.
* eclass/toolchain.eclass: Add := operators to a number of critical depsMatthias Maier2018-02-011-4/+4
| | | | | | | | | | | | We should annotate a number of critical library dependencies of the compiler with := operators to ensure that the compiler gets rebuilt in time. TODO: We should also check for FEATURES=preserve-libs / print a warning before attempting to upgrade a library with soname change. Otherwise, users might be off to a rocky ride. Closes: https://bugs.gentoo.org/642316
* eclass/toolchain.eclass: Add .xz variants to snapshot releasesMatthias Maier2018-01-191-2/+10
|
* toolchain.eclass: Migrate CROSSCOMPILE_OPTS=headers-only -> USE=headers-onlySergei Trofimovich2018-01-071-1/+1
| | | | | | | | | | | | | | | | | CROSSCOMPILE_OPTS is a USE_EXPAND of a single item: headers-only. Convert it to a global USE flag instead. Mechanical ebuild rename done as: $ sed -e 's@crosscompile_opts_headers-only@headers-only@g' \ -i $(git grep -l headers-only) 'headers-only' flag is used by crossdev to bootstrap stage1 compiler before libc is available. crossdev switched to USE=headers-only in =sys-devel/crossdev-20171230. Bug: https://bugs.gentoo.org/642712 Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>
* toolchain.eclass: remove built_with_use, bug #610456Ulrich Müller2018-01-051-12/+7
| | | | Signed-off-by: Anthony G. Basile <blueness@gentoo.org>
* toolchain.eclass: update to EAPI=5 standardsAnthony G. Basile2018-01-011-33/+36
| | | | | | | | | | | This eclass is inherited by ebuilds in sys-devel/{gcc,kgcc64,gcc-apple}, each which make use of different IUSE flags. This causes problems with `use X` constructions when X is not in the IUSE flags. At EAPI=4 this simply emitted a warning, while at EAPI=5 this is an error. We update the eclass to make use of use_if_iuse and similar constructions where necessary to bring the eclass into compliance with EAPI=5. Signed-off-by: Anthony G. Basile <blueness@gentoo.org>
* eclass/toolchain.eclass: use CXXFLAGS=CFLAGS if CFLAGS_<CTARGET> is not setSergei Trofimovich2017-12-251-1/+1
| | | | Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>
* eclass/toolchain.eclass: do not die if uclibc patches are not availableAnthony G. Basile2017-12-051-3/+0
| | | | | | | gcc-6 and above no longer needs uclibc specific patches, so we don't die if the patchset is not available. We do, however, still apply it if UCLIBC_VER is defined in the ebuild to future proof the code in case we need to reintroduce the patchset in the future.
* toolchain.eclass: Add -no-pie to stage1 LDFLAGS when building <gcc-6 with ↵Magnus Granberg2017-11-181-0/+8
| | | | | | >=gcc6, bug 618908 Closes: https://bugs.gentoo.org/618908
* toolchain.eclass: add ~slyfox devspace for gcc patchesSergei Trofimovich2017-10-241-1/+1
| | | | Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>
* sys-devel/gcc: add a USE for building GCC with PGOShane Peelar2017-09-241-1/+6
| | | | | Package-Manager: Portage-2.3.10, Repoman-2.3.3 Closes: https://github.com/gentoo/gentoo/pull/5741
* toolchain.eclass: drop GCC_FILESDIR override, bug #629776Sergei Trofimovich2017-09-161-7/+5
| | | | | | | | | | | | | | | GCC_FILESDIR support was broken by portage-2.3.6 commit: https://github.com/gentoo/portage/commit/0637c95545ab7dc0bb5d091de221b9e99e2cf5b2 ("portage.package.ebuild: Use a fake FILESDIR to catch invalid accesses") Unfortunately it was applied to older EAPIs without fixing all the users first. The change yanks GCC_FILESDIR override support and hardcodes FILESDIR usage (as all the ebuilds except 'gcc' are broken anyway). Bug: https://bugs.gentoo.org/629776 Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>