aboutsummaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* 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>
* crossdev: uninstall gcov-{dump,tool} gprof, bug #643162Sergei Trofimovich2018-01-051-2/+2
| | | | | | | | | | | | | What hanetzer writes: """ These files are left behind after using `crossdev -C ${CHOST}` and should be cleaned. the files are copies of /usr/$libdir/misc/gcc-config and should be safe to delete. """ Closes: https://bugs.gentoo.org/643162 Fixed-by: hanetzer@startmail.com Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>
* crossdev: whitelist USE=sanitize on powerpc*-*gnu*Sergei Trofimovich2017-12-301-1/+1
| | | | | | | | While at it fix glob for powerpc64 and aarch64. Noticed by Joakim Tjernlund! Reported-by: Joakim Tjernlund Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>
* crossdev: prepare for CROSSCOMPILE_OPTS=headers-only -> USE=headers-only ↵Sergei Trofimovich2017-12-301-4/+4
| | | | | | | | | | | | | | | transition Crossdev will provide both CROSSCOMPILE_OPTS=headers-only USE=headers-only to early toolchain bootstrap stage while ::gentoo is not completely migrated off CROSSCOMPILE_OPTS=headers-only The longer-term plan is to get rid of 'CROSSCOMPILE_OPTS=' completely. Reported-by: Michał Górny Bug: https://bugs.gentoo.org/642712 Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>
* crossdev: allow set_eopts_on_pkg_status() to accept multiple USE flagsSergei Trofimovich2017-12-301-4/+15
| | | | | | | The semantics is "any-of" passed flags (if enabled) triggers full package rebuild. Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>
* crossdev: drop CROSSCOMPILE_OPTS="bootstrap"Sergei Trofimovich2017-12-301-3/+1
| | | | | | | | CROSSCOMPILE_OPTS="bootstrap" does not guard any code in ::gentoo or ::toolchain I did not find any code in gcc ebuilds handling 'crosscompile_opts_bootstrap'. Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>
* crossdev: add a comment around set_eopts_on_pkg_status()Sergei Trofimovich2017-12-301-0/+1
| | | | Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>
* crossdev: change USE=vtv to whitelistSergei Trofimovich2017-12-291-1/+23
| | | | | | | | | | | | | | | Gentoo profiles enable vtv only for x86, amd64, arm and arm64. vtv is known to be broken at least for: - musl libc - bare metal targets - powerpc, powerpc64 (compiler SEGISEGVs: bug #618786) - hppa, ia64 (missing vtv crt* files) User can still explicitly enable vtv by tweaking /etc/portage/package.use/cross-${CTARGET} Bug: https://bugs.gentoo.org/618786 Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>
* crossdev: change USE=sanitize to whitelistSergei Trofimovich2017-12-281-2/+24
| | | | | | | | | | | | | | asan needs explicit support code for every arch/OS. Currently the following seem to have support: - amd64-glibc - x86-glibc - arm-glibc - aarch64-glibc - powerpc64-glibc - mips-glibc - mips64-glibc (n32 ABI, fails to build) Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>
* Disable USE=sanitize on bare metal targetsSergei Trofimovich2017-12-271-0/+2
| | | | | | | | | | USE=sanitize needs explicit support from OS to implement sanitizers. Currently those are implemented for Linux and *BSDs. Noticed by |Jeroen| on #gentoo-arm when building: crossdev -t arm-none-eabi Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>
* crossdev: turn on multilib for bare metal arm cortex-MSteve Arnold2017-12-121-0/+3
| | | | | | | | | | | * note this is required for a toolchain that supports more than one cpu/fpu * also note this needs some toolchain patches for proper multilib and armv8-M support (currently applied in ada overlay) * grab from dev.g.o/~nerdboy/files/gcc-6.4.0-arm-patches-1.0.tar.gz and apply after other patches (or the ned of src_prepare) Signed-off-by: Steve Arnold <nerdboy@gentoo.org>
* crossdev: force USE=-pie for cross-avr toolchainSteve Arnold2017-11-231-3/+3
| | | | Signed-off-by: Steve Arnold <nerdboy@gentoo.org>
* Add 'mmix' target, bug #609602Sergei Trofimovich2017-11-211-0/+8
| | | | | | | | | | | Add basic support for MMIX by Matthias Maier. Usage example: $ crossdev -t mmix Closes: https://bugs.gentoo.org/609602 Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>
* add hppa64-* target supportSergei Trofimovich2017-11-211-0/+7
| | | | | | | | | | | | | This target builds only C compiler by default. No glibc or linux headers as 64 userspace ABI is not defined yet. See https://parisc.wiki.kernel.org/index.php/Userspace64 Usage example: $ crossdev -t hppa64-unknown-linux-gnu Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>
* crossdev: remove support for undocumented -b -d -p -v -q -pv -vp options, ↵Sergei Trofimovich2017-11-191-2/+0
| | | | | | | | | | | | | | | | | | | | bug #638182 In bug #638182 Maciej tried to use crossdev as: crossdev -t x86_64-w64-mingw32 -b 2.28.1 which attempted to build configs for '2.28.1' target. crossdev silently passed '-b' to emerge and treated next argument as target option. This change removes all undocumented options. Use '-P <option>' instead. That way typo is reported correctly as: * UNKNOWN OPTION: '-b' Bug: https://bugs.gentoo.org/638182 Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>
* Update avr/armv7m with USE=cxx for stage4, use crossdev HCHOST variableSteve Arnold2017-10-241-4/+5
| | | | | | * upstream projects need c++, however, stage3 is still the default Signed-off-by: Steve Arnold <nerdboy@gentoo.org>
* sys-devel/crossdev: fix silly typo in link targetSteve Arnold2017-10-141-2/+2
| | | | Signed-off-by: Steve Arnold <nerdboy@gentoo.org>
* Revert "ROOT method for glibc."Steve Arnold2017-10-141-8/+2
| | | | This reverts commit d770cdb3feb397cedfdc36ac4b9f07f984152c86.
* sys-devel/crossdev: avr: disable pie, set default stage, make symlinkSteve Arnold2017-10-141-11/+11
| | | | | | more robust Signed-off-by: Steve Arnold <nerdboy@gentoo.org>
* sys-devel/crossdev: Fix avr hack, move it inside doemerge blockSteve Arnold2017-10-131-8/+9
| | | | Signed-off-by: Steve Arnold <nerdboy@gentoo.org>
* sys-devel/crossdev: add one more avr-specific hackSteve Arnold2017-10-121-1/+11
| | | | | | * link ldscripts to the right place (parameterized and expandable even) Signed-off-by: Steve Arnold <nerdboy@gentoo.org>
* sys-devel/crossdev: add fixes for several bugs and patchesSteve Arnold2017-10-121-1/+9
| | | | | | | | | | | | * pull in EPREFIX/ROOT fixes from heroxbd on github * includes portage patch for functions path * add snippet to force multilib on for avr targets see: https://github.com/heroxbd/crossdev https://bugs.gentoo.org/show_bug.cgi?id=378387 http://forum.arduino.cc/index.php?topic=93672.0 Signed-off-by: Steve Arnold <nerdboy@gentoo.org>