New issue
Advanced search Search tips

Issue 921304 link

Starred by 2 users

Issue metadata

Status: Untriaged
Owner:
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Chrome
Pri: 2
Type: Bug
Build-Toolchain

Blocking:
issue 904028



Sign in to add a comment

crosvm does not build with sanitizer flags

Project Member Reported by manojgupta@chromium.org, Jan 12

Issue description

Found this issue when trying to build a fuzzer build that includes vm_host_tools.

https://chromium-review.googlesource.com/c/chromiumos/overlays/chromiumos-overlay/+/1407457

It pulls in crosvm but crosvm does not build with sanitizers enabled.

error: linking with `x86_64-cros-linux-gnu-clang` failed: exit code: 1
  |
  = note: "x86_64-cros-linux-gnu-clang" "-Wl,--as-needed" "-Wl,-z,noexecstack" "-m64" "-L" "/usr/lib64/rust/rustlib/x86_64-unknown-linux-gnu/lib" "/build/amd64-generic/tmp/portage/chromeos-base/crosvm-0.0.1-r277/work/x86_64-cros-linux-gnu/release/deps/crosvm-8ae2ca362ae209fc.crosvm.6az6g278-cgu.0.rcgu.o" "-o" "/build/amd64-generic/tmp/portage/chromeos-base/crosvm-0.0.1-r277/work/x86_64-cros-linux-gnu/release/deps/crosvm-8ae2ca362ae209fc" "-Wl,--gc-sections" "-pie" "-Wl,-zrelro" "-Wl,-znow" "-Wl,-O1" "-nodefaultlibs" "-L" "/build/amd64-generic/tmp/portage/chromeos-base/crosvm-0.0.1-r277/work/x86_64-cros-linux-gnu/release/deps" "-L" "/build/amd64-generic/tmp/portage/chromeos-base/crosvm-0.0.1-r277/work/release/deps" "-L" "/build/amd64-generic/tmp/portage/chromeos-base/crosvm-0.0.1-r277/work/x86_64-cros-linux-gnu/release/build/x86_64-644384bdd019a148/out" "-L" "/usr/lib64/rust/rustlib/x86_64-cros-linux-gnu/lib" "-L" "/usr/lib64/rust/rustlib/x86_64-unknown-linux-gnu/lib" "-Wl,-Bstatic" "/build/amd64-generic/tmp/portage/chromeos-base/crosvm-0.0.1-r277/temp/rustcctJ6Cn/libx86_64-01406be2e2eb90e0.rlib" "-Wl,--start-group" "/build/amd64-generic/tmp/portage/chromeos-base/crosvm-0.0.1-r277/temp/rustcctJ6Cn/libstd-b86dd14ec2a0d983.rlib" "-Wl,--end-group" "/usr/lib64/rust/rustlib/x86_64-unknown-linux-gnu/lib/libcompiler_builtins-7b34a893930d7f9b.rlib" "-Wl,-Bdynamic" "-lc" "-lminijail" "-lutil" "-lutil" "-ldl" "-lrt" "-lpthread" "-lgcc_s" "-lc" "-lm" "-lrt" "-lpthread" "-lutil" "-lutil"
  = note: host_cpuid.c:8: error: undefined reference to '__sancov_lowest_stack'
          host_cpuid.c:9: error: undefined reference to '__asan_report_store4'
          host_cpuid.c:9: error: undefined reference to '__asan_report_store4'
          host_cpuid.c:9: error: undefined reference to '__asan_report_store4'
          host_cpuid.c:9: error: undefined reference to '__asan_report_store4'
          /build/amd64-generic/tmp/portage/chromeos-base/crosvm-0.0.1-r277/temp/rustcctJ6Cn/libx86_64-01406be2e2eb90e0.rlib(host_cpuid.o):host_cpuid.c:function sancov.module_ctor: error: undefined reference to '__sanitizer_cov_8bit_counters_init'
          /build/amd64-generic/tmp/portage/chromeos-base/crosvm-0.0.1-r277/temp/rustcctJ6Cn/libx86_64-01406be2e2eb90e0.rlib(host_cpuid.o):host_cpuid.c:function sancov.module_ctor: error: undefined reference to '__sanitizer_cov_pcs_init'
          /build/amd64-generic/tmp/portage/chromeos-base/crosvm-0.0.1-r277/temp/rustcctJ6Cn/libx86_64-01406be2e2eb90e0.rlib(host_cpuid.o):host_cpuid.c:function asan.module_ctor: error: undefined reference to '__asan_init'
          /build/amd64-generic/tmp/portage/chromeos-base/crosvm-0.0.1-r277/temp/rustcctJ6Cn/libx86_64-01406be2e2eb90e0.rlib(host_cpuid.o):host_cpuid.c:function asan.module_ctor: error: undefined reference to '__asan_version_mismatch_check_v8'
          clang-8: error: linker command failed with exit code 1 (use -v to see invocation)
          

