about summary refs log tree commit diff
path: root/lib/systems
AgeCommit message (Collapse)AuthorFilesLines
2021-06-12mesaPlatforms: Welcome riscv64-linux to the familyZhaofeng Li1-1/+1
2021-06-06lib.systems.parsed: add "elf" for some NetBSD archsAlyssa Ross1-1/+13
In Autoconf, some old NetBSD targets like "i686-unknown-netbsd" are interpreted as a.out, not elf, and virtually nothing supports it. We need to specify e.g. "i686-unknown-netbsdelf" to get the right behaviour.
2021-06-06lib.systems.parse.kernels: fix typo in commentAlyssa Ross1-1/+1
2021-06-01platforms: Enable ftrace support for RISC-VZhaofeng Li1-1/+0
Support has landed in mainline for a while.
2021-06-01platforms: Build flat kernel image for RISC-VZhaofeng Li1-1/+2
Newer bootloaders for RISC-V (i.e., OpenSBI + U-Boot) support flat and compressed kernel images but not vmlinux. Therefore, let's build "Image" like what we do with aarch64. Also copy DTBs while we are at it.
2021-05-17darwin: use "11.0" as sdk and minimum version on aarch64-darwinAndrew Childs1-1/+1
2021-05-17lib/systems/platforms: add Apple M1Andrew Childs1-1/+11
2021-05-17Add crossPkgs.aarch64-darwinMoritz Angermann1-0/+6
2021-05-17lib/systems: add aarch64-darwin to mesaPlatformsMatthew Bauer1-1/+1
2021-05-15Merge staging-next into staginggithub-actions[bot]1-9/+14
2021-05-14treewide: All the linker to be chosen independentlyJohn Ericson1-0/+13
This will begin the process of breaking up the `useLLVM` monolith. That is good in general, but I hope will be good for NetBSD and Darwin in particular. Co-authored-by: sterni <sternenseemann@systemli.org>
2021-05-14lib/systems/parse: make isCompatible description clearer and more usefulBen Siraphob1-9/+14
Stating that CPUs and the isCompatible relation forms a category (or preorder) is correct but overtly technical. We can state it more clearly for readers unfamiliar with mathematics while retaining some keywords to be useful to technical readers.
2021-05-11treewide: Support aarch64-android using minimal prebuilt componentss13411-0/+9
This PR adds a new aarch64 android toolchain, which leverages the existing crossSystem infrastructure and LLVM builders to generate a working toolchain with minimal prebuilt components. The only thing that is prebuilt is the bionic libc. This is because it is practically impossible to compile bionic outside of an AOSP tree. I tried and failed, braver souls may prevail. For now I just grab the relevant binaries from https://android.googlesource.com/. I also grab the msm kernel sources from there to generate headers. I've included a minor patch to the existing kernel-headers derivation in order to expose an internal function. Everything else, from binutils up, is using stock code. Many thanks to @Ericson2314 for his help on this, and for building such a powerful system in the first place! One motivation for this is to be able to build a toolchain which will work on an aarch64 linux machine. To my knowledge, there is no existing toolchain for an aarch64-linux builder and an aarch64-android target.
2021-04-25Merge branch 'master' into staging-nextJan Tojnar1-1/+3
Choose binwalk 2.3.1, 27 is legacy version for Python 2.
2021-04-24Merge master into staging-nextgithub-actions[bot]1-24/+32
2021-04-23lib.systems.doubles.netbsd: expandAlyssa Ross1-1/+3
These are all the architectures supported by Nixpkgs on other platforms, that are also supported by NetBSD. (So I haven't added any architectures that are new to Nixpkgs here, even though NetBSD supports some that we don't have.)
2021-04-23lib.systems.doubles.all: reorganizeAlyssa Ross1-24/+32
The previous mess was partially grouped by OS, and partially grouped by architecture, which made it very difficult to know where to add new entries. I've chosen to group by OS entirely, because OSes are likely to maintain exhaustive lists of supported architectures, but it's far less likely we'd be able to find exhaustive lists of supported OSes for every architecture.
2021-04-15Merge master into staging-nextgithub-actions[bot]1-2/+1
2021-04-15lib.systems.examples.amd64-netbsd: add warningAlyssa Ross1-2/+1
Otherwise, nobody will know it's deprecated!
2021-04-15Merge master into staging-nextgithub-actions[bot]1-1/+10
2021-04-15lib: Adjust NetBSD example systemsJohn Ericson1-1/+10
Deprecate the odd one so no breaking change.
2021-04-12Merge remote-tracking branch 'upstream/staging-next' into down-integrate-stagingLuke Granger-Brown3-17/+6
2021-04-12Merge pull request #116495 from r-burns/ppc64Sandro3-17/+4
lib/systems: remove powerpc64 elfv1 support
2021-04-11lib.systems: add darwinPlatform where necessaryAndrew Childs1-0/+2
2021-04-11bintools-wrapper, cc-wrapper: parameterize darwin min version variableAndrew Childs1-0/+4
These variables are the ones that the standard toolchain uses, so we should use those and not always use MACOSX_DEPLOYMENT_TARGET. See https://github.com/tpoechtrager/cctools-port/blob/236a426c1205a3bfcf0dbb2e2faf2296f0a100e5/cctools/ld64/src/ld/PlatformSupport.cpp#L54-L55
2021-04-09systems: add appropriate rustc.config for androidMilan Pässler1-0/+2
Rust doesn't like the `-unknown` vendor component in the target triple.
2021-03-26darwin: move deployment target and sdk version to platform configAndrew Childs1-0/+9
2021-03-21Merge pull request #113212 from lopsided98/kernel-arm-fixJohn Ericson1-4/+2
lib/systems/platforms: remove TI_CPTS override
2021-03-15lib/systems: remove powerpc64 elfv1 supportRyan Burns3-17/+4
I was specifying the ELF ABI using -elfv1 and -elfv2 target config suffixes, which are nonstandard and no longer work with gnu-config.
2021-03-02lib/systems: add `darwinArch`Andrew Childs1-0/+5
2021-02-15lib/systems/platforms: remove TI_CPTS overrideBen Wolsieffer1-3/+0
Forcing the module to be builtin breaks 5.10, which wants to compile it as a module (probably due to dependencies). There doesn't seem to be a need to have it builtin anymore, so we can just remove the override.
2021-02-15lib/systems/platforms: note that RPi 3 fixes aren't needed for kernel >=4.17Ben Wolsieffer1-1/+2
2021-02-11lib: fix typo in platforms.nixPhilipp Adolf1-1/+1
In 9c213398b312e0f0bb9cdf05090fd20223a82ad0 kernelPreferBuiltin was moved/renamed to linux-kernel.preferBuiltin. However, for armv7l-hf-multiplatform the new option was written with an uppercase P, which made the kernel build process ignore it.
2021-01-30Merge pull request #111345 from r-burns/ppc64-big-endianJohn Ericson3-2/+25
Enable PPC64 (big-endian)
2021-01-30lib.systems: add powerpc64-linuxRyan Burns3-2/+25
PPC64 supports two ABIs: ELF v1 and v2. ELFv1 is historically what GCC and most packages expect, but this is changing because musl outright does not work with ELFv1. So any distro which uses musl must use ELFv2. Many other platforms are moving to ELFv2 too, such as FreeBSD (as of v13) and Gentoo (as of late 2020). Since we use musl extensively, let's default to ELFv2. Nix gives us the power to specify this declaratively for the entire system, so ELFv1 is not dropped entirely. It can be specified explicitly in the target config, e.g. "powerpc64-unknown-linux-elfv1". Otherwise the default is "powerpc64-unknown-linux-elfv2". For musl, "powerpc64-unknown-linux-musl" must use elfv2 internally to function.
2021-01-29gcc: fix armhf targetAlexander Foremny1-0/+6
Fixes #96921
2021-01-25lib/systems: fix linuxArch for power + riscvRyan Burns1-0/+2
Looks like these got left behind in the kernelArch -> linuxArch migration. Fixes: * pkgsCross.powernv.linuxHeaders * pkgsCross.riscv64.linuxHeaders * pkgsCross.riscv32.linuxHeaders and dependees
2021-01-23Merge pull request #100687 from spease/add-newer-xcode-hashesMatthew Bauer1-8/+8
darwin: update xcode versions
2021-01-23lib: Clean up how linux and gcc config is specifiedJohn Ericson4-374/+365
Second attempt of 8929989614589ee3acd070a6409b2b9700c92d65; see that commit for details. This reverts commit 0bc275e63423456d6deb650e146120c39c1e0723.
2021-01-22Revert "lib: Clean up how linux and gcc config is specified"Jonathan Ringer3-361/+370
This is a stdenv-rebuild, and should not be merged into master This reverts commit 8929989614589ee3acd070a6409b2b9700c92d65.
2021-01-21lib: Clean up how linux and gcc config is specifiedJohn Ericson3-370/+361
The `platform` field is pointless nesting: it's just stuff that happens to be defined together, and that should be an implementation detail. This instead makes `linux-kernel` and `gcc` top level fields in platform configs. They join `rustc` there [all are optional], which was put there and not in `platform` in anticipation of a change like this. `linux-kernel.arch` in particular also becomes `linuxArch`, to match the other `*Arch`es. The next step after is this to combine the *specific* machines from `lib.systems.platforms` with `lib.systems.examples`, keeping just the "multiplatform" ones for defaulting.
2021-01-19Merge branch 'master' into add-newer-xcode-hashesSteven Pease7-49/+142
2021-01-19Update to XCode 12.3Steven Pease1-8/+8
2021-01-18Merge pull request #104648 from samueldr/cleanup/kernelMajorJohn Ericson1-8/+0
platforms.nix: Remove now unused kernelMajor
2020-12-31Merge pull request #107999 from andir/platforms-arm-trusted-platformJohn Ericson1-2/+3
lib/systems/platforms: treat missing cpu version as generic pcBase
2020-12-31lib/systems: add emulator for mmixBen Siraphob1-0/+2
2020-12-31lib/systems/platforms: treat missing cpu version as generic pcBaseAndreas Rammhold1-2/+3
Since 40e7be1 all ARM platforms that didn't have a parsed cpu version (e.g. arm-none-eabi) would be handled as armv7l-hf-multiplatform which did break building arm-trusted-platform packages for some targets (e.g. rk3399). Using pcBase as fallback, instead of armv7l-hf-multiplatform, corresponds with the behaviour we had before 40e7be1.
2020-12-23lib.systems: update processor architecture infoFabián Heredia Montiel1-7/+37
2020-12-17lib/systems: fix kernelArch for x86_64Linus Heckemann1-1/+1
IA64 (Itanium) is something completely different and certainly not what we want! x86_64 code lives in arch/x86 just like "classic" x86.
2020-12-02Merge pull request #105294 from Ericson2314/platform-config-improvementsJohn Ericson3-19/+23
Platform config improvements