Closed Bug 1201009 Opened 6 years ago Closed 6 years ago

Undefined references in 'js/src/builtin/Intl.cpp'

Categories

(Core :: JavaScript: Internationalization API, defect)

All
Gonk (Firefox OS)
defect
Not set
major

Tracking

()

RESOLVED DUPLICATE of bug 1198952
Tracking Status
firefox43 --- affected

People

(Reporter: tzimmermann, Unassigned)

References

Details

m-c revision: 260397:fb720c90eb49
device: Flame-kk

On FirefoxOS with m-c I get the following error during linking since today:


/home/mozilla/Projects/mozilla/src/B2G-master-flame-kk/prebuilts/gcc/linux-x86/arm/arm-linux-androideabi-4.7/bin/../lib/gcc/arm-linux-androideabi/4.7/../../../../arm-linux-andro
ideabi/bin/ld: error: ../../js/src/libjs_static.a(Unified_cpp_js_src0.o): requires unsupported dynamic reloc R_ARM_REL32; recompile with -fPIC
/home/mozilla/Projects/mozilla/src/B2G-master-flame-kk/prebuilts/gcc/linux-x86/arm/arm-linux-androideabi-4.7/bin/../lib/gcc/arm-linux-androideabi/4.7/../../../../arm-linux-andro
ideabi/bin/ld: error: read-only segment has dynamic relocations
/home/mozilla/Projects/mozilla/src/hg.mozilla.org/mozilla-central/js/src/builtin/Intl.cpp:1649: error: undefined reference to 'udat_close_55'
/home/mozilla/Projects/mozilla/src/hg.mozilla.org/mozilla-central/js/src/builtin/Intl.cpp:1768: error: undefined reference to 'ucal_open_55'
/home/mozilla/Projects/mozilla/src/hg.mozilla.org/mozilla-central/js/src/builtin/Intl.cpp:1769: error: undefined reference to 'ucal_getType_55'
/home/mozilla/Projects/mozilla/src/hg.mozilla.org/mozilla-central/js/src/builtin/Intl.cpp:1774: error: undefined reference to 'ucal_close_55'
/home/mozilla/Projects/mozilla/src/hg.mozilla.org/mozilla-central/js/src/builtin/Intl.cpp:1783: error: undefined reference to 'ucal_getKeywordValuesForLocale_55'
../../dist/include/js/RootingAPI.h:690: error: undefined reference to 'udat_countAvailable_55'
../../dist/include/js/RootingAPI.h:690: error: undefined reference to 'udat_getAvailable_55'
/home/mozilla/Projects/mozilla/src/hg.mozilla.org/mozilla-central/js/src/builtin/Intl.cpp:1839: error: undefined reference to 'udatpg_open_55'
/home/mozilla/Projects/mozilla/src/hg.mozilla.org/mozilla-central/js/src/builtin/Intl.cpp:1847: error: undefined reference to 'udatpg_getBestPattern_55'
/home/mozilla/Projects/mozilla/src/hg.mozilla.org/mozilla-central/js/src/builtin/Intl.cpp:539: error: undefined reference to 'udatpg_close_55'
/home/mozilla/Projects/mozilla/src/hg.mozilla.org/mozilla-central/js/src/builtin/Intl.cpp:1858: error: undefined reference to 'udatpg_getBestPattern_55'
/home/mozilla/Projects/mozilla/src/hg.mozilla.org/mozilla-central/js/src/builtin/Intl.cpp:1967: error: undefined reference to 'udat_format_55'
/home/mozilla/Projects/mozilla/src/hg.mozilla.org/mozilla-central/js/src/builtin/Intl.cpp:1972: error: undefined reference to 'udat_format_55'
/home/mozilla/Projects/mozilla/src/hg.mozilla.org/mozilla-central/js/src/builtin/Intl.cpp:1938: error: undefined reference to 'udat_open_55'
/home/mozilla/Projects/mozilla/src/hg.mozilla.org/mozilla-central/js/src/builtin/Intl.cpp:1946: error: undefined reference to 'udat_getCalendar_55'
/home/mozilla/Projects/mozilla/src/hg.mozilla.org/mozilla-central/js/src/builtin/Intl.cpp:1947: error: undefined reference to 'ucal_setGregorianChange_55'
/home/mozilla/Projects/mozilla/src/hg.mozilla.org/mozilla-central/js/src/builtin/Intl.cpp:2025: error: undefined reference to 'udat_close_55'
/home/mozilla/Projects/mozilla/src/hg.mozilla.org/mozilla-central/js/src/jsapi.cpp:6265: error: undefined reference to 'icu_55::TimeZone::recreateDefault()'
/home/mozilla/Projects/mozilla/src/hg.mozilla.org/mozilla-central/js/src/jsapi.cpp:600: error: undefined reference to 'u_init_55'
/home/mozilla/Projects/mozilla/src/hg.mozilla.org/mozilla-central/js/src/jsstr.cpp:941: error: undefined reference to 'unorm_normalize_55'
/home/mozilla/Projects/mozilla/src/hg.mozilla.org/mozilla-central/js/src/jsstr.cpp:951: error: undefined reference to 'unorm_normalize_55'


