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

Issue 609250 link

Starred by 1 user

Issue metadata

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



Sign in to add a comment

GN: Simple Chrome: nyan configuration (use_ozone = false) fails to compile

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

Issue description

When attempting to build in a Simple Chrome environment with 'use_ozone = false' (and ozone related args removed), we get the following error.

If this is something we plan to support we need to fix it, otherwise we should add a GN assert.


FAILED: obj/third_party/angle/angle_common/utilities.o 
/usr/local/google/home/stevenjb/Work/chrome/.cros_cache/common/goma+2/gomacc armv7a-cros-linux-gnueabi-g++ -B/usr/local/google/home/stevenjb/Work/chrome/.cros_cache/chrome-sdk/tarballs/veyron_minnie+8276.0.0+target_toolchain/usr/x86_64-pc-linux-gnu/armv7a-cros-linux-gnueabi/binutils-bin/2.25.51-gold -MMD -MF obj/third_party/angle/angle_common/utilities.o.d -DV8_DEPRECATION_WARNINGS -DENABLE_MDNS=1 -DENABLE_NOTIFICATIONS -DENABLE_PEPPER_CDMS -DENABLE_PLUGINS=1 -DENABLE_PDF=1 -DENABLE_PRINTING=1 -DENABLE_PRINT_PREVIEW=1 -DENABLE_SPELLCHECK=1 -DUSE_UDEV -DUI_COMPOSITOR_IMAGE_TRANSPORT -DUSE_ASH=1 -DUSE_AURA=1 -DUSE_PANGO=1 -DUSE_CAIRO=1 -DUSE_CLIPBOARD_AURAX11=1 -DUSE_DEFAULT_RENDER_THEME=1 -DUSE_GLIB=1 -DUSE_NSS_CERTS=1 -DUSE_X11=1 -DENABLE_WEBRTC=1 -DENABLE_EXTENSIONS=1 -DENABLE_TASK_MANAGER=1 -DENABLE_THEMES=1 -DENABLE_CAPTIVE_PORTAL_DETECTION=1 -DENABLE_SESSION_SERVICE=1 -DENABLE_APP_LIST=1 -DENABLE_SUPERVISED_USERS=1 -DENABLE_SERVICE_DISCOVERY=1 -DENABLE_AUTOFILL_DIALOG=1 -DIMAGE_LOADER_EXTENSION=1 -DENABLE_TOPCHROME_MD=1 -DENABLE_WAYLAND_SERVER=1 -DFULL_SAFE_BROWSING -DSAFE_BROWSING_CSD -DSAFE_BROWSING_DB_LOCAL -DCHROMIUM_BUILD -DENABLE_MEDIA_ROUTER=1 -DFIELDTRIAL_TESTING_ENABLED -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -DCOMPONENT_BUILD -DOS_CHROMEOS -DNDEBUG -DNVALGRIND -DDYNAMIC_ANNOTATIONS_ENABLED=0 -I../.. -Igen -I../../third_party/angle/include -I../../third_party/angle/src -Igen/angle -fno-strict-aliasing -funwind-tables -fPIC -pipe -pthread -march=armv7-a -mfloat-abi=hard -mthumb -mtune=generic-armv7-a -mfpu=neon -O2 -fno-ident -fdata-sections -ffunction-sections -g2 -gsplit-dwarf --sysroot=../../../.cros_cache/chrome-sdk/tarballs/veyron_minnie+8276.0.0+sysroot_chromeos-base_chromeos-chrome.tar.xz -fvisibility=hidden -Wno-psabi -Wno-unused-local-typedefs -Wno-maybe-uninitialized -Wno-missing-field-initializers -Wno-unused-parameter -fno-threadsafe-statics -fvisibility-inlines-hidden -std=gnu++11 -fno-rtti -fno-exceptions -Wno-deprecated -Wno-narrowing -Wno-literal-suffix -c ../../third_party/angle/src/common/utilities.cpp -o obj/third_party/angle/angle_common/utilities.o
GOMA: Starting compiler proxy
In file included from ../../third_party/angle/include/EGL/egl.h:39:0,
                 from ../../third_party/angle/src/common/utilities.h:12,
                 from ../../third_party/angle/src/common/utilities.cpp:9:
../../third_party/angle/include/EGL/eglplatform.h:111:22: fatal error: X11/Xlib.h: No such file or directory
 #include <X11/Xlib.h>
                      ^
