New issue
Advanced search Search tips

Issue 856065 link

Starred by 1 user

Issue metadata

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



Sign in to add a comment

Build fails with: undefined reference to media::DuplicateFDs

Project Member Reported by nya@chromium.org, Jun 25 2018

Issue description

is_debug=true build for Chromium OS fails.

Repro steps:

1. cros chrome-sdk --internal --board=eve
2. gn args --args="$GN_ARGS is_debug=true is_official_build=false" out/$SDK_BOARD
3. ninja -C out/$SDK_BOARD -j500 chrome

[39159/39828] SOLINK ./libmedia_gpu.so
FAILED: libmedia_gpu.so libmedia_gpu.so.TOC
python "../../build/toolchain/gcc_solink_wrapper.py" --readelf="readelf" --nm="nm" --sofile="./libmedia_gpu.so" --tocfile="./libmedia_gpu.so.TOC" --output="./libmedia_gpu.so"  -- x86_64-cros-linux-gnu-clang++ -B/usr/local/google/home/nya/src/chrome/.cros_cache/chrome-sdk/tarballs/eve+10796.0.0+target_toolchain/usr/x86_64-pc-linux-gnu/x86_64-cros-linux-gnu/binutils-bin/2.27.0-gold -Wno-unknown-warning-option -shared -Wl,--fatal-warnings -fPIC -Wl,-z,noexecstack -Wl,-z,now -Wl,-z,relro -Wl,-z,defs -Wl,--as-needed -fuse-ld=gold -B../../third_party/binutils/Linux_x64/Release/bin -Wl,--threads -Wl,--thread-count=4 -Wl,--icf=all -m64 -Wl,--gdb-index --sysroot=../../../.cros_cache/chrome-sdk/tarballs/eve+10796.0.0+sysroot_chromeos-base_chromeos-chrome.tar.xz -L../../../.cros_cache/chrome-sdk/tarballs/eve+10796.0.0+sysroot_chromeos-base_chromeos-chrome.tar.xz/lib64 -Wl,-rpath-link=../../../.cros_cache/chrome-sdk/tarballs/eve+10796.0.0+sysroot_chromeos-base_chromeos-chrome.tar.xz/lib64 -L../../../.cros_cache/chrome-sdk/tarballs/eve+10796.0.0+sysroot_chromeos-base_chromeos-chrome.tar.xz/usr/lib64 -Wl,-rpath-link=../../../.cros_cache/chrome-sdk/tarballs/eve+10796.0.0+sysroot_chromeos-base_chromeos-chrome.tar.xz/usr/lib64 -L../../../.cros_cache/chrome-sdk/tarballs/eve+10796.0.0+sysroot_chromeos-base_chromeos-chrome.tar.xz/usr/local/lib64 -Wl,-rpath-link=../../../.cros_cache/chrome-sdk/tarballs/eve+10796.0.0+sysroot_chromeos-base_chromeos-chrome.tar.xz/usr/local/lib64 -L../../../.cros_cache/chrome-sdk/tarballs/eve+10796.0.0+sysroot_chromeos-base_chromeos-chrome.tar.xz/lib -Wl,-rpath-link=../../../.cros_cache/chrome-sdk/tarballs/eve+10796.0.0+sysroot_chromeos-base_chromeos-chrome.tar.xz/lib -L../../../.cros_cache/chrome-sdk/tarballs/eve+10796.0.0+sysroot_chromeos-base_chromeos-chrome.tar.xz/usr/lib -Wl,-rpath-link=../../../.cros_cache/chrome-sdk/tarballs/eve+10796.0.0+sysroot_chromeos-base_chromeos-chrome.tar.xz/usr/lib -L../../../.cros_cache/chrome-sdk/tarballs/eve+10796.0.0+sysroot_chromeos-base_chromeos-chrome.tar.xz/usr/local/lib -Wl,-rpath-link=../../../.cros_cache/chrome-sdk/tarballs/eve+10796.0.0+sysroot_chromeos-base_chromeos-chrome.tar.xz/usr/local/lib -Wl,-O1 -Wl,-O2 -Wl,--as-needed -stdlib=libc++ -o "./libmedia_gpu.so" -Wl,-soname="libmedia_gpu.so" @"./libmedia_gpu.so.rsp"
../../media/gpu/v4l2/v4l2_image_processor.cc:263: error: undefined reference to 'media::DuplicateFDs(std::__1::vector<base::ScopedGeneric<int, base::internal::ScopedFDCloseTraits>, std::__1::allocator<base::ScopedGeneric<int, base::internal::ScopedFDCloseTraits> > > const&)'
../../media/gpu/v4l2/v4l2_video_decode_accelerator.cc:2441: error: undefined reference to 'media::DuplicateFDs(std::__1::vector<base::ScopedGeneric<int, base::internal::ScopedFDCloseTraits>, std::__1::allocator<base::ScopedGeneric<int, base::internal::ScopedFDCloseTraits> > > const&)'
../../media/gpu/v4l2/v4l2_video_decode_accelerator.cc:2450: error: undefined reference to 'media::DuplicateFDs(std::__1::vector<base::ScopedGeneric<int, base::internal::ScopedFDCloseTraits>, std::__1::allocator<base::ScopedGeneric<int, base::internal::ScopedFDCloseTraits> > > const&)'
clang-7: error: linker command failed with exit code 1 (use -v to see invocation)

 

Comment 1 by nya@chromium.org, Jun 25 2018

I guess one way to fix is to set MEDIA_EXPORT to the decl of media::DuplicateFDs:
https://cs.chromium.org/chromium/src/media/base/scopedfd_helper.h?type=cs&q=media/base/scopedfd_helper.h&sq=package:chromium&g=0&l=20

But I'm not sure if that's the correct way. acourbot@, could you take a look please?


Components: OS>Kernel>Video
Labels: videoshortlist
Status: Started (was: Untriaged)
Ouch. That's bad. Thanks for letting me know, taking this!
Project Member

Comment 4 by bugdroid1@chromium.org, Jun 27 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/d6f1faaa795b8dcd4da445b9575942a4356d7f77

commit d6f1faaa795b8dcd4da445b9575942a4356d7f77
Author: Alexandre Courbot <acourbot@chromium.org>
Date: Wed Jun 27 03:31:57 2018

media/base: add MEDIA_EXPORT to DuplicateFDs declaration

MEDIA_EXPORT was missing from this declaration, causing linking errors
with component builds.

BUG= 856065 
TEST=Checked that component build completed successfully on Eve

Change-Id: I0f516115d2176294e5dbe12d86c5b43ef25bd6c0
Reviewed-on: https://chromium-review.googlesource.com/1114399
Commit-Queue: Alexandre Courbot <acourbot@chromium.org>
Reviewed-by: Shuhei Takahashi <nya@chromium.org>
Reviewed-by: Dale Curtis <dalecurtis@chromium.org>
Cr-Commit-Position: refs/heads/master@{#570654}
[modify] https://crrev.com/d6f1faaa795b8dcd4da445b9575942a4356d7f77/media/base/scopedfd_helper.h

Status: Fixed (was: Started)
Should be fixed now, thanks nya@ for reporting!

Sign in to add a comment