Building gives these errors:

/home/mozilla/Projects/mozilla/src/hg.mozilla.org/mozilla-central/js/src/jsapi.cpp:642: error: undefined reference to 'u_cleanup_55'
/home/mozilla/Projects/mozilla/src/hg.mozilla.org/mozilla-central/js/src/jsapi.cpp:697: error: undefined reference to 'u_setMemoryFunctions_55'
/home/mozilla/Projects/mozilla/src/hg.mozilla.org/mozilla-central/js/src/jsapi.cpp:6265: error: undefined reference to 'icu_55::TimeZone::recreateDefault()'
/home/mozilla/Projects/mozilla/src/hg.mozilla.org/mozilla-central/js/src/jsapi.cpp:600: error: undefined reference to 'u_init_55'
/home/mozilla/Projects/mozilla/src/hg.mozilla.org/mozilla-central/js/src/jsstr.cpp:941: error: undefined reference to 'unorm_normalize_55'
/home/mozilla/Projects/mozilla/src/hg.mozilla.org/mozilla-central/js/src/jsstr.cpp:951: error: undefined reference to 'unorm_normalize_55'
/home/mozilla/Projects/mozilla/src/hg.mozilla.org/mozilla-central/js/src/builtin/Intl.cpp:683: error: undefined reference to 'ucol_close_55'
/home/mozilla/Projects/mozilla/src/hg.mozilla.org/mozilla-central/js/src/builtin/Intl.cpp:1179: error: undefined reference to 'unum_close_55'
/home/mozilla/Projects/mozilla/src/hg.mozilla.org/mozilla-central/js/src/builtin/Intl.cpp:1649: error: undefined reference to 'udat_close_55'
/home/mozilla/Projects/mozilla/src/hg.mozilla.org/mozilla-central/js/src/builtin/Intl.cpp:1279: error: undefined reference to 'icu_55::Locale::Locale(char const*, char const*, char const*, char const*)'
/home/mozilla/Projects/mozilla/src/hg.mozilla.org/mozilla-central/js/src/builtin/Intl.cpp:1281: error: undefined reference to 'icu_55::NumberingSystem::createInstance(icu_55::Locale const&, UErrorCode&)'
/home/mozilla/Projects/mozilla/src/hg.mozilla.org/mozilla-central/js/src/builtin/Intl.cpp:1292: error: undefined reference to 'icu_55::Locale::~Locale()'
/home/mozilla/Projects/mozilla/src/hg.mozilla.org/mozilla-central/js/src/builtin/Intl.cpp:1286: error: undefined reference to 'icu_55::NumberingSystem::getName() const'
/home/mozilla/Projects/mozilla/src/hg.mozilla.org/mozilla-central/js/src/builtin/Intl.cpp:1768: error: undefined reference to 'ucal_open_55'
/home/mozilla/Projects/mozilla/src/hg.mozilla.org/mozilla-central/js/src/builtin/Intl.cpp:1769: error: undefined reference to 'ucal_getType_55'
/home/mozilla/Projects/mozilla/src/hg.mozilla.org/mozilla-central/js/src/builtin/Intl.cpp:1774: error: undefined reference to 'ucal_close_55'
/home/mozilla/Projects/mozilla/src/hg.mozilla.org/mozilla-central/js/src/builtin/Intl.cpp:1783: error: undefined reference to 'ucal_getKeywordValuesForLocale_55'
/home/mozilla/Projects/mozilla/src/hg.mozilla.org/mozilla-central/js/src/builtin/Intl.cpp:1790: error: undefined reference to 'uenum_count_55'
/home/mozilla/Projects/mozilla/src/hg.mozilla.org/mozilla-central/js/src/builtin/Intl.cpp:1797: error: undefined reference to 'uenum_next_55'
/home/mozilla/Projects/mozilla/src/hg.mozilla.org/mozilla-central/js/src/builtin/Intl.cpp:539: error: undefined reference to 'uenum_close_55'
/home/mozilla/Projects/mozilla/src/hg.mozilla.org/mozilla-central/js/src/builtin/Intl.cpp:774: error: undefined reference to 'ucol_getKeywordValuesForLocale_55'
/home/mozilla/Projects/mozilla/src/hg.mozilla.org/mozilla-central/js/src/builtin/Intl.cpp:781: error: undefined reference to 'uenum_count_55'
/home/mozilla/Projects/mozilla/src/hg.mozilla.org/mozilla-central/js/src/builtin/Intl.cpp:539: error: undefined reference to 'uenum_close_55'
/home/mozilla/Projects/mozilla/src/hg.mozilla.org/mozilla-central/js/src/builtin/Intl.cpp:793: error: undefined reference to 'uenum_next_55'
../../dist/include/js/RootingAPI.h:690: error: undefined reference to 'udat_countAvailable_55'
../../dist/include/js/RootingAPI.h:690: error: undefined reference to 'udat_getAvailable_55'
../../dist/include/js/RootingAPI.h:690: error: undefined reference to 'unum_countAvailable_55'
../../dist/include/js/RootingAPI.h:690: error: undefined reference to 'unum_getAvailable_55'
../../dist/include/js/RootingAPI.h:690: error: undefined reference to 'ucol_countAvailable_55'
../../dist/include/js/RootingAPI.h:690: error: undefined reference to 'ucol_getAvailable_55'
/home/mozilla/Projects/mozilla/src/hg.mozilla.org/mozilla-central/js/src/builtin/Intl.cpp:989: error: undefined reference to 'ucol_strcoll_55'
/home/mozilla/Projects/mozilla/src/hg.mozilla.org/mozilla-central/js/src/builtin/Intl.cpp:1836: error: undefined reference to 'u_strlen_55'
/home/mozilla/Projects/mozilla/src/hg.mozilla.org/mozilla-central/js/src/builtin/Intl.cpp:1839: error: undefined reference to 'udatpg_open_55'
/home/mozilla/Projects/mozilla/src/hg.mozilla.org/mozilla-central/js/src/builtin/Intl.cpp:1847: error: undefined reference to 'udatpg_getBestPattern_55'
/home/mozilla/Projects/mozilla/src/hg.mozilla.org/mozilla-central/js/src/builtin/Intl.cpp:539: error: undefined reference to 'udatpg_close_55'
/home/mozilla/Projects/mozilla/src/hg.mozilla.org/mozilla-central/js/src/builtin/Intl.cpp:1858: error: undefined reference to 'udatpg_getBestPattern_55'
/home/mozilla/Projects/mozilla/src/hg.mozilla.org/mozilla-central/js/src/builtin/Intl.cpp:1454: error: undefined reference to 'unum_formatDouble_55'
/home/mozilla/Projects/mozilla/src/hg.mozilla.org/mozilla-central/js/src/builtin/Intl.cpp:1459: error: undefined reference to 'unum_formatDouble_55'
/home/mozilla/Projects/mozilla/src/hg.mozilla.org/mozilla-central/js/src/builtin/Intl.cpp:1967: error: undefined reference to 'udat_format_55'
/home/mozilla/Projects/mozilla/src/hg.mozilla.org/mozilla-central/js/src/builtin/Intl.cpp:1972: error: undefined reference to 'udat_format_55'
/home/mozilla/Projects/mozilla/src/hg.mozilla.org/mozilla-central/js/src/builtin/Intl.cpp:1916: error: undefined reference to 'u_strlen_55'
/home/mozilla/Projects/mozilla/src/hg.mozilla.org/mozilla-central/js/src/builtin/Intl.cpp:1930: error: undefined reference to 'u_strlen_55'
/home/mozilla/Projects/mozilla/src/hg.mozilla.org/mozilla-central/js/src/builtin/Intl.cpp:1938: error: undefined reference to 'udat_open_55'
/home/mozilla/Projects/mozilla/src/hg.mozilla.org/mozilla-central/js/src/builtin/Intl.cpp:1946: error: undefined reference to 'udat_getCalendar_55'
/home/mozilla/Projects/mozilla/src/hg.mozilla.org/mozilla-central/js/src/builtin/Intl.cpp:1947: error: undefined reference to 'ucal_setGregorianChange_55'
/home/mozilla/Projects/mozilla/src/hg.mozilla.org/mozilla-central/js/src/builtin/Intl.cpp:1413: error: undefined reference to 'unum_open_55'
/home/mozilla/Projects/mozilla/src/hg.mozilla.org/mozilla-central/js/src/builtin/Intl.cpp:1421: error: undefined reference to 'unum_setTextAttribute_55'
/home/mozilla/Projects/mozilla/src/hg.mozilla.org/mozilla-central/js/src/builtin/Intl.cpp:539: error: undefined reference to 'unum_close_55'
/home/mozilla/Projects/mozilla/src/hg.mozilla.org/mozilla-central/js/src/builtin/Intl.cpp:1428: error: undefined reference to 'unum_setAttribute_55'
/home/mozilla/Projects/mozilla/src/hg.mozilla.org/mozilla-central/js/src/builtin/Intl.cpp:1429: error: undefined reference to 'unum_setAttribute_55'
/home/mozilla/Projects/mozilla/src/hg.mozilla.org/mozilla-central/js/src/builtin/Intl.cpp:1430: error: undefined reference to 'unum_setAttribute_55'
/home/mozilla/Projects/mozilla/src/hg.mozilla.org/mozilla-central/js/src/builtin/Intl.cpp:1436: error: undefined reference to 'unum_setAttribute_55'
/home/mozilla/Projects/mozilla/src/hg.mozilla.org/mozilla-central/js/src/builtin/Intl.cpp:943: error: undefined reference to 'ucol_open_55'
/home/mozilla/Projects/mozilla/src/hg.mozilla.org/mozilla-central/js/src/builtin/Intl.cpp:949: error: undefined reference to 'ucol_setAttribute_55'
/home/mozilla/Projects/mozilla/src/hg.mozilla.org/mozilla-central/js/src/builtin/Intl.cpp:950: error: undefined reference to 'ucol_setAttribute_55'
/home/mozilla/Projects/mozilla/src/hg.mozilla.org/mozilla-central/js/src/builtin/Intl.cpp:951: error: undefined reference to 'ucol_setAttribute_55'
/home/mozilla/Projects/mozilla/src/hg.mozilla.org/mozilla-central/js/src/builtin/Intl.cpp:952: error: undefined reference to 'ucol_setAttribute_55'
/home/mozilla/Projects/mozilla/src/hg.mozilla.org/mozilla-central/js/src/builtin/Intl.cpp:956: error: undefined reference to 'ucol_close_55'
/home/mozilla/Projects/mozilla/src/hg.mozilla.org/mozilla-central/js/src/builtin/Intl.cpp:2025: error: undefined reference to 'udat_close_55'
/home/mozilla/Projects/mozilla/src/hg.mozilla.org/mozilla-central/js/src/builtin/Intl.cpp:1512: error: undefined reference to 'unum_close_55'
/home/mozilla/Projects/mozilla/src/hg.mozilla.org/mozilla-central/js/src/builtin/Intl.cpp:1042: error: undefined reference to 'ucol_close_55'
There are files

  objdir-gecko-debug/intl/icu/target/i18n/ucal.ao
  objdir-gecko-debug/intl/icu/host/i18n/ucal.ao

