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

Issue 600429 link

Starred by 2 users

Issue metadata

Status: Fixed
Owner:
Closed: Apr 2016
Cc:
EstimatedDays: ----
NextAction: ----
OS: ----
Pri: 2
Type: Bug



Sign in to add a comment

Gyp build not processing hard dependency correctly

Project Member Reported by jam@chromium.org, Apr 4 2016

Issue description

See this build flake: https://build.chromium.org/p/chromium/builders/Win/builds/42017

FAILED: ninja -t msvc -e environment.x86 -- C:\b\build\goma/gomacc "C:\b\depot_tools\win_toolchain\vs_files\95ddda401ec5678f15eeed01d2bee08fcbc5ee97\VC\bin\amd64_x86\cl.exe" /nologo /showIncludes /FC @obj\third_party\WebKit\Source\platform\testing\blink_platform_test_support.FontTestHelpers.obj.rsp /c ..\..\third_party\WebKit\Source\platform\testing\FontTestHelpers.cpp /Foobj\third_party\WebKit\Source\platform\testing\blink_platform_test_support.FontTestHelpers.obj /Fdobj\third_party\WebKit\Source\platform\blink_platform_test_support.cc.pdb 
c:\b\build\slave\win\build\src\third_party\webkit\source\platform\fonts\fontdescription.h(28): fatal error C1083: Cannot open include file: 'platform/FontFamilyNames.h': No such file or directory
FAILED: ninja -t msvc -e environment.x86 -- C:\b\build\goma/gomacc "C:\b\depot_tools\win_toolchain\vs_files\95ddda401ec5678f15eeed01d2bee08fcbc5ee97\VC\bin\amd64_x86\cl.exe" /nologo /showIncludes /FC @obj\third_party\WebKit\Source\platform\testing\blink_platform_test_support.TestPaintArtifact.obj.rsp /c ..\..\third_party\WebKit\Source\platform\testing\TestPaintArtifact.cpp /Foobj\third_party\WebKit\Source\platform\testing\blink_platform_test_support.TestPaintArtifact.obj /Fdobj\third_party\WebKit\Source\platform\blink_platform_test_support.cc.pdb 
c:\b\build\slave\win\build\src\third_party\webkit\source\platform\graphics\paint\drawingdisplayitem.h(9): fatal error C1083: Cannot open include file: 'platform/RuntimeEnabledFeatures.h': No such file or directory
ninja: build stopped: subcommand failed.


I'm confused as to why this is failing, since blink_platform_test_support target (https://code.google.com/p/chromium/codesearch#chromium/src/third_party/WebKit/Source/platform/blink_platform_tests.gyp&l=113) depends on blink_platform.gyp:blink_platform. That target (https://code.google.com/p/chromium/codesearch#chromium/src/third_party/WebKit/Source/platform/blink_platform.gyp&l=154) depends on platform_generated.gyp:make_platform_generated. That target (https://code.google.com/p/chromium/codesearch#chromium/src/third_party/WebKit/Source/platform/platform_generated.gyp&l=52) has 'hard_dependency': 1 set.

AFAIK in gyp, that should be enough to ensure that blink_platform_test_support.FontTestHelpers isn't build before the generated files are. Is this correct?
 
GYP's notion of hard_dependency only goes one level. So if you have a chain of more than one, everything on that chain needs to be marked as a hard dependency. Have fun!

Comment 2 by jam@chromium.org, Apr 4 2016

WHOA!

I was going to ask if it's not transitive; but then I thought that's a silly question because that would make it useless. hmm.

Comment 3 by jam@chromium.org, Apr 4 2016

So I looked into this a bit. It looks like hard_dependency would need to be added to many targets in order to make sure that all the targets that have make_platform_generated as a transitive dependency build correctly.

Is this something that we want to do?
Not normally, no. I would make the target that's failing depend directly on the thing generating the file.
Project Member

Comment 5 by bugdroid1@chromium.org, Apr 5 2016

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

commit 64a7db80625efdcd963a090ab094aa5f85758211
Author: jam <jam@chromium.org>
Date: Tue Apr 05 17:28:01 2016

Fix compile flake in gyp builds inside Blink.

hard_dependency=1 is not transitive, so we need to add it in some other targets to avoid targets which depend on them failing the build sometimes.

BUG= 600429 

Review URL: https://codereview.chromium.org/1858273002

Cr-Commit-Position: refs/heads/master@{#385209}

[modify] https://crrev.com/64a7db80625efdcd963a090ab094aa5f85758211/third_party/WebKit/Source/platform/blink_platform.gyp
[modify] https://crrev.com/64a7db80625efdcd963a090ab094aa5f85758211/third_party/WebKit/Source/web/web.gyp

Comment 6 by jam@chromium.org, Apr 5 2016

Owner: jam@chromium.org

Comment 7 by jam@chromium.org, Apr 5 2016

Status: Fixed (was: Untriaged)

Sign in to add a comment