aboutsummaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* crossdev, emerge-wrapper: request EAPI=7 on eclass importsDavid Seifert2021-06-211-1/+1
| | | | | | | | | | | | | | | | | | | Today ::gentoo dropped support for EAPI=0 from multilib.eclass and toolchain-funcs.eclass. Due to lack of error handling on crossdev side srossdev derived wrong environment for $CTARGET (and mostly fell back to CHOST). This caused at best failing early on gcc-stage1 build. At worst crossdev installed libraries into a wrong $(get_libdir), installed symlinks from wrong host and other disasters. Previous crossdev commits make crossdev crash earlier instead of generating wrong environment. This commit allows dropping EAI=0 support for eclasses eventually. Reported-by: Marco Scardovi (scardracs) Bug: https://bugs.gentoo.org/797367 Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>
* crossdev: fail eval when multilib.eclass sourcing failsSergei Trofimovich2021-06-211-0/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | Before the change failure to source 'multilib.eclass' resuled in a fallback mode to be used instead of hard failure. It was caused by two expansion layers of 'eval $(...)'. After the change falure to source 'mmultilib.eclass' hard fails early: ``` $ PORTAGE_CONFIGROOT=$(pwd)/foo EPREFIX=$(pwd)/foo PORT_LOGDIR=$(pwd)/foo ./crossdev -t mmix -P -p * error: : EAPI 0 not supported * * If you file a bug, please attach the following logfiles: * /home/slyfox/dev/git/crossdev/foo/cross--info.log * * error: could not load multilib settings for 'HCHOST' * * If you file a bug, please attach the following logfiles: * /home/slyfox/dev/git/crossdev/foo/cross-mmix-info.log ``` Reported-by: Marco Scardovi (scardracs) Bug: https://bugs.gentoo.org/797367 Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>
* crossdev: use die() in eval() context to avoid error message swallowingSergei Trofimovich2021-06-211-4/+1
| | | | Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>
* crossdev: fix "for for" typoSergei Trofimovich2021-06-211-1/+1
| | | | Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>
* crossdev: mark ia64* targets as targets that always require libc headersSergei Trofimovich2021-06-081-0/+6
| | | | Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>
* crossdev: make 'crossdev -t help' a single column outputSergei Trofimovich2021-06-071-9/+16
| | | | Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>
* crossdev: add or1k exampleSergei Trofimovich2021-01-051-0/+1
| | | | Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>
* crossdev: stop maintaining /etc/portage/categoriesSven Wegener2020-12-311-8/+8
| | | | | | | | | portage uses profiles/categories from all overlays and we don't need to define them in /etc/portage/categories Closes: https://bugs.gentoo.org/762772 Signed-off-by: Sven Wegener <swegener@gentoo.org> Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>
* crossdev: explicitly avoid USE=hardened for gcc on mingw targetsSergei Trofimovich2020-11-291-0/+1
| | | | | | | | | | | | Gentoo's USE=hardened unconditionally enables stack check code generation not compatible with external libssp. This leads to gcc ICEs like: libssp/ssp.c:186:1: internal compiler error: in seh_emit_stackalloc Disable USE=hardened until it works on gcc side. Reported-by: redsh Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>
* crossdev: default to latest newlib even for stable toolchains.Sergei Trofimovich2020-11-221-2/+5
| | | | | | | | ::gentoo does not have stable keywords for newlib for a while. Let's default to 'latest' to make standard use case to just work. Reported-by: Thymo van Beers Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>
* crossdev: disable USE=libraries for stage1 installSergei Trofimovich2020-11-081-3/+6
| | | | | | Reported-by: Paul Bordukov Bug: https://bugs.gentoo.org/751295 Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>
* crossdev: drop debug outputSergei Trofimovich2020-11-081-2/+0
| | | | Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>
* crossdev: default to latest mingw64-runtime even for stable toolchains.Sergei Trofimovich2020-08-011-0/+8
| | | | | | | | | ::gentoo does not have stable keywords for mingw64-runtime for a while. Let's default to 'latest' to make standard use case to just work.. Reported-by: i.Dark_Templar Bug: https://bugs.gentoo.org/733346 Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>
* crossdev: follow ARCH=sh removal from ::gentooSergei Trofimovich2020-03-261-1/+0
| | | | Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>
* crossdev: remove the repos.conf entry for the output overlay during uninstallGöktürk Yüksek2020-01-311-0/+14
| | | | | | | | | | | | | If the output overlay is completely removed during uninstall, it is incorrect to leave behind the repos.conf file since the location specified in the conf file points to a non-existing directory. We scan all the conf files under ${CONFIGROOT}/repos.conf, looking for the file that defines the output overlay and remove it if it is managed by crossdev. Signed-off-by: Göktürk Yüksek <gokturk@gentoo.org> Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>
* crossdev: remove the output overlay during uninstallation when possibleGöktürk Yüksek2020-01-311-4/+22
| | | | | | | | | | | | | | If the output overlay is created solely for one specific CTARGET, and not modified by the user in any way, it makes no sense to leave it behind. Remove the output overlay if the following conditions are met: - The profiles/categories is empty - metadata/layout.conf is managed by crossdev - The only files in the overlay are profiles/categories and metadata/layout.conf Signed-off-by: Göktürk Yüksek <gokturk@gentoo.org> Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>
* crossdev: update profiles/categories during uninstallGöktürk Yüksek2020-01-311-2/+7
| | | | | | | | If we remove the category cross-${CTARGET} in the output overlay, remove the category itself from profiles/categories. Signed-off-by: Göktürk Yüksek <gokturk@gentoo.org> Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>
* crossdev: create a repos.conf entry for the output overlay if necessaryGöktürk Yüksek2020-01-301-1/+37
| | | | | | | | | | | | | If --ov-output is specified on the command line but there is no corresponding repos.conf entry for the output overlay, it is of no use since the package manager will not take it into consideration. Determine and create a repos.conf entry when necessary for the output overlay. Derive it's name from the basename of the overlay path and also take into account possible file path collisions. Signed-off-by: Göktürk Yüksek <gokturk@gentoo.org> Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>
* crossdev: adjust repo-name in layout.conf based on repos.confGöktürk Yüksek2020-01-291-6/+10
| | | | | | | | | | | | | | | | | | | | When '--ov-output' is not provided, crossdev searches the list of overlays for a repo matching the name "crossdev" or "cross-${CTARGET}". When there is a match for "cross-${CTARGET}" but the location does not exist, crossdev attempts to populate the overlay structure. However, it incorrectly names the repo "crossdev" in metadata/layout.conf under repo-name, as opposed to "cross-${CTARGET}". This creates further problems when the list of overlays is restricted using the '--overlays' option, given that the name of the repo under repos.conf will not match what is in layout.conf. Use the correct repo-name when creating layout.conf. This preserves the default behavior of using the repo-name "crossdev" when '--ov-output' is provided. Signed-off-by: Göktürk Yüksek <gokturk@gentoo.org> Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>
* crossdev: migrate from package.keywords to package.accept_keywordsSergei Trofimovich2020-01-251-3/+4
| | | | | | Reported-by: Doppler Bug: https://bugs.gentoo.org/706212 Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>
* crossdev: drop outdated msp430* and nios* toolchain lower boundsSergei Trofimovich2020-01-251-12/+0
| | | | Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>
* crossdev: disable default ssp support on x86 and ppc on muslSergei Trofimovich2020-01-251-0/+3
| | | | | | | | | | Set USE=-ssp by default. User can still manually override via environment variable to see how it breaks: USE=ssp crossdev -t i686-gentoo-linux-musl Reported-by: Andrew Aladjev Bug: https://bugs.gentoo.org/706210 Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>
* crossdev: refuse to install crossdev on all CHOST ABIs, not just defaultSergei Trofimovich2019-12-221-1/+23
| | | | | | | | | | | In bug #500338 attempt to install toolchain for secondary ABY (x86 on amd64 system) clobbered native tools with tools that target --systroot=/usr/${CTARGET}. That is never an intended state. Block all CHOSTs and suggest using sys-devel/multilib-gcc-wrapper for distcc-like workloads. Bug: https://bugs.gentoo.org/500338 Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>
* crossdev: clarify ABIs to be target ABIsSergei Trofimovich2019-12-221-1/+1
| | | | Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>
* crossdev: explicitly document HCHOST as a sourced variableSergei Trofimovich2019-12-221-0/+2
| | | | Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>
* crossdev: drop Sony Playstation 2 aliases (ee, dvp, iop)Sergei Trofimovich2019-10-211-14/+0
| | | | | | These require toolchain version not present in ::gentoo Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>
* crossdev: drop mingw32 referenceSergei Trofimovich2019-10-211-1/+0
| | | | Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>
* crossdev:drop support for short 'minw', 'mingw32' aliasesSergei Trofimovich2019-10-141-3/+2
| | | | | | | | | | | From now on to get a 32-bit toolchain users would need to specify full tuple like: i686-w64-mingw32 That will use 'dev-util/mingw64-runtime'. Bug: https://bugs.gentoo.org/584858 Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>
* crossdev: reenable --with-headers for mingw targetsSergei Trofimovich2019-09-081-2/+6
| | | | | | | | | | gcc can't build libgcc2.c on --without-headers setup. Needs more investigation. Reported-by: Kyle Elbert Bug: https://bugs.gentoo.org/693770 Bug: https://bugs.gentoo.org/693730 Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>
* crossdev: whitespace in gcc stagesSergei Trofimovich2019-09-011-1/+7
| | | | Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>
* crossdev: set --without-headers by defaultSergei Trofimovich2019-09-011-1/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | In https://sourceware.org/PR24577 we discovered that riscv can't really install libc headers as it needs a cross-compiler. Before this change we had the following default build order: - cross-binutils - kernel/libc headers - stage1 gcc - glibc - stage2 gcc After this change it's: - cross-binutils - stage1 gcc - kernel headers - glibc - stage2 gcc Users can still fors headers installation with '--ith-headers' option. Bug: https://sourceware.org/PR24577 Bug: https://bugs.gentoo.org/692052 Bug: https://bugs.gentoo.org/686248 Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>
* crossdev: add a comment into revdep-rebuild entry where is comes from.Sergei Trofimovich2019-08-251-2/+5
| | | | | Bug: https://bugs.gentoo.org/692844 Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>
* crossdev: disable USE=hardened by default on bare-metalSergei Trofimovich2019-06-081-0/+1
| | | | | | | | | | | | | USE=hardened enables more stack-check options by default At least on arm-none-eabi that causes build failure: gcc-8.3.0/libstdc++-v3/libsupc++/array_type_info.cc:30:2: sorry, unimplemented: -fstack-check=specific for Thumb-1 {} ^ Reported-by: Bertrand Jacquin Bug: https://bugs.gentoo.org/687598 Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>
* Add riscv* to the Linux short listPalmer Dabbelt2019-03-181-1/+2
| | | | | | | This allows "crossdev -t riscv64" to install a RISC-V cross compiler for Linux targets. Signed-off-by: Palmer Dabbelt <palmer@dabbelt.com>
* Switch from sys-libs/uclibc to sys-libs/uclibc-ng package.Sergei Trofimovich2018-12-021-2/+2
| | | | Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>
* crossdev: disable USE=jit and USE=mpx gcc-stage1Sergei Trofimovich2018-10-181-2/+2
| | | | | | | | | | | jit and mpx need working libc to link against it. gcc-stage1 is too early for it. Disable those as well. Reported-by: Andrius Štikonas Bug: https://bugs.gentoo.org/666880 Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>
* crossdev: tweak commentSergei Trofimovich2018-10-171-1/+1
| | | | Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>
* crossdev: mips64 is sometimes called mipsisa64Jason A. Donenfeld2018-09-281-6/+6
| | | | | | | This is the case for tuples like `mipsisa64r6-pc-linux-gnu`, which are required for making a working mips64r6 compiler. Signed-off-by: Jason A. Donenfeld <zx2c4@gentoo.org>
* crossdev: don't enable USE=pie by default on any bare-metal targetsSergei Trofimovich2018-09-181-6/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | Unfortunately embedded world has a long way to go to adopt --enable-default-pie as a first class citizen. Note: --enable-default-pie enabled two things: - PIC-friendly code generation (-fPIE) - PIE executables (-pie) Normally one would expect firmware to pass compiler modes explicitly to gcc: -fPIC (or -mauto-pic, -fno-PIC), -ffreestanding, -nostdlib. Unfortunately upstreams are frequently reluctant to explicitly specify new moving parts available in gcc (in this case -no-pie) and expect gcc to behave as it used to in the world before --enable-default-pie. Unfortunate but not entirely unreasonable. Disable --enable-default-pie until user explicitly requests USE=pie. Reported-by: Bertrand Jacquin Reported-by: sklv Bug: https://lists.gnupg.org/pipermail/gnuk-users/2018-August/000086.html Bug: https://github.com/gl-sergei/u2f-token/issues/14 Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>
* crossdev: default to USE=-pie for bare-metal mips targetsSergei Trofimovich2018-08-181-0/+8
| | | | | | | | | | | When built with pie-by-default compiling gcc fails as: cc1: error: position-independent code requires ‘-mabicalls’ Tested as: USE=-pie crossdev -t mipsel-elf Reported-by: rhn Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>
* crossdev: Make armv[67] default to hardfloat following eclass changeJames Le Cuirot2018-07-251-0/+2
| | | | | | | | | | | armv7a-unknown-linux-gnueabi would have previously been treated as hardfloat but is now softfloat. I have removed the armv7a-hardfloat-linux-gnueabi-7.3.0 example from the README to avoid confusion even though it does still work. Signed-off-by: James Le Cuirot <chewi@gentoo.org> Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>
* crossdev: disable USE=pie for all mingw targetsSergei Trofimovich2018-05-081-1/+2
| | | | | | | | | Jernej reports that x86_64-w64-mingw32 also exhibits the same runtime failures with USE=pie. Reported-by: Jernej Simoncic Bug: https://bugs.gentoo.org/644930 Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>
* crossdev: unconditionally create /usr/${CTARGET}/{lib,usr/lib}Sergei Trofimovich2018-04-101-0/+14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Copying note as-is here: ``` Create directories usually created by sys-apps/baselayout Why we do that at all: For multilib-aware targets (ppc64, s390x, sparc64, x86_64) Gentoo normally uses libdir=lib64. For crossdev it means /lib and /usr/lib does not get created at all but gcc relies on their presence by refering to =/lib64 as =/usr/lib/../lib64 when builds itself (see https://bugs.gentoo.org/652724) Thus we create non-symlinked layout early. ``` Before the change 'crossdev -t powerpc64le-foo-linux-gnu' failed at gcc-stage2 as: ``` ... \ -shared -nodefaultlibs -Wl,--soname=libgcc_s.so.1 \ -o ./libgcc_s.so.1.tmp \ ... \ /usr/libexec/gcc/powerpc64le-foo-linux-gnu/ld: cannot find crti.o: No such file or directory access("/usr/powerpc64le-foo-linux-gnu/usr/lib/../lib64/crti.o", R_OK) = -1 ENOENT (No such file or directory) ``` The change adds empty directory '/usr/powerpc64le-foo-linux-gnu/usr/lib' to make ld probing finally find 'crti.o' in $SYSROOT. Reported-by: Luke-Jr Bug: https://bugs.gentoo.org/652724 Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>
* crossdev: add USE=mutilib reporting injected for targetsSergei Trofimovich2018-04-091-0/+1
| | | | Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>
* crossdev: don't try to delete files from /usr/${CTARGET}/bin/Sergei Trofimovich2018-04-071-1/+1
| | | | Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>
* crossdev: revert ldscripts hackSergei Trofimovich2018-04-071-12/+0
| | | | | | | | | | | | | | | Commit 03640757f2af1471324fc3e305f899f377d6409d ("add one more avr-specific hack") added ${EPREFIX}/usr/${CTARGET}/lib/ldscripts symlink for avr targets. The bug was not avr-specific but manifested only on avr ecause it's one of rare targets that don't embed default inker scripts intofinal ld executable. https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=b023986de7d466d361798bae98f45f8ba7a42e8a fixed search path in binutils ebuild and we are safe to revert this change. Bug: https://bugs.gentoo.org/147155 Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>
* crossdev: disable fortran in gcc-stage2 no bare-metal targets, bug #589672Sergei Trofimovich2018-03-021-0/+1
| | | | | Bug: https://bugs.gentoo.org/589672 Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>
* crossdev: update help test to point to new "overlay howto" locationSergei Trofimovich2018-02-031-1/+1
| | | | | | Reported-by: gentoo@frederic-gierlinger.at Closes: https://bugs.gentoo.org/646144 Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>
* crossdev: blacklist known broken targets for PIE and SSP, bug #644930Sergei Trofimovich2018-01-201-3/+37
| | | | | | | | - SSP is not supported by alpha, hppa, ia64, avr, nios2, mmix - PIE is not supported by avr, mmix, mingw32 Bug: https://bugs.gentoo.org/644930 Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>
* Fix parse_repo_config with regards to repository priorityDennis Schridde2018-01-071-1/+1
| | | | | | | | | | | | | | | | | | | This is a multi-part message in MIME format. I just noticed a typo in the commit message. Please commit this patch instead. From 0d0b4653e44f807802ef1fa9647c7395d6625609 Mon Sep 17 00:00:00 2001 From: Dennis Schridde <devurandom@users.noreply.github.com> Date: Wed, 3 Jan 2018 23:41:53 +0100 Subject: [PATCH] Fix parse_repo_config with regards to repository priority Before this patch, the repository config would be inserted into a more or less place for the respective priority, resulting in a non-contiguous array, which would no longer be fully enumerated by an awk for loop. Hence the config of repositories with the same priority would be omitted for all but the first few entries. Signed-off-by: Dennis Schridde <devurandom@gmx.net>