Come up with a plan for mc.exe and midl.exe for cross-compilation |
||||
Issue descriptionWe use mc.exe in the Windows build in 3 places, and midl.exe in 4 places. Reimplementing the bits of mc that we use in python doesn't look toooo horrible (see mc.py https://chromium-review.googlesource.com/c/614060 for enough for the .man bits we use, doesn't implement the .mc bits yet). Reimplementing the midl bits is probably kind of annoying. scottmg says we should just check in the output of mc/midl and call it a day. I first thought mc.py doesn't look that bad, and if we add more uses of it, mc.py could grow to support that, and then people could also do .man / .mc changes on linux. But since we use these tools in so very few places, I now kind of agree with scottmg to do the simple thing first and just check in the outputs. (There's precedent: https://cs.chromium.org/chromium/src/remoting/host/win/com_imported_mstscax.tlh?q=com_imported_mstscax.tlh&sq=package:chromium&dr The output of mc has a "Copyright Microsoft" thingy though. I talked to legal and it sounds like it's cool if we check in the output somewhere in third_party though.) So if that sounds fine to folks, I'll go and check in these outputs. Do people have opinions on how fancy we should make things? * Not fancy at all: Change .gn files to reference the generated files, remove gn stuff for running midl / rc * Somewhat fancy: Keep gn stuff for running mild/rc. When on a Windows host, run mc / midl, and if the output is different from what's checked in, overwrite the checked-in files. If on a non-Windows host, copy the checked-in files to the output. I kind of like "somewhat fancy", but I also liked writing my own mc.py (which I now feel like backtracking on). cc'ing authors of some of our mc.exe / midl.exe inputs.
,
Aug 17 2017
The "somewhat fancy" solution is nice but (as the author of one of the places that uses mc.exe) I'd also be totally fine with "not fancy at all", given the very low rate of change of these files.
,
Aug 17 2017
Either sounds fine to me. - Somewhat fancy is nice because it catches breakage sooner, as Dominic says. - Not fancy is nice because we can delete some gn goop, but we'd still have a .bat nearby with some of it I guess.
,
Aug 31 2017
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/ee3dc9b51e6272e9e195ee3e94cdc277b391307d commit ee3dc9b51e6272e9e195ee3e94cdc277b391307d Author: Nico Weber <thakis@chromium.org> Date: Thu Aug 31 17:09:29 2017 win: Check in outputs of mc.exe and midl.exe. TBR=dpranke Bug: 756607 Change-Id: I7eabc0f81e78037faaef64eb1a2315ef7378b3ed Reviewed-on: https://chromium-review.googlesource.com/622474 Commit-Queue: Nico Weber <thakis@chromium.org> Reviewed-by: Chris Palmer <palmer@chromium.org> Reviewed-by: Scott Graham <scottmg@chromium.org> Cr-Commit-Position: refs/heads/master@{#498898} [modify] https://crrev.com/ee3dc9b51e6272e9e195ee3e94cdc277b391307d/PRESUBMIT.py [add] https://crrev.com/ee3dc9b51e6272e9e195ee3e94cdc277b391307d/third_party/win_build_output/OWNERS [add] https://crrev.com/ee3dc9b51e6272e9e195ee3e94cdc277b391307d/third_party/win_build_output/README.chromium [add] https://crrev.com/ee3dc9b51e6272e9e195ee3e94cdc277b391307d/third_party/win_build_output/mc/base/trace_event/etw_manifest/MSG00001.bin [add] https://crrev.com/ee3dc9b51e6272e9e195ee3e94cdc277b391307d/third_party/win_build_output/mc/base/trace_event/etw_manifest/chrome_events_win.h [add] https://crrev.com/ee3dc9b51e6272e9e195ee3e94cdc277b391307d/third_party/win_build_output/mc/base/trace_event/etw_manifest/chrome_events_win.rc [add] https://crrev.com/ee3dc9b51e6272e9e195ee3e94cdc277b391307d/third_party/win_build_output/mc/base/trace_event/etw_manifest/chrome_events_winTEMP.BIN [add] https://crrev.com/ee3dc9b51e6272e9e195ee3e94cdc277b391307d/third_party/win_build_output/mc/chrome/common/win/MSG00409.bin [add] https://crrev.com/ee3dc9b51e6272e9e195ee3e94cdc277b391307d/third_party/win_build_output/mc/chrome/common/win/eventlog_messages.h [add] https://crrev.com/ee3dc9b51e6272e9e195ee3e94cdc277b391307d/third_party/win_build_output/mc/chrome/common/win/eventlog_messages.rc [add] https://crrev.com/ee3dc9b51e6272e9e195ee3e94cdc277b391307d/third_party/win_build_output/mc/remoting/host/win/MSG0000d.bin [add] https://crrev.com/ee3dc9b51e6272e9e195ee3e94cdc277b391307d/third_party/win_build_output/mc/remoting/host/win/MSG00401.bin [add] https://crrev.com/ee3dc9b51e6272e9e195ee3e94cdc277b391307d/third_party/win_build_output/mc/remoting/host/win/MSG00402.bin [add] https://crrev.com/ee3dc9b51e6272e9e195ee3e94cdc277b391307d/third_party/win_build_output/mc/remoting/host/win/MSG00403.bin [add] https://crrev.com/ee3dc9b51e6272e9e195ee3e94cdc277b391307d/third_party/win_build_output/mc/remoting/host/win/MSG00404.bin [add] https://crrev.com/ee3dc9b51e6272e9e195ee3e94cdc277b391307d/third_party/win_build_output/mc/remoting/host/win/MSG00405.bin [add] https://crrev.com/ee3dc9b51e6272e9e195ee3e94cdc277b391307d/third_party/win_build_output/mc/remoting/host/win/MSG00406.bin [add] https://crrev.com/ee3dc9b51e6272e9e195ee3e94cdc277b391307d/third_party/win_build_output/mc/remoting/host/win/MSG00407.bin [add] https://crrev.com/ee3dc9b51e6272e9e195ee3e94cdc277b391307d/third_party/win_build_output/mc/remoting/host/win/MSG00408.bin [add] https://crrev.com/ee3dc9b51e6272e9e195ee3e94cdc277b391307d/third_party/win_build_output/mc/remoting/host/win/MSG00409.bin [add] https://crrev.com/ee3dc9b51e6272e9e195ee3e94cdc277b391307d/third_party/win_build_output/mc/remoting/host/win/MSG0040b.bin [add] https://crrev.com/ee3dc9b51e6272e9e195ee3e94cdc277b391307d/third_party/win_build_output/mc/remoting/host/win/MSG0040c.bin [add] https://crrev.com/ee3dc9b51e6272e9e195ee3e94cdc277b391307d/third_party/win_build_output/mc/remoting/host/win/MSG0040d.bin [add] https://crrev.com/ee3dc9b51e6272e9e195ee3e94cdc277b391307d/third_party/win_build_output/mc/remoting/host/win/MSG0040e.bin [add] https://crrev.com/ee3dc9b51e6272e9e195ee3e94cdc277b391307d/third_party/win_build_output/mc/remoting/host/win/MSG00410.bin [add] https://crrev.com/ee3dc9b51e6272e9e195ee3e94cdc277b391307d/third_party/win_build_output/mc/remoting/host/win/MSG00411.bin [add] https://crrev.com/ee3dc9b51e6272e9e195ee3e94cdc277b391307d/third_party/win_build_output/mc/remoting/host/win/MSG00412.bin [add] https://crrev.com/ee3dc9b51e6272e9e195ee3e94cdc277b391307d/third_party/win_build_output/mc/remoting/host/win/MSG00413.bin [add] https://crrev.com/ee3dc9b51e6272e9e195ee3e94cdc277b391307d/third_party/win_build_output/mc/remoting/host/win/MSG00414.bin [add] https://crrev.com/ee3dc9b51e6272e9e195ee3e94cdc277b391307d/third_party/win_build_output/mc/remoting/host/win/MSG00415.bin [add] https://crrev.com/ee3dc9b51e6272e9e195ee3e94cdc277b391307d/third_party/win_build_output/mc/remoting/host/win/MSG00416.bin [add] https://crrev.com/ee3dc9b51e6272e9e195ee3e94cdc277b391307d/third_party/win_build_output/mc/remoting/host/win/MSG00418.bin [add] https://crrev.com/ee3dc9b51e6272e9e195ee3e94cdc277b391307d/third_party/win_build_output/mc/remoting/host/win/MSG00419.bin [add] https://crrev.com/ee3dc9b51e6272e9e195ee3e94cdc277b391307d/third_party/win_build_output/mc/remoting/host/win/MSG0041a.bin [add] https://crrev.com/ee3dc9b51e6272e9e195ee3e94cdc277b391307d/third_party/win_build_output/mc/remoting/host/win/MSG0041b.bin [add] https://crrev.com/ee3dc9b51e6272e9e195ee3e94cdc277b391307d/third_party/win_build_output/mc/remoting/host/win/MSG0041d.bin [add] https://crrev.com/ee3dc9b51e6272e9e195ee3e94cdc277b391307d/third_party/win_build_output/mc/remoting/host/win/MSG0041e.bin [add] https://crrev.com/ee3dc9b51e6272e9e195ee3e94cdc277b391307d/third_party/win_build_output/mc/remoting/host/win/MSG0041f.bin [add] https://crrev.com/ee3dc9b51e6272e9e195ee3e94cdc277b391307d/third_party/win_build_output/mc/remoting/host/win/MSG00421.bin [add] https://crrev.com/ee3dc9b51e6272e9e195ee3e94cdc277b391307d/third_party/win_build_output/mc/remoting/host/win/MSG00422.bin [add] https://crrev.com/ee3dc9b51e6272e9e195ee3e94cdc277b391307d/third_party/win_build_output/mc/remoting/host/win/MSG00424.bin [add] https://crrev.com/ee3dc9b51e6272e9e195ee3e94cdc277b391307d/third_party/win_build_output/mc/remoting/host/win/MSG00425.bin [add] https://crrev.com/ee3dc9b51e6272e9e195ee3e94cdc277b391307d/third_party/win_build_output/mc/remoting/host/win/MSG00426.bin [add] https://crrev.com/ee3dc9b51e6272e9e195ee3e94cdc277b391307d/third_party/win_build_output/mc/remoting/host/win/MSG00427.bin [add] https://crrev.com/ee3dc9b51e6272e9e195ee3e94cdc277b391307d/third_party/win_build_output/mc/remoting/host/win/MSG00429.bin [add] https://crrev.com/ee3dc9b51e6272e9e195ee3e94cdc277b391307d/third_party/win_build_output/mc/remoting/host/win/MSG0042a.bin [add] https://crrev.com/ee3dc9b51e6272e9e195ee3e94cdc277b391307d/third_party/win_build_output/mc/remoting/host/win/MSG00439.bin [add] https://crrev.com/ee3dc9b51e6272e9e195ee3e94cdc277b391307d/third_party/win_build_output/mc/remoting/host/win/MSG0043e.bin [add] https://crrev.com/ee3dc9b51e6272e9e195ee3e94cdc277b391307d/third_party/win_build_output/mc/remoting/host/win/MSG00441.bin [add] https://crrev.com/ee3dc9b51e6272e9e195ee3e94cdc277b391307d/third_party/win_build_output/mc/remoting/host/win/MSG00445.bin [add] https://crrev.com/ee3dc9b51e6272e9e195ee3e94cdc277b391307d/third_party/win_build_output/mc/remoting/host/win/MSG00447.bin [add] https://crrev.com/ee3dc9b51e6272e9e195ee3e94cdc277b391307d/third_party/win_build_output/mc/remoting/host/win/MSG00449.bin [add] https://crrev.com/ee3dc9b51e6272e9e195ee3e94cdc277b391307d/third_party/win_build_output/mc/remoting/host/win/MSG0044a.bin [add] https://crrev.com/ee3dc9b51e6272e9e195ee3e94cdc277b391307d/third_party/win_build_output/mc/remoting/host/win/MSG0044b.bin [add] https://crrev.com/ee3dc9b51e6272e9e195ee3e94cdc277b391307d/third_party/win_build_output/mc/remoting/host/win/MSG0044c.bin [add] https://crrev.com/ee3dc9b51e6272e9e195ee3e94cdc277b391307d/third_party/win_build_output/mc/remoting/host/win/MSG0044e.bin [add] https://crrev.com/ee3dc9b51e6272e9e195ee3e94cdc277b391307d/third_party/win_build_output/mc/remoting/host/win/MSG0045e.bin [add] https://crrev.com/ee3dc9b51e6272e9e195ee3e94cdc277b391307d/third_party/win_build_output/mc/remoting/host/win/MSG00464.bin [add] https://crrev.com/ee3dc9b51e6272e9e195ee3e94cdc277b391307d/third_party/win_build_output/mc/remoting/host/win/MSG00804.bin [add] https://crrev.com/ee3dc9b51e6272e9e195ee3e94cdc277b391307d/third_party/win_build_output/mc/remoting/host/win/MSG00809.bin [add] https://crrev.com/ee3dc9b51e6272e9e195ee3e94cdc277b391307d/third_party/win_build_output/mc/remoting/host/win/MSG0080a.bin [add] https://crrev.com/ee3dc9b51e6272e9e195ee3e94cdc277b391307d/third_party/win_build_output/mc/remoting/host/win/MSG00816.bin [add] https://crrev.com/ee3dc9b51e6272e9e195ee3e94cdc277b391307d/third_party/win_build_output/mc/remoting/host/win/MSG0081a.bin [add] https://crrev.com/ee3dc9b51e6272e9e195ee3e94cdc277b391307d/third_party/win_build_output/mc/remoting/host/win/MSG00c0a.bin [add] https://crrev.com/ee3dc9b51e6272e9e195ee3e94cdc277b391307d/third_party/win_build_output/mc/remoting/host/win/remoting_host_messages.h [add] https://crrev.com/ee3dc9b51e6272e9e195ee3e94cdc277b391307d/third_party/win_build_output/mc/remoting/host/win/remoting_host_messages.rc [add] https://crrev.com/ee3dc9b51e6272e9e195ee3e94cdc277b391307d/third_party/win_build_output/midl/google_update/google_update_idl.dlldata.c [add] https://crrev.com/ee3dc9b51e6272e9e195ee3e94cdc277b391307d/third_party/win_build_output/midl/google_update/google_update_idl.h [add] https://crrev.com/ee3dc9b51e6272e9e195ee3e94cdc277b391307d/third_party/win_build_output/midl/google_update/google_update_idl.tlb [add] https://crrev.com/ee3dc9b51e6272e9e195ee3e94cdc277b391307d/third_party/win_build_output/midl/google_update/google_update_idl_i.c [add] https://crrev.com/ee3dc9b51e6272e9e195ee3e94cdc277b391307d/third_party/win_build_output/midl/google_update/google_update_idl_p.c [add] https://crrev.com/ee3dc9b51e6272e9e195ee3e94cdc277b391307d/third_party/win_build_output/midl/remoting/host/win/chromoting_lib.dlldata.c [add] https://crrev.com/ee3dc9b51e6272e9e195ee3e94cdc277b391307d/third_party/win_build_output/midl/remoting/host/win/chromoting_lib.h [add] https://crrev.com/ee3dc9b51e6272e9e195ee3e94cdc277b391307d/third_party/win_build_output/midl/remoting/host/win/chromoting_lib.tlb [add] https://crrev.com/ee3dc9b51e6272e9e195ee3e94cdc277b391307d/third_party/win_build_output/midl/remoting/host/win/chromoting_lib_i.c [add] https://crrev.com/ee3dc9b51e6272e9e195ee3e94cdc277b391307d/third_party/win_build_output/midl/remoting/host/win/chromoting_lib_p.c [add] https://crrev.com/ee3dc9b51e6272e9e195ee3e94cdc277b391307d/third_party/win_build_output/midl/third_party/iaccessible2/ia2_api_all.dlldata.c [add] https://crrev.com/ee3dc9b51e6272e9e195ee3e94cdc277b391307d/third_party/win_build_output/midl/third_party/iaccessible2/ia2_api_all.h [add] https://crrev.com/ee3dc9b51e6272e9e195ee3e94cdc277b391307d/third_party/win_build_output/midl/third_party/iaccessible2/ia2_api_all.tlb [add] https://crrev.com/ee3dc9b51e6272e9e195ee3e94cdc277b391307d/third_party/win_build_output/midl/third_party/iaccessible2/ia2_api_all_i.c [add] https://crrev.com/ee3dc9b51e6272e9e195ee3e94cdc277b391307d/third_party/win_build_output/midl/third_party/iaccessible2/ia2_api_all_p.c [add] https://crrev.com/ee3dc9b51e6272e9e195ee3e94cdc277b391307d/third_party/win_build_output/midl/third_party/isimpledom/ISimpleDOMDocument.dlldata.c [add] https://crrev.com/ee3dc9b51e6272e9e195ee3e94cdc277b391307d/third_party/win_build_output/midl/third_party/isimpledom/ISimpleDOMDocument.h [add] https://crrev.com/ee3dc9b51e6272e9e195ee3e94cdc277b391307d/third_party/win_build_output/midl/third_party/isimpledom/ISimpleDOMDocument_i.c [add] https://crrev.com/ee3dc9b51e6272e9e195ee3e94cdc277b391307d/third_party/win_build_output/midl/third_party/isimpledom/ISimpleDOMDocument_p.c
,
Sep 1 2017
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/c57fd9089298a61d77e176e41c6651f09cb4426d commit c57fd9089298a61d77e176e41c6651f09cb4426d Author: Nico Weber <thakis@chromium.org> Date: Fri Sep 01 02:55:47 2017 Do TODO to move midl wrapper from win_tool.py into its own file. No intended behavior change. Bug: 756607 Change-Id: If724b64379bc0aac33231ff02ca0ff831c77050d Reviewed-on: https://chromium-review.googlesource.com/646688 Reviewed-by: Scott Graham <scottmg@chromium.org> Cr-Commit-Position: refs/heads/master@{#499117} [modify] https://crrev.com/c57fd9089298a61d77e176e41c6651f09cb4426d/build/toolchain/win/midl.gni [add] https://crrev.com/c57fd9089298a61d77e176e41c6651f09cb4426d/build/toolchain/win/midl.py [modify] https://crrev.com/c57fd9089298a61d77e176e41c6651f09cb4426d/build/toolchain/win/tool_wrapper.py
,
Sep 1 2017
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/2a8588ceb6ecbc2f59a4843529887e9130cba31d commit 2a8588ceb6ecbc2f59a4843529887e9130cba31d Author: Nico Weber <thakis@chromium.org> Date: Fri Sep 01 16:36:30 2017 Add 2 midl output sets I forgot to add in https://chromium-review.googlesource.com/622474 This is the only midl() rule with multiple inputs, which I didn't expect to happen. I'll likely have to change the directory structure here too, but let's get all files in first. Bug: 756607 Change-Id: I26ab85accb2c25ebc427fe65a110593db1d03042 Reviewed-on: https://chromium-review.googlesource.com/647987 Reviewed-by: Scott Graham <scottmg@chromium.org> Commit-Queue: Nico Weber <thakis@chromium.org> Cr-Commit-Position: refs/heads/master@{#499214} [add] https://crrev.com/2a8588ceb6ecbc2f59a4843529887e9130cba31d/third_party/win_build_output/midl/third_party/isimpledom/ISimpleDOMNode.dlldata.c [add] https://crrev.com/2a8588ceb6ecbc2f59a4843529887e9130cba31d/third_party/win_build_output/midl/third_party/isimpledom/ISimpleDOMNode.h [add] https://crrev.com/2a8588ceb6ecbc2f59a4843529887e9130cba31d/third_party/win_build_output/midl/third_party/isimpledom/ISimpleDOMNode_i.c [add] https://crrev.com/2a8588ceb6ecbc2f59a4843529887e9130cba31d/third_party/win_build_output/midl/third_party/isimpledom/ISimpleDOMNode_p.c [add] https://crrev.com/2a8588ceb6ecbc2f59a4843529887e9130cba31d/third_party/win_build_output/midl/third_party/isimpledom/ISimpleDOMText.dlldata.c [add] https://crrev.com/2a8588ceb6ecbc2f59a4843529887e9130cba31d/third_party/win_build_output/midl/third_party/isimpledom/ISimpleDOMText.h [add] https://crrev.com/2a8588ceb6ecbc2f59a4843529887e9130cba31d/third_party/win_build_output/midl/third_party/isimpledom/ISimpleDOMText_i.c [add] https://crrev.com/2a8588ceb6ecbc2f59a4843529887e9130cba31d/third_party/win_build_output/midl/third_party/isimpledom/ISimpleDOMText_p.c
,
Sep 1 2017
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/d000a95b5c7189076d3e6d61f243caef3edeaa48 commit d000a95b5c7189076d3e6d61f243caef3edeaa48 Author: Nico Weber <thakis@chromium.org> Date: Fri Sep 01 17:03:31 2017 mc: Copy over checked-in outputs on non-Windows hosts. On Windows hosts, verify that the checked-in outputs are identical to what mc.exe actually produces. Bug: 756607 Change-Id: If827c2b5d64730a27cf409af25783794366c1843 Reviewed-on: https://chromium-review.googlesource.com/646659 Commit-Queue: Nico Weber <thakis@chromium.org> Reviewed-by: Scott Graham <scottmg@chromium.org> Cr-Commit-Position: refs/heads/master@{#499221} [modify] https://crrev.com/d000a95b5c7189076d3e6d61f243caef3edeaa48/build/win/message_compiler.py
,
Sep 1 2017
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/ea662297506102da12eb1ee04e40fad15b77a1d5 commit ea662297506102da12eb1ee04e40fad15b77a1d5 Author: Łukasz Anforowicz <lukasza@chromium.org> Date: Fri Sep 01 17:42:14 2017 Revert "mc: Copy over checked-in outputs on non-Windows hosts." This reverts commit d000a95b5c7189076d3e6d61f243caef3edeaa48. Reason for revert: Speculating that this CL has caused a tree closure - see https://build.chromium.org/p/chromium.chrome/builders/Google%20Chrome%20Win/builds/21668 Original change's description: > mc: Copy over checked-in outputs on non-Windows hosts. > > On Windows hosts, verify that the checked-in outputs are identical to > what mc.exe actually produces. > > Bug: 756607 > Change-Id: If827c2b5d64730a27cf409af25783794366c1843 > Reviewed-on: https://chromium-review.googlesource.com/646659 > Commit-Queue: Nico Weber <thakis@chromium.org> > Reviewed-by: Scott Graham <scottmg@chromium.org> > Cr-Commit-Position: refs/heads/master@{#499221} TBR=thakis@chromium.org,scottmg@chromium.org Change-Id: I9d2dc77942bdba7198ed442cedb2f3d815510f9f No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: 756607 Reviewed-on: https://chromium-review.googlesource.com/648146 Reviewed-by: Łukasz Anforowicz <lukasza@chromium.org> Commit-Queue: Łukasz Anforowicz <lukasza@chromium.org> Cr-Commit-Position: refs/heads/master@{#499227} [modify] https://crrev.com/ea662297506102da12eb1ee04e40fad15b77a1d5/build/win/message_compiler.py
,
Sep 3 2017
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/6cff7e77ad345f90dcc46b106620baf4cab3cef8 commit 6cff7e77ad345f90dcc46b106620baf4cab3cef8 Author: Nico Weber <thakis@chromium.org> Date: Sun Sep 03 02:59:23 2017 Reland "mc: Copy over checked-in outputs on non-Windows hosts." This reverts commit ea662297506102da12eb1ee04e40fad15b77a1d5. This also reverts https://chromium-review.googlesource.com/c/chromium/src/+/584691 for non-iOS to make sure that remoting .mc outputs are not different in official and unofficial builds. Change-Id: I58fc96c40d1639c9145f576136afca2468459389 Bug: 756607 ,747637 Reviewed-on: https://chromium-review.googlesource.com/648113 Reviewed-by: Nico Weber <thakis@chromium.org> Cr-Commit-Position: refs/heads/master@{#499409} [modify] https://crrev.com/6cff7e77ad345f90dcc46b106620baf4cab3cef8/build/win/message_compiler.py [modify] https://crrev.com/6cff7e77ad345f90dcc46b106620baf4cab3cef8/remoting/remoting_locales.gni [modify] https://crrev.com/6cff7e77ad345f90dcc46b106620baf4cab3cef8/remoting/resources/remoting_strings.grd
,
Sep 4 2017
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/988faedf973805452e0436a4e18c71ba879fc051 commit 988faedf973805452e0436a4e18c71ba879fc051 Author: Nico Weber <thakis@chromium.org> Date: Mon Sep 04 02:27:43 2017 midl: Copy over checked-in outputs on non-Windows hosts. On Windows hosts, verify that the checked-in outputs are identical to what midl.exe actually produces. third_party/isimpledom contains 3 distinct idl input files, so move the output filesets for each into dedicated directories. midl.exe output is different in 32-bit and 64-bit builds, so add precomputed outputs for both 32-bit and 64-bit builds. midl.exe puts a timezone-dependent timestamp into its output, so zap that timestamp from the outputs. chromoting_lib.idl is generated dynamically with a changing uuid, so its output changes every few builds. For now, just punt on this by not using a checked-in output for chromoting_lib.idl. (Building remoting on a non-Win host will error out for now for this reason.) Bug: 756607 Change-Id: Ieec46a0f8cf3a316052e0f1def9f70abb8ec2853 Reviewed-on: https://chromium-review.googlesource.com/647190 Commit-Queue: Nico Weber <thakis@chromium.org> Reviewed-by: Scott Graham <scottmg@chromium.org> Cr-Commit-Position: refs/heads/master@{#499426} [modify] https://crrev.com/988faedf973805452e0436a4e18c71ba879fc051/build/toolchain/win/midl.py [modify] https://crrev.com/988faedf973805452e0436a4e18c71ba879fc051/third_party/win_build_output/README.chromium [rename] https://crrev.com/988faedf973805452e0436a4e18c71ba879fc051/third_party/win_build_output/midl/google_update/x64/google_update_idl.dlldata.c [rename] https://crrev.com/988faedf973805452e0436a4e18c71ba879fc051/third_party/win_build_output/midl/google_update/x64/google_update_idl.h [rename] https://crrev.com/988faedf973805452e0436a4e18c71ba879fc051/third_party/win_build_output/midl/google_update/x64/google_update_idl.tlb [rename] https://crrev.com/988faedf973805452e0436a4e18c71ba879fc051/third_party/win_build_output/midl/google_update/x64/google_update_idl_i.c [rename] https://crrev.com/988faedf973805452e0436a4e18c71ba879fc051/third_party/win_build_output/midl/google_update/x64/google_update_idl_p.c [copy] https://crrev.com/988faedf973805452e0436a4e18c71ba879fc051/third_party/win_build_output/midl/google_update/x86/google_update_idl.dlldata.c [copy] https://crrev.com/988faedf973805452e0436a4e18c71ba879fc051/third_party/win_build_output/midl/google_update/x86/google_update_idl.h [copy] https://crrev.com/988faedf973805452e0436a4e18c71ba879fc051/third_party/win_build_output/midl/google_update/x86/google_update_idl.tlb [copy] https://crrev.com/988faedf973805452e0436a4e18c71ba879fc051/third_party/win_build_output/midl/google_update/x86/google_update_idl_i.c [add] https://crrev.com/988faedf973805452e0436a4e18c71ba879fc051/third_party/win_build_output/midl/google_update/x86/google_update_idl_p.c [rename] https://crrev.com/988faedf973805452e0436a4e18c71ba879fc051/third_party/win_build_output/midl/remoting/host/win/x64/chromoting_lib.dlldata.c [rename] https://crrev.com/988faedf973805452e0436a4e18c71ba879fc051/third_party/win_build_output/midl/remoting/host/win/x64/chromoting_lib.h [rename] https://crrev.com/988faedf973805452e0436a4e18c71ba879fc051/third_party/win_build_output/midl/remoting/host/win/x64/chromoting_lib.tlb [rename] https://crrev.com/988faedf973805452e0436a4e18c71ba879fc051/third_party/win_build_output/midl/remoting/host/win/x64/chromoting_lib_i.c [rename] https://crrev.com/988faedf973805452e0436a4e18c71ba879fc051/third_party/win_build_output/midl/remoting/host/win/x64/chromoting_lib_p.c [copy] https://crrev.com/988faedf973805452e0436a4e18c71ba879fc051/third_party/win_build_output/midl/remoting/host/win/x86/chromoting_lib.dlldata.c [copy] https://crrev.com/988faedf973805452e0436a4e18c71ba879fc051/third_party/win_build_output/midl/remoting/host/win/x86/chromoting_lib.h [copy] https://crrev.com/988faedf973805452e0436a4e18c71ba879fc051/third_party/win_build_output/midl/remoting/host/win/x86/chromoting_lib.tlb [copy] https://crrev.com/988faedf973805452e0436a4e18c71ba879fc051/third_party/win_build_output/midl/remoting/host/win/x86/chromoting_lib_i.c [copy] https://crrev.com/988faedf973805452e0436a4e18c71ba879fc051/third_party/win_build_output/midl/remoting/host/win/x86/chromoting_lib_p.c [rename] https://crrev.com/988faedf973805452e0436a4e18c71ba879fc051/third_party/win_build_output/midl/third_party/iaccessible2/x64/ia2_api_all.dlldata.c [copy] https://crrev.com/988faedf973805452e0436a4e18c71ba879fc051/third_party/win_build_output/midl/third_party/iaccessible2/x64/ia2_api_all.h [rename] https://crrev.com/988faedf973805452e0436a4e18c71ba879fc051/third_party/win_build_output/midl/third_party/iaccessible2/x64/ia2_api_all.tlb [rename] https://crrev.com/988faedf973805452e0436a4e18c71ba879fc051/third_party/win_build_output/midl/third_party/iaccessible2/x64/ia2_api_all_i.c [rename] https://crrev.com/988faedf973805452e0436a4e18c71ba879fc051/third_party/win_build_output/midl/third_party/iaccessible2/x64/ia2_api_all_p.c [copy] https://crrev.com/988faedf973805452e0436a4e18c71ba879fc051/third_party/win_build_output/midl/third_party/iaccessible2/x86/ia2_api_all.dlldata.c [rename] https://crrev.com/988faedf973805452e0436a4e18c71ba879fc051/third_party/win_build_output/midl/third_party/iaccessible2/x86/ia2_api_all.h [copy] https://crrev.com/988faedf973805452e0436a4e18c71ba879fc051/third_party/win_build_output/midl/third_party/iaccessible2/x86/ia2_api_all.tlb [copy] https://crrev.com/988faedf973805452e0436a4e18c71ba879fc051/third_party/win_build_output/midl/third_party/iaccessible2/x86/ia2_api_all_i.c [add] https://crrev.com/988faedf973805452e0436a4e18c71ba879fc051/third_party/win_build_output/midl/third_party/iaccessible2/x86/ia2_api_all_p.c [rename] https://crrev.com/988faedf973805452e0436a4e18c71ba879fc051/third_party/win_build_output/midl/third_party/isimpledom/ISimpleDOMDocument.idl/x64/ISimpleDOMDocument.dlldata.c [rename] https://crrev.com/988faedf973805452e0436a4e18c71ba879fc051/third_party/win_build_output/midl/third_party/isimpledom/ISimpleDOMDocument.idl/x64/ISimpleDOMDocument.h [rename] https://crrev.com/988faedf973805452e0436a4e18c71ba879fc051/third_party/win_build_output/midl/third_party/isimpledom/ISimpleDOMDocument.idl/x64/ISimpleDOMDocument_i.c [rename] https://crrev.com/988faedf973805452e0436a4e18c71ba879fc051/third_party/win_build_output/midl/third_party/isimpledom/ISimpleDOMDocument.idl/x64/ISimpleDOMDocument_p.c [copy] https://crrev.com/988faedf973805452e0436a4e18c71ba879fc051/third_party/win_build_output/midl/third_party/isimpledom/ISimpleDOMDocument.idl/x86/ISimpleDOMDocument.dlldata.c [copy] https://crrev.com/988faedf973805452e0436a4e18c71ba879fc051/third_party/win_build_output/midl/third_party/isimpledom/ISimpleDOMDocument.idl/x86/ISimpleDOMDocument.h [copy] https://crrev.com/988faedf973805452e0436a4e18c71ba879fc051/third_party/win_build_output/midl/third_party/isimpledom/ISimpleDOMDocument.idl/x86/ISimpleDOMDocument_i.c [copy] https://crrev.com/988faedf973805452e0436a4e18c71ba879fc051/third_party/win_build_output/midl/third_party/isimpledom/ISimpleDOMDocument.idl/x86/ISimpleDOMDocument_p.c [rename] https://crrev.com/988faedf973805452e0436a4e18c71ba879fc051/third_party/win_build_output/midl/third_party/isimpledom/ISimpleDOMNode.idl/x64/ISimpleDOMNode.dlldata.c [copy] https://crrev.com/988faedf973805452e0436a4e18c71ba879fc051/third_party/win_build_output/midl/third_party/isimpledom/ISimpleDOMNode.idl/x64/ISimpleDOMNode.h [copy] https://crrev.com/988faedf973805452e0436a4e18c71ba879fc051/third_party/win_build_output/midl/third_party/isimpledom/ISimpleDOMNode.idl/x64/ISimpleDOMNode_i.c [add] https://crrev.com/988faedf973805452e0436a4e18c71ba879fc051/third_party/win_build_output/midl/third_party/isimpledom/ISimpleDOMNode.idl/x64/ISimpleDOMNode_p.c [copy] https://crrev.com/988faedf973805452e0436a4e18c71ba879fc051/third_party/win_build_output/midl/third_party/isimpledom/ISimpleDOMNode.idl/x86/ISimpleDOMNode.dlldata.c [rename] https://crrev.com/988faedf973805452e0436a4e18c71ba879fc051/third_party/win_build_output/midl/third_party/isimpledom/ISimpleDOMNode.idl/x86/ISimpleDOMNode.h [rename] https://crrev.com/988faedf973805452e0436a4e18c71ba879fc051/third_party/win_build_output/midl/third_party/isimpledom/ISimpleDOMNode.idl/x86/ISimpleDOMNode_i.c [rename] https://crrev.com/988faedf973805452e0436a4e18c71ba879fc051/third_party/win_build_output/midl/third_party/isimpledom/ISimpleDOMNode.idl/x86/ISimpleDOMNode_p.c [rename] https://crrev.com/988faedf973805452e0436a4e18c71ba879fc051/third_party/win_build_output/midl/third_party/isimpledom/ISimpleDOMText.idl/x64/ISimpleDOMText.dlldata.c [copy] https://crrev.com/988faedf973805452e0436a4e18c71ba879fc051/third_party/win_build_output/midl/third_party/isimpledom/ISimpleDOMText.idl/x64/ISimpleDOMText.h [copy] https://crrev.com/988faedf973805452e0436a4e18c71ba879fc051/third_party/win_build_output/midl/third_party/isimpledom/ISimpleDOMText.idl/x64/ISimpleDOMText_i.c [copy] https://crrev.com/988faedf973805452e0436a4e18c71ba879fc051/third_party/win_build_output/midl/third_party/isimpledom/ISimpleDOMText.idl/x64/ISimpleDOMText_p.c [copy] https://crrev.com/988faedf973805452e0436a4e18c71ba879fc051/third_party/win_build_output/midl/third_party/isimpledom/ISimpleDOMText.idl/x86/ISimpleDOMText.dlldata.c [rename] https://crrev.com/988faedf973805452e0436a4e18c71ba879fc051/third_party/win_build_output/midl/third_party/isimpledom/ISimpleDOMText.idl/x86/ISimpleDOMText.h [rename] https://crrev.com/988faedf973805452e0436a4e18c71ba879fc051/third_party/win_build_output/midl/third_party/isimpledom/ISimpleDOMText.idl/x86/ISimpleDOMText_i.c [rename] https://crrev.com/988faedf973805452e0436a4e18c71ba879fc051/third_party/win_build_output/midl/third_party/isimpledom/ISimpleDOMText.idl/x86/ISimpleDOMText_p.c
,
Sep 4 2017
,
Sep 5 2017
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/570a3b4c38a155a075e4370a37bf184c7d35bbd4 commit 570a3b4c38a155a075e4370a37bf184c7d35bbd4 Author: Nico Weber <thakis@chromium.org> Date: Tue Sep 05 17:32:28 2017 mc: Explicitly sort #define blocks. Some versions of mc.exe apparently don't do that, see chromium-dev "message_compiler.py build failure due to innocent enum ordering changes" Also print a slightly more detailed diff. Bug: 756607 Change-Id: I100891d0d1d06256448e568b9fa0ed8938d5957b Reviewed-on: https://chromium-review.googlesource.com/649768 Reviewed-by: Scott Graham <scottmg@chromium.org> Commit-Queue: Nico Weber <thakis@chromium.org> Cr-Commit-Position: refs/heads/master@{#499663} [modify] https://crrev.com/570a3b4c38a155a075e4370a37bf184c7d35bbd4/build/win/message_compiler.py
,
Sep 5 2017
This would create build errors on Windows, if DEPOT_TOOLS_WIN_TOOLCHAIN=0 and the Windows SDK is not at the latest version (midl.exe version on my machine is 8.01.0620).
My guess is that a lot of non-Googlers would encounter this build failure.
Here's an error from the build:
FAILED: gen/third_party/iaccessible2/ia2_api_all.h gen/third_party/iaccessible2/ia2_api_all.dlldata.c gen/third_party/iaccessible2/ia2_api_all_i.c gen/third_party/iaccessible2/ia2_api_all_p.c
C:/src/depot_tools/win_tools-2_7_6_bin/python/bin/python.exe ../../build/toolchain/win/midl.py environment.x64 gen/third_party/iaccessible2 ia2_api_all.tlb ia2_api_all.h ia2_api_all.dlldata.c ia2_api_all_i.c ia2_api_all_p.c ../../third_party/iaccessible2/ia2_api_all.idl /char signed /env x64 /Oicf
midl.exe output different from files in C:\src\chromium\src\build\toolchain\win\..\..\..\third_party\win_build_output\midl/third_party/iaccessible2\x64, see c:\src\temp\tmpbx9hls
diff c:\src\temp\tmpbx9hls C:\src\chromium\src\build\toolchain\win\..\..\..\third_party\win_build_output\midl/third_party/iaccessible2\x64
Identical files : ['ia2_api_all.dlldata.c']
Differing files : ['ia2_api_all.h', 'ia2_api_all.tlb', 'ia2_api_all_i.c', 'ia2_api_all_p.c']
--- C:\src\chromium\src\build\toolchain\win\..\..\..\third_party\win_build_output\midl/third_party/iaccessible2\x64\ia2_api_all.h
+++ c:\src\temp\tmpbx9hls\ia2_api_all.h
@@ -3,11 +3,11 @@
/* this ALWAYS GENERATED file contains the definitions for the interfaces */
- /* File created by MIDL compiler version 8.01.0622 */
-/* at a redacted point in time
+ /* File created by MIDL compiler version 8.01.0620 */
+/* at Mon Jan 18 19:14:07 2038
*/
/* Compiler settings for ../../third_party/iaccessible2/ia2_api_all.idl:
- Oicf, W1, Zp8, env=Win64 (32b run), target_arch=AMD64 8.01.0622
+ Oicf, W1, Zp8, env=Win64 (32b run), target_arch=AMD64 8.01.0620
protocol : dce , ms_ext, c_ext, robust
error checks: allocation ref bounds_check enum stub_data
VC __declspec() decoration level:
,
Sep 5 2017
For a bit more context: The compiler packages that (most) Google employees and all of our build machines use to build Chrome have the Creator Update SDK included. On machines that build using the locally installed toolchain (DEPOT_TOOLS_WIN_TOOLCHAIN=0) we use the latest installed SDK, which can be Anniversary Edition or Creators Update. For a long time we have avoided *requiring* the Creators Update SDK because Microsoft kept shipping buggy versions. They shipped a good version a few months ago so we could reasonably start requiring the Creators Update SDK and that should avoid this version mismatch. Or, we could make the comparison code ignore version numbers. This problem is likely to surface again and I'm not sure that midl code-generation is the place to enforce SDK version numbers so I think that ignoring version numbers in the output check (or ignoring all comments?) might be wise. Otherwise whenever we try experimenting with a new Windows 10 SDK we will hit this build break.
,
Sep 5 2017
Another idea would be to just compare mc.exe'a output if we're using the hermetic toolchain. But scribbling out at least the minor version number is probably a good idea regardless. I'll give it a shot.
,
Sep 6 2017
https://chromium-review.googlesource.com/c/chromium/src/+/651848 for comment 13.
,
Sep 6 2017
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/1c26c59a8bac4b996882a4e16fccbff7fb6b4ef4 commit 1c26c59a8bac4b996882a4e16fccbff7fb6b4ef4 Author: Nico Weber <thakis@chromium.org> Date: Wed Sep 06 19:39:45 2017 midl: Block out minor midl.exe version number too. See comment 13 on the bug. Bug: 756607 Change-Id: Id74a576d95df6c52a79d03b460f4c43241b9f7f1 Reviewed-on: https://chromium-review.googlesource.com/651848 Commit-Queue: Nico Weber <thakis@chromium.org> Reviewed-by: Scott Graham <scottmg@chromium.org> Cr-Commit-Position: refs/heads/master@{#500045} [modify] https://crrev.com/1c26c59a8bac4b996882a4e16fccbff7fb6b4ef4/build/toolchain/win/midl.py [modify] https://crrev.com/1c26c59a8bac4b996882a4e16fccbff7fb6b4ef4/third_party/win_build_output/midl/google_update/x64/google_update_idl.h [modify] https://crrev.com/1c26c59a8bac4b996882a4e16fccbff7fb6b4ef4/third_party/win_build_output/midl/google_update/x64/google_update_idl.tlb [modify] https://crrev.com/1c26c59a8bac4b996882a4e16fccbff7fb6b4ef4/third_party/win_build_output/midl/google_update/x64/google_update_idl_i.c [modify] https://crrev.com/1c26c59a8bac4b996882a4e16fccbff7fb6b4ef4/third_party/win_build_output/midl/google_update/x64/google_update_idl_p.c [modify] https://crrev.com/1c26c59a8bac4b996882a4e16fccbff7fb6b4ef4/third_party/win_build_output/midl/google_update/x86/google_update_idl.h [modify] https://crrev.com/1c26c59a8bac4b996882a4e16fccbff7fb6b4ef4/third_party/win_build_output/midl/google_update/x86/google_update_idl.tlb [modify] https://crrev.com/1c26c59a8bac4b996882a4e16fccbff7fb6b4ef4/third_party/win_build_output/midl/google_update/x86/google_update_idl_i.c [modify] https://crrev.com/1c26c59a8bac4b996882a4e16fccbff7fb6b4ef4/third_party/win_build_output/midl/google_update/x86/google_update_idl_p.c [modify] https://crrev.com/1c26c59a8bac4b996882a4e16fccbff7fb6b4ef4/third_party/win_build_output/midl/remoting/host/win/x64/chromoting_lib.h [modify] https://crrev.com/1c26c59a8bac4b996882a4e16fccbff7fb6b4ef4/third_party/win_build_output/midl/remoting/host/win/x64/chromoting_lib.tlb [modify] https://crrev.com/1c26c59a8bac4b996882a4e16fccbff7fb6b4ef4/third_party/win_build_output/midl/remoting/host/win/x64/chromoting_lib_i.c [modify] https://crrev.com/1c26c59a8bac4b996882a4e16fccbff7fb6b4ef4/third_party/win_build_output/midl/remoting/host/win/x64/chromoting_lib_p.c [modify] https://crrev.com/1c26c59a8bac4b996882a4e16fccbff7fb6b4ef4/third_party/win_build_output/midl/remoting/host/win/x86/chromoting_lib.h [modify] https://crrev.com/1c26c59a8bac4b996882a4e16fccbff7fb6b4ef4/third_party/win_build_output/midl/remoting/host/win/x86/chromoting_lib.tlb [modify] https://crrev.com/1c26c59a8bac4b996882a4e16fccbff7fb6b4ef4/third_party/win_build_output/midl/remoting/host/win/x86/chromoting_lib_i.c [modify] https://crrev.com/1c26c59a8bac4b996882a4e16fccbff7fb6b4ef4/third_party/win_build_output/midl/remoting/host/win/x86/chromoting_lib_p.c [modify] https://crrev.com/1c26c59a8bac4b996882a4e16fccbff7fb6b4ef4/third_party/win_build_output/midl/third_party/iaccessible2/x64/ia2_api_all.h [modify] https://crrev.com/1c26c59a8bac4b996882a4e16fccbff7fb6b4ef4/third_party/win_build_output/midl/third_party/iaccessible2/x64/ia2_api_all.tlb [modify] https://crrev.com/1c26c59a8bac4b996882a4e16fccbff7fb6b4ef4/third_party/win_build_output/midl/third_party/iaccessible2/x64/ia2_api_all_i.c [modify] https://crrev.com/1c26c59a8bac4b996882a4e16fccbff7fb6b4ef4/third_party/win_build_output/midl/third_party/iaccessible2/x64/ia2_api_all_p.c [modify] https://crrev.com/1c26c59a8bac4b996882a4e16fccbff7fb6b4ef4/third_party/win_build_output/midl/third_party/iaccessible2/x86/ia2_api_all.h [modify] https://crrev.com/1c26c59a8bac4b996882a4e16fccbff7fb6b4ef4/third_party/win_build_output/midl/third_party/iaccessible2/x86/ia2_api_all.tlb [modify] https://crrev.com/1c26c59a8bac4b996882a4e16fccbff7fb6b4ef4/third_party/win_build_output/midl/third_party/iaccessible2/x86/ia2_api_all_i.c [modify] https://crrev.com/1c26c59a8bac4b996882a4e16fccbff7fb6b4ef4/third_party/win_build_output/midl/third_party/iaccessible2/x86/ia2_api_all_p.c [modify] https://crrev.com/1c26c59a8bac4b996882a4e16fccbff7fb6b4ef4/third_party/win_build_output/midl/third_party/isimpledom/ISimpleDOMDocument.idl/x64/ISimpleDOMDocument.h [modify] https://crrev.com/1c26c59a8bac4b996882a4e16fccbff7fb6b4ef4/third_party/win_build_output/midl/third_party/isimpledom/ISimpleDOMDocument.idl/x64/ISimpleDOMDocument_i.c [modify] https://crrev.com/1c26c59a8bac4b996882a4e16fccbff7fb6b4ef4/third_party/win_build_output/midl/third_party/isimpledom/ISimpleDOMDocument.idl/x64/ISimpleDOMDocument_p.c [modify] https://crrev.com/1c26c59a8bac4b996882a4e16fccbff7fb6b4ef4/third_party/win_build_output/midl/third_party/isimpledom/ISimpleDOMDocument.idl/x86/ISimpleDOMDocument.h [modify] https://crrev.com/1c26c59a8bac4b996882a4e16fccbff7fb6b4ef4/third_party/win_build_output/midl/third_party/isimpledom/ISimpleDOMDocument.idl/x86/ISimpleDOMDocument_i.c [modify] https://crrev.com/1c26c59a8bac4b996882a4e16fccbff7fb6b4ef4/third_party/win_build_output/midl/third_party/isimpledom/ISimpleDOMDocument.idl/x86/ISimpleDOMDocument_p.c [modify] https://crrev.com/1c26c59a8bac4b996882a4e16fccbff7fb6b4ef4/third_party/win_build_output/midl/third_party/isimpledom/ISimpleDOMNode.idl/x64/ISimpleDOMNode.h [modify] https://crrev.com/1c26c59a8bac4b996882a4e16fccbff7fb6b4ef4/third_party/win_build_output/midl/third_party/isimpledom/ISimpleDOMNode.idl/x64/ISimpleDOMNode_i.c [modify] https://crrev.com/1c26c59a8bac4b996882a4e16fccbff7fb6b4ef4/third_party/win_build_output/midl/third_party/isimpledom/ISimpleDOMNode.idl/x64/ISimpleDOMNode_p.c [modify] https://crrev.com/1c26c59a8bac4b996882a4e16fccbff7fb6b4ef4/third_party/win_build_output/midl/third_party/isimpledom/ISimpleDOMNode.idl/x86/ISimpleDOMNode.h [modify] https://crrev.com/1c26c59a8bac4b996882a4e16fccbff7fb6b4ef4/third_party/win_build_output/midl/third_party/isimpledom/ISimpleDOMNode.idl/x86/ISimpleDOMNode_i.c [modify] https://crrev.com/1c26c59a8bac4b996882a4e16fccbff7fb6b4ef4/third_party/win_build_output/midl/third_party/isimpledom/ISimpleDOMNode.idl/x86/ISimpleDOMNode_p.c [modify] https://crrev.com/1c26c59a8bac4b996882a4e16fccbff7fb6b4ef4/third_party/win_build_output/midl/third_party/isimpledom/ISimpleDOMText.idl/x64/ISimpleDOMText.h [modify] https://crrev.com/1c26c59a8bac4b996882a4e16fccbff7fb6b4ef4/third_party/win_build_output/midl/third_party/isimpledom/ISimpleDOMText.idl/x64/ISimpleDOMText_i.c [modify] https://crrev.com/1c26c59a8bac4b996882a4e16fccbff7fb6b4ef4/third_party/win_build_output/midl/third_party/isimpledom/ISimpleDOMText.idl/x64/ISimpleDOMText_p.c [modify] https://crrev.com/1c26c59a8bac4b996882a4e16fccbff7fb6b4ef4/third_party/win_build_output/midl/third_party/isimpledom/ISimpleDOMText.idl/x86/ISimpleDOMText.h [modify] https://crrev.com/1c26c59a8bac4b996882a4e16fccbff7fb6b4ef4/third_party/win_build_output/midl/third_party/isimpledom/ISimpleDOMText.idl/x86/ISimpleDOMText_i.c [modify] https://crrev.com/1c26c59a8bac4b996882a4e16fccbff7fb6b4ef4/third_party/win_build_output/midl/third_party/isimpledom/ISimpleDOMText.idl/x86/ISimpleDOMText_p.c
,
Sep 6 2017
Hi, I am seeing the following error when building on a non-corp win7 x64. msvs version is 2015 with update 3. Do you think this can be fixed similar to #17 or is this irrelevant? Thank you.
Identical files : ['google_update_idl.dlldata.c', 'google_update_idl.h']
Differing files : ['google_update_idl.tlb', 'google_update_idl_i.c', 'google_upd
ate_idl_p.c']
--- C:\Users\Ehsan\chromium\src\third_party\win_build_output\midl\google_update\
x64\google_update_idl_i.c
+++ c:\src\temp\tmpvudarc\google_update_idl_i.c
@@ -65,7 +65,7 @@
#define MIDL_DEFINE_GUID(type,name,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8) \
EXTERN_C __declspec(selectany) const type name = {l,w1,w2,{b1,b2,b3,b4,
b5,b6,b7,b8}}
-#endif // !_MIDL_USE_GUIDDEF_
+#endif !_MIDL_USE_GUIDDEF_
MIDL_DEFINE_GUID(IID, IID_IGoogleUpdate3,0x6DB17455,0x4E85,0x46e7,0x9D,0x23,0xE
5,0x55,0xE4,0xB0,0x05,0xAF);
--- C:\Users\Ehsan\chromium\src\third_party\win_build_output\midl\google_update\
x64\google_update_idl_p.c
+++ c:\src\temp\tmpvudarc\google_update_idl_p.c
@@ -7437,7 +7437,7 @@
1, /* -error bounds_check flag */
0x50002, /* Ndr library version */
0,
- 0x801026e, /* MIDL Version 8.1.622 */
+ 0x801026c, /* MIDL Version 8.1.620 */
0,
UserMarshalRoutines,
0, /* notify & notify_flag routine table */
,
Sep 6 2017
What SDK version do you have installed? It looks like you have the 14393 (Windows 10 Anniversary Edition) SDK installed. The change referred to in comment #17 is supposed to fix that so make sure you are synced beyond that point. Installing the Creators Update SDK is also not a bad idea although it should not actually be required if you have the latest changes.
,
Sep 6 2017
Well, I guess the fix in comment 17 is incomplete. -#endif // !_MIDL_USE_GUIDDEF_ +#endif !_MIDL_USE_GUIDDEF_ ^ Having to rewrite stuff like this is pretty ugly :-/
,
Sep 7 2017
#19: My SDK version is 10.0.14393.795. I am synced beyond #17. #17 (and https://chromium-review.googlesource.com/c/chromium/src/+/649768) actually fixed a lot of errors I was getting over the weekend, but I still see the error I pasted in #18. I followed these instructions: https://chromium.googlesource.com/chromium/src/+/master/docs/windows_build_instructions.md In that page it says SDK version 15063 does not work. Should we change the instructions?
,
Sep 7 2017
Those instructions are out of date now. I will update them. Thank you for pointing that out.
,
Sep 8 2017
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/4d1de59c62abfb9c4dba9dd17f1685961b634a3f commit 4d1de59c62abfb9c4dba9dd17f1685961b634a3f Author: Bruce Dawson <brucedawson@chromium.org> Date: Fri Sep 08 00:24:00 2017 Update Chrome build instructions for Windows The build instructions for Windows used to say that the Windows 10 14393 SDK was required. However the 15063 SDK has since been fixed and Chrome will now build with it if it is installed. This change updates the instructions. The new instructions also mention VS 2017 as an option. http: //dillinger.io/ was used to test the markup. BUG: 756607 Change-Id: I12274f037fe390e8db047f27ca113adfbc5d60c6 Reviewed-on: https://chromium-review.googlesource.com/656400 Reviewed-by: Dirk Pranke <dpranke@chromium.org> Commit-Queue: Bruce Dawson <brucedawson@chromium.org> Cr-Commit-Position: refs/heads/master@{#500448} [modify] https://crrev.com/4d1de59c62abfb9c4dba9dd17f1685961b634a3f/docs/windows_build_instructions.md
,
Sep 13 2017
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/1c0979a6598f42de383d3d1ab14322349f3e15f2 commit 1c0979a6598f42de383d3d1ab14322349f3e15f2 Author: Bruce Dawson <brucedawson@chromium.org> Date: Wed Sep 13 17:47:21 2017 Update Chrome build instructions for Windows It was pointed out that the instructions for VS 2017 were insufficient - you have to be sure to install the C++ compiler and MFC. Fixed. "python tools/md_browser/md_browser.py" was used to test the markup. Browse to here to see the modified markup: http://localhost:8080/docs/windows_build_instructions.md Bug: 756607 Change-Id: I60d2d4533abeff5b5e18cf4ddaa1ab402a82f2e7 Reviewed-on: https://chromium-review.googlesource.com/661977 Reviewed-by: Dirk Pranke <dpranke@chromium.org> Commit-Queue: Bruce Dawson <brucedawson@chromium.org> Cr-Commit-Position: refs/heads/master@{#501684} [modify] https://crrev.com/1c0979a6598f42de383d3d1ab14322349f3e15f2/docs/windows_build_instructions.md
,
Sep 18 2017
Just to confirm from my end: I also see the error with 14393 and 15063 installed. After installing VS2015 with 14393 and then installing 15063 separately, I end up with following: The default midl is "C:\Program Files (x86)\Windows Kits\10\bin\x86\midl.exe" Version 8.01.0620. C:\Program Files (x86)\Windows Kits\10\bin\10.0.15063.0\x64\midl.exe is Version 8.01.0622. It appears that I am unable to run gn in such a way that it would pick up the 15063 midl.exe instead of the default one. It appears that I am unable to install VS 2015 (with standard MS installers) in such a way that it would have only 15063. It appears that Chromium can not be compiled with 14393, even though the documentation says so.
,
Sep 18 2017
Kkinnunen: Thanks, but can you please post the build error you're seeing (including the diff it's supposed to print)?
,
Sep 19 2017
Similar as #18
C:\Users\kkinnunen\chromium\src>ninja -C out\Debug chrome
ninja: Entering directory `out\Debug'
[69/26890] ACTION //third_party/isimpledom:isimpledom_idl_action(//build/toolchain/win:x64)
FAILED: gen/third_party/isimpledom/ISimpleDOMNode.h gen/third_party/isimpledom/ISimpleDOMNode.dlldata.c gen/third_party/isimpledom/ISimpleDOMNode_i.c gen/third_party/isimpledom/ISimpleDOMNode_p.c
C:/Users/kkinnunen/depot_tools/win_tools-2_7_6_bin/python/bin/python.exe ../../build/toolchain/win/midl.py environment.x64 gen/third_party/isimpledom ISimpleDOMNode.tlb ISimpleDOMNode.h ISimpleDOMNode.dlldata.c ISimpleDOMNode_i.c ISimpleDOMNode_p.c ../../third_party/isimpledom/ISimpleDOMNode.idl /char signed /env x64 /Oicf
midl.exe output different from files in C:\Users\kkinnunen\chromium\src\third_party\win_build_output\midl\third_party\isimpledom\ISimpleDOMNode.idl\x64, see c:\users\kkinnu~1\appdata\local\temp\tmpmceimk
diff c:\users\kkinnu~1\appdata\local\temp\tmpmceimk C:\Users\kkinnunen\chromium\src\third_party\win_build_output\midl\third_party\isimpledom\ISimpleDOMNode.idl\x64
Identical files : ['ISimpleDOMNode.dlldata.c', 'ISimpleDOMNode.h']
Differing files : ['ISimpleDOMNode_i.c', 'ISimpleDOMNode_p.c']
--- C:\Users\kkinnunen\chromium\src\third_party\win_build_output\midl\third_party\isimpledom\ISimpleDOMNode.idl\x64\ISimpleDOMNode_i.c
+++ c:\users\kkinnu~1\appdata\local\temp\tmpmceimk\ISimpleDOMNode_i.c
@@ -65,7 +65,7 @@
#define MIDL_DEFINE_GUID(type,name,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8) \
EXTERN_C __declspec(selectany) const type name = {l,w1,w2,{b1,b2,b3,b4,b5,b6,b7,b8}}
-#endif // !_MIDL_USE_GUIDDEF_
+#endif !_MIDL_USE_GUIDDEF_
MIDL_DEFINE_GUID(IID, IID_ISimpleDOMNode,0x1814ceeb,0x49e2,0x407f,0xaf,0x99,0xfa,0x75,0x5a,0x7d,0x26,0x07);
--- C:\Users\kkinnunen\chromium\src\third_party\win_build_output\midl\third_party\isimpledom\ISimpleDOMNode.idl\x64\ISimpleDOMNode_p.c
+++ c:\users\kkinnu~1\appdata\local\temp\tmpmceimk\ISimpleDOMNode_p.c
@@ -952,7 +952,7 @@
1, /* -error bounds_check flag */
0x50002, /* Ndr library version */
0,
- 0x801026e, /* MIDL Version 8.1.622 */
+ 0x801026c, /* MIDL Version 8.1.620 */
0,
UserMarshalRoutines,
0, /* notify & notify_flag routine table */
To rebaseline:
copy /y c:\users\kkinnu~1\appdata\local\temp\tmpmceimk\* C:\Users\kkinnunen\chromium\src\third_party\win_build_output\midl\third_party\isimpledom\ISimpleDOMNode.idl\x64
[75/26890] ACTION //third_party/isimpledom:isimpledom_idl_action(//build/toolchain/win:x64)
FAILED: gen/third_party/isimpledom/ISimpleDOMText.h gen/third_party/isimpledom/ISimpleDOMText.dlldata.c gen/third_party/isimpledom/ISimpleDOMText_i.c gen/third_party/isimpledom/ISimpleDOMText_p.c
C:/Users/kkinnunen/depot_tools/win_tools-2_7_6_bin/python/bin/python.exe ../../build/toolchain/win/midl.py environment.x64 gen/third_party/isimpledom ISimpleDOMText.tlb ISimpleDOMText.h ISimpleDOMText.dlldata.c ISimpleDOMText_i.c ISimpleDOMText_p.c ../../third_party/isimpledom/ISimpleDOMText.idl /char signed /env x64 /Oicf
midl.exe output different from files in C:\Users\kkinnunen\chromium\src\third_party\win_build_output\midl\third_party\isimpledom\ISimpleDOMText.idl\x64, see c:\users\kkinnu~1\appdata\local\temp\tmphhnl2d
diff c:\users\kkinnu~1\appdata\local\temp\tmphhnl2d C:\Users\kkinnunen\chromium\src\third_party\win_build_output\midl\third_party\isimpledom\ISimpleDOMText.idl\x64
Identical files : ['ISimpleDOMText.dlldata.c', 'ISimpleDOMText.h']
Differing files : ['ISimpleDOMText_i.c', 'ISimpleDOMText_p.c']
--- C:\Users\kkinnunen\chromium\src\third_party\win_build_output\midl\third_party\isimpledom\ISimpleDOMText.idl\x64\ISimpleDOMText_i.c
+++ c:\users\kkinnu~1\appdata\local\temp\tmphhnl2d\ISimpleDOMText_i.c
@@ -65,7 +65,7 @@
#define MIDL_DEFINE_GUID(type,name,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8) \
EXTERN_C __declspec(selectany) const type name = {l,w1,w2,{b1,b2,b3,b4,b5,b6,b7,b8}}
-#endif // !_MIDL_USE_GUIDDEF_
+#endif !_MIDL_USE_GUIDDEF_
MIDL_DEFINE_GUID(IID, IID_ISimpleDOMText,0x4e747be5,0x2052,0x4265,0x8a,0xf0,0x8e,0xca,0xd7,0xaa,0xd1,0xc0);
--- C:\Users\kkinnunen\chromium\src\third_party\win_build_output\midl\third_party\isimpledom\ISimpleDOMText.idl\x64\ISimpleDOMText_p.c
+++ c:\users\kkinnu~1\appdata\local\temp\tmphhnl2d\ISimpleDOMText_p.c
@@ -475,7 +475,7 @@
1, /* -error bounds_check flag */
0x50002, /* Ndr library version */
0,
- 0x801026e, /* MIDL Version 8.1.622 */
+ 0x801026c, /* MIDL Version 8.1.620 */
0,
UserMarshalRoutines,
0, /* notify & notify_flag routine table */
To rebaseline:
copy /y c:\users\kkinnu~1\appdata\local\temp\tmphhnl2d\* C:\Users\kkinnunen\chromium\src\third_party\win_build_output\midl\third_party\isimpledom\ISimpleDOMText.idl\x64
[78/26890] CXX obj/third_party/icu/icuuc/util_props.obj
ninja: build stopped: subcommand failed.
,
Sep 19 2017
C:\Users\kkinnunen\chromium\src>git log -1 --oneline 7b3985e9028f (HEAD, origin/master, origin/HEAD) Cleanup: Remove feature NTPTilesInInstantService
,
Sep 26 2017
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/7b9ef85965bb7f997a4564dba09e257d4d7d21ea commit 7b9ef85965bb7f997a4564dba09e257d4d7d21ea Author: Nico Weber <thakis@chromium.org> Date: Tue Sep 26 01:42:58 2017 win: Try to make midl.py work with midl.exe 8.1.620 Bug: 756607 Change-Id: I78e1fdf2411c067efd5423987ab9812f14b93736 Reviewed-on: https://chromium-review.googlesource.com/680041 Reviewed-by: Scott Graham <scottmg@chromium.org> Commit-Queue: Nico Weber <thakis@chromium.org> Cr-Commit-Position: refs/heads/master@{#504255} [modify] https://crrev.com/7b9ef85965bb7f997a4564dba09e257d4d7d21ea/build/config/win/BUILD.gn [modify] https://crrev.com/7b9ef85965bb7f997a4564dba09e257d4d7d21ea/build/toolchain/win/midl.gni [modify] https://crrev.com/7b9ef85965bb7f997a4564dba09e257d4d7d21ea/build/toolchain/win/midl.py
,
Sep 26 2017
Thanks. Just adding the effect of last commit in case it is useful, not necessarily saying you would not know this already: C:\Users\kkinnunen\chromium\src>ninja -C out\Debug chrome ninja: Entering directory `out\Debug' [1/1] Regenerating ninja files [3073/29917] ACTION //third_party/iaccessible2:iaccessible2_idl_action(//build/toolchain/win:x64) FAILED: gen/third_party/iaccessible2/ia2_api_all.h gen/third_party/iaccessible2/ia2_api_all.dlldata.c gen/third_party/iaccessible2/ia2_api_all_i.c gen/third_party/iaccessible2/ia2_api_all_p.c C:/Users/kkinnunen/depot_tools/win_tools-2_7_6_bin/python/bin/python.exe ../../build/toolchain/win/midl.py environment.x64 gen/third_party/iaccessible2 ia2_api_all.tlb ia2_api_all.h ia2_api_all.dlldata.c ia2_api_all_i.c ia2_api_all_p.c ../../third_party/iaccessible2/ia2_api_all.idl /char signed /env x64 /Oicf midl.exe output different from files in C:\Users\kkinnunen\chromium\src\third_party\win_build_output\midl\third_party\iaccessible2\x64, see c:\users\kkinnu~1\appdata\local\temp\tmpel1yaj diff c:\users\kkinnu~1\appdata\local\temp\tmpel1yaj C:\Users\kkinnunen\chromium\src\third_party\win_build_output\midl\third_party\iaccessible2\x64 Identical files : ['ia2_api_all.dlldata.c', 'ia2_api_all.h', 'ia2_api_all_i.c', 'ia2_api_all_p.c'] Differing files : ['ia2_api_all.tlb'] To rebaseline: copy /y c:\users\kkinnu~1\appdata\local\temp\tmpel1yaj\* C:\Users\kkinnunen\chromium\src\third_party\win_build_output\midl\third_party\iaccessible2\x64 [3082/29917] ACTION //third_party/catapult/tracing:generate_about_tracing(//build/toolchain/win:x64) ninja: build stopped: subcommand failed. C:\Users\kkinnunen\chromium\src>set | grep MSVS GYP_MSVS_VERSION=2015
,
Sep 26 2017
I did not know this. Thanks for the report.
,
Sep 26 2017
Can you attach the tlb file in c:\users\kkinnu~1\appdata\local\temp\tmpel1yaj please?
,
Sep 26 2017
,
Sep 27 2017
I can confirm the same problem on comment #30. GYP_MSVS_VERSION=2017 Visual Studio 15.3.5 Windows 10 Version 10.0.16296 Windows SDK 10.0.15063.468
,
Sep 28 2017
The ia2_api_all.tlb issue seems to be pretty common. My theory is that any machine that has VS 2015 installed, then VS 2017, and tries to build with VS 2017 will hit this issue. The prerequisite might be an earlier Windows 10 SDK version - I'm not sure. But, given that this is likely to be very common for non-Google developers I think we need to disable the checks for now. I've got crrev.com/c/688836 ready to land as a stop-gap measure.
,
Sep 28 2017
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/7fc9bf24c9bd2bc6bebb14e9cd7bd5167d83b990 commit 7fc9bf24c9bd2bc6bebb14e9cd7bd5167d83b990 Author: Bruce Dawson <brucedawson@chromium.org> Date: Thu Sep 28 07:56:38 2017 Temporarily disable midl.py result checking On some machines - perhaps those which had VS 2015 installed, or perhaps those that had early Windows 10 SDKs installed - an older version of midl.exe ends up earlier in the path than the latest version and this leads to spurious mismatch errors in midl.py. The ideal fix may be tricky so this change disables the result checking temporarily to unblock developers who have DEPOT_TOOLS_WIN_TOOLCHAIN=0. Bug: 756607 Change-Id: I6d71f10939a65b629de58bb8646fa6f7c703e9de Reviewed-on: https://chromium-review.googlesource.com/688836 Reviewed-by: Dirk Pranke <dpranke@chromium.org> Commit-Queue: Bruce Dawson <brucedawson@chromium.org> Cr-Commit-Position: refs/heads/master@{#504935} [modify] https://crrev.com/7fc9bf24c9bd2bc6bebb14e9cd7bd5167d83b990/build/toolchain/win/midl.py
,
Sep 28 2017
There are two main strategies that could be used to pursue a long-term fix. One would be to figure out what the differences in the .tlb file and ignore them. The other strategy would be to ensure that the correct version of midl.exe is always run, by modifying the path which is returned to us by vcvarsall.bat. It seems like a VS bug that the old path is included and is first. I filed this VS bug (but I wouldn't expect a fix in the near future): https://developercommunity.visualstudio.com/content/problem/121726/vcvarsallbat-adds-old-sdk-to-path.html
,
Sep 29 2017
I looked at the file in comment 33 a bit. The diff is just 1 byte, right after the version number field we try to scribble out in https://cs.chromium.org/chromium/src/build/toolchain/win/midl.py?type=cs&q=midl.py&sq=package:chromium&l=25 I tried to make sense of the .tlb file format for a while, and actually made some good progress on that. Here's an incomplete dumper: https://chromium-review.googlesource.com/#/c/chromium/src/+/693223 The main interesting point for this bug is that there seem to be 15 sections in a tlb file that are indexed at the start of the file. Section 12 points to a block of creator data. Somewhat surprisingly, that's not fixed size though. Here's how this section looks like for google_update_idl.tlb: Entry 12: Creator info (len 84) 08 00 3e 00 00 00 43 72 65 61 74 65 64 20 62 79 ..>...Created by 20 4d 49 44 4c 20 76 65 72 73 69 6f 6e 20 38 2e MIDL version 8. 78 78 2e 78 78 78 78 20 61 74 20 61 20 72 65 64 xx.xxxx at a red 61 63 74 65 64 20 70 6f 69 6e 74 20 69 6e 20 74 acted point in t 69 6d 65 0a 13 00 ff ff ff 7f 57 57 13 00 6e 02 ime.......WW..n. 01 08 57 57 ..WW Here it is for chromoting_lib.tlb: Entry 12: Creator info (len 84) 08 00 3e 00 00 00 43 72 65 61 74 65 64 20 62 79 ..>...Created by 20 4d 49 44 4c 20 76 65 72 73 69 6f 6e 20 38 2e MIDL version 8. 78 78 2e 78 78 78 78 20 61 74 20 61 20 72 65 64 xx.xxxx at a red 61 63 74 65 64 20 70 6f 69 6e 74 20 69 6e 20 74 acted point in t 69 6d 65 0a 13 00 ff ff ff 7f 57 57 13 00 6e 02 ime.......WW..n. 01 08 57 57 ..WW These are identical. The '6e 02 01 08' at the end is 8.1.622 (0x26e == 622). The two 57s after it is probably padding. I'm not sure what the data between the text string and the binary version number is. However, for ia2_api_all.tlb, this block is different: Entry 12: Creator info (len 100) 08 00 3e 00 00 00 43 72 65 61 74 65 64 20 62 79 ..>...Created by 20 4d 49 44 4c 20 76 65 72 73 69 6f 6e 20 38 2e MIDL version 8. 78 78 2e 78 78 78 78 20 61 74 20 61 20 72 65 64 xx.xxxx at a red 61 63 74 65 64 20 70 6f 69 6e 74 20 69 6e 20 74 acted point in t 69 6d 65 0a 13 00 ff ff ff 7f 57 57 13 00 6e 02 ime.......WW..n. 01 08 57 57 03 00 ff ff ff ff 57 57 03 00 fe ff ..WW......WW.... ff ff 57 57 ..WW It's 16 byte longer, and I'm not sure what the additional data is. This is probably enough already to scribble over the binary version number in the tlb file, which I believe should be enough to re-enable result checking.
,
Oct 2 2017
The bug in vcvarsall.bat that added the old SDK to the path will be fixed. Specifically they said "Thank you for your feedback! We have fixed the problem in an upcoming release. Thank you for helping us build a better Visual Studio!" https://developercommunity.visualstudio.com/content/problem/121726/vcvarsallbat-adds-old-sdk-to-path.html That's nice and will eventually simplify our life slightly, but there will inevitably be times when developers have newer SDKs installed so we will likely always have to tolerate minor differences in output.
,
Oct 3 2017
The additional data in the custom block for ia2_api_all.idl is enum initializers. If you have an enum with explicit value initializers for negative values, those go in the custom section:
C:\src\chrome\src>type ia2_api_all.idl
[ uuid(CE3F726E-D1D3-44FE-B995-FF1DB3B48B2B) ]
library IAccessible2Lib
{
enum IA2TextSpecialOffsets {
IA2_TEXT_OFFSET_LENGTH = -1,
IA2_TEXT_OFFSET_LENGTH2 = 1,
IA2_TEXT_OFFSET_CARET = -2,
IA2_TEXT_OFFSET_CARET2 = 2,
IA2_TEXT_OFFSET_CARET3 = -3,
IA2_TEXT_OFFSET_CARET4 = 3,
};
}
C:\src\chrome\src>midl ia2_api_all.idl
C:\src\chrome\src>python typelib.py ia2_api_all.tlb
148 64 => 1ac (types)
ffffffff 0 => ffffffff ()
ffffffff 0 => ffffffff (importlibs)
ffffffff 0 => ffffffff ()
1ac 80 => 22c (guids hash (??))
22c 60 => 28c (guids)
28c 200 => 48c (typetab hash (??))
48c 118 => 5a4 (typetab)
ffffffff 0 => ffffffff (strtab)
ffffffff 0 => ffffffff ()
ffffffff 0 => ffffffff (empty)
5a4 6c => 610 (custom)
610 24 => 634 (custom+guid)
ffffffff 0 => ffffffff (empty)
ffffffff 0 => ffffffff (empty)
Entry 1: Interfaces
20 21 00 00 34 06 00 00 00 00 00 00 00 00 00 00 !..4...........
03 00 00 00 00 00 00 00 00 00 06 00 00 00 00 00 ................
00 00 00 00 00 00 00 00 00 00 00 00 ff ff ff ff ................
00 00 00 00 1c 00 00 00 00 00 00 00 ff ff ff ff ................
00 00 00 00 00 00 00 00 ff ff ff ff 00 00 00 00 ................
04 00 00 00 ff ff ff ff 00 00 00 00 00 00 00 00 ................
ff ff ff ff ....
[ ]
typedef enum IA2TextSpecialOffsets
...0 methods...
Entry 6: GUIDs
0000: CE3F726E-D1D3-44FE-95B9-FF1DB3B48B2B -2 -1
0018: DE77BA65-517C-11D1-DAA2-0000F8773CE9 -1 -1
0030: DE77BA63-517C-11D1-DAA2-0000F8773CE9 -1 -1
0048: DE77BA64-517C-11D1-DAA2-0000F8773CE9 -1 -1
Entry 8: Typetab (?)
str 0 (@0): IAccessible2Lib ; ffffffff ffffffff 0 7057
str 1 (@1c): IA2TextSpecialOffsets ; 0 ffffffff 38 f0e8
str 2 (@40): IA2_TEXT_OFFSET_LENGTH ; 0 ffffffff 30 7994
str 3 (@64): IA2_TEXT_OFFSET_LENGTH2 ; 0 ffffffff 30 3990
str 4 (@88): IA2_TEXT_OFFSET_CARET ; 0 ffffffff 30 c81d
str 5 (@ac): IA2_TEXT_OFFSET_CARET2 ; 0 ffffffff 30 71a6
str 6 (@d0): IA2_TEXT_OFFSET_CARET3 ; 0 ffffffff 30 71a7
str 7 (@f4): IA2_TEXT_OFFSET_CARET4 ; 0 ffffffff 30 71a8
Entry 9: Strtab
Entry 12: custom (len 108)
08 00 3e 00 00 00 43 72 65 61 74 65 64 20 62 79 ..>...Created by
20 4d 49 44 4c 20 76 65 72 73 69 6f 6e 20 38 2e MIDL version 8.
30 31 2e 30 36 32 32 20 61 74 20 4d 6f 6e 20 4a 01.0622 at Mon J
61 6e 20 31 38 20 32 32 3a 31 34 3a 30 37 20 32 an 18 22:14:07 2
30 33 38 0a 13 00 ff ff ff 7f 57 57 13 00 6e 02 038.......WW..n.
01 08 57 57 03 00 ff ff ff ff 57 57 03 00 fe ff ..WW......WW....
ff ff 57 57 03 00 fd ff ff ff 57 57 ..WW......WW
Entry 13: custom+guid
DE77BA65-517C-11D1-DAA2-0000F8773CE9: 0 ffffffff
DE77BA63-517C-11D1-DAA2-0000F8773CE9: 44 0
DE77BA64-517C-11D1-DAA2-0000F8773CE9: 4c c
,
Oct 6 2017
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/3a468a2b925df77b0ae25356662bce2a4425d67d commit 3a468a2b925df77b0ae25356662bce2a4425d67d Author: Nico Weber <thakis@chromium.org> Date: Fri Oct 06 22:48:00 2017 midl: Make tlb file work with midl 8.1.620 too, reenable check. I figured out how .tlb files look, see https://chromium-review.googlesource.com/c/chromium/src/+/693223 (start around line 255 for an overview). This is possibly overkill for just this issue, but it will come in handy for making remoting's midl step with changing UUID implementable. Bug: 756607 , 761839 Change-Id: I2f2eaaaaa524569f6b014c1793109261e94c79b2 Reviewed-on: https://chromium-review.googlesource.com/705995 Reviewed-by: Bruce Dawson <brucedawson@chromium.org> Commit-Queue: Nico Weber <thakis@chromium.org> Cr-Commit-Position: refs/heads/master@{#507205} [modify] https://crrev.com/3a468a2b925df77b0ae25356662bce2a4425d67d/build/toolchain/win/midl.py
,
Oct 13 2017
I think we can call this done. This took a lot more work than expected! While we currently only copy files around, I wrote a fairly complete mc.exe proof-of-concept reimplementation. .mc part: https://github.com/nico/hack/blob/master/mc/mc.py (contains a complete description of the MSGddddd.bin format -- I didn't look at the TEMP.BIN format, but it's hopefully not super hard to figure out) .man part: https://chromium-review.googlesource.com/c/chromium/src/+/614060/8/build/win/mc.py So if push comes to shove, we can replace the mc-copying part with a real mc reimplementation in a timeframe of a week or two if we must. While I didn't write a midl.exe reimplementation, I figured out ~80% of the binary .tlb format that midl.exe writes (including type references to foreign dlls), and that was the imho scariest part of writing a midl reimplementation. (The _p.c contents are pretty mysterious too though, and I haven't looked at them at all.) If we really had to do this, we could possibly do it in a month. But for now, all seems well as it is.
,
Oct 13 2017
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/8f48c21352588b61d857897d0d1c7d695edcbcdf commit 8f48c21352588b61d857897d0d1c7d695edcbcdf Author: Nico Weber <thakis@chromium.org> Date: Fri Oct 13 17:47:03 2017 Add bat files to rerun midl and mc rules. Bug: 773476 , 756607 Change-Id: Ibb5ceb0aa96a993e76369802e53e0184b2dfab40 Reviewed-on: https://chromium-review.googlesource.com/719157 Reviewed-by: Bruce Dawson <brucedawson@chromium.org> Commit-Queue: Nico Weber <thakis@chromium.org> Cr-Commit-Position: refs/heads/master@{#508749} [add] https://crrev.com/8f48c21352588b61d857897d0d1c7d695edcbcdf/third_party/win_build_output/remc.bat [add] https://crrev.com/8f48c21352588b61d857897d0d1c7d695edcbcdf/third_party/win_build_output/remidl.bat |
||||
►
Sign in to add a comment |
||||
Comment 1 by dmazz...@chromium.org
, Aug 17 2017