error: aborting due to previous error

error: Could not compile `crosvm`.

Caused by:
  process didn't exit successfully: `rustc --crate-name crosvm src/main.rs --color always --crate-type bin --emit=dep-info,link -C opt-level=3 -C panic=abort -C lto -C overflow-checks=on -C metadata=8ae2ca362ae209fc -C extra-filename=-8ae2ca362ae209fc --out-dir /build/amd64-generic/tmp/portage/chromeos-base/crosvm-0.0.1-r277/work/x86_64-cros-linux-gnu/release/deps --target x86_64-cros-linux-gnu -C linker=x86_64-cros-linux-gnu-clang -L dependency=/build/amd64-generic/tmp/portage/chromeos-base/crosvm-0.0.1-r277/work/x86_64-cros-linux-gnu/release/deps -L dependency=/build/amd64-generic/tmp/portage/chromeos-base/crosvm-0.0.1-r277/work/release/deps --extern arch=/build/amd64-generic/tmp/portage/chromeos-base/crosvm-0.0.1-r277/work/x86_64-cros-linux-gnu/release/deps/libarch-aad6f2900ae2b3b8.rlib --extern bit_field=/build/amd64-generic/tmp/portage/chromeos-base/crosvm-0.0.1-r277/work/x86_64-cros-linux-gnu/release/deps/libbit_field-da2b78f4c2e749f9.rlib --extern byteorder=/build/amd64-generic/tmp/portage/chromeos-base/crosvm-0.0.1-r277/work/x86_64-cros-linux-gnu/release/deps/libbyteorder-c0f6fa0bb8e6a337.rlib --extern data_model=/build/amd64-generic/tmp/portage/chromeos-base/crosvm-0.0.1-r277/work/x86_64-cros-linux-gnu/release/deps/libdata_model-ac796b1f87694777.rlib --extern devices=/build/amd64-generic/tmp/portage/chromeos-base/crosvm-0.0.1-r277/work/x86_64-cros-linux-gnu/release/deps/libdevices-94d4f3841d1ab934.rlib --extern io_jail=/build/amd64-generic/tmp/portage/chromeos-base/crosvm-0.0.1-r277/work/x86_64-cros-linux-gnu/release/deps/libio_jail-5ab01f5cf7205d24.rlib --extern kernel_cmdline=/build/amd64-generic/tmp/portage/chromeos-base/crosvm-0.0.1-r277/work/x86_64-cros-linux-gnu/release/deps/libkernel_cmdline-c0da911019b85ff4.rlib --extern kernel_loader=/build/amd64-generic/tmp/portage/chromeos-base/crosvm-0.0.1-r277/work/x86_64-cros-linux-gnu/release/deps/libkernel_loader-89118bc5bfb8da70.rlib --extern kvm=/build/amd64-generic/tmp/portage/chromeos-base/crosvm-0.0.1-r277/work/x86_64-cros-linux-gnu/release/deps/libkvm-286ad55f121d1e6f.rlib --extern kvm_sys=/build/amd64-generic/tmp/portage/chromeos-base/crosvm-0.0.1-r277/work/x86_64-cros-linux-gnu/release/deps/libkvm_sys-37a58be5701f8ad9.rlib --extern libc=/build/amd64-generic/tmp/portage/chromeos-base/crosvm-0.0.1-r277/work/x86_64-cros-linux-gnu/release/deps/liblibc-782608af3352e195.rlib --extern msg_socket=/build/amd64-generic/tmp/portage/chromeos-base/crosvm-0.0.1-r277/work/x86_64-cros-linux-gnu/release/deps/libmsg_socket-857011dd25b0aa51.rlib --extern net_util=/build/amd64-generic/tmp/portage/chromeos-base/crosvm-0.0.1-r277/work/x86_64-cros-linux-gnu/release/deps/libnet_util-d8e59aa3c2665dc8.rlib --extern p9=/build/amd64-generic/tmp/portage/chromeos-base/crosvm-0.0.1-r277/work/x86_64-cros-linux-gnu/release/deps/libp9-0a00df84ab8498ad.rlib --extern qcow=/build/amd64-generic/tmp/portage/chromeos-base/crosvm-0.0.1-r277/work/x86_64-cros-linux-gnu/release/deps/libqcow-ef4ab81eeec6c0d3.rlib --extern rand=/build/amd64-generic/tmp/portage/chromeos-base/crosvm-0.0.1-r277/work/x86_64-cros-linux-gnu/release/deps/librand-7e59ed4217de77b9.rlib --extern resources=/build/amd64-generic/tmp/portage/chromeos-base/crosvm-0.0.1-r277/work/x86_64-cros-linux-gnu/release/deps/libresources-b0f9970fcb60bc6a.rlib --extern sync=/build/amd64-generic/tmp/portage/chromeos-base/crosvm-0.0.1-r277/work/x86_64-cros-linux-gnu/release/deps/libsync-34a04cbfbcf168d1.rlib --extern sys_util=/build/amd64-generic/tmp/portage/chromeos-base/crosvm-0.0.1-r277/work/x86_64-cros-linux-gnu/release/deps/libsys_util-cf06ff147ce170a5.rlib --extern vhost=/build/amd64-generic/tmp/portage/chromeos-base/crosvm-0.0.1-r277/work/x86_64-cros-linux-gnu/release/deps/libvhost-a17477ba31c50d4f.rlib --extern vm_control=/build/amd64-generic/tmp/portage/chromeos-base/crosvm-0.0.1-r277/work/x86_64-cros-linux-gnu/release/deps/libvm_control-3730317699033f86.rlib --extern x86_64=/build/amd64-generic/tmp/portage/chromeos-base/crosvm-0.0.1-r277/work/x86_64-cros-linux-gnu/release/deps/libx86_64-01406be2e2eb90e0.rlib -L native=/build/amd64-generic/tmp/portage/chromeos-base/crosvm-0.0.1-r277/work/x86_64-cros-linux-gnu/release/build/x86_64-644384bdd019a148/out` (exit code: 1)

 
