Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix fallout from #204 #210

Merged
merged 20 commits into from Sep 30, 2020
Merged

Fix fallout from #204 #210

merged 20 commits into from Sep 30, 2020

Conversation

samueldr
Copy link
Member

@samueldr samueldr commented Sep 30, 2020

In #204 the kernel builder was set to be strict.

All configs were re-normalized, and all the (zero) configs that changed were committed.

Note that no builds were done, since no configs changed.

It turns out that since version 5.8 of the kernel, there is a configuration option for which the build environment matters

Using the previous method to normalize would not properly prep the environment for the few "compiler identification" options. The new method does...

... except just as I'm writing those words I realize it might not because it's only been tested with cross builds.

We might need to strip some of the config options when comparing the output in the build.

Something like:

sed -e 's/CONFIG_CC_VERSION_TEXT=.*/CONFIG_CC_VERSION_TEXT=/`

Also probably for those options:

CONFIG_GCC_VERSION=90300
CONFIG_LD_VERSION=231010000
CONFIG_CLANG_VERSION=0

Since otherwise a compiler version bump will change those values too and force a normalize round for mainline-based kernels.


TODO

  • strip version

This uses the actual output expected by the build, rather than hoping
menuconfig gives the same result.

For kernels prior to 5.8 it wasn't an issue.

Starting with 5.8 the build environment will influence the actual
configuration used.

We're stripping some information when comparing.

The exact TEXT_VERSION string will change according to whether it's a
native or cross compilation.

Finally, minor version bumps are not relevant here.
This is needed because the build environment differs in the kernel
normalization step compared to the build step.
This is a temporary measure. The last changes have proven that we can't
just overrideAttrs things willy-nilly like that, and that the whole
builder is in need of a revamp.

Let's wait for the revamp, and do the minimum work required to fix the
normalization for existing builds.
@samueldr
Copy link
Member Author

This required a bunch of changes because of the way the overrideAttrs wouldn't work with the "passthrough'd" attribute.

This tells me the builder is in need of a rewrite sooner than expected, for additional good reasons though.

@samueldr samueldr merged commit ffdba8f into NixOS:master Sep 30, 2020
@samueldr samueldr deleted the fix/204-fallout branch September 30, 2020 18:30
@samueldr samueldr added the 4. type: regression Something stopped working label Oct 7, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
4. type: regression Something stopped working
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

1 participant