GN: chromeos chroot: USE=chrome_internal: No such file: mustpass_es20.run |
|||||||
Issue description
Error when building in the chroot as follows:
$ export BOARD=amd64-generic
$ USE="gn build_tests chrome_internal" emerge-${BOARD} chromeos-chrome
>>> Source configured.
>>> Compiling source in /build/amd64-generic/tmp/portage/chromeos-base/chromeos-chrome-9999/work/chromeos-chrome-9999 ...
ninja: Entering directory `c/Release'
[52/26421] ACTION //gpu/gles2_conform_support:generate_gles2_conform_tests(//build/toolchain/cros:target)
FAILED: python ../../../../../../../home/stevenjb/chrome_root/src/gpu/gles2_conform_support/generate_gles2_conform_tests.py /var/cache/chromeos-chrome/chrome-src-internal/src/out_amd64-generic/Release/gen/gpu/gles2_conform_support
Traceback (most recent call last):
File "../../../../../../../home/stevenjb/chrome_root/src/gpu/gles2_conform_support/generate_gles2_conform_tests.py", line 63, in <module>
sys.exit(main(sys.argv[1:]))
File "../../../../../../../home/stevenjb/chrome_root/src/gpu/gles2_conform_support/generate_gles2_conform_tests.py", line 56, in main
GenerateTests(file)
File "../../../../../../../home/stevenjb/chrome_root/src/gpu/gles2_conform_support/generate_gles2_conform_tests.py", line 29, in GenerateTests
"../../third_party/gles2_conform/GTF_ES/glsl/GTF/mustpass_es20.run")
File "../../../../../../../home/stevenjb/chrome_root/src/gpu/gles2_conform_support/generate_gles2_conform_tests.py", line 14, in ReadFileAsLines
file = open(filename, "r")
IOError: [Errno 2] No such file or directory: '../../third_party/gles2_conform/GTF_ES/glsl/GTF/mustpass_es20.run'
I suspect this may be related to disabling internal_khronos_glcts_tests in issu 607669
,
May 6 2016
@kbr - can you take a look at this?
,
May 6 2016
+ullysses.a.eoff@
,
May 6 2016
Let me point out that these targets are working in GN on Linux. Can you please compare to that build? Maybe Chrome OS isn't handled in the build files. Actually, that is likely.
,
May 6 2016
Previous args were incorrect (not internal). Here is the args.gn file generated for Chrome OS with chrome_internal: is_asan = false target_cpu = "x64" ozone_auto_platforms = false enable_nacl = true ozone_platform_gbm = true is_official_build = true cros_target_ar = "x86_64-cros-linux-gnu-ar" use_v4l2_codec = true cros_target_cxx = "x86_64-cros-linux-gnu-g++ -B/usr/x86_64-pc-linux-gnu/x86_64-cros-linux-gnu/binutils-bin/2.25.51-gold" is_clang = false pkg_config = "/build/amd64-generic/build/bin/pkg-config" cros_target_cc = "x86_64-cros-linux-gnu-gcc -B/usr/x86_64-pc-linux-gnu/x86_64-cros-linux-gnu/binutils-bin/2.25.51-gold" target_sysroot = "/build/amd64-generic" system_libdir = "lib64" use_evdev_gestures = true use_cras = true use_debug_fission = false use_system_minigbm = true is_chrome_branded = true ozone_platform = "gbm" is_debug = false use_ozone = true use_v4lplugin = false clang_use_chrome_plugins = false enable_remoting = true linux_use_bundled_binutils = false internal_gles2_conform_tests = true use_system_harfbuzz = true internal_khronos_glcts_tests = true use_xkbcommon = true icu_use_data_file = true target_os = "chromeos" symbol_level = 2
,
May 6 2016
Building gles2_conform_test does indeed work for me on linux: args.gn = is_debug = false use_goma = true is_official_build = true is_chrome_branded = true internal_gles2_conform_tests = true internal_khronos_glcts_tests = true However khronos_glcts_test fails to compile for me on linux.
,
May 6 2016
Building gles2_conform_test on linux-chromeos also works: args.gn = is_debug = false use_goma = true is_official_build = true is_chrome_branded = true internal_gles2_conform_tests = true internal_khronos_glcts_tests = true So something about the chroot args is causing the problem. I will see if I can identify what it is.
,
May 7 2016
Disable internal_khronos_glcts_tests. They aren't maintained yet. If something needs to be fixed in the gles2_conform_tests build setup to handle chroot'ed environments I'll be happy to help.
,
May 7 2016
I'm not sure why we don't have this problem outside the chroot, but what I noticed was that mustpass_es20.run appears to get built in generate_khronos_glcts_tests.py which seems problematic. I suspect that there is a subtle difference in dependencies that allows generate_khronos_glcts_tests.py to run even when internal_khronos_glcts_tests is not built, but only sometimes?
,
May 7 2016
stevenjb@: I think you are misreading the code. It should be generated by generate_gles2_conform_tests.py, not generate_khronos_glcts_tests.py . https://code.google.com/p/chromium/codesearch#chromium/src/gpu/gles2_conform_support/generate_gles2_conform_tests.py&q=mustpass_es20.run&sq=package:chromium&l=29 A builder like this one: https://build.chromium.org/p/chromium.gpu.fyi/builders/GPU%20Linux%20Builder which builds the gles2_conform_test target for consumption by the GPU testers does *not* build internal_khronos_glcts_tests. Please, stop setting the internal_khronos_glcts_tests GN arg on your bot, and let's debug from that point.
,
May 9 2016
The line in comment #11 just calls ReadFileAsLines. ReadAsFileLines seems to do what it says - read a file, not create it: https://code.google.com/p/chromium/codesearch#chromium/src/gpu/gles2_conform_support/generate_gles2_conform_tests.py&q=ReadFileAsLines&sq=package:chromium&type=cs&l=12 I'm not entirely sure why that builder works correctly. Maybe GN is executing python in a way such that python is ignoring missing files? We did disable internal_khronos_glcts_tests here: https://chromium-review.googlesource.com/#/c/341300/2/chromeos-base/chromeos-chrome/chromeos-chrome-9999.ebuild but it still fails building in the chroot. I will continue to see if I can find a combination of args.gn that fails outside of the chroot. In the meanwhile we are including both the internal_khronos_glcts_tests and internal_gles_conform args, but are temporarily not actually building khronos_glcts_test{_windowless} or gles2_conform_test{_windowless}.
,
May 9 2016
OK, I did some more digging and figured out some of the confusion. Somehow I was under the impression that mustpass_es20.run was a generated file. It turns out it is not. It exists in chrome/src/third_party/gles2_conform/GTF_ES/glsl/GTF/. The problem appears to be that the python script is using a relative path: ../../third_party/gles2_conform/GTF_ES/glsl/GTF/mustpass_es20.run When running in the chroot, with USE=chrome_internal, the CWD is /var/cache/chromeos-chrome/chrome-src-internal/src/out_amd64-generic/Release There is no /var/cache/chromeos-chrome/chrome-src-internal/src/third_party/gles2_conform. I'm not sure why this is different in GN, but we have had issues with 'cd' calls in the ebuild before, so I will start looking into that.
,
May 10 2016
I did some more testing and it looks like GN is putting the output somewhere slightly different. This causes chromeos (chroot) builds, which only selectively copies the contents of src/third_party for tests, to be unable to find mustpass_es20.run. Since we do not run these tests in chromeos builders, we can deprioritize this for now. The tests will be disabled with this CL: https://chromium-review.googlesource.com/#/c/343211/
,
May 11 2016
The following revision refers to this bug: https://chromium.googlesource.com/chromiumos/overlays/chromiumos-overlay/+/572e0f52873d17be767c49db1b7d8acf5f65bcb3 commit 572e0f52873d17be767c49db1b7d8acf5f65bcb3 Author: Steven Bennetts <stevenjb@chromium.org> Date: Sat May 07 00:27:15 2016 GN: Re-enable internal_khronos_glcts but do not build khronos_glcts_test or gles2_conform_test Disabling khronos_glcts_test turned out to only be a partial solution. There are dependencies between khronos_glcts_test and gles2_conform_test. Instead, set the GN args, but do not build the targets (for now). BUG= chromium:609958 TEST=Build chromiumos-chromium in the chrrot with build_tests and chrome_internal USE flags Change-Id: Ib8daf9ef1d9b0e1c7b9e392bd28f13abb975c226 Reviewed-on: https://chromium-review.googlesource.com/343211 Commit-Ready: Steven Bennetts <stevenjb@chromium.org> Tested-by: Steven Bennetts <stevenjb@chromium.org> Reviewed-by: Steven Bennetts <stevenjb@chromium.org> Reviewed-by: Ryo Hashimoto <hashimoto@chromium.org> [modify] https://crrev.com/572e0f52873d17be767c49db1b7d8acf5f65bcb3/chromeos-base/chromeos-chrome/chromeos-chrome-9999.ebuild
,
Jun 21 2016
Feel free to drop the "blocking:433082" if we don't need to fix this before we drop GYP support.
,
Jun 22 2016
,
Jul 1 2016
,
Apr 22 2017
Obsolete.
,
Apr 22 2017
Obsolete. |
|||||||
►
Sign in to add a comment |
|||||||
Comment 1 by steve...@chromium.org
, May 6 2016Owner: ihf@chromium.org
Status: Assigned (was: Started)