summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* 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>
* toolchain.eclass: fix gdb autoload path, bug #572480Sergei Trofimovich2019-08-211-2/+2
| | | | | | Reported-and-fixed-by: Hristo Venev Bug: https://bugs.gentoo.org/572480 Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>
* toolchain.eclass: obey user's USE=cxx option, bug #692126Sergei Trofimovich2019-08-171-1/+0
| | | | | | | | | | USE=cxx presence on typical systems is maintained by profiles/base/package.use.force entry. Let's drop silent override from the eclass. Reported-by: Agostino Sarubbo Bug: https://bugs.gentoo.org/692126 Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>
* toolchain.eclass (do_gcc_CYGWINPORTS_patches): avoid bash-4.4ismMichael Haubenwallner2019-08-121-2/+2
| | | | | Closes: https://bugs.gentoo.org/690686 Signed-off-by: Michael Haubenwallner <haubi@gentoo.org>
* toolchain.eclass: update active cross-gcc on uninstallSergei Trofimovich2019-07-131-3/+1
| | | | | | | | | | | | | | | | gcc-config-2 changed /usr/bin/gcc from a binary to symlink in commit b907ef80bc421df23515afc4c306e4d96c67649 ("Convert binary wrapper to a symlink wrapper.") Before the above change /usr/bin/gcc worked in both cases when active cross-gcc is being uninstalled. After the above change symlink becomes dangling. The change runs `gcc-config` more aggressively. Reported-by: Pietro Closes: https://bugs.gentoo.org/680360 Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>
* toolchain.eclass: add 'einfo' when last cross-compiler is removedSergei Trofimovich2019-07-131-0/+1
| | | | Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>
* toolchain.eclass: add riscv compiler abi configurationAndreas K. Hüttel2019-05-291-0/+5
| | | | Signed-off-by: Andreas K. Hüttel <dilfridge@gentoo.org>
* 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.