We want to use the clang-based mingw-w64 toolchain to build Firefox to be finally able to enabled Stylo on Windows as well. This is the ticket tracking the implementation work
To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information
Child items
0
Show closed items
No child items are currently assigned. Use child items to break down this issue into smaller parts.
Linked items
0
Link issues together to show that they're related.
Learn more.
We likely start small and just use the toolchain to build the Firefox part which means we'd have two mingw-w64 toolchains for the time being (we had this back then in the old days for macOS, too). I guess other parts of the whole bundle might need quite some amount of work to getting built with that new toolchain and we want to move fast here aiming for Tor Browser 8.5.
However, if it turns out I am wrong and it is indeed easy to use mingw-w64/clang for everything, fine with me.
Testing bug_28238 shows that we have some reproducibility issues with mingw-w64/clang. It seems we have to deal at least with timestamp issues in the COFF header. Comparing e.g. firefox.exe from two different runs shows:
So, I have been fighting today with building the whole Firefox related part (including fxc2) without the old mingw-w64/gcc-based toolchain. fxc2 does not want and I don't know why yet. It fails to run with things like
0:03.01 err:module:import_dll Library api-ms-win-crt-convert-l1-1-0.dll (which is needed by L"Z:\\var\\tmp\\dist\\fxc2\\bin\\fxc2.exe") not found 0:03.01 err:module:import_dll Library api-ms-win-crt-heap-l1-1-0.dll (which is needed by L"Z:\\var\\tmp\\dist\\fxc2\\bin\\fxc2.exe") not found 0:03.01 err:module:import_dll Library api-ms-win-crt-private-l1-1-0.dll (which is needed by L"Z:\\var\\tmp\\dist\\fxc2\\bin\\fxc2.exe") not found 0:03.01 err:module:import_dll Library api-ms-win-crt-runtime-l1-1-0.dll (which is needed by L"Z:\\var\\tmp\\dist\\fxc2\\bin\\fxc2.exe") not found 0:03.01 err:module:import_dll Library api-ms-win-crt-stdio-l1-1-0.dll (which is needed by L"Z:\\var\\tmp\\dist\\fxc2\\bin\\fxc2.exe") not found 0:03.02 err:module:import_dll Library api-ms-win-crt-string-l1-1-0.dll (which is needed by L"Z:\\var\\tmp\\dist\\fxc2\\bin\\fxc2.exe") not found 0:03.02 err:module:import_dll Library api-ms-win-crt-environment-l1-1-0.dll (which is needed by L"Z:\\var\\tmp\\dist\\fxc2\\bin\\fxc2.exe") not found 0:03.02 err:module:import_dll Library api-ms-win-crt-math-l1-1-0.dll (which is needed by L"Z:\\var\\tmp\\dist\\fxc2\\bin\\fxc2.exe") not found 0:03.02 err:module:import_dll Library api-ms-win-crt-time-l1-1-0.dll (which is needed by L"Z:\\var\\tmp\\dist\\fxc2\\bin\\fxc2.exe") not found 0:03.03 err:module:import_dll Library api-ms-win-crt-locale-l1-1-0.dll (which is needed by L"Z:\\var\\tmp\\dist\\fxc2\\bin\\fxc2.exe") not found 0:03.03 err:module:LdrInitializeThunk Main exe initialization for L"Z:\\var\\tmp\\dist\\fxc2\\bin\\fxc2.exe" failed, status c0000135
I need to look closer at the way this is built on Mozilla infra tomorrow where this seems to be working.
So, I have been fighting today with building the whole Firefox related part (including fxc2) without the old mingw-w64/gcc-based toolchain.
No, no, don't fight with it! The new tool chain is much more sane. And it will make you happy.
fxc2 does not want and I don't know why yet. It fails to run with things like
{{{
0:03.01 err:module:import_dll Library api-ms-win-crt-convert-l1-1-0.dll (which is needed by L"Z:\var\tmp\dist\fxc2\bin\fxc2.exe") not found
0:03.01 err:module:import_dll Library api-ms-win-crt-heap-l1-1-0.dll (which is needed by L"Z:\var\tmp\dist\fxc2\bin\fxc2.exe") not found
0:03.01 err:module:import_dll Library api-ms-win-crt-private-l1-1-0.dll (which is needed by L"Z:\var\tmp\dist\fxc2\bin\fxc2.exe") not found
0:03.01 err:module:import_dll Library api-ms-win-crt-runtime-l1-1-0.dll (which is needed by L"Z:\var\tmp\dist\fxc2\bin\fxc2.exe") not found
0:03.01 err:module:import_dll Library api-ms-win-crt-stdio-l1-1-0.dll (which is needed by L"Z:\var\tmp\dist\fxc2\bin\fxc2.exe") not found
0:03.02 err:module:import_dll Library api-ms-win-crt-string-l1-1-0.dll (which is needed by L"Z:\var\tmp\dist\fxc2\bin\fxc2.exe") not found
0:03.02 err:module:import_dll Library api-ms-win-crt-environment-l1-1-0.dll (which is needed by L"Z:\var\tmp\dist\fxc2\bin\fxc2.exe") not found
0:03.02 err:module:import_dll Library api-ms-win-crt-math-l1-1-0.dll (which is needed by L"Z:\var\tmp\dist\fxc2\bin\fxc2.exe") not found
0:03.02 err:module:import_dll Library api-ms-win-crt-time-l1-1-0.dll (which is needed by L"Z:\var\tmp\dist\fxc2\bin\fxc2.exe") not found
0:03.03 err:module:import_dll Library api-ms-win-crt-locale-l1-1-0.dll (which is needed by L"Z:\var\tmp\dist\fxc2\bin\fxc2.exe") not found
0:03.03 err:module:LdrInitializeThunk Main exe initialization for L"Z:\var\tmp\dist\fxc2\bin\fxc2.exe" failed, status c0000135
}}}
Do you have wine with ucrt? FWIW, wine 4.0 is out.
I need to look closer at the way this is built on Mozilla infra tomorrow where this seems to be working.
They use https://hg.mozilla.org/mozilla-central/file/tip/taskcluster/scripts/misc/build-wine.sh
Okay, I am close with this ticket. Here is a test bundle which compiles fxc2 and firefox with mingw-w64/clang while mingw-w64/gcc is used for the remaining components. I'd be interested in whether that explodes on anyone's machine: