| Commit message (Expand) | Author | Age | Files | Lines |
| * | lib/systems/parse: make isCompatible description clearer and more useful•••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.
| Ben Siraphob | 2021-05-14 | 1 | -9/+14 |
| * | lib/systems: remove powerpc64 elfv1 support•••I was specifying the ELF ABI using -elfv1 and -elfv2 target config
suffixes, which are nonstandard and no longer work with gnu-config.
| Ryan Burns | 2021-03-15 | 1 | -9/+0 |
| * | lib.systems: add powerpc64-linux•••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.
| Ryan Burns | 2021-01-30 | 1 | -0/+9 |
| * | Merge master into staging-next | Frederik Rietdijk | 2020-11-16 | 1 | -14/+19 |
| |\ |
|
| | * | Initial implementation of mmix cross-compile | Ben Siraphob | 2020-11-09 | 1 | -14/+19 |
| * | | Initial support for OpenRISC 1000 (or1k) | Samuel Dionne-Riel | 2020-11-09 | 1 | -0/+2 |
| |/ |
|
| * | redox: add as target | Aaron Janse | 2020-07-21 | 1 | -0/+3 |
| * | lib/systems: Add Genode platform definitions•••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
| Emery Hemingway | 2020-03-24 | 1 | -0/+3 |
| * | initial implementation of vc4 cross-compile | Michael Bishop | 2019-11-19 | 1 | -0/+2 |
| * | Merge remote-tracking branch 'upstream/master' into mingw-mcfthreads | John Ericson | 2019-11-11 | 1 | -0/+1 |
| |\ |
|
| | * | lib.systems: handle mips family properly | oxalica | 2019-11-03 | 1 | -0/+1 |
| * | | lib: Switch to w64 vendor for MinGW•••It is needed for the `-municode` flag, supposedly.
| John Ericson | 2019-11-11 | 1 | -0/+3 |
| |/ |
|
| * | Merge branch 'master' into staging | Vladimír Čunát | 2019-09-02 | 1 | -1/+6 |
| |\ |
|
| | * | Merge remote-tracking branch 'upstream/master' into feature/js-unknown-ghcjs | John Ericson | 2019-09-02 | 1 | -18/+103 |
| | |\ |
|
| | * | | Add support for `js-unknown-ghcjs`•••This adds enough logic to nixpkgs to support the `js-unknown-ghcjs` triple.
| Moritz Angermann | 2019-09-02 | 1 | -1/+6 |
| * | | | treewide: remove redundant rec | volth | 2019-08-28 | 1 | -1/+1 |
| | |/
|/| |
|
| * | | treewide: remove unused variables (#63177)•••* treewide: remove unused variables
* making ofborg happy
| volth | 2019-06-16 | 1 | -1/+1 |
| * | | Merge pull request #56555 from matthewbauer/wasm•••Initial WebAssembly/WASI cross-compilation support | Matthew Bauer | 2019-04-23 | 1 | -0/+4 |
| |\ \ |
|
| | * | | wasm: init cross target•••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.
| Matthew Bauer | 2019-04-23 | 1 | -0/+4 |
| * | | | cc-wrapper: make machine configuration configurable•••It is useful to make these dynamic and not bake them into gcc. This
means we don’t have to rebuild gcc to change these values. Instead, we
will pass cflags to gcc based on platform values. This was already
done hackily for android gcc (which is multi-target), but not for our
own gccs which are single target.
To accomplish this, we need to add a few things:
- add ‘arch’ to cpu
- add NIX_CFLAGS_COMPILE_BEFORE flag (goes before args)
- set -march everywhere
- set mcpu, mfpu, mmode, and mtune based on targetPlatform.gcc flags
cc-wrapper: only set -march when it is in the cpu type
Some architectures don’t have a good mapping of -march. For instance
POWER architecture doesn’t support the -march flag at all!
https://gcc.gnu.org/onlinedocs/gcc/RS_002f6000-and-PowerPC-Options.html#RS_002f6000-and-PowerPC-Options
| Matthew Bauer | 2019-04-20 | 1 | -17/+17 |
| |/ / |
|
| * | | systems/parse.nix: fixup arm compatibilities | Matthew Bauer | 2019-04-19 | 1 | -13/+33 |
| * | | systems: support TI MSP430 microcontrollers | Aaron Lindsay | 2019-03-25 | 1 | -0/+1 |
| * | | systems: add isCompatible handling | Matthew Bauer | 2019-02-21 | 1 | -0/+60 |
| |/ |
|
| * | lib: Fix Mingw on 32-bit ARM | John Ericson | 2019-01-04 | 1 | -4/+9 |
| * | systems/parse.nix: support eabihf•••eabihf is an abi that can be used with ARM architectures that support
the “hard float”. It should probably only be used with ARM32 when you
are absolutely sure your binaries will run on ARM systems with a FPU.
Also, add an example "armhf-embedded" to match the preexisting
arm-embedded system. qmk_firmware needs hard float in a few places, so
add them here to get that to work.
Fixes #51184
| Matthew Bauer | 2018-12-02 | 1 | -10/+13 |
| * | systems/parse: add older x86 architectures•••i386, i486, i586 are added. These may have issues as many places
assume i686 is the only valid 32 bit x86 architecture.
| Matthew Bauer | 2018-11-21 | 1 | -0/+3 |
| * | Update parse.nix | Vincent Weisner | 2018-11-02 | 1 | -1/+1 |
| * | CPU Fix•••Co-Authored-By: vincrusher <vincentweisner@icloud.com> | Jörg Thalheim | 2018-11-01 | 1 | -1/+1 |
| * | Update parse.nix | Vincent Weisner | 2018-11-01 | 1 | -0/+4 |
| * | systems/examples: add i686 & x86-64 embedded•••Fixes #28160
| Matthew Bauer | 2018-10-30 | 1 | -0/+2 |
| * | systems/parse.nix: support weird system configs•••There are some weird ones out there that don’t follow any pattern:
- arm-none-eabi
- powerpc-none-eabi
- aarch64-none-elf
| Matthew Bauer | 2018-10-29 | 1 | -0/+8 |
| * | avr: use new compilation infrastructure•••Gets rid of:
avrbinutils
avrgcc
to replace with:
pkgsCross.avr.buildPackages.binutils
pkgsCross.avr.buildPackages.gcc
| Matthew Bauer | 2018-10-29 | 1 | -0/+5 |
| * | hurd: cleanup unmaintained target•••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.
| Jörg Thalheim | 2018-08-28 | 1 | -3/+0 |
| * | [RFC] ppc64le enablement (#45340)•••* 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
| CrystalGamma | 2018-08-21 | 1 | -0/+2 |
| * | systems: fix netbsd triple parsing•••binutils expects x86_64-unknown-netbsd<version> (only 3 parts!). Any other combo seems to fail.
Also handle darwin versions similarly.
/cc @Ericson2314
| Matthew Bauer | 2018-07-28 | 1 | -4/+6 |
| * | systems: Allow detection of powerpc and sparc | John Q Crosscompiler | 2018-07-26 | 1 | -0/+3 |
| * | Merge branch 'fix-gcc-with-float' | John Ericson | 2018-05-12 | 1 | -12/+17 |
| |\ |
|
| | * | lib: Fix float handling for Aarch32•••Forgot to adjust default so abi with explicit float attr would be used.
| John Ericson | 2018-05-12 | 1 | -12/+17 |
| * | | lib/system: Remove float from androideabi•••There are two different official variations which differ in their float
support, so such a blanket statement is invalid.
`lib.systems.platforms.*android` already handles each case correctly.
Correcting an error in 827ef0914089e1a2bba140b49e1311eff28cc156.
| John Ericson | 2018-05-11 | 1 | -1/+1 |
| * | | lib/systems: Add assertion to "android" ABI•••This is analogous to the GNU assertion.
| John Ericson | 2018-05-11 | 1 | -2/+10 |
| * | | Merge pull request #40378 from obsidiansystems/lib-platform-sort•••lib/systems: Sort platforms, and space CPUs | John Ericson | 2018-05-11 | 1 | -0/+5 |
| |\| |
|
| | * | lib/systems: Sort platforms, and space CPUs | John Ericson | 2018-05-11 | 1 | -0/+5 |
| * | | Merge remote-tracking branch 'upstream/master' into lib-float | John Ericson | 2018-05-10 | 1 | -11/+27 |
| |\ \
| |/
|/| |
|
| | * | lib/systems: Prohibit "gnu" ABI (*-gnu) with 32-bit ARM•••It is ambiguous, and therefore banned within GCC.
| John Ericson | 2018-05-10 | 1 | -2/+10 |
| | * | Merge commit '70963b382f3f820ba6d3bc3b3aaf50a2957ec1ff' into uclibc | John Ericson | 2018-05-10 | 1 | -9/+17 |
| | |\ |
|
| | | * | treewide: isArm -> isAarch32•••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
| John Ericson | 2018-04-25 | 1 | -1/+1 |
| | | * | Merge pull request #38485 from obsidiansystems/nixos-nixpkgs-options•••nixpkgs module: Clean up platform options | John Ericson | 2018-04-19 | 1 | -2/+2 |
| | | |\ |
|
| | | | * | nixpkgs module: Clean up platform options••• - `localSystem` is added, it strictly supercedes system
- `crossSystem`'s description mentions `localSystem` (and vice versa).
- No more weird special casing I don't even understand
TEMP
| John Ericson | 2018-04-06 | 1 | -2/+2 |
| | | * | | Fix a typo: types.openSignifiantByte -> types.openSignificantByte | John Wiegley | 2018-04-13 | 1 | -2/+2 |
| | | |/ |
|
| | | * | lib: Split Darwin into macOS and iOS•••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.
| John Ericson | 2018-03-19 | 1 | -5/+13 |