Opened 3 years ago

Closed 3 years ago

Last modified 2 years ago

#18290 closed task (fixed)

Update Windows toolchain to work with Firefox 45 ESR

Reported by: gk Owned by: tbb-team
Priority: Medium Milestone:
Component: Applications/Tor Browser Version:
Severity: Normal Keywords: tbb-gitian, ff45-esr, TorBrowserTeam201604, GeorgKoppen201604
Cc: arlolra, boklm, arthuredelstein Actual Points:
Parent ID: Points:
Reviewer: Sponsor:

Description (last modified by gk)

Making an own ticket for Windows related changes as they used to be the most involved ones.

Child Tickets

Change History (16)

comment:1 Changed 3 years ago by gk

Description: modified (diff)

comment:2 Changed 3 years ago by arlolra

Cc: arlolra boklm added

comment:3 Changed 3 years ago by gk

Attached are all the patches we need. I am not happy to back out the libraries folding one but for some reason with this patch our builds fail. https://bugzilla.mozilla.org/show_bug.cgi?id=1248552 is tracking this.

comment:4 Changed 3 years ago by gk

Cc: arthuredelstein added

mingw-w64 needs to get bumped to ace70f13c8bdcc9aa2a52b231e35d590df0a04e0 at least setting MINGW_TAG to it. I plan to do that using that commit while switching our nightlies to esr45. (#18700 is a duplicate)

comment:5 Changed 3 years ago by gk

Keywords: TorBrowserTeam201604 GeorgKoppen201604 added

comment:6 in reply to:  3 Changed 3 years ago by bugzilla

Replying to gk:

Attached are all the patches we need. I am not happy to back out the libraries folding one but for some reason with this patch our builds fail. https://bugzilla.mozilla.org/show_bug.cgi?id=1248552 is tracking this.

FF45 requires msvcr120 + C++RT or even more fun from MSVS2015.
What is the -spec compiler option doing in LDFLAGS? (Instead of compiler flags)
What is the next symbol after nss3.def in your logs? Tab? What is in the other places?

Last edited 3 years ago by bugzilla (previous) (diff)

comment:7 in reply to:  4 Changed 3 years ago by bugzilla

Replying to gk:

mingw-w64 needs to get bumped to ace70f13c8bdcc9aa2a52b231e35d590df0a04e0 at least setting MINGW_TAG to it. I plan to do that using that commit while switching our nightlies to esr45. (#18700 is a duplicate)

If nothing prevents you from using trunk version, please, use it. For GCC 5.x too.

mingw-w64, preferably trunk version, is required

(https://developer.mozilla.org/en-US/docs/Mozilla/Developer_guide/Build_Instructions/Cross_Compile_Mozilla_for_Mingw32)
About SDKs:
June 2010 DirectX SDK (specifically) with End-User Redistributable Packages
is required for building the ANGLE GLES-on-D3D9 renderer for WebGL support on Windows.

Very good reading about mingw-w64 toolchain update: https://stat.ethz.ch/pipermail/r-sig-windows/2015q3/000000.html

comment:8 in reply to:  3 ; Changed 3 years ago by bugzilla

Replying to gk:

Attached are all the patches we need. I am not happy to back out the libraries folding one but for some reason with this patch our builds fail. https://bugzilla.mozilla.org/show_bug.cgi?id=1248552 is tracking this.

That patch uses unique ifdef MOZ_FOLD_LIBS_FLAGS while the others use ifdef MOZ_FOLD_LIBS...
It defines MOZ_FOLD_LIBS_FLAGS=-mnop-fun-dllimport while the others use quotes...
You've already had adventures with that in #10761 and are going to have again...
The right decision was taken in https://bugzilla.mozilla.org/show_bug.cgi?id=1151447 (judging by its name :)... But seems that only for its naming... And the author continues making esr45 codebase happy with the unique flag... It looks like there's some misunderstanding of https://sourceware.org/binutils/docs-2.26/ld/WIN32.html
(Mozilla isn't better: releasing version that cannot be built with their toolchain! Haha :) They've stolen the proper toolchain somewhere to release esr45 :) Here is how to make things right: https://bugzilla.mozilla.org/show_bug.cgi?id=1113450. And here is what's happening with their Release Engineering https://bugzilla.mozilla.org/show_bug.cgi?id=1224408 status-firefox45: affected)

comment:9 in reply to:  8 ; Changed 3 years ago by gk

Resolution: fixed
Status: newclosed

Replying to bugzilla:

Replying to gk:

Attached are all the patches we need. I am not happy to back out the libraries folding one but for some reason with this patch our builds fail. https://bugzilla.mozilla.org/show_bug.cgi?id=1248552 is tracking this.

That patch uses unique ifdef MOZ_FOLD_LIBS_FLAGS while the others use ifdef MOZ_FOLD_LIBS...
It defines MOZ_FOLD_LIBS_FLAGS=-mnop-fun-dllimport while the others use quotes...
You've already had adventures with that in #10761 and are going to have again...

Thanks for the pointer, but, no, not necessarily. The problem in #10761 happened due to calling from NSS to NSPR. After libraries are folded there is no cross-dll call here anymore. There might be similar problematic calls although this is unlikely at least according to Jacek.

Anyway, we keep the backout for now as the alternative is pulling in a bunch of build changes whose stability risks for ESR45 are unknown.

We bump the mingw-w64 commit we use to a0cd5afeb60be3be0860e9a203314c10485bb9b8 as this one is at least needed for Tor Browser based on Firefox > 45 anyway.

arlolra: FWIW: I did not figure out why you don't need the Werror patch for Tor Messenger. Even if I use a more or less default .mozconfig and default build flags I hit that one when building Tor Browser.

comment:10 in reply to:  9 Changed 3 years ago by bugzilla

Replying to gk:

Thanks for the pointer, but, no, not necessarily.

Of course, not. There was a different problem in #10761. But by trying to solve problems by disabling dllimport attribute of functions Jacek is going the wrong way.

Last edited 3 years ago by bugzilla (previous) (diff)

comment:11 in reply to:  8 Changed 2 years ago by cypherpunks

Parent ID: #18226

Replying to bugzilla:

You've already had adventures with that in #10761 and are going to have again...

True

Note: See TracTickets for help on using tickets.