compilation terminated.


The exact contents of args.gn is:

is_asan = false
target_cpu = "arm"
enable_nacl = true
use_goma = true
cros_target_ar = "armv7a-cros-linux-gnueabi-ar"
arm_float_abi = "hard"
is_component_build = true
use_v4l2_codec = true
cros_target_cxx = "armv7a-cros-linux-gnueabi-g++ -B/usr/local/google/home/stevenjb/Work/chrome/.cros_cache/chrome-sdk/tarballs/veyron_minnie+8276.0.0+target_toolchain/usr/x86_64-pc-linux-gnu/armv7a-cros-linux-gnueabi/binutils-bin/2.25.51-gold"
is_clang = false
goma_dir = "/usr/local/google/home/stevenjb/Work/chrome/.cros_cache/common/goma+2"
cros_target_cc = "armv7a-cros-linux-gnueabi-gcc -B/usr/local/google/home/stevenjb/Work/chrome/.cros_cache/chrome-sdk/tarballs/veyron_minnie+8276.0.0+target_toolchain/usr/x86_64-pc-linux-gnu/armv7a-cros-linux-gnueabi/binutils-bin/2.25.51-gold"
target_sysroot = "/usr/local/google/home/stevenjb/Work/chrome/.cros_cache/chrome-sdk/tarballs/veyron_minnie+8276.0.0+sysroot_chromeos-base_chromeos-chrome.tar.xz"
system_libdir = "lib"
use_evdev_gestures = true
use_cras = true
use_debug_fission = true
is_debug = false
use_v4lplugin = true
use_ozone = false
clang_use_chrome_plugins = false
enable_remoting = true
arm_use_neon = true
linux_use_bundled_binutils = false
use_system_harfbuzz = true
use_xkbcommon = true
icu_use_data_file = true
symbol_level = 2
target_os = "chromeos"

 

Comment 1 by piman@chromium.org, May 4 2016

I don't think minnie has X11 (needed for !ozone). Only nyan does according to ihf@.
Owner: ihf@chromium.org
Status: Assigned (was: Untriaged)
Building with nyan I get:

../../third_party/angle/src/libANGLE/renderer/gl/glx/FunctionsGLX.cpp:15:20: fatal error: GL/glx.h: No such file or directory
 #include <GL/glx.h>
                    ^
compilation terminated.


args.gn:

 $ cat out_$SDK_BOARD/Release/args.gn
is_asan = false
target_cpu = "arm"
enable_nacl = true
use_goma = true
cros_target_ar = "armv7a-cros-linux-gnueabi-ar"
arm_float_abi = "hard"
is_component_build = true
use_v4l2_codec = true
cros_target_cxx = "armv7a-cros-linux-gnueabi-g++ -B/usr/local/google/home/stevenjb/Work/chrome/.cros_cache/chrome-sdk/tarballs/nyan+8276.0.0+target_toolchain/usr/x86_64-pc-linux-gnu/armv7a-cros-linux-gnueabi/binutils-bin/2.25.51-gold"
is_clang = false
goma_dir = "/usr/local/google/home/stevenjb/Work/chrome/.cros_cache/common/goma+2"
cros_target_cc = "armv7a-cros-linux-gnueabi-gcc -B/usr/local/google/home/stevenjb/Work/chrome/.cros_cache/chrome-sdk/tarballs/nyan+8276.0.0+target_toolchain/usr/x86_64-pc-linux-gnu/armv7a-cros-linux-gnueabi/binutils-bin/2.25.51-gold"
target_sysroot = "/usr/local/google/home/stevenjb/Work/chrome/.cros_cache/chrome-sdk/tarballs/nyan+8276.0.0+sysroot_chromeos-base_chromeos-chrome.tar.xz"
system_libdir = "lib"
use_evdev_gestures = false
use_cras = true
use_debug_fission = true
is_debug = false
use_v4lplugin = false
use_ozone = false
clang_use_chrome_plugins = false
enable_remoting = true
arm_use_neon = true
linux_use_bundled_binutils = false
use_system_harfbuzz = true
use_xkbcommon = false
icu_use_data_file = true
symbol_level = 2
target_os = "chromeos"

(Note: I did not edit the args.gn above)

Comment 4 by piman@chromium.org, May 4 2016

That looks like it's picking up GLX instead of EGL. I'm not sure I remember how that is done. Are there GYP flags for that config that were not ported to GN?

