Andrew Childs
6c4ce7960e
bintools-wrapper, cc-wrapper: parameterize darwin min version variable
...
These variables are the ones that the standard toolchain uses, so we
should use those and not always use MACOSX_DEPLOYMENT_TARGET.
See 236a426c12/cctools/ld64/src/ld/PlatformSupport.cpp (L54-L55)
2021-04-11 09:47:10 +09:00
Milan Pässler
5f7aa7a973
systems: add appropriate rustc.config for android
...
Rust doesn't like the `-unknown` vendor component in the target triple.
2021-04-09 12:09:06 +02:00
Andrew Childs
44f09ccabf
darwin: move deployment target and sdk version to platform config
2021-03-26 15:10:22 +09:00
John Ericson
c82066e585
Merge pull request #113212 from lopsided98/kernel-arm-fix
...
lib/systems/platforms: remove TI_CPTS override
2021-03-21 13:22:53 -04:00
Ryan Burns
8ea1660b9e
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.
2021-03-15 19:27:41 -07:00
Andrew Childs
1303257d88
lib/systems: add darwinArch
2021-03-02 17:13:15 +09:00
Ben Wolsieffer
7b573e8051
lib/systems/platforms: remove TI_CPTS override
...
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-15 11:23:17 -05:00
Ben Wolsieffer
1e1588898b
lib/systems/platforms: note that RPi 3 fixes aren't needed for kernel >=4.17
2021-02-15 11:23:17 -05:00
Philipp Adolf
408ae0b13a
lib: fix typo in platforms.nix
...
In 9c213398b3
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-02-11 08:58:04 +01:00
John Ericson
5fc5e83808
Merge pull request #111345 from r-burns/ppc64-big-endian
...
Enable PPC64 (big-endian)
2021-01-30 16:26:06 -05:00
Ryan Burns
72b3badb61
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.
2021-01-30 12:34:24 -08:00
Alexander Foremny
75e2f7ce63
gcc: fix armhf target
...
Fixes #96921
2021-01-29 10:48:23 +01:00
Ryan Burns
8baac2af75
lib/systems: fix linuxArch for power + riscv
...
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-25 17:57:05 -08:00
Matthew Bauer
84408a6ad0
Merge pull request #100687 from spease/add-newer-xcode-hashes
...
darwin: update xcode versions
2021-01-23 20:04:50 -06:00
John Ericson
9c213398b3
lib: Clean up how linux and gcc config is specified
...
Second attempt of 8929989614589ee3acd070a6409b2b9700c92d65; see that
commit for details.
This reverts commit 0bc275e634
.
2021-01-23 10:01:28 -05:00
Jonathan Ringer
0bc275e634
Revert "lib: Clean up how linux and gcc config is specified"
...
This is a stdenv-rebuild, and should not be merged
into master
This reverts commit 8929989614
.
2021-01-22 14:07:06 -08:00
John Ericson
8929989614
lib: Clean up how linux and gcc config is specified
...
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-21 22:44:09 -05:00
Steven Pease
0fdab8d560
Merge branch 'master' into add-newer-xcode-hashes
2021-01-19 20:42:30 -08:00
Steven Pease
d8c1c0dc50
Update to XCode 12.3
2021-01-19 20:41:39 -08:00
John Ericson
19852e3dc6
Merge pull request #104648 from samueldr/cleanup/kernelMajor
...
platforms.nix: Remove now unused kernelMajor
2021-01-18 14:08:30 -05:00
John Ericson
15cb12178a
Merge pull request #107999 from andir/platforms-arm-trusted-platform
...
lib/systems/platforms: treat missing cpu version as generic pcBase
2020-12-31 13:52:09 -05:00
Ben Siraphob
b77ca83282
lib/systems: add emulator for mmix
2020-12-31 13:22:12 +07:00
Andreas Rammhold
a44aec2b1b
lib/systems/platforms: treat missing cpu version as generic pcBase
...
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-31 00:12:07 +01:00
Fabián Heredia Montiel
2a9ac172c1
lib.systems: update processor architecture info
2020-12-23 18:57:59 -06:00
Linus Heckemann
2ee35e1fce
lib/systems: fix kernelArch for x86_64
...
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-17 11:10:38 +01:00
John Ericson
8e21ce5fae
Merge pull request #105294 from Ericson2314/platform-config-improvements
...
Platform config improvements
2020-12-02 11:17:41 -05:00
Tad Fisher
454df2b0c3
Cross-compiling configuration for reMarkable 2 tablet
2020-11-29 23:01:58 -08:00
John Ericson
9918ba2dba
lib/systems/exmaple: riscv-multiplatform
no longer needs parameter
2020-11-29 00:03:51 +00:00
John Ericson
04f6973200
lib, binutils: Move Risc-V bfdEmulation to be by the others
2020-11-29 00:03:51 +00:00
John Ericson
40e7be11c8
lib.systems.platforms: Make selection more flexible
...
We dont have to match on exact strings if we get accessed to `parsed`.
Co-authored-by: Matthew Bauer <mjbauer95@gmail.com>
2020-11-29 00:03:45 +00:00
Ben Siraphob
77e00150ba
Initial implementation of remarkable1 cross-compile
2020-11-23 21:18:54 +07:00
Samuel Dionne-Riel
837fe2e491
platforms.nix: Remove now unused kernelMajor
...
The last use of `kernelMajor` in Nixpkgs was removed in 2018.
Even then, I'm not positive it was actually in an exercised code path.
AFAIUI this is now totally redundant and useless as it really was meant
for the 2.4 -> 2.6 transition.
2020-11-22 22:08:18 -05:00
Frederik Rietdijk
986c2d36da
Merge master into staging-next
2020-11-16 09:01:53 +01:00
Samuel Dionne-Riel
6d8327ea96
Initial support for OpenRISC 1000 (or1k)
2020-11-09 22:32:11 -05:00
Ben Siraphob
445dde6304
Initial implementation of mmix cross-compile
2020-11-09 19:49:55 +07:00
Steven Pease
6217cc92b5
Add newer xcode versions
2020-10-15 23:17:55 -07:00
WORLDofPEACE
34aaac6d7c
Merge branch 'staging-next' into staging
2020-09-20 18:41:15 -04:00
Gabriel Ebner
de3cc475e0
Merge pull request #81014 from fgaz/platforms/endianness
...
platforms: add bigEndian and littleEndian
2020-09-20 17:03:55 +02:00
Francesco Gazzetta
4fc8c5098d
platforms: add bigEndian and littleEndian
2020-09-20 16:12:58 +02:00
Frederik Rietdijk
37d29394ec
Merge staging-next into staging
2020-09-12 10:00:45 +02:00
Matthew Bauer
86d8c55470
Merge branch 'staging' into ios-13
2020-09-10 23:24:26 -05:00
Matthew Bauer
8483d29d60
Merge pull request #97587 from arcnmx/arch-fix
...
Fix arch eval error
2020-09-10 14:48:25 -05:00
arcnmx
8f3efbde4e
Fix arch eval error introduced in #61019
...
This occurs when using a `platform.gcc.arch` that isn't one of the
pre-existing hard-coded options.
2020-09-09 12:17:00 -07:00
John Ericson
e2bef8fbdc
lib.systems.examples: Bump android SDK to 21
...
074bc78cc8
evidently meant to do this, but
forgot.
2020-09-08 09:33:09 -04:00
John Ericson
1965a241fc
Merge pull request #61019 from volth/gcc.arch-amd
...
platform.gcc.arch: support for AMD CPUs
2020-09-01 22:31:16 -04:00
volth
c5fe132b3c
Update architectures.nix
2020-09-01 11:28:34 +00:00
John Ericson
5a05601013
Merge pull request #96223 from KAction/static
...
Make pkgsStatic set "static" argument to true
2020-08-31 20:00:15 -04:00
Dmitry Bogatov
55195119d5
Distinguish pkgsStatic from pkgsMusl via stdenv.targetPlatform
...
This change allows derivations to distinguish dynamic musl build and
static musl build in cases where upstream build system can't detect it
by itself.
2020-08-27 18:36:34 -04:00
volth
60ce27db2b
Update architectures.nix
2020-08-22 23:04:08 +00:00
volth
8ad48c921e
Update architectures.nix
2020-08-22 23:01:38 +00:00
volth
55bc2b54a4
Update architectures.nix
2020-08-22 22:55:13 +00:00
Matthew Bauer
074bc78cc8
android: update sdk, ndk to 29, 21
2020-08-17 23:51:53 -05:00
volth
cf7b63df5b
gcc.arch: refactor, move tables under lib/
2020-08-05 11:18:26 +00:00
Emery Hemingway
ccedb29f4b
Define a i686-genode system double
2020-08-04 18:08:56 +02:00
Aaron Janse
60fd049b65
redox: add as target
2020-07-21 13:11:36 -07:00
Matthew Bauer
bb5d0a47b7
systems/examples.nix: update to iOS 13
...
new apps need iOS 13, so we should try to use that here
2020-07-21 10:34:57 -05:00
Emery Hemingway
9f91fa02a6
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
2020-03-24 20:41:21 +05:30
John Ericson
00afca0929
lib: Add armv6l-none to doubles list
2020-03-12 09:56:17 -04:00
Matthew Bauer
acb24b4cc4
lib/systems: Assume newlib when no kernel and no libc is provided
...
newlib is the default for most tools when no kernel is provided. Other
exist, but this seems like a safe default.
(cherry picked from commit 8009c20711
)
2020-03-12 02:22:19 -04:00
Chuck
5d4821141b
stdenv: Remove isArm (use isAarch32 instead)
...
isArm has been deprecated for three releases. All references have been
removed. Tree-wide substitution was performed in #37401 21 months ago.
2020-02-05 10:56:14 -08:00
Chuck
a7835b936e
lib.systems.elaborate: isArm -> isAarch32
...
This is the last reference to isArm. isArm is deprecated after 18.03.
This substitution was performed tree-wide in #37401 .
2020-02-05 10:56:14 -08:00
Matthew Bauer
9c1a2ac51e
Merge remote-tracking branch 'origin/master' into ios-with-xcode-11
2020-01-03 15:34:20 -05:00
Matthew Bauer
010d2f4aa2
lib/systems: use newer ios sdk
2020-01-03 15:20:54 -05:00
John Ericson
80524db331
Merge branch 'ghcjs-cross-without-cc-19.09' into ghcjs-cross-without-cc
2019-11-25 14:11:18 +00:00
John Ericson
765d2608b6
Fix lib tests
...
js-ghcjs didn't fit in an existing categor.
2019-11-25 14:09:50 +00:00
John Ericson
6bc456c91c
Merge remote-tracking branch 'upstream/master' into ghcjs-cross-without-cc
2019-11-25 00:23:07 +00:00
John Ericson
c739c420db
Add support for cross compiling to js-ghcjs
...
This platform doesn't have a C compiler, and so relies and the changes
in the previous commit to work.
2019-11-25 00:12:38 +00:00
Michael Bishop
4aa1ffae04
initial implementation of vc4 cross-compile
2019-11-19 22:19:15 -04:00
John Ericson
16f0fe7fe3
Merge remote-tracking branch 'upstream/master' into mingw-mcfthreads
2019-11-11 20:48:14 -05:00
John Ericson
91718534f1
lib: Switch to w64 vendor for MinGW
...
It is needed for the `-municode` flag, supposedly.
2019-11-11 00:25:24 -05:00
oxalica
c98da73802
lib.systems: remove redundant mapping
2019-11-04 12:13:30 +08:00
oxalica
955d032b47
lib.systems: handle mips family properly
2019-11-03 22:10:06 +08:00
John Ericson
3098d65210
lib: Add armv7a-linux to doubles.nix
...
This is needed for android.
2019-10-01 12:51:57 -04:00
Vladimír Čunát
f21211ebfe
Merge branch 'master' into staging
2019-09-02 23:25:24 +02:00
John Ericson
c2b34b2b57
Merge remote-tracking branch 'upstream/master' into js-unknown-ghcjs
2019-09-02 01:57:01 -04:00
John Ericson
a77a2cfe4a
lib: Further clean up systems list
2019-09-02 01:55:38 -04:00
John Ericson
f57fe63d5f
Merge lib sort into feature/js-unknown-ghcjs
2019-09-02 01:44:30 -04:00
John Ericson
3d8cf08706
lib: Sort platform predicates
2019-09-02 01:38:22 -04:00
John Ericson
c33d80c071
Merge remote-tracking branch 'upstream/master' into feature/js-unknown-ghcjs
2019-09-02 01:31:31 -04:00
Moritz Angermann
446f8c851d
Add support for js-unknown-ghcjs
...
This adds enough logic to nixpkgs to support the `js-unknown-ghcjs` triple.
2019-09-02 01:27:05 -04:00
volth
08f68313a4
treewide: remove redundant rec
2019-08-28 11:07:32 +00:00
volth
35d68ef143
treewide: remove redundant quotes
2019-08-26 21:40:19 +00:00
Jay Kruer
e931a525f9
Add RISC-V embedded crossSystems
2019-07-25 21:45:11 -07:00
Matthew Bauer
d059185bad
Revert "Revert "systems/doubles.nix: add Apple doubles""
...
This reverts commit ce2f74df2c
.
Doubles are treated as -darwin here, to provide some consistency.
There is some ambiguity between “x86_64-darwin” and “i686-darwin”
which could refer to binaries linked between iOS simulator or real
macOS binaries. useiOSPrebuilt can be used to determine which to use,
however.
2019-07-10 15:14:59 -04:00
Frederik Rietdijk
ce2f74df2c
Revert "systems/doubles.nix: add Apple doubles"
...
The lib tests need to be fixed as well.
This unbreaks the tarball job.
This reverts commit 00ba557856
.
2019-07-10 12:37:06 +02:00
Matthew Bauer
00ba557856
systems/doubles.nix: add Apple doubles
...
These are used in cross-compilation to iOS devices and simulators.
Fallout from #60349 .
2019-07-08 12:33:16 -04:00
volth
f3282c8d1e
treewide: remove unused variables ( #63177 )
...
* treewide: remove unused variables
* making ofborg happy
2019-06-16 19:59:05 +00:00
Matthew Bauer
0fef9f89e4
systems: fix lib-tests
...
These were broken by the added system doubles. This just adds those to
the lib-tests.
2019-06-04 14:51:33 -04:00
Matthew Bauer
de70b76779
systems: fixup from last commit
...
it’s powerpc-none not ppc-none
2019-06-04 13:42:14 -04:00
Matthew Bauer
f7c7207a3f
systems: add missing doubles
...
in https://github.com/NixOS/nixpkgs/pull/60349 , the attr handling was
removed. This means we rely on these double values for determing what
we are compatible with. This adds some of the missing doubles to this
list.
https://hydra.nixos.org/eval/1523389#tabs-removed
2019-06-04 13:34:40 -04:00
Matthew Bauer
760c9995b0
Merge pull request #60349 from matthewbauer/fix-60345
...
check-meta: use system tuple in platforms
2019-06-04 11:29:48 -04:00
Matthew Bauer
635b762569
systems: allow passing in string for cross/localSystem
...
This makes things a little bit more convenient. Just pass in like:
$ nix-build ’<nixpkgs>’ -A hello --argstr localSystem x86_64-linux --argstr crossSystem aarch64-linux
2019-06-04 11:17:25 -04:00
Matthew Bauer
40271ae138
systems: remove forMeta
...
This is unused now.
2019-06-04 11:09:43 -04:00
Lionello Lunesu
fb147b07ad
Adds pkgsCross.gnu32 and pkgsCross.gnu64 platforms
2019-05-05 15:24:10 +08:00
Matthew Bauer
e500bb8409
systems: add riscv double
...
This was never listed in doubles.nix! Not sure why?
2019-04-30 12:59:38 -04:00
Matthew Bauer
7488a367af
Merge pull request #56555 from matthewbauer/wasm
...
Initial WebAssembly/WASI cross-compilation support
2019-04-23 22:44:33 -04:00
Matthew Bauer
dbb94b984f
wasmtime: init and use for emulation
...
This isn’t really an "emulator" but it’s the closest concept we have
right now.
2019-04-23 21:48:57 -04:00
Matthew Bauer
d591a109be
wasm: don’t assume musl
2019-04-23 21:48:57 -04:00
Matthew Bauer
9abff4af4f
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.
2019-04-23 21:48:57 -04:00
Matthew Bauer
d180cb9850
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
2019-04-20 20:05:51 -04:00