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

Issue 800667 link

Starred by 2 users

Issue metadata

Status: Fixed
Owner:
Closed: Feb 2018
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Chrome
Pri: 3
Type: Bug



Sign in to add a comment

"can't find call dest symbol" warning on 4.14 kernel

Project Member Reported by kirtika@google.com, Jan 10 2018

Issue description

OS Version: R65, ToT as of 1/8.
Copied from b/71708351 to keep bug public.

Attempting to build 4.14 kernel on Eve gives me a spew like so. 
The build goes on fine though..haven't loaded the kernel yet. 

kernel/sched/rt.o: warning: objtool: __enqueue_rt_entity()+0x243: can't find call dest symbol at offset 0x142b
  AR      sound/soc/xtensa/built-in.o
  CC [M]  drivers/net/ethernet/intel/e100.o
  AR      crypto/crypto_simd.o
  CC      kernel/sched/deadline.o
drivers/of/irq.o: warning: objtool: of_irq_init()+0x19a: can't find call dest symbol at offset 0x192
  CC      drivers/media/rc/keymaps/rc-avermedia-m135a.o
drivers/iio/inkern.o: warning: objtool: iio_channel_read()+0x9f: can't find call dest symbol at offset 0xba
  CC      drivers/of/of_net.o
  AR      drivers/net/ethernet/mellanox/built-in.o
fs/ext4/ialloc.o: warning: objtool: ext4_read_inode_bitmap()+0x46e: can't find call dest symbol at offset 0xbb6
  CC      lib/strncpy_from_user.o
  CC [M]  fs/nfs/client.o
  CC      drivers/pci/pci.o
  CC [M]  net/sunrpc/auth_gss/gss_rpc_xdr.o
  AR      drivers/net/wireless/cisco/built-in.o
mm/mmu_notifier.o: warning: objtool: .text.__x86.indirect_thunk.r8+0x0: can't find call dest symbol at offset 0x9
  LD [M]  crypto/ecdh_generic.o
  AR      drivers/net/wireless/intel/built-in.o
  CC      arch/x86/kernel/fpu/regset.o
  AR      fs/kernfs/built-in.o
  CC      fs/jbd2/revoke.o
  AR      drivers/net/ethernet/intel/e1000/built-in.o
  CC [M]  drivers/net/usb/r8152.o
  CC      drivers/mmc/core/pwrseq_emmc.o
drivers/md/persistent-data/dm-btree.o: warning: objtool: insert()+0x238: can't find call dest symbol at offset 0x13ff
  AR      sound/soc/zte/built-in.o


Guenter Roeck did some digging, pasting his findings from b/71708351:
"I tried "cros_workon_make --board eve sys-kernel/chromeos-kernel-4_14" as well as "USE="kasan pcserial tty_console_ttyS0" emerge-eve chromeos-kernel-4_14" in my chroot, but I don't see the problem. Did you update your chroot recently?"

"Problem shows up after updating my chroot. This may be a side effect / result of the new compilers and Sprectre mitigation."

"Reverting commit e6e13d175846d ("cros-kernel2: Use new branch option.") from chromiumos-overlay 'fixes' the problem. It appears that code generated by the new compiler confuses objtool."



 
is priority for this right? 3?
Cc: cmt...@chromium.org

Comment 3 by groeck@chromium.org, Jan 18 2018

I think this may be fixed with  crbug.com/802348  and CL:870993, ie with the next stable release merge (v4.14.14).

Comment 4 by groeck@chromium.org, Jan 18 2018

Add-on to #3: Yes, v4.14.14 is supposed to fix the problem; see upstream commit  258c76059cece ("objtool: Allow alternatives to be ignored"). Unfortunately, the 'fix' causes objtool to crash. Either our internal version of gcc with retpoline support generates different code than the upstream version and confuses objtool, or objtool wasn't tested with a compiler supporting retpoline changes.

Comment 5 by groeck@chromium.org, Jan 25 2018

Owner: groeck@chromium.org
Status: Assigned (was: Untriaged)
Project Member

Comment 6 by bugdroid1@chromium.org, Jan 31 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/overlays/chromiumos-overlay/+/00f128a32452c5077663957272799da86fcdf544

commit 00f128a32452c5077663957272799da86fcdf544
Author: Guenter Roeck <groeck@chromium.org>
Date: Wed Jan 31 01:47:19 2018

cros-kernel2: Set indirect branch options only if supported and needed

Indirect branch options are expected to be set in the kernel source.
This is currently supported in chromeos-4.14 and chromeos-4.4.
Also, not all compilers support the same set of options.
Only set options as needed and supported.

BUG=chromium:805584,  chromium:800667 
TEST=Build and test images for all kernel versions
CQ-DEPEND=CL:881921

Change-Id: I512abe4e8d7d7fa296548c4870aeef6c614dd83a
Signed-off-by: Guenter Roeck <groeck@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/881551
Reviewed-by: Mike Frysinger <vapier@chromium.org>

[modify] https://crrev.com/00f128a32452c5077663957272799da86fcdf544/eclass/cros-kernel2.eclass

Project Member

Comment 7 by bugdroid1@chromium.org, Feb 9 2018

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

commit b5383e7311bc6c1fde0aa3584fa85fca62998d50
Author: Guenter Roeck <groeck@chromium.org>
Date: Fri Feb 09 03:43:50 2018

Revert "CHROMIUM: Revert "objtool: Allow alternatives to be ignored""

This reverts commit e9eb28165cd73ba2355d77cd14d9d63869123073.

Upstream stable release v4.14.18 fixes the problem we avoided by reverting
the original patch. The problem was only seen in chromeos-4.14 if retpoline
support was enabled through KCFLAGS. This is no longer the case (retpoline
support is now enabled with CONFIG_RETPOLINE), thus it is safe to restore
the original patch. This is a prerequisite for the merge of v4.14.18.

BUG= chromium:800667 ,  chromium:802348 ,  chromium:810185 
TEST=Build and run on affected system running chromeos-4.14

Change-Id: I010644f9f84d50d24c733147a754919a1ed8515f
Signed-off-by: Guenter Roeck <groeck@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/908532
Reviewed-by: Jorge Lucangeli Obes <jorgelo@chromium.org>
Reviewed-by: Dylan Reid <dgreid@chromium.org>

[modify] https://crrev.com/b5383e7311bc6c1fde0aa3584fa85fca62998d50/tools/objtool/check.c
[modify] https://crrev.com/b5383e7311bc6c1fde0aa3584fa85fca62998d50/tools/objtool/check.h

Comment 8 by groeck@chromium.org, Feb 13 2018

Status: Fixed (was: Assigned)

Sign in to add a comment