[tor-bugs] #13419 [Applications/Tor Browser]: Fix cross-compiling ICU with mingw-w64 for Windows builds

Tor Bug Tracker & Wiki blackhole at torproject.org
Mon Apr 18 09:27:50 UTC 2016


#13419: Fix cross-compiling ICU with mingw-w64 for Windows builds
-------------------------------------------------+-------------------------
 Reporter:  gk                                   |          Owner:  gk
     Type:  task                                 |         Status:
 Priority:  High                                 |  needs_review
Component:  Applications/Tor Browser             |      Milestone:
 Severity:  Major                                |        Version:
 Keywords:  tbb-gitian, GeorgKoppen201604,       |     Resolution:
  TorBrowserTeam201604, ff45-esr, tbb-6.0a5      |  Actual Points:
Parent ID:                                       |         Points:
 Reviewer:                                       |        Sponsor:
-------------------------------------------------+-------------------------
Changes (by gk):

 * status:  assigned => needs_review


Comment:

 Replying to [comment:6 gk]:
 > There are interesting things going on here. First I tried to tackle this
 from a different angle: I cross-compiled the ICU lib alone which is
 surprisingly working out of the box (at least the compilation does not
 break) and tried to determine what is wrong with Mozilla's one. I took the
 same version (52.1) and used the same toolchain but I am still puzzled.

 I thought it might be a good idea to start from here again trying to find
 out what the issue is. It turns out. ICU does not like the `-static`
 LDFLAG if it is configured with `--disable-static --enable-shared` as it
 is in a default setup. We have the former requirement due to bug 1116777.
 The patch in icu.m4 takes care of this.

 The next issue was that all libraries have the Windows static library
 suffix `.lib` while `.a` is expected. This is addressed in the Makefile.in
 patch.

 The final problem was that not all libraries are generated the proper
 prefix `lib`. Changing that in the ICU mingw config and the Makefile.in
 file solves this.

 This patch is only meant to get Tor Browser based on ESR45 into shape.
 Creating upstreamable ones (both to ICU and Mozilla) will be separate
 tickets. In fact, as I mentioned in my previous comment I guess we'd need
 a heavily modified one anyway.

 Testing a resulting build solves both this bug, #16874 and #18767 without
 noticeable downsides for me.

 Please review the attached patch.

--
Ticket URL: <https://trac.torproject.org/projects/tor/ticket/13419#comment:17>
Tor Bug Tracker & Wiki <https://trac.torproject.org/>
The Tor Project: anonymity online


More information about the tor-bugs mailing list