Closed Bug 1432009 Opened 6 years ago Closed 6 years ago

Perma-failing windows-mingw32 /builds/worker/workspace/build/src/gfx/thebes/gfxDWriteFontList.h:11:22: fatal error: dwrite_3.h: No such file or directory

Categories

(Core :: Graphics: Text, defect)

defect
Not set
normal

Tracking

()

RESOLVED FIXED
mozilla60
Tracking Status
firefox59 --- fixed
firefox60 --- fixed

People

(Reporter: intermittent-bug-filer, Assigned: tjr)

References

Details

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

Attachments

(1 file, 2 obsolete files)

Filed by: apavel [at] mozilla.com

https://treeherder.mozilla.org/logviewer.html#?job_id=157555624&repo=mozilla-inbound

https://queue.taskcluster.net/v1/task/AxId466CSfizvk6pkUh58Q/runs/5/artifacts/public/logs/live_backing.log

[task 2018-01-21T05:47:48.043Z] 05:47:48     INFO -  /builds/worker/workspace/build/src/obj-firefox/_virtualenv/bin/python /builds/worker/workspace/build/src/config/expandlibs_gen.py -o libStaticXULComponentsEnd.a.desc StaticXULComponentsEnd.o
[task 2018-01-21T05:47:48.043Z] 05:47:48     INFO -  gmake[4]: Leaving directory '/builds/worker/workspace/build/src/obj-firefox/toolkit/library/StaticXULComponentsEnd'
[task 2018-01-21T05:47:48.043Z] 05:47:48     INFO -  gmake[4]: Entering directory '/builds/worker/workspace/build/src/obj-firefox/media/libyuv/libyuv/libyuv_libyuv'
[task 2018-01-21T05:47:48.044Z] 05:47:48     INFO -  gmake[4]: Leaving directory '/builds/worker/workspace/build/src/obj-firefox/media/libyuv/libyuv/libyuv_libyuv'
[task 2018-01-21T05:47:48.139Z] 05:47:48     INFO -  gmake[4]: Entering directory '/builds/worker/workspace/build/src/obj-firefox/gfx/thebes'
[task 2018-01-21T05:47:48.140Z] 05:47:48     INFO -  /builds/worker/workspace/build/src/sccache2/sccache /builds/worker/workspace/build/src/mingw32/bin/i686-w64-mingw32-g++ -mwindows -o gfxDWriteFonts.o -c -I/builds/worker/workspace/build/src/obj-firefox/dist/stl_wrappers -DDEBUG=1 -DWIN32_LEAN_AND_MEAN -D_WIN32 -DWIN32 -D_CRT_RAND_S -DCERT_CHAIN_PARA_HAS_EXTRA_FIELDS -DOS_WIN=1 -D_UNICODE -DCHROMIUM_BUILD -DU_STATIC_IMPLEMENTATION -DUNICODE -D_WINDOWS -D_SECURE_ATL -DMOZ_ENABLE_D3D10_LAYER -DGRAPHITE2_STATIC -DSTATIC_EXPORTABLE_JS_API -DMOZ_HAS_MOZGLUE -DMOZILLA_INTERNAL_API -DIMPL_LIBXUL -I/builds/worker/workspace/build/src/gfx/thebes -I/builds/worker/workspace/build/src/obj-firefox/gfx/thebes -I/builds/worker/workspace/build/src/obj-firefox/ipc/ipdl/_ipdlheaders -I/builds/worker/workspace/build/src/ipc/chromium/src -I/builds/worker/workspace/build/src/ipc/glue -I/builds/worker/workspace/build/src/dom/base -I/builds/worker/workspace/build/src/dom/workers -I/builds/worker/workspace/build/src/dom/xml -I/builds/worker/workspace/build/src/gfx/skia -I/builds/worker/workspace/build/src/gfx/skia/skia/include/config -I/builds/worker/workspace/build/src/gfx/skia/skia/include/core -I/builds/worker/workspace/build/src/gfx/skia/skia/include/gpu -I/builds/worker/workspace/build/src/gfx/skia/skia/include/utils -I/builds/worker/workspace/build/src/obj-firefox/dist/include -I/builds/worker/workspace/build/src/obj-firefox/dist/include/nspr -I/builds/worker/workspace/build/src/obj-firefox/dist/include/nss -DMOZILLA_CLIENT -include /builds/worker/workspace/build/src/obj-firefox/mozilla-config.h -Wall -Wempty-body -Wignored-qualifiers -Woverloaded-virtual -Wpointer-arith -Wsign-compare -Wtype-limits -Wunreachable-code -Wwrite-strings -Wno-invalid-offsetof -Wduplicated-cond -Wno-error=maybe-uninitialized -Wno-error=deprecated-declarations -Wno-error=array-bounds -Wno-error=free-nonheap-object -Wno-unknown-pragmas -Wno-unused-function -Wno-conversion-null -Wno-switch -Wno-enum-compare -fno-sized-deallocation -fno-exceptions -fno-strict-aliasing -mms-bitfields -mstackrealign -fno-keep-inline-dllexport -fno-rtti -ffunction-sections -fdata-sections -fno-exceptions -fno-math-errno -pthread -pipe -g -fno-omit-frame-pointer -I/builds/worker/workspace/build/src/obj-firefox/dist/include/cairo  -MD -MP -MF .deps/gfxDWriteFonts.o.pp   /builds/worker/workspace/build/src/gfx/thebes/gfxDWriteFonts.cpp
[task 2018-01-21T05:47:48.140Z] 05:47:48     INFO -  In file included from /builds/worker/workspace/build/src/gfx/thebes/gfxDWriteFonts.cpp:9:0:
[task 2018-01-21T05:47:48.140Z] 05:47:48     INFO -  /builds/worker/workspace/build/src/gfx/thebes/gfxDWriteFontList.h:11:22: fatal error: dwrite_3.h: No such file or directory
[task 2018-01-21T05:47:48.140Z] 05:47:48     INFO -   #include "dwrite_3.h"
[task 2018-01-21T05:47:48.140Z] 05:47:48     INFO -                        ^
[task 2018-01-21T05:47:48.140Z] 05:47:48     INFO -  compilation terminated.
[task 2018-01-21T05:47:48.140Z] 05:47:48     INFO -  /builds/worker/workspace/build/src/config/rules.mk:1047: recipe for target 'gfxDWriteFonts.o' failed
[task 2018-01-21T05:47:48.140Z] 05:47:48     INFO -  gmake[4]: *** [gfxDWriteFonts.o] Error 1
[task 2018-01-21T05:47:48.140Z] 05:47:48     INFO -  gmake[4]: Leaving directory '/builds/worker/workspace/build/src/obj-firefox/gfx/thebes'
[task 2018-01-21T05:47:48.140Z] 05:47:48     INFO -  gmake[4]: *** Waiting for unfinished jobs....
[task 2018-01-21T05:47:48.140Z] 05:47:48     INFO -  gmake[4]: Entering directory '/builds/worker/workspace/build/src/obj-firefox/toolkit/profile'
[task 2018-01-21T05:47:48.140Z] 05:47:48     INFO -  mkdir -p '.deps/'
[task 2018-01-21T05:47:48.141Z] 05:47:48     INFO -  gmake[4]: Leaving directory '/builds/worker/workspace/build/src/obj-firefox/toolkit/profile'
[task 2018-01-21T05:47:48.141Z] 05:47:48     INFO -  gmake[4]: Entering directory '/builds/worker/workspace/build/src/obj-firefox/toolkit/profile'
[task 2018-01-21T05:47:48.141Z] 05:47:48     INFO -  gmake[4]: Leaving directory '/builds/worker/workspace/build/src/obj-firefox/toolkit/profile'
[task 2018-01-21T05:47:48.176Z] 05:47:48     INFO -  gmake[4]: Entering directory '/builds/worker/workspace/build/src/obj-firefox/browser/components/migration'
Flags: needinfo?(jfkthame)
The mingw32 build must be using an older (pre-Win10?) SDK that doesn't have the dwrite_3.h header. Ideally, we'd fix this by using the same SDK there as we use for the MSVC builds, so that we'd have the same Windows headers available. Failing that, I guess we can work around it by copying the necessary declarations into our code, but it may take some trial and error to determine exactly what needs to be included.