Cc: iby@chromium.org

Comment 2 by iby@chromium.org, Jan 17 (6 days ago)

Blocking: 904028
Project Member

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

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

commit 5e12585c3206fb12c59687554684bb644f03af5c
Author: Manoj Gupta <manojgupta@google.com>
Date: Fri Jan 18 04:20:32 2019

cros-sanitizers: Add a helper function for sanitizer flags.

Add cros-rust-setup-sanitizers to add rust build flags for
sanitizers.
Update ecargo_build_fuzzers in cros-rust to call the new helper.

BUG=chromium:921304
TEST=USE=asan emerge-amd64-generic crosvm works.

Change-Id: Ie4903f8ba03bdf3f5b6b1407720362df2e8f322a
Reviewed-on: https://chromium-review.googlesource.com/1407825
Commit-Ready: Manoj Gupta <manojgupta@chromium.org>
Tested-by: Manoj Gupta <manojgupta@chromium.org>
Reviewed-by: Chirantan Ekbote <chirantan@chromium.org>

[modify] https://crrev.com/5e12585c3206fb12c59687554684bb644f03af5c/eclass/cros-sanitizers.eclass
[modify] https://crrev.com/5e12585c3206fb12c59687554684bb644f03af5c/eclass/cros-rust.eclass

Sign in to add a comment