Port bug 1617794 - Tier 2 win64-cross builds (Thunderbird)
Categories
(Thunderbird :: Build Config, enhancement)
Tracking
(Not tracked)
People
(Reporter: rjl, Assigned: rjl)
Details
Attachments
(4 files)
2.24 KB,
patch
|
darktrojan
:
review+
|
Details | Diff | Splinter Review |
7.78 KB,
patch
|
darktrojan
:
review+
|
Details | Diff | Splinter Review |
2.90 KB,
text/plain
|
Details | |
4.40 KB,
text/plain
|
Details |
It's now possible to do win64 builds of Thunderbird on Linux, thanks to wonderful work by glandium for Firefox.
The build uses clang-cl on a Linux host and links against the same libraries from Visual Studio 2017 that are used when building on Windows.
Most of the supporting tools are cross-platform: Rust, Nodejs, NASM. There are a few exceptions, namely MIDL.EXE, RC.EXE, ML64.EXE, MAKECAB.EXE, NSIS, UPX and FXC.EXE. These all run using WINE.
Another obstacle is that on Windows, the filesystem is case insensitive. liblowercase.so is an LD_PRELOAD library that allows specified paths to be accessed in a case insensitive way. For it to work, the files themselves must be all lowercase, but then processes run with LD_PRELOAD will be able to access them with mixed case. In practice, this is really only needed for the VS2017 and WIN10SDK paths.
Assignee | ||
Comment 1•4 years ago
|
||
This does produce a working build. Unlike bug 1351377, this effort uses VS2017 and Win 10 SDK headers and libraries rather than the MINGW ones.
Assignee | ||
Updated•4 years ago
|
Assignee | ||
Comment 2•4 years ago
|
||
Set up a new win64 build job that cross-compiles on Linux using clang-cl and Visual Studio libraries. Unlike the patches in bug 1351377, this build supports MAPI and Windows Search integration. This is a tier 2 platform.
Assignee | ||
Comment 3•4 years ago
|
||
This is the mozconfig file I came up with to build win64-cross builds locally. It uses the toolchains that are build for Taskcluster.
Assignee | ||
Comment 4•4 years ago
|
||
How to use the mozconfig file attached to this bug. Specifically, some information on how to use liblowercase and how to get the necessary Visual Studio and Win SDK stuff.
Eventually I would like to get this on DTN.
Updated•4 years ago
|
Comment 5•4 years ago
|
||
Comment on attachment 9129983 [details] [diff] [review] Port bug 1617794: Add tier-2 64-bit Windows cross build Review of attachment 9129983 [details] [diff] [review]: ----------------------------------------------------------------- ::: mail/config/mozconfigs/win64/cross @@ +24,5 @@ > +# Set up mapi includes (must be done after visual studio setup) > +export INCLUDE=$TOOLTOOL_DIR/mapiheader > + > + > +ac_add_options --with-branding=comm/mail/branding/nightly Necessary? None of our mozconfigs have this option, but all of Firefox's do. Perhaps we should be adding it to all.
Comment 6•4 years ago
|
||
I'm going to have to try this out now. I needed to build for Windows anyway, and if I can do it outside my VM, that should make life much easier.
Assignee | ||
Comment 7•4 years ago
|
||
It's not necessary. Branding is set in https://searchfox.org/comm-central/source/mail/confvars.sh#18-19. Then old-configure figures out which to use based on the presence of --enable-official-branding. Not sure why Firefox is setting it in both places.
I left it though to sort of emphasize the unofficial nature of these builds.
(In reply to Geoff Lankow (:darktrojan) from comment #5)
Comment on attachment 9129983 [details] [diff] [review]
Port bug 1617794: Add tier-2 64-bit Windows cross buildReview of attachment 9129983 [details] [diff] [review]:
::: mail/config/mozconfigs/win64/cross
@@ +24,5 @@+# Set up mapi includes (must be done after visual studio setup)
+export INCLUDE=$TOOLTOOL_DIR/mapiheader
+
+
+ac_add_options --with-branding=comm/mail/branding/nightlyNecessary? None of our mozconfigs have this option, but all of Firefox's do.
Perhaps we should be adding it to all.
Assignee | ||
Comment 8•4 years ago
|
||
Maybe I spoke too soon... bug 1620165. I will see what I can find out.
(In reply to Rob Lemley [:rjl] from comment #7)
I left it though to sort of emphasize the unofficial nature of these builds.
Pushed by thunderbird@calypsoblue.org:
https://hg.mozilla.org/comm-central/rev/9afcfb7f0138
Port bug 1617794: Wrap Windows tools with Wine on cross builds. r=darktrojan
https://hg.mozilla.org/comm-central/rev/526492aedbb6
Port bug 1617794: Add tier-2 64-bit Windows cross build. r=darktrojan
Assignee | ||
Updated•4 years ago
|
Updated•4 years ago
|
Description
•