summary refs log tree commit diff
path: root/lib/systems/inspect.nix
Commit message (Collapse)AuthorAge
* Initial implementation of s390 cross-compileBen Siraphob2021-07-25
|
* Initial implementation of m68k cross-compileBen Siraphob2021-07-24
|
* Merge master into staging-nextFrederik Rietdijk2020-11-16
|\
| * Initial implementation of mmix cross-compileBen Siraphob2020-11-09
| |
* | Initial support for OpenRISC 1000 (or1k)Samuel Dionne-Riel2020-11-09
|/
* redox: add as targetAaron Janse2020-07-21
|
* lib/systems: Add Genode platform definitionsEmery Hemingway2020-03-24
| | | | | | | Add platform definitions for 64-bit ARM and x86. This is sufficient for for building Genode where a toolchain is provided as an overlay. Toolchain: git+https://git.sr.ht/~ehmry/genodepkgs?rev=14fc773ac9ecd2cbb30cb4612b284eee83d83546
* stdenv: Remove isArm (use isAarch32 instead)Chuck2020-02-05
| | | | | isArm has been deprecated for three releases. All references have been removed. Tree-wide substitution was performed in #37401 21 months ago.
* initial implementation of vc4 cross-compileMichael Bishop2019-11-19
|
* Merge remote-tracking branch 'upstream/master' into js-unknown-ghcjsJohn Ericson2019-09-02
|\
| * Merge lib sort into feature/js-unknown-ghcjsJohn Ericson2019-09-02
| |\
| * \ Merge remote-tracking branch 'upstream/master' into feature/js-unknown-ghcjsJohn Ericson2019-09-02
| |\ \
| | * | systems: fix lib-testsMatthew Bauer2019-06-04
| | | | | | | | | | | | | | | | | | | | These were broken by the added system doubles. This just adds those to the lib-tests.
| | * | wasm: don’t assume muslMatthew Bauer2019-04-23
| | | |
| | * | wasm: init cross targetMatthew Bauer2019-04-23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Adds pkgsCross.wasm32 and pkgsCross.wasm64. Use it to build Nixpkgs with a WebAssembly toolchain. stdenv/cross: use static overlay on isWasm isWasm doesn’t make sense dynamically linked.
| | * | systems: support TI MSP430 microcontrollersAaron Lindsay2019-03-25
| | | |
| | * | alpha-embedded: isAlpha code Added (#56090)Vincent Weisner2019-02-20
| | | | | | | | | | | | Adds isAlpha to stdenv.<platform> flags.
* | | | lib: Further clean up systems listJohn Ericson2019-09-02
| |_|/ |/| |
* | | lib: Sort platform predicatesJohn Ericson2019-09-02
|/ /
* / Add support for `js-unknown-ghcjs`Moritz Angermann2019-09-02
|/ | | | This adds enough logic to nixpkgs to support the `js-unknown-ghcjs` triple.
* add generic x86_32 support (#52634)Daniel Goertzen2019-01-06
| | | | | | | | | | | | | | | | * add generic x86_32 support - Add support for i386-i586. - Add `isx86_32` predicate that can replace most uses of `isi686`. - `isi686` is reinterpreted to mean "exactly i686 arch, and not say i585 or i386". - This branch was used to build working i586 kernel running on i586 hardware. * revert `isi[345]86`, remove dead code - Remove changes to dead code in `doubles.nix` and `for-meta.nix`. - Remove `isi[345]86` predicates since other cpu families don't have specific model predicates. * remove i386-linux since linux not supported on that cpu
* avr: use new compilation infrastructureMatthew Bauer2018-10-29
| | | | | | | | | | Gets rid of: avrbinutils avrgcc to replace with: pkgsCross.avr.buildPackages.binutils pkgsCross.avr.buildPackages.gcc
* hurd: cleanup unmaintained targetJörg Thalheim2018-08-28
| | | | | | This has been not touched in 6 years. Let's remove it to cause less problems when adding new cross-compiling infrastructure. This also simplify gcc significantly.
* [RFC] ppc64le enablement (#45340)CrystalGamma2018-08-21
| | | | | | | | | | | | | | | | * ppc64le enablement * gcc, glibc: properly handle __float128 * lib/systems, stdenv: syntax cleanup * gcc7: remove ugly hack * gcc: add/update __float128 flags * stdenv: add another pair of quotes for consistency * gcc: move __float128 flag for ppc64le-glibc into common/platform-flags.nix
* systems: Allow detection of powerpc and sparcJohn Q Crosscompiler2018-07-26
|
* lib/systems/inspect: Fix after assertionsJohn Ericson2018-05-11
| | | | | Function are never equal in Nix, so we need to filter out this attribute in ABIs.
* Merge commit '70963b382f3f820ba6d3bc3b3aaf50a2957ec1ff' into uclibcJohn Ericson2018-05-10
|\
| * Merge remote-tracking branch 'upstream/master' into aarch32John Ericson2018-04-30
| |\
| | * treewide: isArm -> isAarch32John Ericson2018-04-25
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Following legacy packing conventions, `isArm` was defined just for 32-bit ARM instruction set. This is confusing to non packagers though, because Aarch64 is an ARM instruction set. The official ARM overview for ARMv8[1] is surprisingly not confusing, given the overall state of affairs for ARM naming conventions, and offers us a solution. It divides the nomenclature into three levels: ``` ISA: ARMv8 {-A, -R, -M} / \ Mode: Aarch32 Aarch64 | / \ Encoding: A64 A32 T32 ``` At the top is the overall v8 instruction set archicture. Second are the two modes, defined by bitwidth but differing in other semantics too, and buttom are the encodings, (hopefully?) isomorphic if they encode the same mode. The 32 bit encodings are mostly backwards compatible with previous non-Thumb and Thumb encodings, and if so we can pun the mode names to instead mean "sets of compatable or isomorphic encodings", and then voilà we have nice names for 32-bit and 64-bit arm instruction sets which do not use the word ARM so as to not confused either laymen or experienced ARM packages. [1]: https://developer.arm.com/products/architecture/a-profile
| | * libseccomp: Disable only on RISC-V if Linux.Shea Levy2018-03-27
| | | | | | | | | | | | | | | | | | The isSeccomputable flag treated Linux without seccomp as just a normal variant, when it really should be treated as a special case incurring complexity debt to support.
| | * kexectools: Disable only on RISC-V if Linux.Shea Levy2018-03-27
| | | | | | | | | | | | | | | | | | The isKexecable flag treated Linux without kexec as just a normal variant, when it really should be treated as a special case incurring complexity debt to support.
| | * lib: Make platform predicates greppableJohn Ericson2018-03-19
| | |
| | * lib: Split Darwin into macOS and iOSJohn Ericson2018-03-19
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | I noticed LLVM accepts `ios` as its own OS in platform triples; a recent change as far as I know. I see it also accepts `macos*` for macOS (formerly OS X). If it's now customary to distinguish iOS like so (rather than guessing from the aarch, lets add both so our OSes are still disjoint, and make Darwin a family instead. But changing the config everywhere would probably be a mass rebuild, and I'm not sure how well other software supports OSes besides "darwin", so I'm keeping that the default name for macOS for now.
* | | lib/systems: Add uClibc just like MUSLJohn Ericson2018-05-09
|/ /
* | treewide: isArm -> isAarch32John Ericson2018-04-25
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Following legacy packing conventions, `isArm` was defined just for 32-bit ARM instruction set. This is confusing to non packagers though, because Aarch64 is an ARM instruction set. The official ARM overview for ARMv8[1] is surprisingly not confusing, given the overall state of affairs for ARM naming conventions, and offers us a solution. It divides the nomenclature into three levels: ``` ISA: ARMv8 {-A, -R, -M} / \ Mode: Aarch32 Aarch64 | / \ Encoding: A64 A32 T32 ``` At the top is the overall v8 instruction set archicture. Second are the two modes, defined by bitwidth but differing in other semantics too, and buttom are the encodings, (hopefully?) isomorphic if they encode the same mode. The 32 bit encodings are mostly backwards compatible with previous non-Thumb and Thumb encodings, and if so we can pun the mode names to instead mean "sets of compatable or isomorphic encodings", and then voilà we have nice names for 32-bit and 64-bit arm instruction sets which do not use the word ARM so as to not confused either laymen or experienced ARM packages. [1]: https://developer.arm.com/products/architecture/a-profile (cherry picked from commit ba52ae50488de85a9cf60a3a04f1c9ca7122ec74)
* | lib: Make platform predicates greppableJohn Ericson2018-03-20
|/ | | | | | | Should have commited on here and on merged master to begin with, but I didn't, so instead I cherry-pick. (cherry picked from commit 88c04a8b6b6714a61c8a28ec8bbd5ecf580ed2c7)
* prebuilt android tools: Init using SDKJohn Ericson2018-02-27
| | | | Expose as an option for the cross stdenv.
* Only build libseccomp on supported systemsShea Levy2018-02-24
|
* gnu-efi: Fix aarch64 cross-buildShea Levy2018-02-24
|
* gnu-efi: Only build on efi-enabled systemsShea Levy2018-02-24
|
* kexectools: Only build on kexecable architectures.Shea Levy2018-02-24
|
* Drop "isGlibc", but keep isMusl.Will Dietz2018-02-11
| | | | gnu "abi" doesn't mean glibc (mingw, apparently).
* lib/systems: musl, libc predicatesWill Dietz2018-02-11
| | | | | | Note this doesn't actually provide musl support yet, just improves our "system" code to understand musl-based triples and non-glibc linux configurations.
* lib: Allow parsing platform configs with arch of `{riscv,wasm}{32,64}`John Ericson2018-01-26
| | | | Also add `isRiscv` and `isWasm` predicates.
* Convert libs to a fixed-pointGraham Christensen2017-09-16
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This does break the API of being able to import any lib file and get its libs, however I'm not sure people did this. I made this while exploring being able to swap out docFn with a stub in #2305, to avoid functor performance problems. I don't know if that is going to move forward (or if it is a problem or not,) but after doing all this work figured I'd put it up anyway :) Two notable advantages to this approach: 1. when a lib inherits another lib's functions, it doesn't automatically get put in to the scope of lib 2. when a lib implements a new obscure functions, it doesn't automatically get put in to the scope of lib Using the test script (later in this commit) I got the following diff on the API: + diff master fixed-lib 11764a11765,11766 > .types.defaultFunctor > .types.defaultTypeMerge 11774a11777,11778 > .types.isOptionType > .types.isType 11781a11786 > .types.mkOptionType 11788a11794 > .types.setType 11795a11802 > .types.types This means that this commit _adds_ to the API, however I can't find a way to fix these last remaining discrepancies. At least none are _removed_. Test script (run with nix-repl in the PATH): #!/bin/sh set -eux repl() { suff=${1:-} echo "(import ./lib)$suff" \ | nix-repl 2>&1 } attrs_to_check() { repl "${1:-}" \ | tr ';' $'\n' \ | grep "\.\.\." \ | cut -d' ' -f2 \ | sed -e "s/^/${1:-}./" \ | sort } summ() { repl "${1:-}" \ | tr ' ' $'\n' \ | sort \ | uniq } deep_summ() { suff="${1:-}" depth="${2:-4}" depth=$((depth - 1)) summ "$suff" for attr in $(attrs_to_check "$suff" | grep -v "types.types"); do if [ $depth -eq 0 ]; then summ "$attr" | sed -e "s/^/$attr./" else deep_summ "$attr" "$depth" | sed -e "s/^/$attr./" fi done } ( cd nixpkgs #git add . #git commit -m "Auto-commit, sorry" || true git checkout fixed-lib deep_summ > ../fixed-lib git checkout master deep_summ > ../master ) if diff master fixed-lib; then echo "SHALLOW MATCH!" fi ( cd nixpkgs git checkout fixed-lib repl .types )
* Fix "treewide: Consistently call ARM 'arm'"Tuomas Tynkkynen2017-08-24
| | | | | | 0c0fad6141cf3d62 was broken. I didn't realize there's some hidden metaprogramming code where one can't even grep for 'isFoo' to find its definition :(
* lib: Add isPowerPC predicate, and fix family nameJohn Ericson2017-07-10
|
* lib: Include darwin in isUnixDavid McFarland2017-07-03
|
* stdenv: remove unix kernel familyDavid McFarland2017-06-26
| | | | | System predicate patterns can now be specified as a list of OR'd attribute sets.
* zpaqd: Modernize derivationJohn Ericson2017-05-22
| | | | | - Simplified platform-specific options - Almost ready for cross-compilation