summary refs log tree commit diff
path: root/pkgs/os-specific/linux/kernel/manual-config.nix
Commit message (Collapse)AuthorAge
* buildLinux: take and propagate extraMakeFlagsBernardo Meurer2021-07-12
| | | | | | | This is just for practicity, as it allows users of buildLinux to pass along extra flags they need in the kernel's make invocation. This makes, for example, supporting LLVM _much_ easier, and could enable us in the future to provide clang-built kernels.
* linuxManualConfig: patch all shebangs in scripts/Bernardo Meurer2021-07-12
| | | | | | | | | | | | There are many scripts in `scripts/` which may be called by the build, depending on how the user chooses to configure the kernel. For example, `scripts/jobserver-exec` is called whenever the kernel is being built with LLVM tooling, and without this patch that build will fail due to the broken shebang. This patch makes us fix _all_ scripts, as well as add a dependency on python3Minimal, since a lot of the aforementioned scripts are written in Python3 instead of shell.
* linuxManualConfig: don't mangle `--build-id`Bernardo Meurer2021-07-10
| | | | | | | | | | | | | | | | In order to have our linux builds be reproducible we patch the `Makefile` to use `--build-id=none` as opposed to the default `--build-id=sha1`. The way we've been doing this, however, caused the flag to be mangled, and being set to `--build-id=none=sha1`. While bfd seems to parse this normally, lld will loudly complain that the flag does not exist: ``` linux> LD .tmp_vmlinux.kallsyms1 linux> ld.lld: error: unknown --build-id style: none=sha1 ``` With this change the flag is now correctly set to `--build-id=none`.
* kernel: clarify licenseAtemu2021-05-02
|
* linux: remove xen_dom0 feature entirelyAlyssa Ross2021-04-05
| | | | | | | Xen is now enabled unconditionally on kernels that support it, so the xen_dom0 feature doesn't do anything. The isXen attribute will now produce a deprecation warning and unconditionally return true. Passing in a custom value for isXen is no longer supported.
* lib: Clean up how linux and gcc config is specifiedJohn Ericson2021-01-23
| | | | | | | Second attempt of 8929989614589ee3acd070a6409b2b9700c92d65; see that commit for details. This reverts commit 0bc275e63423456d6deb650e146120c39c1e0723.
* Revert "lib: Clean up how linux and gcc config is specified"Jonathan Ringer2021-01-22
| | | | | | | This is a stdenv-rebuild, and should not be merged into master This reverts commit 8929989614589ee3acd070a6409b2b9700c92d65.
* lib: Clean up how linux and gcc config is specifiedJohn Ericson2021-01-21
| | | | | | | | | | | | | | | | 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.
* pkgs/os-specific: stdenv.lib -> libBen Siraphob2021-01-17
|
* kernel/manual-config: add zstd to nativeBuildDeps.Blaž Hrastnik2020-12-27
| | | | | | Required to build with zstd compression. Refs #101108
* kernel/manual-config: simplify ld-version sed with patchShebangs.Blaž Hrastnik2020-12-27
|
* linux: omit build id (#106648)Arnout Engelen2020-12-23
| | | | | | | | Don't include an ​NT_GNU_BUILD_ID (that is randomly generated at build time). This improves the kernel reproducibility: when also disabling the MOUDLE_SIG and SECURITY_LOCKDOWN_LSM options the build is bit-by-bit reproducible.
* utillinux: rename to util-linuxGraham Christensen2020-11-24
|
* kernel/linuxManualConfig: add variant metadataJonathan Ringer2020-11-01
|
* linux: 5.9-rc8 -> 5.10-rc1Tim Steinbach2020-10-27
|
* linux: remove dependency to utillinuxMinimaloxalica2020-09-06
|
* linux: 5.8-rc1 -> 5.8-rc2Tim Steinbach2020-06-26
|
* linux: do not depend on systemd indirectlyArian van Putten2020-04-28
| | | | | | | | | | | | | | | | | | | | | | utillinux depends on systemd because: * uuidd supports socket activation * lslogins can show recent journal entries * fstrim comes with a service file (and we use this in NixOS) * logger can write journal entries (See https://www.openembedded.org/pipermail/openembedded-core/2015-February/102069.html) systemd doesn't depend on utillinux but on utillinuxMinimal which is a version of utillinux without these features to avoid cyclic dependencies. With this change, the linux kernel (of which i don't fully understand why it would depend on util-linux in the first place, but this was added in https://github.com/NixOS/nixpkgs/pull/32137/files without too much explanation) depends on the minimal version of util-linux too. This makes it that every time we change build flags in systemd the linux kernel doesn't have to wastefully rebuild.
* treewide: Per RFC45, remove all unquoted URLsMichael Reilly2020-04-10
|
* linux: run make install in parallelLinus Heckemann2019-12-19
| | | | | This improves build times significantly, from 20min to 9min on the aarch64 community box.
* treewide: Make still dont* Variables are optional in most casesJohn Ericson2019-11-01
| | | | | | | | | | 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
* linux: 5.4-rc1 -> 5.4-rc2Tim Steinbach2019-10-08
|
* linux_5_2, linux_5_3: fixing nondeterminismDima2019-10-05
| | | | | | | | | | | | | | | | | | | | | | | | 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.
* linux: 5.2-rc7 -> 5.3-rc5Tim Steinbach2019-09-09
|
* linux: clearer origin for settings configurationMatthieu Coudron2019-09-04
| | | | | adds _file so that nix may have a chance to display what file the conflictings settings come from.
* linux_testing (5.2.0-rc1): fix build, include 'cpio' in nativeBuildInputsAustin Seipp2019-05-21
| | | | | | | | | | | | | | | | | | 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>
* linux: Makes the -dev output reproducibleSamuel Dionne-Riel2019-05-04
|
* kernel: extend the RANDSTRUCT seed with a user-configurable sectionPierre Bourdon2019-01-24
|
* kernel: make the RANDSTRUCT seed deterministicPierre Bourdon2019-01-11
|
* Revert "linux: inside nix-shell, allow make menuconfig"Patrick Hilhorst2018-12-10
|
* treewide: disable pie in more placesMatthew Bauer2018-11-13
| | | | | | | | | | | | 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.
* linux: inside nix-shell, allow make menuconfigMatthieu Coudron2018-10-05
| | | | Use stdenv.lib.inNixShell to check for nix-shell and potentially bring pkgconfig/ncurses.
* linux kernel: increase build timeout from 2 to 4 hrs (#47564)xeji2018-10-01
| | | | We've recently seen a lot of kernel build timeouts on hydra, so let's increase the timeout.
* kernel: increase build timeout to two hoursWael M. Nasreddine2018-09-04
|
* treewide: Remove usage of remaining redundant platform compatability stuffJohn Ericson2018-08-30
| | | | | Want to get this out of here for 18.09, so it can be deprecated thereafter.
* [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
* kernel: Reduce peak disk usage during buildTuomas Tynkkynen2018-07-24
| | | | | | | | | | | 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.
* kernel: Respect makeFlagsArray in more placesTuomas Tynkkynen2018-07-24
| | | | It's used two lines above, so be consistent.
* kernel: Remove dead codeTuomas Tynkkynen2018-07-24
| | | | It's set in the same phase
* kernel: Remove empty preUnpackTuomas Tynkkynen2018-07-24
|
* pkgs/*: remove unreferenced function argumentsvolth2018-07-21
|
* linux: translate config to structured configDan Peebles2018-06-30
| | | | | | | | | | | | 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]
* linuxPackages_custom: fix missing argument and add testRobert Hensing2018-04-07
| | | | | | | | | | | | | | | 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>
* linux: Don't try to install firmware on newer kernels.Shea Levy2018-02-19
| | | | This was disabled in torvalds/linux@5620a0d1aacd554ebebcff373e31107bb1ef7769
* linuxManualConfig: Fix build on non-modular kernelsShea Levy2018-02-19
|
* kernel: Add deps for building 4.16Tuomas Tynkkynen2018-02-16
|
* linux: use absolute paths for compilersVladimír Čunát2018-02-12
| | | | | HOSTCC was taking precedence before stdenv's normal CC, at least in case of non-cross build.
* linuxPackages: build by kernel's stdenvVladimír Čunát2018-02-11
|
* linux: Use concatStringsSepTuomas Tynkkynen2018-02-11
|
* kernel: buildLinux replaces import ./generic.nixMatthieu Coudron2018-02-07
| | | | | | | - 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