aboutsummaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* cross-emerge: Default to using no prefixbug_642604James Le Cuirot2019-07-091-7/+8
| | | | | | | | | | | | | | | | | | | | | | On non-prefixed systems, cross-emerge installs to /usr/${CHOST} by default. On prefixed systems, this default effectively becomes ${BROOT}/usr/${CHOST}/${BROOT}, which is unexpected and makes little sense. The first BROOT originates from the ROOT setting in the cross make.conf. The second BROOT is the prefix that Portage is configured to use by default. We therefore need to avoid the second BROOT by overriding Portage with a blank EPREFIX value. Note that a bug in Portage itself means that this is ineffective on versions before 2.3.69 but it's no worse than it was before either. For users who do want to set their own EPREFIX, the PORTAGE_CONFIGROOT default has been updated to ${SYSROOT}${EPREFIX} as the prefixed location is required for this variable. This is despite man emerge suggesting otherwise! Closes: https://bugs.gentoo.org/642604 Signed-off-by: James Le Cuirot <chewi@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>
* emerge-wrapper: pin bare-metal targets to LIBC=newlibPalmer Dabbelt2019-03-181-0/+1
| | | | Signed-off-by: Palmer Dabbelt <palmer@dabbelt.com>
* 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>
* emerge-wrapper: declare KERNEL=Winnt for *mingw* targets, bug #594576Sergei Trofimovich2019-03-111-0/+1
| | | | | | Reported-by: Fabio Rossi Bug: https://bugs.gentoo.org/594576 Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>
* Switch from sys-libs/uclibc to sys-libs/uclibc-ng package.Sergei Trofimovich2018-12-022-3/+3
| | | | Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>
* config.site add support for /etc/ overridesSergei Trofimovich2018-10-204-1/+13
| | | | | | | | | | | | | | Now crossdev imports cache variables from /etc/crossdev/include/site The file format is the same as /usr/share/crossdev/include/site it is useful to drop local overrides. Reported-by: Alon Bar-Lev Bug: https://bugs.gentoo.org/264074 Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>
* wrappers/Makefile: rename TOPDIR to SITEDIRSergei Trofimovich2018-10-202-6/+6
| | | | Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>
* Makefile: avoid '//' when PREFIX is not setSergei Trofimovich2018-10-202-14/+14
| | | | | | | | | PREFIX assumes leading '/'. Thus the idiom is $(DESTDIR)$(PREFIX)/foo and not $(DESTDIR)/$(PREFIX)/foo Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>
* wrappers: use @TOPDIR@ and @PREFIX@ instead of __TOPDIR__ and __PREFIX__Sergei Trofimovich2018-10-203-5/+5
| | | | | | | Leave __<var>__ substitutions for runtime substitution and keep @<var>@ for 'make install' substitution. Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>
* makefile: use ':' separator in set expressions consistentlySergei Trofimovich2018-10-202-4/+4
| | | | Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>
* Makefile: mangle files with sed at install phaseSergei Trofimovich2018-10-202-5/+4
| | | | Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>
* wrappers/Makefile: drop unused TOPDIR variableSergei Trofimovich2018-10-201-1/+0
| | | | 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>
* wrappers: prevent use of wine to convert between path typesMarty E. Plummer2018-07-312-0/+3
| | | | | | | | | | | | libtool.m4 uses lt_cv_to_host_file_cmd to store the name of a function used to convert between unix and win32 path styles; when doing a linux to mingw cross-compilation it ends up with func_convert_file_nix_to_w32 which uses the winepath utility to do the job. However, using that tool will create a wineprefix in ${CATEGORY}/${P}/homedir and potentially cause access violations in sandbox. Bug: https://bugs.gentoo.org/631492 Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>
* crossdev: Make armv[67] default to hardfloat following eclass changeJames Le Cuirot2018-07-252-2/+3
| | | | | | | | | | | 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>
* README: wordsmithing, fixed a few typosSergei Trofimovich2018-04-071-70/+76
| | | | 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>
* README: fixed typo s/rinning/running/Sergei Trofimovich2018-04-071-1/+1
| | | | | Reported-by: Marty E. Plummer Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>
* wrappers: fix use.force flag overridesSergei Trofimovich2018-04-051-1/+2
| | | | | | Flags should be one per line, not multiple: --- Invalid USE flag in 'use.force': '-kernel_linux kernel_linux' Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>
* README: basic description of what crossdevSergei Trofimovich2018-04-051-0/+281
| | | | Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>
* wrappers: create profile/ and override ARCH, LIBC and KERNEL thereSergei Trofimovich2018-04-054-7/+29
| | | | | | | | | | | | Need for make.defaults: portage does not allow ARCH override in make.conf anymore Need for use.force: embedded profile enforces linux target on us. It's ok as a default but would be nice to be able to override it with nothing (bare-metal) or other OS without existing profile. Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>
* emerge-wrapper: add a note that 'package.provided' are normally incompleteSergei Trofimovich2018-04-051-0/+1
| | | | Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>
* cross-emerge: fix empty EPREFIX handling, bug #650100Sergei Trofimovich2018-03-241-1/+1
| | | | | | | | | | | | | | commit 21a0f5a3d83084436e6f6b66114cc5c593528866 ("cross-emerge: tweak EPREFIX handling to be POSIX sh, bug #650100") introduced a bug: $ foo-emerge foo-emerge: line 13: [: =: unary operator expected Tweak it by quoting 'test' argument. Reported-by: Marty E. Plummer Bug: https://bugs.gentoo.org/650100 Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>
* cross-emerge: tweak EPREFIX handling to be POSIX sh, bug #650100Sergei Trofimovich2018-03-101-1/+1
| | | | | | | | | Reported and fixed by Scall. Reported-by: Scall Fixed-by: Scall Closes: https://bugs.gentoo.org/650100 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>
* site/linux: move bash_cv_job_control_missing=present from linux-gnuSergei Trofimovich2017-12-312-1/+3
| | | | | | | | | glibc, musl, uclibc and uclibc-ng all define needed signals and syscalls needed for job control. Reported-by: Felix Janda Bug: https://bugs.gentoo.org/553988 Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>
* sire/linux: remove gl_cv_func_re_compile_pattern_working=yes from muslSergei Trofimovich2017-12-313-1/+10
| | | | | | | | re_compile_pattern is present in glibc, uclibc, uclibc-ng, but not musl Reported-by: Felix Janda Bug: https://bugs.gentoo.org/553988 Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>
* wrappers/emerge-wrapper: add ELIBC=Cygwin autodetectionSergei Trofimovich2017-12-301-0/+1
| | | | | Reported-by: Marty E. Plummer 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>
* wrappers/emerge-wrapper: add ELIBC=musl autodetectionSergei Trofimovich2017-12-301-0/+1
| | | | | Reported-by: Marty E. Plummer 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>