New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.

Issue 919701 link

Starred by 2 users

Issue metadata

Status: Fixed
Owner:
Closed: Jan 19
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Chrome
Pri: 2
Type: Bug



Sign in to add a comment

kernel defconfig: what to do about compiler options

Project Member Reported by diand...@chromium.org, Jan 8

Issue description

Copied from the desc of CL:1330711:

It appears that upstream now accounts for your compiler version in your config.  This means that the kernel config that we're using isn't what's actually in our split config.

---

While one can argue about the pros and cons of the split config, it is what we have right now.  Unless we convince ourselves that we should move to something else, we need to figure out what to do here, especially since some config options we might want might _depend_ on the compiler.


For now I'm proposing that on kernel 4.19 and above we force running "olddefconfig" in the chroot using all the correct compilers.

---

See <https://chromium-review.googlesource.com/c/chromiumos/third_party/kernel/+/1330711> for the proposal.
 
What are the configs that are compiler specific? I'm guessing that it's the following:

CC_IS_GCC
GCC_VERSION
CC_IS_CLANG
CLANG_VERSION
Project Member

Comment 2 by bugdroid1@chromium.org, Jan 19 (3 days ago)

Labels: merge-merged-chromeos-4.19
The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/third_party/kernel/+/a40c0124da7a1b7d91521b5a2a135592df0ae75f

commit a40c0124da7a1b7d91521b5a2a135592df0ae75f
Author: Douglas Anderson <dianders@chromium.org>
Date: Sat Jan 19 08:13:40 2019

CHROMIUM: scripts: Account for clang in the kernel config scripts

It appears that upstream now accounts for your compiler version in
your config.  This means that the kernel config that we're using isn't
what's actually in our split config.

Given that the compiler version / options affect the config, we should
enforce working with the split config to use the same compiler version
that the kernel will be compiled on.  This makes it very clear what
our options will be and also allows us to enable config options that
might only be available with certain compilers.

One big downside here is that you'll only be able to normalize the
config if you've got _all_ the cross compilers installed.  You'll also
only be able to normalize inside the chroot.

NOTE: there's some duplication here with the cros-kernel2.eclass and
various overlays in terms of deciding what compiler will be used.  I'm
not sure how to fix this without turning the config normalization into
an ebuild command.

ALSO NOTE: If there is some case where someone will need to compile
the kernel with a different compiler (maybe by specifying USE flags)
things should still be OK.  The kernel config system should adapt the
config at build time.

BUG= chromium:919701 
TEST=Normalize the config and see that it looks sane.

Change-Id: I47fc378e4a7a34352a598a3df3d722d189485a5c
Signed-off-by: Douglas Anderson <dianders@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/1330711
Reviewed-by: Yu Zhao <yuzhao@chromium.org>
Reviewed-by: Nicolas Boichat <drinkcat@chromium.org>

[modify] https://crrev.com/a40c0124da7a1b7d91521b5a2a135592df0ae75f/chromeos/scripts/kernelconfig

Project Member

Comment 3 by bugdroid1@chromium.org, Jan 19 (3 days ago)

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/third_party/kernel/+/1632a6e133a57786b3de0c1c0e2c9ebcc0240a41

commit 1632a6e133a57786b3de0c1c0e2c9ebcc0240a41
Author: Douglas Anderson <dianders@chromium.org>
Date: Sat Jan 19 08:13:42 2019

CHROMIUM: config: Normalize (clang vs gcc)

After CL:1330711 ("CHROMIUM: scripts: Account for clang in the kernel
config scripts") we need a normalization.  Do it.

BUG= chromium:919701 
TEST=Build and boot

Change-Id: Idf6370bafe7f3e3ef4df14a1a42b845176452249
Signed-off-by: Douglas Anderson <dianders@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/1330712
Reviewed-by: Nicolas Boichat <drinkcat@chromium.org>

[modify] https://crrev.com/1632a6e133a57786b3de0c1c0e2c9ebcc0240a41/chromeos/config/x86_64/common.config
[modify] https://crrev.com/1632a6e133a57786b3de0c1c0e2c9ebcc0240a41/chromeos/config/i386/common.config
[modify] https://crrev.com/1632a6e133a57786b3de0c1c0e2c9ebcc0240a41/chromeos/config/base.config
[modify] https://crrev.com/1632a6e133a57786b3de0c1c0e2c9ebcc0240a41/chromeos/config/armel/common.config
[modify] https://crrev.com/1632a6e133a57786b3de0c1c0e2c9ebcc0240a41/chromeos/config/arm64/common.config

Project Member

Comment 4 by bugdroid1@chromium.org, Jan 19 (3 days ago)

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/third_party/kernel/+/2cf2c17c8a4398bb494b2996818bcc617d3ad3c6

commit 2cf2c17c8a4398bb494b2996818bcc617d3ad3c6
Author: Douglas Anderson <dianders@chromium.org>
Date: Sat Jan 19 08:13:51 2019

CHROMIUM: config: Normalize (KCOV, CC_HAS_SANCOV_TRACE_PC)

CL:1327385 ("CHROMIUM: config: Normalize configs") took these lines
out of the split config with no explanation.  When I normalize they
show back up.

Presuambly this shows the value of chromium:919701.  Specifically the
person running the normalization must have been running somewhere that
caused gcc to report 'CONFIG_CC_HAS_SANCOV_TRACE_PC' was off.

BUG=b:119247359,  chromium:919701 
TEST=Build and boot

Change-Id: I153b5cb106fdcc0788ef6cb9ee2cbb227ec1a2c7
Signed-off-by: Douglas Anderson <dianders@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/1422864
Reviewed-by: Nicolas Boichat <drinkcat@chromium.org>

[modify] https://crrev.com/2cf2c17c8a4398bb494b2996818bcc617d3ad3c6/chromeos/config/x86_64/common.config
[modify] https://crrev.com/2cf2c17c8a4398bb494b2996818bcc617d3ad3c6/chromeos/config/base.config
[modify] https://crrev.com/2cf2c17c8a4398bb494b2996818bcc617d3ad3c6/chromeos/config/armel/common.config
[modify] https://crrev.com/2cf2c17c8a4398bb494b2996818bcc617d3ad3c6/chromeos/config/arm64/common.config

Comment 5 by diand...@chromium.org, Jan 19 (3 days ago)

Status: Fixed (was: Untriaged)

Sign in to add a comment