Closed Bug 1855986 Opened 7 months ago Closed 6 months ago

ICU update script no longer works


(Firefox Build System :: General, defect)



(firefox-esr115 unaffected, firefox118 unaffected, firefox119 wontfix, firefox120+ fixed)

120 Branch
Tracking Status
firefox-esr115 --- unaffected
firefox118 --- unaffected
firefox119 --- wontfix
firefox120 + fixed


(Reporter: anba, Assigned: sergesanspaille)




(Keywords: regression)


(1 file, 1 obsolete file)

Bug 1852210 broke the ICU update script.


cd $MOZ/intl
PYTHONPATH=../python/mozbuild/ ./ release-73-1


Running ICU configure...                                                                                                                                                                                                             
Running ICU make...                                                                                                                                                                                                                  
Error running "make --jobs=4 --output-sync" in directory /tmp/icu-obj-rumu4ck4                                                                                                                                                       
    See output in /tmp/icu-make3eepx_37

And in "/tmp/icu-make3eepx_37":

/home/andre/hg/mozilla-central/intl/icu/source/i18n/number_decimalquantity.cpp:19:10: fatal error: double-conversion/double-conversion.h: No such file or directory
   19 | #include "double-conversion/double-conversion.h"
      |          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
compilation terminated.

Furthermore bug 1852210 incorrectly modified imported files:

:~/hg/mozilla-central/intl$ hg st .
M icu/source/i18n/sources.txt
? icu/source/i18n/double-conversion-bignum-dtoa.cpp
? icu/source/i18n/double-conversion-bignum-dtoa.h
? icu/source/i18n/double-conversion-bignum.cpp
? icu/source/i18n/double-conversion-bignum.h
? icu/source/i18n/double-conversion-cached-powers.cpp
? icu/source/i18n/double-conversion-cached-powers.h
? icu/source/i18n/double-conversion-diy-fp.h
? icu/source/i18n/double-conversion-double-to-string.cpp
? icu/source/i18n/double-conversion-double-to-string.h
? icu/source/i18n/double-conversion-fast-dtoa.cpp
? icu/source/i18n/double-conversion-fast-dtoa.h
? icu/source/i18n/double-conversion-ieee.h
? icu/source/i18n/double-conversion-string-to-double.cpp
? icu/source/i18n/double-conversion-string-to-double.h
? icu/source/i18n/double-conversion-strtod.cpp
? icu/source/i18n/double-conversion-strtod.h
? icu/source/i18n/double-conversion-utils.h
? icu/source/i18n/double-conversion.h

Unused ICU source files should be recorded in "intl/" instead of manually deleting them.

Note: hg st shows some additional changes after reimporting ICU 73.1, but that's because of bug 1855981.

Set release status flags based on info from the regressing bug 1852210

:sergesanspaille, since you are the author of the regressor, bug 1852210, could you take a look? Also, could you set the severity field?

For more information, please visit BugBot documentation.

The bug is marked as tracked for firefox120 (nightly). However, the bug still isn't assigned.

:marco, could you please find an assignee for this tracked bug? Given that it is a regression and we know the cause, we could also simply backout the regressor. If you disagree with the tracking decision, please talk with the release managers.

For more information, please visit BugBot documentation.

Flags: needinfo?(mcastelluccio)
Assignee: nobody → sguelton
Flags: needinfo?(sguelton)
Flags: needinfo?(mcastelluccio)

Since Bug 1852210 we use a single version of double-conversion: the one vendored in mfbt.

As a consequence, setup the build environment used in
intl/ to use that version instead of the bundled one.

Updates the ICU patch "double-conversion.diff" to only use the in-tree copy of
double-conversion when building Firefox/SpiderMonkey. Standalone ICU builds
instead use the ICU copy of double-conversion. Standalone ICU builds happen
when running "intl/" and when converting the in-tree
little-endian ICU data file to the big-endian format.

JS_HAS_INTL_API is used to detect how ICU is built: When building ICU as part
of Firefox/SpiderMonkey, JS_HAS_INTL_API is guaranteed to be set, whereas in
standalone ICU builds JS_HAS_INTL_API isn't defined.

After applying the updated "double-conversion.diff" patch, ICU was reimported
to restore the previously deleted double-conversion sources files from ICU.

Depends on D190791

Severity: -- → S2
Pushed by
Don't attempt to use in-tree double-conversion for ICU standalone builds. r=sergesanspaille,glandium
Closed: 6 months ago
Resolution: --- → FIXED
Target Milestone: --- → 120 Branch
Attachment #9356668 - Attachment is obsolete: true
You need to log in before you can comment on or make changes to this bug.