Who knows about the mingw build setup? :glandium, :gps, is it possible to update the SDK those builds are using, so that it matches what we use in the tier-1 builds?
Flags: needinfo?(mh+mozilla)
Flags: needinfo?(jfkthame)
Flags: needinfo?(gps)
The person you're looking for is Tom.
Flags: needinfo?(tom)
Flags: needinfo?(mh+mozilla)
Flags: needinfo?(gps)
Jacek will know even more than me =)
Flags: needinfo?(tom) → needinfo?(jacek)
Attached patch mingw-w64.diff (obsolete) — Splinter Review
Patches are on their way to upstream mingw-w64. I'm attaching a full patch here. It adds enough declaration that m-c builds for me (with #include "dw-extra.h" commented; it's not needed since all declarations are available).
Flags: needinfo?(jacek)
Since mingw-w64 commit 0720cca3532c32103d999754a734a79061a749a3, all needed patches are upstreamed. Since mingw has all needed declarations, dw-extras.h is not needed (and harmful due to duplications).
Attachment #8944474 - Attachment is obsolete: true
Attachment #8944526 - Flags: review?(jfkthame)
Comment on attachment 8944526 [details] [diff] [review]
Don't include dw-extra.h on mingw

Review of attachment 8944526 [details] [diff] [review]:
-----------------------------------------------------------------

This presumably means the mingw headers now expose some new Win10 stuff even though we're building with WINVER=0x601, right? In principle, that seems kinda wrong; but if the headers used by mingw aren't necessarily derived directly from Windows SDKs but are just manually updated in a somewhat ad hoc way (is that the case?), then I guess whatever works....

(Note that dw-extras.h is not harmful in my MSVC build even with a new Win10-insider SDK, because the various API-version #ifdef's mean the new declarations in the SDK aren't actually visible to our build.)

Anyhow, if this works for you, it should be fine. Eventually I assume we'll rip it out anyway.
Attachment #8944526 - Flags: review?(jfkthame) → review+
Comment on attachment 8944531 [details]
Bug 1432009 Fix MinGW build failure with d_write3.h

https://reviewboard.mozilla.org/r/214698/#review220362

If you're happy, and try is happy, I'm happy... :)
Attachment #8944531 - Flags: review?(jfkthame) → review+
Try run: https://treeherder.mozilla.org/#/jobs?repo=try&revision=9178344d64824d17ba49cd4c64902ca20717b588 

I'm happy, try's happy, I'm happy try's happy, let's land this and stop annoying the sheriffs =)
Assignee: nobody → tom
Keywords: checkin-needed
Attachment #8944526 - Attachment is obsolete: true
Pushed by ryanvm@gmail.com:
https://hg.mozilla.org/integration/autoland/rev/e8055a74720c
Fix MinGW build failure with d_write3.h r=jfkthame
Keywords: checkin-needed
https://hg.mozilla.org/mozilla-central/rev/e8055a74720c
Status: NEW → RESOLVED
Closed: 6 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla60
Whiteboard: [stockwell disable-recommended] → [stockwell infra]
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Creator:
Created:
Updated:
Size: