| Commit message (Collapse) | Author | Age |
|
|
|
|
| |
This improves build times significantly, from 20min to 9min on the
aarch64 community box.
|
|
|
|
|
|
|
|
|
|
| |
Go beyond the obvious setup hooks now, with a bit of sed, with a skipped case:
- cc-wrapper's `dontlink`, because it already is handled.
Also, in nix files escaping was manually added.
EMP
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
In 5.2 kernel a new mechanism was introduced which embeds the kernel
headers in the kernel image and exposes them in procfs for simplified
use by userland tools.
It was introduced in
https://github.com/torvalds/linux/commit/43d8ce9d65a54846d378545770991e65838981e0
and later modified a bit in
https://github.com/torvalds/linux/commit/f7b101d33046a837c2aa4526cef28a3c785d7af2
The archive containing the header files had nondeterminism through the
header files metadata - specifically `mtime`, but I also decided to
normalize some other aspects just in case.
In our default setup we currently compile this as a module, so to expose
the headers to test the functionality `kheaders` needs to be loaded.
See https://lkml.org/lkml/2019/10/4/1036 and
https://git.kernel.org/pub/scm/linux/kernel/git/masahiroy/linux-kbuild.git/commit/?h=fixes&id=2cc99c9cdc8fde5e92e34f9655829449cebd3e00
I commented out the documentation part of the patch to make it cleanly apply to
5.2 and 5.3, see remark in the patch itself.
|
| |
|
|
|
|
|
| |
adds _file so that nix may have a chance to display what file the conflictings settings come
from.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
81d4e65891f92e8e72c244da663c83c1e40dc919 automatically bumped
linux_testing to 5.2.0-rc1, but the 5.2 merge window included a new
feature adding compressed headers for compiled kernels into
/proc/kheaders.tar.xz
See https://github.com/torvalds/linux/commit/43d8ce9d65a54846d378545770991e65838981e0
This feature requires 'cpio' to now be included in nativeBuildInputs
since it's used to construct that archive.
This wasn't caught by Hydra since we turn off build of linuxPackages,
but ideally we should at least build the kernel in the future
(linux_testing itself.)
Signed-off-by: Austin Seipp <aseipp@pobox.com>
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
Some packages don’t work correctly with pie. Here I disable it for:
- busybox
- linux kernel
- kexectools
I also get rid of the Musl conditional for disabling pie in GCC and
Binutils. Some day we might want to enable PIE without Musl and it
will be useful to have the *just* work with our compiler and linkers.
|
|
|
|
| |
Use stdenv.lib.inNixShell to check for nix-shell and potentially bring pkgconfig/ncurses.
|
|
|
|
| |
We've recently seen a lot of kernel build timeouts on hydra,
so let's increase the timeout.
|
| |
|
|
|
|
|
| |
Want to get this out of here for 18.09, so it can be deprecated
thereafter.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* 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
|
|
|
|
|
|
|
|
|
|
|
| |
Since commit f620b1b693ec25af, the build directory is located inside the
source directory. Thus, the `cp -dpR` copies gigabytes worth of .o files
only to be deleted later on when we trim all non-essential files from
`$dev/lib/modules/${modDirVersion}/source/` thus causing a significant
amount of wasted I/O and peak disk usage.
As `cp` doesn't come with a `--exclude` flag, use rsync. And throw out
the Documentation folder while at it.
|
|
|
|
| |
It's used two lines above, so be consistent.
|
|
|
|
| |
It's set in the same phase
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
Instead of using a string to describe kernel config, use a nix
attribute set, then converted to a string.
- allows to override the config, aka convert 'yes' into 'modules' or
vice-versa
- while for now merging different configs is still crude (last spec wins),
at least there should be only one CONFIG_XYZ value compared to the current string
config where the first defined would be used and others ignored.
[initial idea by copumpkin in 2016, a major rebase to 2018 by teto]
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The required argument 'hostPlatform' was missing from linuxPackages_custom's
call to linuxManualConfig.
In order to prevent this in the future, this commit adds
linuxPackages_custom_tinyconfig_kernel so linuxPackages_custom gets tested.
This also adds linuxConfig, to derivate default linux configurations
via make defconfig, make tinyconfig, etc.
Closes #38034.
Signed-off-by: Austin Seipp <aseipp@pobox.com>
|
|
|
|
| |
This was disabled in torvalds/linux@5620a0d1aacd554ebebcff373e31107bb1ef7769
|
| |
|
| |
|
|
|
|
|
| |
HOSTCC was taking precedence before stdenv's normal CC,
at least in case of non-cross build.
|
| |
|
| |
|
|
|
|
|
|
|
| |
- defined buildLinux as generic.nix instead of manual-config.nix. This
makes kernel derivations a tad more similar to your typical derivations.
- moved $buildRoot to within the source folder, this way it doesn't have to be created before the unpackPhase
and make it easier to work on kernel source without running the unpackPhase
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
| |
[...]
make modules -C /nix/store/h1vzl6bq4wif3m8dd1bw2p3fv4shjg3n-linux-4.14.9-dev/lib/modules/4.14.9/build EXTRA_CFLAGS=-Werror-implicit-function-declaration M=/tmp/nix-build-spl-kernel-2017-11-16-4.14.9.drv-0/source/build
/nix/store/h1vzl6bq4wif3m8dd1bw2p3fv4shjg3n-linux-4.14.9-dev/lib/modules/4.14.9/source/Makefile:939: *** "Cannot generate ORC metadata for CONFIG_UNWINDER_ORC=y, please install libelf-dev, libelf-devel or elfutils-libelf-devel". Stop.
This patch introduces kernel.moduleBuildDependencies to avoid the logic "stdenv.lib.optional (stdenv.lib.versionAtLeast kernel.version "4.14") libelf" in multiple places.
[dezgeg did some minor tweaks on top]
|
|
|
|
|
| |
Besides fixes for the recent BPF issues there is also a patch included
that fixes booting on aarch64 (e.g. RPi3) ;-)
|
|
|
|
|
| |
extraMeta was being fed as passthru without being processed by stdenv,
so without those changes, adding the security attribute would be useless.
|
|
|
|
| |
Closes #32137
|
|
|
|
| |
Now prints the current modDirVersion. Close #31887.
|
|
|
|
| |
https://hydra.nixos.org/build/62813493
|
|
|
|
|
|
| |
For a while now, the only thing the 'uboot' attribute does is to tell
whether to add ubootTools to kernel/initrd builds. That can be
determined with platform.kernelTarget == "uImage" just as well.
|
| |
|
| |
|
|
|
|
|
| |
Homepage link "http://.../" is a permanent redirect to "https://.../" and should be updated
https://repology.org/repository/nix_stable/problems
|
| |
|
|
|
|
|
|
| |
linux 4.8 onwards support gcc plugins. This patch adds build inputs
required to make use of gcc plugins to the generic kernel build
environment.
|
| |
|
|
|
|
|
|
| |
Because if you get it wrong, you get a very confusing error message at
the end of the kernel build, which is quite painful as the build can
take a long time.
|