aboutsummaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* ci: Run the container explicitly with `docker run`HEADmasterMichal Rostecki9 days1-16/+17
| | | | | | | | | | | | | | | | | Using `container:` setting in GitHub actions unfortunately doesn't work with musl-llvm Gentoo images. The reason is that GitHub actions are injecting a NodeJS binary and for distros other than Alpine, it injects a binary linked against glibc.[0] The proper fix would involve either defaulting to musl or making the libc detection in the container system smarter, but for now, let's just run the container manually. [0] https://github.com/actions/runner/blob/6ef5803f24724b77a8d3599a478d06018da5d7c6/src/Runner.Worker/Handlers/StepHost.cs#L143-L172 Signed-off-by: Michal Rostecki <vadorovsky@protonmail.com> Closes: https://github.com/gentoo/crossdev/pull/27 Signed-off-by: Sam James <sam@gentoo.org>
* ci: Test crossdev in GitHub ActionsMichal Rostecki9 days1-0/+47
| | | | | | | | | Add a workflow which sets up and tests crossdev for the given list of targets. Signed-off-by: Michal Rostecki <vadorovsky@protonmail.com> Closes: https://github.com/gentoo/crossdev/pull/25 Signed-off-by: Sam James <sam@gentoo.org>
* crossdev: Use libunwind and libc++ in LLVM environmentsMichal Rostecki2024-10-151-1/+2
| | | | | | | | | | | | | | | | Avoid build issues on cross environments using musl and LLVM by using libunwind and libc++ explicitly in the clang configuration. Otherwise, clang expects GCC libunwind and libstdc++. These flags were not set explicitly in the clang configuration, because LLVM profiles were setting them, but that's not the case anymore[0]. [0] https://github.com/gentoo/gentoo/commit/5e5c9d5c524871f5af260557dbd2962b8eec5087 Bug: https://bugs.gentoo.org/941140 Signed-off-by: Michal Rostecki <vadorovsky@protonmail.com> Closes: https://github.com/gentoo/crossdev/pull/23 Signed-off-by: Sam James <sam@gentoo.org>
* crossdev: tweak GUSE_DISABLE*Sam James2024-10-151-2/+2
| | | | | | | | | | | | USE=boundschecking, USE=gcj, USE=gtk, USE=libffi, USE=mudflap are all long gone, so drop those from GUSE_DISABLE. USE=mpx is also gone, so remove that from GUSE_DISABLE_STAGE_1. Shift USE=vtv from GUSE_DISABLE_STAGE_1 -> GUSE_DISABLE as it falls under everything described in that comment ;) Signed-off-by: Sam James <sam@gentoo.org>
* cross-pkg-config: Don't unset PKG_CONFIG_ALLOW_SYSTEM_CFLAGS/LIBS20240921James Le Cuirot2024-09-211-2/+0
| | | | | | | | | | | | | | | | | | | These variables control whether pkg-config returns flags to search directories that the toolchain would search by default anyway. Rust's pkg-config-rs enables them by default, and some crates expect flags to always be returned, even if they are technically unnecessary. Unsetting these variables in the wrapper therefore breaks some crates. Having seen how this works in detail, it would be fruitless to ask upstream to change it. These lines were originally added at a time when we expected other non-Gentoo-based distributions to use crossdev. That didn't happen. Gentoo itself doesn't set these variables anywhere that I can see. Even if they were set, they are unlikely to break anything in practise now that our cross builds are better behaved than they used to be. Bug: https://bugs.gentoo.org/939334 Signed-off-by: James Le Cuirot <chewi@gentoo.org>
* Remove commented PORTDIR_OVERLAY line from make.confJames Le Cuirot2024-09-211-2/+0
| | | | | | This variable is deprecated in favour of repos.conf. Signed-off-by: James Le Cuirot <chewi@gentoo.org>
* Don't set PKG_CONFIG_PATH in make.confJames Le Cuirot2024-09-211-1/+0
| | | | | | | | | | This is pointless because cross-pkg-config unsets it anyway. It's also harmful because if a cross build needs to call CBUILD's pkg-config, which doesn't use the wrapper, it will pick up .pc files from the wrong location. Bug: https://bugs.gentoo.org/936677 Signed-off-by: James Le Cuirot <chewi@gentoo.org>
* crossdev: Configure the cet USE flag to match the profiles20240702James Le Cuirot2024-07-021-0/+15
| | | | | | We especially don't want to enable it on i?86. Signed-off-by: James Le Cuirot <chewi@gentoo.org>
* crossdev: Force static-libs for -gnu targetsLuca Barbato2024-06-161-0/+3
| | | | | | | | Without `static-libs`, the configure check for `-static` would fail and it leads to a cascade failure in finding `-lpthread` in stage2 gcc. Closes: https://github.com/gentoo/crossdev/pull/21 Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
* Reorder gnu<-glibc wording, under "LIBC" for "--help", to follow with usage ↵20240507vindicatorr2024-05-071-1/+1
| | | | | | | | of other libs listed. Signed-off-by: vindicatorr <nroycea+github@gmail.com> Closes: https://github.com/gentoo/crossdev/pull/20 Signed-off-by: Sam James <sam@gentoo.org>
* crossdev: fix whitespace in commentSam James2024-05-071-1/+1
| | | | Signed-off-by: Sam James <sam@gentoo.org>
* crossdev: fix setting EAPISam James2024-05-071-1/+1
| | | | | Fixes: c012baee91797ddbd87fa26f4cb73c9a58de3c0c Signed-off-by: Sam James <sam@gentoo.org>
* wrappers/README: update config.site path20240504Sam James2024-05-041-1/+1
| | | | Signed-off-by: Sam James <sam@gentoo.org>
* README: small fixesSam James2024-05-041-9/+11
| | | | Signed-off-by: Sam James <sam@gentoo.org>
* crossdev: tweak commentSam James2024-05-041-1/+1
| | | | Signed-off-by: Sam James <sam@gentoo.org>
* crossdev: crank copyrightSam James2024-05-041-1/+1
| | | | Signed-off-by: Sam James <sam@gentoo.org>
* crossdev: fix whitespaceSam James2024-05-041-1/+1
| | | | Signed-off-by: Sam James <sam@gentoo.org>
* crossdev: declare EAPI in profiles/Sam James2024-05-041-0/+6
| | | | | | | | | | Declare the EAPI in profiles/, otherwise we're EAPI 0. pkgcraft rightly complains about this. * Similar to 9e889bc74012c4d7bedb9f7fa31d6625be93cf3c. * See also 7f2f74f4e471172ceeceb78913fd8f8c88aa031d in app-eselect/eselect-repository. Signed-off-by: Sam James <sam@gentoo.org>
* crossdev: write profiles/repo_nameSam James2024-05-041-0/+6
| | | | | | | PMS requires it, the key in layout.conf isn't enough. Noticed after pkgcraft rightly complained about it. Signed-off-by: Sam James <sam@gentoo.org>
* wrappers: mipsel-linux-gnu: fix ac_cv_type_uid_t cache value20240209Sam James2024-02-091-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | Reported by matoro when building coreutils for mipsel-unknown-linux-gnu. If autoconf-2.72 is used, apparently this shows up, and the coreutils-9.4 dist tarball was indeed built with it... The symptoms are similar to bug #885485 but it's a different cause -- we were exporting a dodgy cache value with a missing '$': ``` configure:14771: checking for uid_t configure:14771: result: {ac_cv_type_uid_t=yes} ``` ``` ac_cv_type_uid_t='{ac_cv_type_uid_t=yes}' ``` ``` $ rg ac_cv_type_uid_t wrappers/site/mipsel-linux-gnu:115:ac_cv_type_uid_t={ac_cv_type_uid_t=yes} ``` Bug: https://bugs.gentoo.org/885485 Signed-off-by: Sam James <sam@gentoo.org>
* llvm.conf: set AS="clang -c" instead of llvm-asAlfred Persson Forsberg2024-01-261-1/+1
| | | | | | | Bug: https://bugs.gentoo.org/680652 Signed-off-by: Alfred Persson Forsberg <cat@catcream.org> Closes: https://github.com/gentoo/crossdev/pull/18 Signed-off-by: Sam James <sam@gentoo.org>
* crossdev: Make dev-debug a default category for gdb20240117Krzesimir Nowak2024-01-171-1/+1
| | | | | | | | | The sys-devel/gdb package was moved to dev-debug category, so reflect this change in the script. Signed-off-by: Krzesimir Nowak <knowak@microsoft.com> Closes: https://github.com/gentoo/crossdev/pull/17 Signed-off-by: Sam James <sam@gentoo.org>
* cross-{ebuild,emerge}: improve error message for missing SYSROOTSam James2024-01-082-2/+12
| | | | | | This can happen if you rm -rf the SYSROOT (rather than crossdev -C). Signed-off-by: Sam James <sam@gentoo.org>
* wrapper/etc/portage/make.conf: Remove -pamIan Jordan2023-12-121-1/+1
| | | | | | | | Removing default option of disabling PAM as no longer needed in all tests done. Signed-off-by: Ian Jordan <immoloism@gmail.com> Closes: https://github.com/gentoo/crossdev/pull/16 Signed-off-by: James Le Cuirot <chewi@gentoo.org>
* cross-pkg-config: Set PKG_CONFIG_FDO_SYSROOT_RULES=1Matt Turner2023-10-151-0/+3
| | | | | | | | | | | When cross-compiling, pkgconf behaves in a way that causes many packages to install files to ${SYSROOT}/${SYSROOT}/... without PKG_CONFIG_FDO_SYSROOT_RULES set. I'm aware of at least gobject-introspection, modemmanager, and libp11, but there are likely more. Signed-off-by: Matt Turner <mattst88@gentoo.org>
* make riscv targets use riscv portage archNathan Du2023-09-261-0/+1
| | | | | | Closes: https://bugs.gentoo.org/914725 Signed-off-by: Nathan Du <nathandu@outlook.com> Signed-off-by: Sam James <sam@gentoo.org>
* cross-pkg-config: Properly set PKG_CONFIG_SYSTEM_*_PATH variables20230923James Le Cuirot2023-09-231-1/+3
| | | | | | | | | | | | | | | | | | | | | | Perhaps this was a difference between pkg-config and pkgconf, but we have not set PKG_CONFIG_SYSTEM_LIBRARY_PATH correctly since we began setting it in 2014. It should include the SYSROOT. We also never set PKG_CONFIG_SYSTEM_INCLUDE_PATH at all. These variables tell pkg-config not to emit paths that the toolchain would search in anyway. This helps to reduce the noise appearing in newly-installed .pc files. This change does assume that if you have set SYSROOT differently to the toolchain's default, then you have also added the --sysroot argument to your compiler flags. Neither Portage nor Gentoo currently do this for you. cross-boss does, but it's not an officially supported solution. The change could therefore potentially break things, but it's likely you'll run into other problems if you don't add --sysroot anyway. Signed-off-by: James Le Cuirot <chewi@gentoo.org> Closes: https://github.com/gentoo/crossdev/pull/13 Signed-off-by: Sam James <sam@gentoo.org>
* Fix check for installed LLVMBenjamin Gilbert2023-09-231-1/+1
| | | | | | | | | | | It always succeeds, and then if LLVM isn't installed, crossdev fails with a confusing error: Target architecture not supported by installed LLVM toolchain Signed-off-by: Benjamin Gilbert <bgilbert@backtick.net> Closes: https://github.com/gentoo/crossdev/pull/14 Signed-off-by: Sam James <sam@gentoo.org>
* LLVM/Clang: abort early if libc is glibc20230831Alfred Persson Forsberg2023-08-311-0/+2
| | | | | | Signed-off-by: Alfred Persson Forsberg <cat@catcream.org> Closes: https://github.com/gentoo/crossdev/pull/12 Signed-off-by: Sam James <sam@gentoo.org>
* fix x86 in LLVM targets checkAlfred Persson Forsberg2023-08-311-1/+1
| | | | | | | | previously it would match CTARGET for amd64*. Signed-off-by: Alfred Persson Forsberg <cat@catcream.org> Closes: https://github.com/gentoo/crossdev/pull/11 Signed-off-by: Sam James <sam@gentoo.org>
* Support standalone LLVM/Clang as crosscompilerAlfred Persson Forsberg2023-08-223-49/+215
| | | | | | | | | | | | | | | | | | | | | | This change makes it possible to use Clang instead of GCC in Crossdev. As LLVM is already able to target other architectures, provided that LLVM_TARGETS is set accordingly, the only thing needed to do is compile builtins (compiler-rt) for the target triple. Note that compiler-rt needs libc headers to target when building, and in turn linux-headers needs to be installed for Linux targets, so most stages except binutils and GCC are still there. Currently having both a GCC and LLVM Crossdev environment installed for the same triple is not supported since many ebuilds just use /usr/${CTARGET} as a hardcoded sysroot, but I plan adding support. Note: by standalone I mean a pure LLVM toolchain not dependent on an existing GCC toolchain. Bug: https://bugs.gentoo.org/680652 Signed-off-by: Alfred Persson Forsberg <cat@catcream.org> Closes: https://github.com/gentoo/crossdev/pull/10 Signed-off-by: Sam James <sam@gentoo.org>
* Avoid calling portageq from Makefile20230616Mike Gilbert2023-06-162-4/+3
| | | | | | | It is probably better to look up the repo path at runtime anyway. Bug: https://bugs.gentoo.org/908602 Signed-off-by: Mike Gilbert <floppym@gentoo.org>
* crossdev: initial nvptx-none porting20230321Sam James2023-03-211-0/+6
| | | | Signed-off-by: Sam James <sam@gentoo.org>
* crossdev: delete ${CTARGET}-ebuild too on --cleanSam James2023-02-251-1/+1
| | | | | | | Fixes: c4cf9b41b4b7b7bc36d3878383666a77d51c804b Fixes: 7eeb1d8f8fbb712706165e780c9b2904e4da7b92 Fixes: 748fcd09f89d10b8cf85d11dc574aad3896281d9 Signed-off-by: Sam James <sam@gentoo.org>
* wrappers: fix mipsel-linux-gnu cache vars for *sys_siglist20230209Sam James2023-02-091-3/+3
| | | | | | | | | | | | | sys_siglist was removed from glibc-2.32. Before now, for mipsel-linux-gnu, we were forcing the cache var to 'yes', rather than 'no'. I suspect this test would've worked correctly even without caching anyway, but it is what it is. Default to 'no' instead of 'yes'. See also: https://lists.openembedded.org/g/openembedded-core/topic/dunfell_patch_site_make/77178472?p= Closes: https://bugs.gentoo.org/791154 Signed-off-by: Sam James <sam@gentoo.org>
* crossdev: style tweaksSam James2023-02-021-49/+76
| | | | Signed-off-by: Sam James <sam@gentoo.org>
* crossdev: disable SSP for freestanding/no libc targetsSam James2023-02-021-1/+2
| | | | | | | | | | | | Otherwise, we end up with a mess like: ``` [...] /usr/libexec/gcc/arm-none-eabi/ld: /usr/lib/gcc/arm-none-eabi/12/../../../../arm-none-eabi/lib/libg.a(libc_a-stack_protector.o): in function `__stack_chk_fail': stack_protector.c:(.text.__stack_chk_fail+0x60): undefined reference to `_exit' [...] ``` Signed-off-by: Sam James <sam@gentoo.org>
* crossdev: add TODO re picking versions from overlays & best versionSam James2023-01-141-0/+2
| | | | Signed-off-by: Sam James <sam@gentoo.org>
* crossdev: adapt to new USE=default-stack-clash-protection20221228Sam James2022-12-281-3/+3
| | | | Signed-off-by: Sam James <sam@gentoo.org>
* crossdev: force off hardened in more cases (avoid leaking hardened from host)Sam James2022-12-281-0/+2
| | | | | | See: c439961a06625b27d39d683beee00e8c3a54005f See: cb41e7e05c55f6ef64e7a617869bbb644899e724 Signed-off-by: Sam James <sam@gentoo.org>
* config.site: Fix tzset in Python with autoconf override20221227James Le Cuirot2022-12-271-0/+3
| | | | | | | | | The Python build assumes that tzset is broken when cross-compiling. We can assume it works under Linux. Signed-off-by: James Le Cuirot <chewi@gentoo.org> Closes: https://github.com/gentoo/crossdev/pull/8 Signed-off-by: Sam James <sam@gentoo.org>
* cross-pkg-config: Rework to properly support prefixJames Le Cuirot2022-12-271-36/+51
| | | | | | | | This helps with both cross-compiling into a prefix and cross-compiling within a prefix. Signed-off-by: James Le Cuirot <chewi@gentoo.org> Signed-off-by: Sam James <sam@gentoo.org>
* Revert "crossdev: clean world file on uninstall"Mike Gilbert2022-11-181-3/+0
| | | | | | | This hack is unnecessary if we use emerge for uninstalls instead. Reverts: bec5fd6a5597f736a868e79017f99b5bc79a9dbf Signed-off-by: Mike Gilbert <floppym@gentoo.org>
* Call emerge instead of qmerge to unmerge packagesMike Gilbert2022-09-231-1/+1
| | | | | | | qmerge does not remove packages from the world file. Also, this allows us to drop the dependency on portage-utils. Signed-off-by: Mike Gilbert <floppym@gentoo.org>
* wrappers: Actually set PKGDIR to /var/cache/binpkgs20220909Jakov Smolić2022-09-091-1/+1
| | | | | | | | | Probably a typo, so accidentally got changed to `cache/binpkgs` instead of `/var/cache/binpkgs` Signed-off-by: Jakov Smolić <jsmolic@gentoo.org> Closes: https://github.com/gentoo/crossdev/pull/5 Signed-off-by: Sam James <sam@gentoo.org>
* wrappers/Makefile: fix weird double spaces20220818Alfred Persson Forsberg2022-08-181-1/+1
| | | | | | Signed-off-by: Alfred Persson Forsberg <cat@catcream.org> Closes: https://github.com/gentoo/crossdev/pull/4 Signed-off-by: Sam James <sam@gentoo.org>
* wrappers/cross-ebuild: new fileAlfred Persson Forsberg2022-08-182-1/+42
| | | | | | | | Crossdev currently installs a dead symlink to cross-ebuild. This commit creates it. Mostly copied from cross-emerge. Signed-off-by: Alfred Persson Forsberg <cat@catcream.org> Signed-off-by: Sam James <sam@gentoo.org>
* crossdev: Fix matching of stable keywords20220709Krzesimir Nowak2022-07-091-1/+1
| | | | | | | | | Not sure how this worked before - in our case emerge couldn't find a matching ebuild any more when requesting stable versions. Signed-off-by: Krzesimir Nowak <knowak@microsoft.com> Closes: https://github.com/gentoo/crossdev/pull/3 Signed-off-by: Sam James <sam@gentoo.org>
* crossdev: Take gdb variables into accountKrzesimir Nowak2022-07-091-2/+2
| | | | | | | When restoring user settings and when figuring out the list of repos. Signed-off-by: Krzesimir Nowak <knowak@microsoft.com> Signed-off-by: Sam James <sam@gentoo.org>
* crossdev: Fall back to default version for gdb tooKrzesimir Nowak2022-07-091-0/+1
| | | | | | | | Passing `--stable` didn't affect the version of built GDB, thus we needed to pass `--gdb '[stable]'` on our own. Signed-off-by: Krzesimir Nowak <knowak@microsoft.com> Signed-off-by: Sam James <sam@gentoo.org>