Comment 5 by piman@chromium.org, May 4 2016

Cc: cwallez@chromium.org
Actually, no, we always require GLX to be there with X11, that's true in gyp as well.

This part is in ANGLE. It looks like angle_enable_gl is always set to true on linux in gn, whereas in gyp it's only set on !chromeos - my guess is that it's the difference.
Cc: fjhenigman@chromium.org
Frank is working on our ChromeOS port.
Owner: steve...@chromium.org
Status: Started (was: Assigned)
I have a potential fix here: https://chromium-review.googlesource.com/#/c/342740/

I have confirmed that with that addressed, building the following succeeds:

chrome chrome_sandbox nacl_helper chromiumos_preflight

target_os = "chromeos" and use_ozone = false should result in ANGLE GLX backend being compiled.
This config is intended for Linux desktop chromeos=1 build.

For real chromeos you should have use_ozone = true, except for nyan.
I don't think we want to make any change for nyan, unless it blocks somebody - we'd prefer to wait for nyan to support use_ozone.

And, we need to modify our GN files to support use_ozone = true, as we've only made the GYP change so far.

Bottom line - I think it's expected that use_ozone = false will fail to compile on ChromeOS.
Owner: ynovikov@chromium.org
Status: Assigned (was: Started)
Summary: GN: Simple Chrome: nyan configuration (use_ozone = false) fails to compile (was: GN: Simple Chrome: use_ozone = false fails to compile)
This issue is specifically for nyan at this point. Updated the description.

The current behavior may be "expected" but it is surprising.

We should prioritize fixing nyan (and any active configuration) for GN. I do not particularly care how, but please prioritize the effort.


Project Member

Comment 10 by bugdroid1@chromium.org, May 6 2016

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

commit 72ae51fd50edfa7120c291a556da1d7f7f2046f7
Author: stevenjb <stevenjb@chromium.org>
Date: Fri May 06 17:54:00 2016

Roll src/third_party/angle/ bbd663a2d..a314b61c1 (7 commits).

BUG= 609250 
TBR=jmadill@chromium.org

CQ_INCLUDE_TRYBOTS=tryserver.chromium.win:win_optional_gpu_tests_rel;tryserver.chromium.mac:mac_optional_gpu_tests_rel;tryserver.chromium.linux:linux_optional_gpu_tests_rel

https://chromium.googlesource.com/angle/angle.git/+log/bbd663a2d36e..a314b61c16be

$ git log bbd663a2d..a314b61c1 --date=short --no-merges --format='%ad %ae %s'
2016-03-10 oetuaho@nvidia.com Determine D3D texture storage size with correct base level
2016-05-05 stevenjb@chromium.org Disable angle_enable_gl on chromeos
2016-05-04 jbauman@chromium.org Fix eglStreamConsumerAcquireKHR
2016-04-26 jmadill@chromium.org Pass ContextImpl to Framebuffer methods instead of ContextState.
2016-05-03 jmadill@chromium.org Add a ContextImpl class.
2016-04-29 oetuaho@nvidia.com Add missing errors specified by OES_EGL_image_external
2016-04-28 jmadill@chromium.org Add script for updating Canary ANGLE DLLs.

Review-Url: https://codereview.chromium.org/1956793002
Cr-Commit-Position: refs/heads/master@{#392090}

[modify] https://crrev.com/72ae51fd50edfa7120c291a556da1d7f7f2046f7/DEPS

Cc: ynovikov@chromium.org
Owner: steve...@chromium.org
Status: Fixed (was: Assigned)
Closing this issue. The angle issue remains open, it can be resolved or used to track a better fix.

Thanks for fixing this, Steven!
Regarding the expected behavior - I got a bit confused between the current ANGLE usage in Chrome, and our future plans to expand on it.
The current usage should work everywhere, of course.
For the future plans, we'll wait for nyan to support use_ozone=true before enabling angle_enable_gl on it.
@ynovikov:

I don't think I understand the implications of "we'll wait for nyan to support use_ozone=true before enabling angle_enable_gl on it".

Is there any part of that statement that might mean that we're blocked on something before we can build nyan w/ GN? I'm hopefully interpreting that as, we can build nyan w/ use_ozone=false w/ GN, we just won't get angle+GL support?
Your hopeful interpretation is correct.
Bulk verified
Status: Verified (was: Fixed)
bulk verified

Sign in to add a comment