We have a working build of Windows x86_64 with this branch. I verified it on Windows 10.
I think we can do better for #26205 (moved) (commit 93f89a735792e329bd7853bcbd0db056426e32d6). Please review and suggest. Also, should this patch go in Firefox (as part of git_url) or as separate patches which we add during the build (current approach)?
Thanks. I will review, and suggest some fixup commits if needed.
I think we can do better for #26205 (moved) (commit 93f89a735792e329bd7853bcbd0db056426e32d6). Please review and suggest. Also, should this patch go in Firefox (as part of git_url) or as separate patches which we add during the build (current approach)?
I think the patch should go in tor-browser.git (but adding it as a patch file is useful for testing before it is merged in tor-browser.git).
For Rust, I made the change below; let me know if we should remove the guards altogether:
{{{
-[% IF ! c("var/windows") %]
+[% IF ! c("var/windows-i686") %]
}}}
I think we can remove the guards altogether, as we will want it at some point, and the build fails without rust.
We actually need libwinpthread-1.dll in Browser\TorBrowser\Tor it seems and not in Browser. Which means we need it for the expert bundle as well.
This is #26206 (moved). And you need to ship it with every executable you built with your patched gcc. But that's not great, and you don't do that for msvcr100.dll, fwiw.
sukhbir: Why do we need pre_pkginst: dpkg --add-architecture i386 for the 64bit case? Compiling without it works for me.
Without adding it, I was getting something like it looks like multiarch needs to be enabled. Also, I based this on https://wiki.debian.org/Wine, which says:
On 64-bit systems you should enable a 32-bit architecture for multiarch. This is needed for running 32-bit Windows applications (many modern apps are still 32-bit), but also for large parts of the Windows subsystem itself. If in doubt, you do need it!
But maybe Wine64 is all we need if it works without that.
sukhbir: Why do we need pre_pkginst: dpkg --add-architecture i386 for the 64bit case? Compiling without it works for me.
Without adding it, I was getting something like it looks like multiarch needs to be enabled. Also, I based this on https://wiki.debian.org/Wine, which says:
{{{
On 64-bit systems you should enable a 32-bit architecture for multiarch. This is needed for running 32-bit Windows applications (many modern apps are still 32-bit), but also for large parts of the Windows subsystem itself. If in doubt, you do need it!
}}}
But maybe Wine64 is all we need if it works without that.
Isn't that the error that you were having when you were trying to use the 32bit d3dcompiler_47.dll?
When using the 64bit version of d3dcompiler_47.dll I don't think we need the 32bit version of wine.
sukhbir: Why do we need pre_pkginst: dpkg --add-architecture i386 for the 64bit case? Compiling without it works for me.
Without adding it, I was getting something like it looks like multiarch needs to be enabled. Also, I based this on https://wiki.debian.org/Wine, which says:
{{{
On 64-bit systems you should enable a 32-bit architecture for multiarch. This is needed for running 32-bit Windows applications (many modern apps are still 32-bit), but also for large parts of the Windows subsystem itself. If in doubt, you do need it!
}}}
But maybe Wine64 is all we need if it works without that.
Isn't that the error that you were having when you were trying to use the 32bit d3dcompiler_47.dll?
When using the 64bit version of d3dcompiler_47.dll I don't think we need the 32bit version of wine.
OK, if that's the case and it does compile without it, we should remove it. Should I update the patch?
I looked over https://github.com/azadi/gecko-dev and all the cherry-picked patches. I omitted the following patches when pushing the changes to tor-browser-60.0.1esr-8.0-1:
1411401: That's only for Mozilla infra and we are essentially getting this patch by using mingw-w64's ee9fc3d0b8c8868280e38384edd968067b8e71fc.
1434316: That's only for Mozilla infra.
1460620: Let's leave this out for now and bundle the dll ourselves (as your patch is doing)
1461421: just cherry-pick the actual fix (the other two commits are stricly speaking not needed and I want to keep the patch number as small as possible)