bigendian support for ICU
Categories
(Firefox Build System :: General, defect)
Tracking
(firefox80 fixed)
Tracking | Status | |
---|---|---|
firefox80 | --- | fixed |
People
(Reporter: stevensn, Assigned: glandium)
References
(Blocks 1 open bug)
Details
Attachments
(2 files)
47 bytes,
text/x-phabricator-request
|
Details | Review | |
526 bytes,
patch
|
Details | Diff | Splinter Review |
Assignee | ||
Comment 1•9 years ago
|
||
Comment 2•9 years ago
|
||
Assignee | ||
Comment 3•9 years ago
|
||
Reporter | ||
Comment 4•9 years ago
|
||
Comment 5•9 years ago
|
||
Comment 7•9 years ago
|
||
Comment 8•8 years ago
|
||
Comment 9•8 years ago
|
||
Updated•8 years ago
|
Comment 10•8 years ago
|
||
Comment 11•8 years ago
|
||
Comment 12•8 years ago
|
||
Comment 13•8 years ago
|
||
Comment 14•7 years ago
|
||
Comment 15•7 years ago
|
||
Comment hidden (admin-reviewed) |
Comment 17•7 years ago
|
||
Comment 18•7 years ago
|
||
Comment 19•7 years ago
|
||
Comment 20•7 years ago
|
||
Updated•7 years ago
|
Comment 21•5 years ago
|
||
(In reply to Petr Sumbera from comment #10)
I ran into this issue while building FF for Solaris on sparc. And yes icupkg
fail. It's failing because of 'confusables' record. So following works:icupkg -tb -r confusables.cfu icudt58l.dat
I've removed the "confusables" record in bug 1569567 and posted two patches to bug 1322212 to add and process big endian ICU data files. I wasn't able to verify the generated data file works correctly (https://phabricator.services.mozilla.com/D40803#1226799), though.
Updated•5 years ago
|
Comment 24•4 years ago
|
||
I hit the missing icudt${ver}b.dat recently (after changes from 1635764). Looks to me that the filename is generated correctly in the buildsystem. So my question is what blocks generating the missing file on runtime with "./mach python intl/icu_sources_data.py ." (as done for example for big endian builds in Fedora)?
Comment 25•4 years ago
|
||
The main obstacle is that no one volunteered to write and test a patch. For example I don't have any big endian environments ready for testing, so my patches in bug 1322212 were all only best effort.
And in addition to calling intl/icu_sources_data.py
, preferably there also needs to be some way to update the time zone data included in the ICU data file. We're currently using ICU 67, which ships with tzdata 2019c, but the most current tzdata version is 2020a. To update tzdata in ICU, there's the update-tzdata.sh
shell script, but that one requires to be called with a compatible icupkg
binary. (Some overdue documentation for all this is currently in-progress at bug 1642505.)
Comment 26•4 years ago
|
||
If it would help, then I can provide access to a big endian system and naturally test patches. Writing the patch myself would be difficult, because I'm not much familiar with the FF build-system.
Comment 27•4 years ago
|
||
FWIW, access to big-endian systems (PPC64 and SPARC64) can be obtained through the GCC compile farm, see:
The only requirement is that the account is used for the intent of developing open source software.
The machines gcc202 (SPARC64) and gcc203 (PPC64) are co-maintained by me, so I can install packages if required.
Comment 28•4 years ago
|
||
Seems that it's possible to convert ICU data file without an error now:
icupkg -tb config/external/icu/data/icudt67l.dat config/external/icu/data/icudt67b.dat
But I'm not good with Mozilla build system. How can we execute this line? Any suggestion or example?
Also it would be probably better to build icupkg
ourself (intl/icu/source/tools/icupkg). Again I don't really know where to start...
But anyway by executing above command I'm able to build Firefox again.
Comment 29•4 years ago
|
||
intl/icu/README.md
documents all the various relevant commands involved in updating ICU, tzdata, currency information, etc.
I've noted there that we don't have the big-endian version of the file checked in for what are primarily size reasons. Also, those commands currently depend upon a compatible icupkg
being provided by the user.
It wouldn't be a crazy nit to fix to build icupkg
from the downloaded source and then use that (indeed bug 1449677 would do just that). But it's not really on the radar of the two of us who do most of this work given we can basically just suck it up and do a little extra work.
Assignee | ||
Updated•4 years ago
|
Updated•4 years ago
|
Updated•4 years ago
|
Assignee | ||
Comment 30•4 years ago
|
||
Comment 31•4 years ago
|
||
Assignee | ||
Comment 32•4 years ago
|
||
For people who would want to cherry-pick this on their copy of esr78, this additional patch is necessary (on top of all the dependencies of this bug).
Comment 33•4 years ago
|
||
Backed out for breaking the Gecko Decision Task
Backout link: https://hg.mozilla.org/integration/autoland/rev/d803e7067b2cdfbe2d157e5ac91a071d5e75cad8
Log link: https://treeherder.mozilla.org/logviewer.html#/jobs?job_id=310220185&repo=autoland&lineNumber=3740
Assignee | ||
Updated•4 years ago
|
Comment 34•4 years ago
|
||
Comment 35•4 years ago
|
||
Backed out for for bustages at AccessibleRole.h.
Backout link: https://hg.mozilla.org/integration/autoland/rev/0c0f777161a9499dd149853ff62d356f75d16c2a
Failure log: https://treeherder.mozilla.org/logviewer.html#/jobs?job_id=310232645&repo=autoland&lineNumber=7315
Comment 36•4 years ago
|
||
Comment 37•4 years ago
|
||
Apologies for troubles that I caused.
It was relanded: https://hg.mozilla.org/integration/autoland/rev/65418a2fb34497160402d09acadeab78974994d3
Comment 38•4 years ago
|
||
bugherder |
Description
•