which apparently contain the missing symbols, but linking libxul.so fails.

I use Debian 8. Do I need a special tool or library for building this correctly?
Flags: needinfo?(jshin1987)
Flags: needinfo?(jorendorff)
Bisecting returned the following commit to have introduced the problem:

Änderung:        259003:858873762b60
Nutzer:          Ted Clancy <tclancy@mozilla.com>
Datum:           Mon Jun 15 00:20:04 2015 -0700
Zusammenfassung: Bug 1172609 - Part 1: Build B2G using the version of ICU that exists in the tree. r=ted
Flags: needinfo?(tclancy)
See Also: → 1172609
When building with -j1, the first error is generated by linking libxul.so

/home/mozilla/Projects/mozilla/src/B2G-master-flame-kk/prebuilts/gcc/linux-x86/arm/arm-linux-androideabi-4.7/bin/../lib/gcc/arm-linux-androideabi/4.7/../../../../arm-linux-androideabi/bin/ld: error: ../../js/src/libjs_static.a(Unified_cpp_js_src0.o): requires unsupported dynamic reloc R_ARM_REL32; recompile with -fPIC
/home/mozilla/Projects/mozilla/src/B2G-master-flame-kk/prebuilts/gcc/linux-x86/arm/arm-linux-androideabi-4.7/bin/../lib/gcc/arm-linux-androideabi/4.7/../../../../arm-linux-androideabi/bin/ld: error: read-only segment has dynamic relocations
/home/mozilla/Projects/mozilla/src/hg.mozilla.org/mozilla-central/js/src/builtin/Intl.cpp:1649: error: undefined reference to 'udat_close_55'
/home/mozilla/Projects/mozilla/src/hg.mozilla.org/mozilla-central/js/src/builtin/Intl.cpp:1768: error: undefined reference to 'ucal_open_55'
/home/mozilla/Projects/mozilla/src/hg.mozilla.org/mozilla-central/js/src/builtin/Intl.cpp:1769: error: undefined reference to 'ucal_getType_55'
/home/mozilla/Projects/mozilla/src/hg.mozilla.org/mozilla-central/js/src/builtin/Intl.cpp:1774: error: undefined reference to 'ucal_close_55'
/home/mozilla/Projects/mozilla/src/hg.mozilla.org/mozilla-central/js/src/builtin/Intl.cpp:1783: error: undefined reference to 'ucal_getKeywordValuesForLocale_55'
../../dist/include/js/RootingAPI.h:690: error: undefined reference to 'udat_countAvailable_55'
../../dist/include/js/RootingAPI.h:690: error: undefined reference to 'udat_getAvailable_55'
/home/mozilla/Projects/mozilla/src/hg.mozilla.org/mozilla-central/js/src/builtin/Intl.cpp:1839: error: undefined reference to 'udatpg_open_55'
/home/mozilla/Projects/mozilla/src/hg.mozilla.org/mozilla-central/js/src/builtin/Intl.cpp:1847: error: undefined reference to 'udatpg_getBestPattern_55'
/home/mozilla/Projects/mozilla/src/hg.mozilla.org/mozilla-central/js/src/builtin/Intl.cpp:539: error: undefined reference to 'udatpg_close_55'
/home/mozilla/Projects/mozilla/src/hg.mozilla.org/mozilla-central/js/src/builtin/Intl.cpp:1858: error: undefined reference to 'udatpg_getBestPattern_55'
/home/mozilla/Projects/mozilla/src/hg.mozilla.org/mozilla-central/js/src/builtin/Intl.cpp:1967: error: undefined reference to 'udat_format_55'
/home/mozilla/Projects/mozilla/src/hg.mozilla.org/mozilla-central/js/src/builtin/Intl.cpp:1972: error: undefined reference to 'udat_format_55'
/home/mozilla/Projects/mozilla/src/hg.mozilla.org/mozilla-central/js/src/builtin/Intl.cpp:1938: error: undefined reference to 'udat_open_55'
/home/mozilla/Projects/mozilla/src/hg.mozilla.org/mozilla-central/js/src/builtin/Intl.cpp:1946: error: undefined reference to 'udat_getCalendar_55'
/home/mozilla/Projects/mozilla/src/hg.mozilla.org/mozilla-central/js/src/builtin/Intl.cpp:1947: error: undefined reference to 'ucal_setGregorianChange_55'
/home/mozilla/Projects/mozilla/src/hg.mozilla.org/mozilla-central/js/src/builtin/Intl.cpp:2025: error: undefined reference to 'udat_close_55'
/home/mozilla/Projects/mozilla/src/hg.mozilla.org/mozilla-central/js/src/jsapi.cpp:6272: error: undefined reference to 'icu_55::TimeZone::recreateDefault()'
/home/mozilla/Projects/mozilla/src/hg.mozilla.org/mozilla-central/js/src/jsapi.cpp:600: error: undefined reference to 'u_init_55'
/home/mozilla/Projects/mozilla/src/hg.mozilla.org/mozilla-central/js/src/jsstr.cpp:941: error: undefined reference to 'unorm_normalize_55'
/home/mozilla/Projects/mozilla/src/hg.mozilla.org/mozilla-central/js/src/jsstr.cpp:951: error: undefined reference to 'unorm_normalize_55'
collect2: error: ld returned 1 exit status
Increasing importance a bit as this prevents building on Debian 8 (and possibly other Linux distributions).
Severity: normal → major
I noticed that if I build multiple times, the build eventually completes successfully. Could this be a problem with dependencies between libicu and the rest of Gecko?
Hi Thomas.

This sounds like a duplicate of Bug 1198952.

It works for me on Ubuntu. I don't know why it doesn't work on other distributions, but I will investigate.

There's a workaround given in Bug 1198952. Does that work for you in the meantime?
Flags: needinfo?(tclancy)
Hi

(In reply to Ted Clancy [:tedders1] from comment #6)

Yes, I think it's the same issue. I'll provide more information in that bug report. Thanks for your reply.
Status: NEW → RESOLVED
Closed: 6 years ago
Flags: needinfo?(jshin1987)
Flags: needinfo?(jorendorff)
Resolution: --- → DUPLICATE
Duplicate of bug: 1198952
You need to log in before you can comment on or make changes to this bug.