Commit Graph

152 Commits

Author SHA1 Message Date
sterni
bc6da68650
bionic: use fetchzip for everything (#123010)
Since the hashes of the remaining two archives that used fetchurl broke,
now as good a time as any to switch the remaining fetchurls to fetchzip.
2021-05-16 01:24:27 -04:00
s1341
1e1d29c2af treewide: Support aarch64-android using minimal prebuilt components
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-05-11 15:39:08 +00:00
TredwellGit
7ac9fcb01b linuxHeaders: 5.11 -> 5.12 2021-04-26 14:41:54 +00:00
TredwellGit
7a715d595d linuxHeaders: 5.10.9 -> 5.11 2021-02-16 09:22:58 -05:00
Jan Tojnar
01ee4ea574
Merge branch 'master' into staging-next 2021-01-24 00:09:45 +01: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
TredwellGit
53029f2070 linuxHeaders: 5.10.4 -> 5.10.9 2021-01-21 12:44:48 -05:00
TredwellGit
da806f3f7b linuxHeaders: 5.9.8 -> 5.10.4 2020-12-30 20:03:57 -05:00
TredwellGit
bfaa9af416 linuxHeaders: 5.5 -> 5.9.8 2020-11-13 12:53:54 +00:00
John Ericson
1ac5398589 *-wrapper; Switch from infixSalt to suffixSalt
I hate the thing too even though I made it, and rather just get rid of
it. But we can't do that yet. In the meantime, this brings us more
inline with autoconf and will make it slightly easier for me to write a
pkg-config wrapper, which we need.
2020-05-12 00:44:44 -04:00
Orivej Desh
330707e54d linuxHeaders: replace rsync by cp and find
See https://github.com/NixOS/nixpkgs/pull/78994#issuecomment-584437442
2020-02-11 02:15:22 +00:00
Orivej Desh
d48e99d912 linuxHeaders: 4.19.16 -> 5.5
Linux has reworked its header install process in
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=59b2bd05f5f4dc62979c2e82ddd384f07e8f10bc
It has introduced `make headers` that prepares the headers in ./usr/include, and
made `make headers_install` copy the headers from there using rsync.
2020-02-01 06:58:19 +00:00
Alyssa Ross
71f06ea757
linuxHeaders: fix typo in comment 2019-12-02 22:52:21 +00:00
volth
7bb6b373ab treewide: name -> pname (#67513) 2019-08-31 07:41:22 -04:00
volth
f3282c8d1e treewide: remove unused variables (#63177)
* treewide: remove unused variables

* making ofborg happy
2019-06-16 19:59:05 +00:00
Maciej Woś
5a7c98df12 nixos/kernel-headers: makeLinuxHeaders
While it is easy to make a custom kernel by applying kernelPatches it is
not so easy to get the corresponding headers; the derivation uses a
hard-coded kernel version.
2019-05-23 17:48:52 +09:00
Matthew Bauer
d8934feba1 kernel-headers: infer ARCH from config triple
This makes us less reliant on the systems/examples.nix. You should be
able to cross compile with just your triple:

$ nix build --arg crossSystem '{ config = "armv6l-unknown-linux-gnueabi"; }' stdenv
2019-04-19 14:53:48 -04:00
Tim Steinbach
8f1b27401c
kernelHeaders: 4.18.3 -> 4.19.16 2019-01-20 14:21:25 -05:00
John Ericson
1b77815d25 linux-headers: Fix bootstrap tools reference 2018-10-25 23:05:16 -04:00
Daiderd Jordan
7081b5e1ae linux-headers: Clean up with mass rebuild 2018-10-25 21:45:04 -04:00
John Ericson
bbd12f5583 Merge remote-tracking branch 'upstream/master' into darwin-to-linux-cross 2018-10-24 08:20:53 -04:00
Daiderd Jordan
ab6bbdd5cd linux-headers: Fix Darwin cross build
Carefully fake cc-version and cc-fullversion to avoid needing a compiler
for the kernel itself to build the headers.

For some reason, doing `make install_headers` twice, first without
INSTALL_HDR_PATH=$out then with, is neccessary to get this to work.
2018-10-23 23:20:42 -04:00
John Ericson
2b4b7d4ef3
Merge pull request #47233 from oxij/tree/mass-rebuild-noop-cleanups
treewide: mass rebuild noop cleanups
2018-09-25 00:04:52 -04:00
Jan Malakhovski
87c0206038 linuxHeaders: cleanup with a mass rebuild 2018-09-23 17:57:17 +00:00
John Ericson
7319013ea1 Merge remote-tracking branch 'upstream/master' into staging 2018-09-18 16:55:42 -04:00
John Ericson
846b44b2e9 glibc, kernel-headers: Fix some eval errors on Darwin
Need to get the source to get elf.h
2018-09-15 01:07:06 -04:00
xeji
b93f4234e8
Merge pull request #45337 from NeQuissimus/headers_4_18
kernel-headers: 4.15 -> 4.18.3
2018-09-15 00:45:56 +02:00
John Ericson
0828e2d8c3 treewide: Remove usage of remaining redundant platform compatability stuff
Want to get this out of here for 18.09, so it can be deprecated
thereafter.
2018-08-30 17:20:32 -04:00
Tim Steinbach
17de73a383
kernel-headers: 4.15 -> 4.18.3 2018-08-19 10:40:04 -04:00
volth
52f53c69ce pkgs/*: remove unreferenced function arguments 2018-07-21 02:48:04 +00:00
Will Dietz
3a40b33461 kernel-headers: remove deprecated and broken asm symlink fixups
Discussion:
https://github.com/NixOS/nixpkgs/pull/36303
2018-03-06 11:14:00 -06:00
Shea Levy
fd0f15f11c
linuxHeaders: Bump default to 4.15. 2018-02-18 16:59:29 -05:00
Tuomas Tynkkynen
8e643320c0 linuxHeaders: Drop usage of kernelHeadersBaseConfig
It's not actually needed, and AFAICT has never been. Or at least
Buildroot can build kernel headers as old as 3.2 without running the
config phase.

While at it, set ARCH unconditionally.
2018-02-14 01:47:28 +02:00
Will Dietz
7fbb42eabb Similarly, use 4.15 kernel headers instead of patching 4.14 w/uapi fixes 2018-02-13 09:44:59 -06:00
Will Dietz
bc76f767f6 linuxHeaders: allow multiple versions, use newest + patches w/musl
Hash unchanged for non-musl case.
2018-02-13 09:44:53 -06:00
John Ericson
5b74540c5b treewide: Use depsBuildBuild for buildPackges.stdenv.cc 2017-12-30 22:04:21 -05:00
John Ericson
81680d44c8 linux-headers 4.4: Remove arch fallback code
@dezgeg was right: The `platform` field of a linux platorm is already
manadatory---if not specified it is inferred, and all such inferences
include a `kernelArch` field. Therefore linux packages can indeed rely
on it being defined.
2017-09-14 19:30:20 -04:00
John Ericson
fb5d7b218d linux-headers: Remove dead old version
This sat around unused for who knows how long
2017-09-14 19:30:16 -04:00
John Ericson
791ce593ce linux-headers: Improve derivation, removing cross arg
- Perl is used at build time, so must be in `nativeBuildInputs`. It's
   not used at run time so it should not be in `buildInputs`, too.

 - Don't treat headers like a compiler---use the build and host
   platforms not host and target. Perhaps that would make sense if every
   library's headers could be a separate derivation, but since that is
   not feasible, best to keep the implementation and interface in the
   same stage.

   To do this, we used `stdenvNoCC` to get rid of the normal toolchain,
   and added a dependency for the toolchain targeting the build platform
   --- `buildPackages.stdenv.cc` --- thus everything is effectively slid
   a stage black.
2017-08-24 11:31:56 -04:00
Robin Gloster
897eec7d79
linuxHeaders_2_{4,6}: remove 2017-08-11 19:13:09 +02:00
hsloan
c5b4b6c911 kernel-headers: Don't use stdenv.cross 2017-06-28 19:44:04 -04:00
Joachim Fasting
e6c65ecb12
tree-wide: remove uses of features.grsecurity 2017-05-14 15:08:51 +02:00
John Ericson
d4fb8cfc09 linux-headers: Remove stray linux headers 3.18 nix file
In dced724c00 this derivation was
unexposed along (in all-packages.nix) with the removal of linux 3.18[1].
I think this file was left behind by mistake.

[1]: dced724c00 (diff-036410e9211b4336186fc613f7200b12L11174)
2017-04-24 15:25:52 -04:00
Franz Pletz
f8d481754c
Merge remote-tracking branch 'origin/master' into hardened-stdenv 2016-05-18 17:10:02 +02:00
Joachim Fasting
c9750f5382
linuxHeaders_4_4: init at 4.4.10 2016-05-14 09:14:00 +02:00
Robin Gloster
c92bca56f8 Merge remote-tracking branch 'upstream/master' into hardened-stdenv 2016-05-02 22:58:02 +00:00
Joachim Fasting
893186f4fd
kernel-headers: mark broken for grsecurity kernels
Extracting headers from a grsecurity patched kernel triggers additional
build steps that require gcc plugins.  For this to work, we'd need to
add gmp, libmpfr, and libmpc to the build inputs as well as run `make
prepare` before installing the headers (lest the build fail due to
missing files).

Out-of-tree modules use kernel.dev and user space should use the Linux
API headers used to build libc, not headers extracted from random
kernels, so fixing this for grsecurity is pointless.
2016-04-19 14:45:30 +02:00
Robin Gloster
3e68106afd Merge remote-tracking branch 'upstream/master' into hardened-stdenv 2016-04-07 21:52:26 +00:00