New issue
Advanced search Search tips

Issue 609623 link

Starred by 1 user

Issue metadata

Status: Verified
Owner:
Closed: May 2016
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Chrome
Pri: 1
Type: Bug

Blocking:
issue 610995



Sign in to add a comment

GN: deploy_chrome expects *.so in Release/lib not Release

Project Member Reported by steve...@chromium.org, May 5 2016

Issue description

When running:

$ USE="gn" emerge-${BOARD} chromeos-chrome

We now get:

 * /home/stevenjb/chrome_root/src/third_party/chromite/bin/deploy_chrome --board=x86-generic --build-dir=/var/cache/chromeos-chrome/chrome-src/src/out_x86-generic/Release --gyp-defines=sysroot=/build/x86-generic linux_link_libbrlapi=1 use_brlapi=1  system_libdir=lib pkg-config=/build/x86-generic/build/bin/pkg-config use_v4l2_codec=1 use_v4lplugin=0 use_vtable_verify=0 use_ozone=1 use_evdev_gestures=1 use_xkbcommon=1 internal_gles2_conform_tests=0 internal_khronos_glcts_tests=0 linux_use_bundled_binutils=0 linux_use_bundled_gold=0 linux_use_gold_flags=1 linux_use_debug_fission=0 remoting=1 chromeos=1 disable_nacl=0 icu_use_data_file_flag=1 use_cras=1 use_system_minigbm=1 use_system_harfbuzz=1 asan=0 clang=0 clang_use_chrome_plugins=0 host_clang=0 ozone_platform=gbm ozone_auto_platforms=0 ozone_platform_gbm=1 target_arch=ia32 remove_webcore_debug_symbols=1 component=shared_library release_extra_cflags='-g' --nostrip --staging-dir=/build/x86-generic/tmp/portage/chromeos-base/chromeos-chrome-9999/image///opt/google/chrome --staging-flags=accessibility autotest build_tests buildcheck chrome_debug chrome_remoting elibc_glibc evdev_gestures fonts gn gold highdpi kernel_linux nacl opengles ozone ozone_platform_default_gbm ozone_platform_gbm runhooks userland_GNU v4l2_codec vaapi x86 xkbcommon --staging-only --strict --strip-bin=i686-pc-linux-gnu-strip --strip-flags=--strip-unneeded --verbose
13:57:52: DEBUG: /var/cache/chromeos-chrome/chrome-src/src/out_x86-generic/Release/chrome  ->  /build/x86-generic/tmp/portage/chromeos-base/chromeos-chrome-9999/image/opt/google/chrome/chrome
13:57:54: DEBUG: /var/cache/chromeos-chrome/chrome-src/src/out_x86-generic/Release/chrome-wrapper  ->  /build/x86-generic/tmp/portage/chromeos-base/chromeos-chrome-9999/image/opt/google/chrome/chrome-wrapper
13:57:54: DEBUG: /var/cache/chromeos-chrome/chrome-src/src/out_x86-generic/Release/chrome_100_percent.pak  ->  /build/x86-generic/tmp/portage/chromeos-base/chromeos-chrome-9999/image/opt/google/chrome/chrome_100_percent.pak
13:57:54: DEBUG: /var/cache/chromeos-chrome/chrome-src/src/out_x86-generic/Release/chrome_200_percent.pak  ->  /build/x86-generic/tmp/portage/chromeos-base/chromeos-chrome-9999/image/opt/google/chrome/chrome_200_percent.pak
13:57:54: DEBUG: /var/cache/chromeos-chrome/chrome-src/src/out_x86-generic/Release/chrome_material_100_percent.pak  ->  /build/x86-generic/tmp/portage/chromeos-base/chromeos-chrome-9999/image/opt/google/chrome/chrome_material_100_percent.pak
13:57:54: DEBUG: /var/cache/chromeos-chrome/chrome-src/src/out_x86-generic/Release/chrome_material_200_percent.pak  ->  /build/x86-generic/tmp/portage/chromeos-base/chromeos-chrome-9999/image/opt/google/chrome/chrome_material_200_percent.pak
13:57:54: DEBUG: /var/cache/chromeos-chrome/chrome-src/src/out_x86-generic/Release/keyboard_resources.pak  ->  /build/x86-generic/tmp/portage/chromeos-base/chromeos-chrome-9999/image/opt/google/chrome/keyboard_resources.pak
13:57:52: DEBUG: root@stevenjb3.sfo.corp.google.com is not a Google or Chromium user.
13:57:52: DEBUG: Skipping stats upload.
/var/cache/chromeos-chrome/chrome-src/src/out_x86-generic/Release/lib/*.so does not exist and is required.
You can bypass this error with --sloppy.
Aborting copy...


It appears that GN puts *.so in Release/ but deploy_chrome is looking for them in Release/lib/

I'm not sure what the right fix for this is.

 
Note: I encountered this with BOARD=x86-generic.

I don't recall seeing this while testing BOARD=amd64-generic, but I can't say for certain that I haven't. I am building that now.

Cc: ihf@chromium.org
This does not in fact occur with amd64-generic, but I realize that is probably because x86-generic is using a component build.

+ihf@

Comment 3 by ihf@chromium.org, May 6 2016

Yes, the files in lib are part of the component build, which we do by default on 32 bit. It looks like the build above does use "component=shared_library". You are saying all components are there just in the wrong location?
Correct. I see the .so files at the to level, Release/, with the GN build. There is no Release/lib/ directory with GN.

Cc: dpranke@chromium.org
Owner: brettw@chromium.org
Yup, this is what we do.

I don't remember why this is off-hand, either for GYP or GN; I think it has something to do with simplifying the dynamic loader paths. I don't know how hard this would be to change, or if we would want to do so; maybe brettw@ knows.

We also don't generally expect people to be reaching into subdirs of out to deploy stuff. We've gone to a reasonably large amount of effort to make sure that builds were compatible between GYP and GN for builders, but I think you're probably doing something we don't do in chrome directly.

Brett, any thoughts on why we changed where shared libraries were written in GN, and whether that should be changeable?
I think the reason we changed it is that nobody could remember why shared libraries were written somewhere else.
I don't personally have an opinion WRT where they end up, I just couldn't trivially determine how to tell deploy_chrome where to look for them.

Blocking: 610995
Project Member

Comment 9 by bugdroid1@chromium.org, May 12 2016

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/chromite/+/02004a8bd9aa8bfdb69e8f9e71fcaa2ab432afd7

commit 02004a8bd9aa8bfdb69e8f9e71fcaa2ab432afd7
Author: Steven Bennetts <stevenjb@chromium.org>
Date: Thu May 12 01:03:37 2016

deploy_chrome.py: Change location of .so files for GN

BUG= chromium:609623 
TEST=Run build_packages with USE="gn"

Change-Id: I7e12390f701379f2bc3ba3e28a1d7da8fedb057d
Reviewed-on: https://chromium-review.googlesource.com/344401
Commit-Ready: Steven Bennetts <stevenjb@chromium.org>
Tested-by: Steven Bennetts <stevenjb@chromium.org>
Reviewed-by: David James <davidjames@chromium.org>

[modify] https://crrev.com/02004a8bd9aa8bfdb69e8f9e71fcaa2ab432afd7/lib/chrome_util.py

Status: Fixed (was: Assigned)
Owner: steve...@chromium.org
Bulk verified
Status: Verified (was: Fixed)
bulk verified

Sign in to add a comment