aboutsummaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* crossdev: Configure the cet USE flag to match the profilesHEAD20240702masterJames 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>
* site: add linux-musl20220617Sam James2022-06-171-0/+4
| | | | | | | | | | | | | | | | | | | | | | | Follow-up to 8b1b79e02cc36bc6f2b5583db6aeea333fb8d59b. Sets ``` ac_cv_func_malloc_0_nonnull=yes ac_cv_func_realloc_0_nonnull=yes ``` ... to sort out flex and a bunch of other packages, like procps. I was wondering why this never seemed to come up when doing cross for other "standard" targets which we know work and are used often; the answer is that we never had the -musl suffix CHOSTs covered. (e.g. linux-gnu already has this set.) Bug: https://bugs.gentoo.org/554032 Closes: https://bugs.gentoo.org/675368 Closes: https://bugs.gentoo.org/705800 See: 8b1b79e02cc36bc6f2b5583db6aeea333fb8d59b Signed-off-by: Sam James <sam@gentoo.org>
* wrappers: use /var/cache/binpkgs as PKGDIRSam James2022-05-031-1/+1
| | | | | | Modern location. Signed-off-by: Sam James <sam@gentoo.org>
* wrappers: use /var/db/repos/local in commented out example PORTDIR_OVERLAYSam James2022-05-031-1/+1
| | | | Signed-off-by: Sam James <sam@gentoo.org>
* crossdev: force off USE=hardened where no SSPSam James2022-05-031-1/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | This fixes e.g. hppa2.0-unknown-linux-gnu where the stack grows up and hence we lack SSP, but also -fstack-clash-protection which is forced on by USE=hardened. glibc failed to build before this with: ``` checking for broken __attribute__((alias()))... yes configure: error: working alias attribute support required * ERROR: cross-hppa2.0-unknown-linux-gnu/glibc-2.35-r4::crossdev failed (configure phase): ``` config.log: ``` configure:4199: checking if compiler warns about alias for function with incompatible types cc1: error: '-fstack-clash-protection' is not supported on targets where the stack grows from lower to higher addresses [-Werror] conftest.c:9:34: error: 'foo_alias' alias between functions of incompatible types 'int(const void *, int)' and 'int (*(void))(const void *, int)' [-Werror=attribute-alias=] 9 | extern __typeof (__redirect_foo) foo_alias __attribute__ ((alias ("foo"))); | ^~~~~~~~~ conftest.c:4:28: note: aliased declaration here 4 | __typeof (__redirect_foo) *foo_impl (void) | ^~~~~~~~ cc1: all warnings being treated as errors ``` Signed-off-by: Sam James <sam@gentoo.org>
* crossdev: Add support for LoongArch (ARCH=loong)20220424WANG Xuerui2022-04-242-1/+11
| | | | | | | Closes: https://bugs.gentoo.org/840431 Closes: https://github.com/gentoo/crossdev/pull/2 Signed-off-by: WANG Xuerui <xen0n@gentoo.org> Signed-off-by: Sam James <sam@gentoo.org>
* crossdev: add quotes to set_keywords variableMikk Margus Möll2022-04-191-1/+1
| | | | | | Signed-off-by: Mikk Margus Möll <mikk.margus.moll@eesti.ee> Closes: https://github.com/gentoo/crossdev/pull/1 Signed-off-by: Sam James <sam@gentoo.org>
* crossdev: update copyright lineSam James2022-03-171-1/+1
| | | | Signed-off-by: Sam James <sam@gentoo.org>