Closed Bug 1407289 Opened 7 years ago Closed 7 years ago

Perma mingw32 /builds/worker/workspace/build/src/gfx/angle/src/common/platform.h:64:21: fatal error: d3d11_3.h: No such file or directory

Categories

(Firefox Build System :: General, defect)

defect
Not set
normal

Tracking

(firefox58 fixed)

RESOLVED FIXED
mozilla58
Tracking Status
firefox58 --- fixed

People

(Reporter: aryx, Assigned: tjr)

References

Details

(Keywords: intermittent-failure, Whiteboard: [stockwell fixed:product])

Attachments

(2 files)

See https://treeherder.mozilla.org/#/jobs?repo=mozilla-inbound&revision=e1b5e17e59733b9572704ed9fc3d06be43ccb8bb&filter-resultStatus=testfailed&filter-resultStatus=busted&filter-resultStatus=usercancel&filter-resultStatus=runnable&filter-resultStatus=exception&filter-resultStatus=retry (original push was busted by a previous push). Build log: https://treeherder.mozilla.org/logviewer.html#?job_id=135939105&repo=mozilla-inbound [task 2017-10-10T13:54:41.078Z] 13:54:41 INFO - In file included from /builds/worker/workspace/build/src/gfx/angle/src/common/angleutils.h:12:0, [task 2017-10-10T13:54:41.079Z] 13:54:41 INFO - from /builds/worker/workspace/build/src/gfx/angle/src/compiler/preprocessor/Tokenizer.h:10, [task 2017-10-10T13:54:41.079Z] 13:54:41 INFO - from ./Tokenizer.l:917: [task 2017-10-10T13:54:41.080Z] 13:54:41 INFO - /builds/worker/workspace/build/src/gfx/angle/src/common/platform.h:64:21: fatal error: d3d11_3.h: No such file or directory [task 2017-10-10T13:54:41.080Z] 13:54:41 INFO - #include <d3d11_3.h> [task 2017-10-10T13:54:41.080Z] 13:54:41 INFO - ^ [task 2017-10-10T13:54:41.080Z] 13:54:41 INFO - compilation terminated.
Flags: needinfo?(tom)
Summary: Windows mingw32 builds broken after Bug 1371190 - Update ANGLE to chromium/3229 landed → Perma mingw32 /builds/worker/workspace/build/src/gfx/angle/src/common/platform.h:64:21: fatal error: d3d11_3.h: No such file or directory
MinGW is behind on the headers, but their upstream (Wine) has recently imported them so hopefully they should come down soon. I will fiddle a little with a local patch.
Flags: needinfo?(tom)
This build is failing on every push. Can you get it into the tree today or disable those temporarily, please?
Flags: needinfo?(tom)
(In reply to Sebastian Hengst [:aryx][:archaeopteryx] (needinfo on intermittent or backout) from comment #4) > This build is failing on every push. Can you get it into the tree today or > disable those temporarily, please? Yes, I've resolved the MinGW issue (with Jacek's help), but there are additional build failures inside Angle. However, it might be easy so I just fired off a try run to see if that resolves everything. Angle Failure: https://treeherder.mozilla.org/#/jobs?repo=try&revision=24aa6cf4235e9710c380aca2ff5faace51bfc972&selectedJob=136206739 Attempt to fix: https://treeherder.mozilla.org/#/jobs?repo=try&revision=de98b8de4ef60ce7d6a92e435464db499dabb12c
Flags: needinfo?(tom)
Depends on: 1407659
Depends on: 1407660
Angle Errors: > In file included from /builds/worker/workspace/build/src/gfx/angle/src/libANGLE/renderer/d3d/d3d11/Renderer11.h:21:0, > from /builds/worker/workspace/build/src/gfx/angle/src/libANGLE/renderer/d3d/d3d11/renderer11_utils.h:22, > from /builds/worker/workspace/build/src/gfx/angle/src/libANGLE/renderer/d3d/d3d11/RenderTarget11.h:15, > from /builds/worker/workspace/build/src/gfx/angle/src/libANGLE/renderer/d3d/d3d11/SwapChain11.h:14, > from /builds/worker/workspace/build/src/gfx/angle/src/libANGLE/renderer/d3d/d3d11/SwapChain11.cpp:9: > /builds/worker/workspace/build/src/gfx/angle/src/libANGLE/renderer/d3d/d3d11/RenderStateCache.h:29:13: error: 'BlendStateKey' is not a member of 'rx::d3d11' > struct hash<rx::d3d11::BlendStateKey> > ^~ > /builds/worker/workspace/build/src/gfx/angle/src/libANGLE/renderer/d3d/d3d11/RenderStateCache.h:29:13: error: 'BlendStateKey' is not a member of 'rx::d3d11' > /builds/worker/workspace/build/src/gfx/angle/src/libANGLE/renderer/d3d/d3d11/RenderStateCache.h:29:37: error: template argument 1 is invalid > struct hash<rx::d3d11::BlendStateKey> > ^ > /builds/worker/workspace/build/src/gfx/angle/src/libANGLE/renderer/d3d/d3d11/RenderStateCache.h:38:13: error: 'RasterizerStateKey' is not a member of 'rx::d3d11' > struct hash<rx::d3d11::RasterizerStateKey> > ^~ > /builds/worker/workspace/build/src/gfx/angle/src/libANGLE/renderer/d3d/d3d11/RenderStateCache.h:38:13: error: 'RasterizerStateKey' is not a member of 'rx::d3d11' > /builds/worker/workspace/build/src/gfx/angle/src/libANGLE/renderer/d3d/d3d11/RenderStateCache.h:38:42: error: template argument 1 is invalid > struct hash<rx::d3d11::RasterizerStateKey> > ^ > /builds/worker/workspace/build/src/gfx/angle/src/libANGLE/renderer/d3d/d3d11/RenderStateCache.h:74:19: error: 'BlendStateKey' in namespace 'rx::d3d11' does not name a type > static d3d11::BlendStateKey GetBlendStateKey(const gl::Context *context, > ^~~~~~~~~~~~~ > /builds/worker/workspace/build/src/gfx/angle/src/libANGLE/renderer/d3d/d3d11/RenderStateCache.h:78:42: error: 'BlendStateKey' in namespace 'rx::d3d11' does not name a type > const d3d11::BlendStateKey &key, > ^~~~~~~~~~~~~ > /builds/worker/workspace/build/src/gfx/angle/src/libANGLE/renderer/d3d/d3d11/RenderStateCache.h:103:56: error: 'BlendStateKey' is not a member of 'rx::d3d11' > using BlendStateMap = angle::base::HashingMRUCache<d3d11::BlendStateKey, d3d11::BlendState>; > ^~~~~ > /builds/worker/workspace/build/src/gfx/angle/src/libANGLE/renderer/d3d/d3d11/RenderStateCache.h:103:56: error: 'BlendStateKey' is not a member of 'rx::d3d11' > /builds/worker/workspace/build/src/gfx/angle/src/libANGLE/renderer/d3d/d3d11/RenderStateCache.h:103:95: error: template argument 1 is invalid > using BlendStateMap = angle::base::HashingMRUCache<d3d11::BlendStateKey, d3d11::BlendState>; > ^ > /builds/worker/workspace/build/src/gfx/angle/src/libANGLE/renderer/d3d/d3d11/RenderStateCache.h:103:95: error: template argument 3 is invalid > /builds/worker/workspace/build/src/gfx/angle/src/libANGLE/renderer/d3d/d3d11/RenderStateCache.h:104:5: error: 'BlendStateMap' does not name a type > BlendStateMap mBlendStateCache; > ^~~~~~~~~~~~~ > /builds/worker/workspace/build/src/gfx/angle/src/libANGLE/renderer/d3d/d3d11/RenderStateCache.h:108:38: error: 'RasterizerStateKey' is not a member of 'rx::d3d11' > angle::base::HashingMRUCache<d3d11::RasterizerStateKey, d3d11::RasterizerState>; > ^~~~~ > /builds/worker/workspace/build/src/gfx/angle/src/libANGLE/renderer/d3d/d3d11/RenderStateCache.h:108:38: error: 'RasterizerStateKey' is not a member of 'rx::d3d11' > /builds/worker/workspace/build/src/gfx/angle/src/libANGLE/renderer/d3d/d3d11/RenderStateCache.h:108:87: error: template argument 1 is invalid > angle::base::HashingMRUCache<d3d11::RasterizerStateKey, d3d11::RasterizerState>; > ^ > /builds/worker/workspace/build/src/gfx/angle/src/libANGLE/renderer/d3d/d3d11/RenderStateCache.h:108:87: error: template argument 3 is invalid > /builds/worker/workspace/build/src/gfx/angle/src/libANGLE/renderer/d3d/d3d11/RenderStateCache.h:109:5: error: 'RasterizerStateMap' does not name a type > RasterizerStateMap mRasterizerStateCache; > ^~~~~~~~~~~~~~~~~~ > In file included from /builds/worker/workspace/build/src/gfx/angle/src/libANGLE/renderer/d3d/d3d11/renderer11_utils.h:22:0, > from /builds/worker/workspace/build/src/gfx/angle/src/libANGLE/renderer/d3d/d3d11/RenderTarget11.h:15, > from /builds/worker/workspace/build/src/gfx/angle/src/libANGLE/renderer/d3d/d3d11/SwapChain11.h:14, > from /builds/worker/workspace/build/src/gfx/angle/src/libANGLE/renderer/d3d/d3d11/SwapChain11.cpp:9: > /builds/worker/workspace/build/src/gfx/angle/src/libANGLE/renderer/d3d/d3d11/Renderer11.h:311:42: error: 'BlendStateKey' in namespace 'rx::d3d11' does not name a type > gl::Error getBlendState(const d3d11::BlendStateKey &key, > ^~~~~~~~~~~~~ > /builds/worker/workspace/build/src/gfx/angle/src/libANGLE/renderer/d3d/d3d11/Renderer11.h:416:74: error: 'Format' in namespace 'rx::d3d11' does not name a type > const d3d11::Format &formatSet, > ^~~~~~ > /builds/worker/workspace/build/src/gfx/angle/src/libANGLE/renderer/d3d/d3d11/Renderer11.h:418:61: error: 'StagingAccess' has not been declared > StagingAccess readAndWriteAccess); > ^~~~~~~~~~~~~ > /builds/worker/workspace/build/src/gfx/angle/src/libANGLE/renderer/d3d/d3d11/Renderer11.h:440:44: error: 'Format' in namespace 'rx::d3d11' does not name a type > const d3d11::Format &format, > ^~~~~~ > /builds/worker/workspace/build/src/gfx/angle/src/libANGLE/renderer/d3d/d3d11/Renderer11.h:447:44: error: 'Format' in namespace 'rx::d3d11' does not name a type > const d3d11::Format &format, > ^~~~~~ > /builds/worker/workspace/build/src/gfx/angle/src/libANGLE/renderer/d3d/d3d11/Renderer11.h:452:44: error: 'Format' in namespace 'rx::d3d11' does not name a type > const d3d11::Format &format, > ^~~~~~ > /builds/worker/workspace/build/src/gfx/angle/src/libANGLE/renderer/d3d/d3d11/Renderer11.h:509:12: error: 'ANGLED3D11DeviceType' in namespace 'rx::d3d11' does not name a type > d3d11::ANGLED3D11DeviceType getDeviceType() const; > ^~~~~~~~~~~~~~~~~~~~ > /builds/worker/workspace/build/src/gfx/angle/src/libANGLE/renderer/d3d/d3d11/Renderer11.h:569:21: error: field 'mCachedResolveTexture' has incomplete type 'rx::TextureHelper11' > TextureHelper11 mCachedResolveTexture; > ^~~~~~~~~~~~~~~~~~~~~ > In file included from /builds/worker/workspace/build/src/gfx/angle/src/libANGLE/renderer/d3d/d3d11/RenderTarget11.h:14:0, > from /builds/worker/workspace/build/src/gfx/angle/src/libANGLE/renderer/d3d/d3d11/SwapChain11.h:14, > from /builds/worker/workspace/build/src/gfx/angle/src/libANGLE/renderer/d3d/d3d11/SwapChain11.cpp:9: > /builds/worker/workspace/build/src/gfx/angle/src/libANGLE/renderer/d3d/d3d11/ResourceManager11.h:39:7: note: forward declaration of 'class rx::TextureHelper11' > class TextureHelper11; > ^~~~~~~~~~~~~~~ > /builds/worker/workspace/build/src/gfx/angle/src/libANGLE/renderer/d3d/d3d11/SwapChain11.cpp: In member function 'EGLint rx::SwapChain11::resetOffscreenColorBuffer(const gl::Context*, int, int)': > /builds/worker/workspace/build/src/gfx/angle/src/libANGLE/renderer/d3d/d3d11/SwapChain11.cpp:260:70: error: no matching function for call to 'rx::Renderer11::allocateTexture(D3D11_TEXTURE2D_DESC&, const rx::d3d11::Format&, rx::TextureHelper11*)' > &mOffscreenTexture); > ^ > In file included from /builds/worker/workspace/build/src/gfx/angle/src/libANGLE/renderer/d3d/d3d11/renderer11_utils.h:22:0, > from /builds/worker/workspace/build/src/gfx/angle/src/libANGLE/renderer/d3d/d3d11/RenderTarget11.h:15, > from /builds/worker/workspace/build/src/gfx/angle/src/libANGLE/renderer/d3d/d3d11/SwapChain11.h:14, > from /builds/worker/workspace/build/src/gfx/angle/src/libANGLE/renderer/d3d/d3d11/SwapChain11.cpp:9: > /builds/worker/workspace/build/src/gfx/angle/src/libANGLE/renderer/d3d/d3d11/Renderer11.h:439:15: note: candidate: template<class DescT> gl::Error rx::Renderer11::allocateTexture(const DescT&, const int&, rx::TextureHelper11*) > gl::Error allocateTexture(const DescT &desc, > ^~~~~~~~~~~~~~~ > /builds/worker/workspace/build/src/gfx/angle/src/libANGLE/renderer/d3d/d3d11/Renderer11.h:439:15: note: template argument deduction/substitution failed: > /builds/worker/workspace/build/src/gfx/angle/src/libANGLE/renderer/d3d/d3d11/SwapChain11.cpp:259:74: note: cannot convert 'backbufferFormatInfo' (type 'const rx::d3d11::Format') to type 'const int&' > gl::Error err = mRenderer->allocateTexture(offscreenTextureDesc, backbufferFormatInfo, > ^~~~~~~~~~~~~~~~~~~~ > In file included from /builds/worker/workspace/build/src/gfx/angle/src/libANGLE/renderer/d3d/d3d11/renderer11_utils.h:22:0, > from /builds/worker/workspace/build/src/gfx/angle/src/libANGLE/renderer/d3d/d3d11/RenderTarget11.h:15, > from /builds/worker/workspace/build/src/gfx/angle/src/libANGLE/renderer/d3d/d3d11/SwapChain11.h:14, > from /builds/worker/workspace/build/src/gfx/angle/src/libANGLE/renderer/d3d/d3d11/SwapChain11.cpp:9: > /builds/worker/workspace/build/src/gfx/angle/src/libANGLE/renderer/d3d/d3d11/Renderer11.h:446:15: note: candidate: gl::Error rx::Renderer11::allocateTexture(const D3D11_TEXTURE2D_DESC&, const int&, const D3D11_SUBRESOURCE_DATA*, rx::TextureHelper11*) > gl::Error allocateTexture(const D3D11_TEXTURE2D_DESC &desc, > ^~~~~~~~~~~~~~~ > /builds/worker/workspace/build/src/gfx/angle/src/libANGLE/renderer/d3d/d3d11/Renderer11.h:446:15: note: candidate expects 4 arguments, 3 provided > /builds/worker/workspace/build/src/gfx/angle/src/libANGLE/renderer/d3d/d3d11/Renderer11.h:451:15: note: candidate: gl::Error rx::Renderer11::allocateTexture(const D3D11_TEXTURE3D_DESC&, const int&, const D3D11_SUBRESOURCE_DATA*, rx::TextureHelper11*) > gl::Error allocateTexture(const D3D11_TEXTURE3D_DESC &desc, > ^~~~~~~~~~~~~~~ > /builds/worker/workspace/build/src/gfx/angle/src/libANGLE/renderer/d3d/d3d11/Renderer11.h:451:15: note: candidate expects 4 arguments, 3 provided > /builds/worker/workspace/build/src/gfx/angle/src/libANGLE/renderer/d3d/d3d11/SwapChain11.cpp: In member function 'EGLint rx::SwapChain11::resetOffscreenDepthBuffer(int, int)': > /builds/worker/workspace/build/src/gfx/angle/src/libANGLE/renderer/d3d/d3d11/SwapChain11.cpp:401:73: error: no matching function for call to 'rx::Renderer11::allocateTexture(D3D11_TEXTURE2D_DESC&, const rx::d3d11::Format&, rx::TextureHelper11*)' > &mDepthStencilTexture); > ^ > In file included from /builds/worker/workspace/build/src/gfx/angle/src/libANGLE/renderer/d3d/d3d11/renderer11_utils.h:22:0, > from /builds/worker/workspace/build/src/gfx/angle/src/libANGLE/renderer/d3d/d3d11/RenderTarget11.h:15, > from /builds/worker/workspace/build/src/gfx/angle/src/libANGLE/renderer/d3d/d3d11/SwapChain11.h:14, > from /builds/worker/workspace/build/src/gfx/angle/src/libANGLE/renderer/d3d/d3d11/SwapChain11.cpp:9: > /builds/worker/workspace/build/src/gfx/angle/src/libANGLE/renderer/d3d/d3d11/Renderer11.h:439:15: note: candidate: template<class DescT> gl::Error rx::Renderer11::allocateTexture(const DescT&, const int&, rx::TextureHelper11*) > gl::Error allocateTexture(const DescT &desc, > ^~~~~~~~~~~~~~~ > /builds/worker/workspace/build/src/gfx/angle/src/libANGLE/renderer/d3d/d3d11/Renderer11.h:439:15: note: template argument deduction/substitution failed: > /builds/worker/workspace/build/src/gfx/angle/src/libANGLE/renderer/d3d/d3d11/SwapChain11.cpp:400:77: note: cannot convert 'depthBufferFormatInfo' (type 'const rx::d3d11::Format') to type 'const int&' > gl::Error err = mRenderer->allocateTexture(depthStencilTextureDesc, depthBufferFormatInfo, > ^~~~~~~~~~~~~~~~~~~~~ > In file included from /builds/worker/workspace/build/src/gfx/angle/src/libANGLE/renderer/d3d/d3d11/renderer11_utils.h:22:0, > from /builds/worker/workspace/build/src/gfx/angle/src/libANGLE/renderer/d3d/d3d11/RenderTarget11.h:15, > from /builds/worker/workspace/build/src/gfx/angle/src/libANGLE/renderer/d3d/d3d11/SwapChain11.h:14, > from /builds/worker/workspace/build/src/gfx/angle/src/libANGLE/renderer/d3d/d3d11/SwapChain11.cpp:9: > /builds/worker/workspace/build/src/gfx/angle/src/libANGLE/renderer/d3d/d3d11/Renderer11.h:446:15: note: candidate: gl::Error rx::Renderer11::allocateTexture(const D3D11_TEXTURE2D_DESC&, const int&, const D3D11_SUBRESOURCE_DATA*, rx::TextureHelper11*) > gl::Error allocateTexture(const D3D11_TEXTURE2D_DESC &desc, > ^~~~~~~~~~~~~~~ > /builds/worker/workspace/build/src/gfx/angle/src/libANGLE/renderer/d3d/d3d11/Renderer11.h:446:15: note: candidate expects 4 arguments, 3 provided > /builds/worker/workspace/build/src/gfx/angle/src/libANGLE/renderer/d3d/d3d11/Renderer11.h:451:15: note: candidate: gl::Error rx::Renderer11::allocateTexture(const D3D11_TEXTURE3D_DESC&, const int&, const D3D11_SUBRESOURCE_DATA*, rx::TextureHelper11*) > gl::Error allocateTexture(const D3D11_TEXTURE3D_DESC &desc, > ^~~~~~~~~~~~~~~ > /builds/worker/workspace/build/src/gfx/angle/src/libANGLE/renderer/d3d/d3d11/Renderer11.h:451:15: note: candidate expects 4 arguments, 3 provided > /builds/worker/workspace/build/src/gfx/angle/src/libANGLE/renderer/d3d/d3d11/SwapChain11.cpp: In member function 'const SharedSRV& rx::SwapChain11::getRenderTargetShaderResource()': > /builds/worker/workspace/build/src/gfx/angle/src/libANGLE/renderer/d3d/d3d11/SwapChain11.cpp:960:80: error: no matching function for call to 'rx::Renderer11::allocateTexture(D3D11_TEXTURE2D_DESC&, const rx::d3d11::Format&, rx::TextureHelper11*)' > &mOffscreenTextureCopyForSRV); > ^ > In file included from /builds/worker/workspace/build/src/gfx/angle/src/libANGLE/renderer/d3d/d3d11/renderer11_utils.h:22:0, > from /builds/worker/workspace/build/src/gfx/angle/src/libANGLE/renderer/d3d/d3d11/RenderTarget11.h:15, > from /builds/worker/workspace/build/src/gfx/angle/src/libANGLE/renderer/d3d/d3d11/SwapChain11.h:14, > from /builds/worker/workspace/build/src/gfx/angle/src/libANGLE/renderer/d3d/d3d11/SwapChain11.cpp:9: > /builds/worker/workspace/build/src/gfx/angle/src/libANGLE/renderer/d3d/d3d11/Renderer11.h:439:15: note: candidate: template<class DescT> gl::Error rx::Renderer11::allocateTexture(const DescT&, const int&, rx::TextureHelper11*) > gl::Error allocateTexture(const DescT &desc, > ^~~~~~~~~~~~~~~ > /builds/worker/workspace/build/src/gfx/angle/src/libANGLE/renderer/d3d/d3d11/Renderer11.h:439:15: note: template argument deduction/substitution failed: > /builds/worker/workspace/build/src/gfx/angle/src/libANGLE/renderer/d3d/d3d11/SwapChain11.cpp:959:71: note: cannot convert 'backbufferFormatInfo' (type 'const rx::d3d11::Format') to type 'const int&' > gl::Error err = mRenderer->allocateTexture(offscreenCopyDesc, backbufferFormatInfo, > ^~~~~~~~~~~~~~~~~~~~> Right now it's not clear to me what's wrong; I looked at the first one, BlendStateKey, and it seems to be fine...
Okay I figured it out, and I *think* that this try run (and the attached squashed patch) should succeed, barring yet-more template misunderstandings on my part: https://treeherder.mozilla.org/#/jobs?repo=try&revision=27636f6740668a21cb41015a82baba94e784e0fb
Attachment #8917223 - Flags: review?(nfroyd)
Attachment #8917433 - Flags: review?(cleu)
Attachment #8917433 - Flags: review?(jgilbert)
Attachment #8917433 - Flags: review?(cleu) → review+
Okay, I tried to be explicit in the commit message but this was a doosey. First: The initial build break was because MinGW lacked some newish headers. We bump the MinGW version to pick those up, thanks to Jacek getting them in a few hours after this turning up. But that break masked a tougher problem: some of the Angle code is not legal by spec. They forward declare a class, but then call a method on it as shown on the broken build here: https://treeherder.mozilla.org/#/jobs?repo=try&revision=0b5d11b521d5f10253a45e4ae2fe90105a444f9b&selectedJob=136246167 . That's a no-no. BUT MSVC allows it because they have a weird two-phase compiler thing going on: https://stackoverflow.com/questions/30992044/msvc-allows-use-of-incomplete-undeclared-types-inside-of-template-class-method-b https://stackoverflow.com/questions/37599877/why-an-incomplete-type-is-detected-in-clang-inside-a-template-method Clang, to get msvc compatibility, had to add this: https://clang.llvm.org/docs/MSVCCompatibility.html#template-instantiation-and-name-lookup Anyway, after trying several different things, eventually the solution that worked was relocating the declarations into a new file after the class they had forward declared. I'm going to try and get this change upstreamed.
Attachment #8917223 - Flags: review?(nfroyd) → review+
(In reply to Tom Ritter [:tjr] (PTO 10/12-1016) from comment #17) > But that break masked a tougher problem: some of the Angle code is not legal > by spec. They forward declare a class, but then call a method on it as shown > on the broken build here: > https://treeherder.mozilla.org/#/ > jobs?repo=try&revision=0b5d11b521d5f10253a45e4ae2fe90105a444f9b&selectedJob=1 > 36246167 . That's a no-no. BUT MSVC allows it because they have a weird > two-phase compiler thing going on: > https://stackoverflow.com/questions/30992044/msvc-allows-use-of-incomplete- > undeclared-types-inside-of-template-class-method-b > https://stackoverflow.com/questions/37599877/why-an-incomplete-type-is- > detected-in-clang-inside-a-template-method > > Clang, to get msvc compatibility, had to add this: > https://clang.llvm.org/docs/MSVCCompatibility.html#template-instantiation- > and-name-lookup > > Anyway, after trying several different things, eventually the solution that > worked was relocating the declarations into a new file after the class they > had forward declared. I'm going to try and get this change upstreamed. Aha! I thought that might be what's going on. The header by itself is naively invalid, but without reading up on template instantiation rules, I figured it must somehow be delayed later than I expected. Thanks for solving this riddle!
Comment on attachment 8917433 [details] Bug 1407289 Move classes from renderer11_utils.h https://reviewboard.mozilla.org/r/188418/#review194238 This works for me!
Attachment #8917433 - Flags: review?(jgilbert) → review+
Pushed by nfroyd@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/692787b51f8e Bump MinGW commit r=froydnj https://hg.mozilla.org/integration/autoland/rev/2d61af51e1a5 Move classes from renderer11_utils.h r=jgilbert,Lenzak
Status: NEW → RESOLVED
Closed: 7 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla58
Whiteboard: [stockwell fixed:product]
Assignee: nobody → tom
Product: Core → Firefox Build System
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: