aboutsummaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* crossdev: nvptx: refine multilib commentHEADmasterSam James20 hours1-1/+2
| | | | | | | | The multilib bug comment was copied from newlib where it's for arm, replace it with a better one. There's another comment linking to a GCC ML post in the file too (in set_portage). Signed-off-by: Sam James <sam@gentoo.org>
* crossdev: nvptx: enable zlib+zstd for LTO20241202Sam James26 hours1-1/+5
| | | | | | | | | | LTO is used behind-the-scenes between the host and offload to communicate data. We need to use the same compression for both. It's easiest if we just enable both supported compression formats in the offload compiler: zlib and zstd. Bug: https://bugs.gentoo.org/945296 Signed-off-by: Sam James <sam@gentoo.org>
* crossdev: nvptx: don't force on openmp as it affects stage1 tooSam James32 hours1-1/+0
| | | | | | Bug: https://bugs.gentoo.org/945296 Fixes: 9e258378b3b596b14130a8538fc37193e3abd5e1 Signed-off-by: Sam James <sam@gentoo.org>
* crossdev: nvptx: disable irrelevant languages and force necessary ones onSam James43 hours1-1/+5
| | | | | | Link: https://gcc.gnu.org/legacy-ml/gcc/2018-03/msg00122.html Bug: https://bugs.gentoo.org/945296 Signed-off-by: Sam James <sam@gentoo.org>
* crossdev: nvptx needs multilibSam James3 days1-1/+2
| | | | | | | See https://gcc.gnu.org/legacy-ml/gcc-help/2020-01/msg00106.html. Bug: https://bugs.gentoo.org/945296 Signed-off-by: Sam James <sam@gentoo.org>
* crossdev: build openmp, fortran by default for nvptx20241130.1Sam James4 days1-2/+5
| | | | | | | Followup to c272f335f8b0df15f724e9ee3e2289a9deddbd11. Bug: https://bugs.gentoo.org/945296 Signed-off-by: Sam James <sam@gentoo.org>
* crossdev: don't turn off openmp/fortran for nvptxSam James4 days1-2/+1
| | | | | | | | | | | | openmp and fortran are rather useful for offloading. Not clear to me whether or not we can turn this on for newlib in general wrt bug #489798 and bug #589672. Bug: https://bugs.gentoo.org/489798 Bug: https://bugs.gentoo.org/589672 Bug: https://bugs.gentoo.org/945296 Signed-off-by: Sam James <sam@gentoo.org>
* crossdev: nvptx target fixes20241130Sam James4 days1-0/+10
| | | | | | | | | * We don't need linux-headers * Set the same GMASK/GUSE as newlib (not sure how useful the multilib bit here is, mind) Bug: https://bugs.gentoo.org/945296 Signed-off-by: Sam James <sam@gentoo.org>
* crossdev: no SSP for nvptxSam James4 days1-1/+1
| | | | | Bug: https://bugs.gentoo.org/945296 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>
* 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>
* 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>
* 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>
* 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>
* 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-221-49/+194
| | | | | | | | | | | | | | | | | | | | | | 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>
* 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>
* 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>
* 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>
* 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>
* 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-241-1/+10
| | | | | | | 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>
* crossdev: fix typo in commentSam James2022-03-061-1/+1
| | | | Signed-off-by: Sam James <sam@gentoo.org>
* crossdev: use package.use.{mask,force} for pie/sspOskari Pirhonen2022-02-201-16/+29
| | | | | | | | | | A hardened host profile forces the pie and ssp USE flags which is overriding GUSE="-pie -ssp". Use package.use.mask and package.use.force to control the flags. Closes: https://bugs.gentoo.org/831165 Signed-off-by: Oskari Pirhonen <xxc3ncoredxx@gmail.com> Signed-off-by: Sam James <sam@gentoo.org>
* Add some special riscv sauce. Ugly.20220205Andreas K. Hüttel2022-02-051-0/+32
| | | | | | | | | | | | | | This is necessary since * for glibc, the "fallback" libdir for 64bit is lib64 * for gcc, the "fallback" libdir for 64bit is lib By providing the full multilib libdirs and a compatibility symlink as in baselayout, the pieces fit together again. riscv32 is kinda not affected since both gcc and glibc use lib (NOT lib32, as in the multilib libdirs). Signed-off-by: Andreas K. Hüttel <dilfridge@gentoo.org>
* crossdev: don't pick ebuild version from overlay if unmatching KEYWORDSSam James2022-01-311-3/+20
| | | | | | | | We don't want to e.g. pick a GCC from an overlay if it doesn't have KEYWORDS for our target, which then leads to an early crossdev failure as it obviously can't then emerge GCC. Signed-off-by: Sam James <sam@gentoo.org>
* crossdev: handle rtems targets via newlibMike Frysinger2022-01-281-1/+1
| | | | Signed-off-by: Mike Frysinger <vapier@gentoo.org>
* Revert "crossdev: disable default ssp support on x86 and ppc on musl"Sam James2021-11-211-3/+0
| | | | | | | | | | | This should be working now -- we've imported fixed GCC to ::gentoo from the musl overlay and we've unmasked + re-enabled SSP everywhere other than crossdev anyway. Bug: https://bugs.gentoo.org/706210 This reverts commit 3756849289a449ff09e329aaa7e26fbd5739805e. Signed-off-by: Sam James <sam@gentoo.org>