Open Bug 1927380 Opened 4 months ago Updated 2 days ago

SpiderMonkey build fails with ICU4C 76.1

Categories

(Core :: JavaScript Engine, defect, P5)

Firefox 128
defect

Tracking

()

UNCONFIRMED

People

(Reporter: michael, Unassigned)

References

(Blocks 1 open bug)

Details

Steps to reproduce:

Build SpiderMonkey (js/src) from latest ESR v128.3.1 using --with-system-icu and ICU4C 76.1.

Attempt was specifically for Homebrew update (https://github.com/Homebrew/homebrew-core/pull/193114) which runs on both Ubuntu 22.04 and macOS, but should impact anyone with ICU4C 76 or later due to https://github.com/unicode-org/icu/commit/199bc827021ffdb43b6579d68e5eecf54c7f6f56

Build was done as:

  1. Have ICU4C 76 installed and findable via pkg-config
  2. Download and unpack https://archive.mozilla.org/pub/firefox/releases/128.3.1esr/source/firefox-128.3.1esr.source.tar.xz
  3. Make build directory and change to it
  4. ../js/src/configure --prefix=... --enable-hardening --enable-optimize --enable-readline --enable-release --enable-rust-simd --enable-shared-js --disable-bootstrap --disable-debug --disable-jemalloc --with-intl-api --with-system-icu --with-system-nspr --with-system-zlib
  5. make

Actual results:

Build fails due to missing symbols (as -licuuc is missing):

g++-11 -o ../../../dist/bin/gdb-tests -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 -fstack-protector-strong -fno-rtti -pthread -fno-sized-deallocation -fno-aligned-new -ffunction-sections -fdata-sections -fno-math-errno -fno-exceptions -fPIC -gdwarf-4 -O3 -fomit-frame-pointer -funwind-tables -Wl,@/tmp/spidermonkey-20241026-1107307-uxox16/firefox-128.3.1/brew-build/js/src/gdb/gdb-tests.list -Wl,--build-id=sha1 -Wl,-z,noexecstack -Wl,-z,text -Wl,-z,relro -Wl,-z,now -Wl,-z,nocopyreloc -fstack-protector-strong -Wl,-rpath-link,/tmp/spidermonkey-20241026-1107307-uxox16/firefox-128.3.1/brew-build/dist/bin -Wl,-rpath-link,/home/linuxbrew/.linuxbrew/Cellar/spidermonkey/128.3.1_1/lib ../../../js/src/build/libjs_static.a ../../../build/pure_virtual/libpure_virtual.a ../../../x86_64-unknown-linux-gnu/release/libjsrust.a -pie -ldl -L/home/linuxbrew/.linuxbrew/opt/zlib/lib -lz -L/home/linuxbrew/.linuxbrew/Cellar/icu4c@76/76.1/lib -licui18n -L/home/linuxbrew/.linuxbrew/Cellar/nspr/4.36/lib -lplds4 -lplc4 -lnspr4 -lm
/home/linuxbrew/.linuxbrew/opt/binutils/bin/ld: ../../../js/src/build/libjs_static.a(Unified_cpp_js_src_irregexp1.o): undefined reference to symbol '_ZNK6icu_7613UnicodeString8doEqualsEPKDsi'
/home/linuxbrew/.linuxbrew/opt/binutils/bin/ld: /home/linuxbrew/.linuxbrew/opt/icu4c@76/lib/libicuuc.so.76: error adding symbols: DSO missing from command line
collect2: error: ld returned 1 exit status

Expected results:

Successful build.

This should be possible by updating pkg-config lookup to include icu-uc at
https://searchfox.org/mozilla-central/source/js/moz.configure#1313

I have tried modifying code with this change and confirm that issue goes away.

The severity field is not set for this bug.
:ahochheiden, could you have a look please?

For more information, please visit BugBot documentation.

Flags: needinfo?(ahochheiden)
Flags: needinfo?(ahochheiden)
Component: General → JavaScript Engine
Product: Firefox Build System → Core

Anba Does adding icu-uc make sense?

Blocks: sm-icu
Severity: -- → S3
Flags: needinfo?(andrebargull)
Priority: -- → P3

(In reply to Matthew Gaudet (he/him) [:mgaudet] from comment #2)

Anba Does adding icu-uc make sense?

I guess it should be okay to add icu-uc to pkg_check_modules.

Flags: needinfo?(andrebargull)

Michael: Would you like to submit your patch for this?

Flags: needinfo?(michael)
See Also: → 1933117

Redirect a needinfo that is pending on an inactive user to the triage owner.
:willyelm, since the bug has recent activity, could you have a look please?

For more information, please visit BugBot documentation.

Flags: needinfo?(michael) → needinfo?(wmedina)

We'll not move on this any time soon, but would consider a patch should it come in.

Flags: needinfo?(wmedina)
Priority: P3 → P5

Hello,

after upgrading to ICU_76.1 I had same issue building firefox browser in version 136b5. I also used "--with-system-icu". So I got following errors:


302:21.73 ld.lld: error: undefined symbol: u_tolower_76
302:21.78 >>> referenced by ld-temp.o
302:21.78 >>> ../../../dist/bin/libxul.so.lto.o:(mozilla::TokenizerBase<char>::Parse(mozilla::TokenizerBase<char>::Token&) const)
302:21.78 >>> referenced by ld-temp.o
302:21.79 >>> ../../../dist/bin/libxul.so.lto.o:(mozilla::TokenizerBase<char>::Parse(mozilla::TokenizerBase<char>::Token&) const)
302:21.79 >>> referenced by ld-temp.o
302:21.79 >>> ../../../dist/bin/libxul.so.lto.o:(mozilla::TokenizerBase<char16_t>::Parse(mozilla::TokenizerBase<char16_t>::Token&) const)
302:21.79 >>> referenced 80 more times
302:22.00 ld.lld: error: undefined symbol: u_toupper_76
302:22.00 >>> referenced by ld-temp.o
302:22.01 >>> ../../../dist/bin/libxul.so.lto.o:(mozilla::TokenizerBase<char>::Parse(mozilla::TokenizerBase<char>::Token&) const)
302:22.01 >>> referenced by ld-temp.o
302:22.01 >>> ../../../dist/bin/libxul.so.lto.o:(mozilla::TokenizerBase<char>::Parse(mozilla::TokenizerBase<char>::Token&) const)
302:22.01 >>> referenced by ld-temp.o
302:22.01 >>> ../../../dist/bin/libxul.so.lto.o:(mozilla::TokenizerBase<char16_t>::Parse(mozilla::TokenizerBase<char16_t>::Token&) const)
302:22.01 >>> referenced 12 more times
302:22.01 ld.lld: error: undefined symbol: u_setMemoryFunctions_76
302:22.01 >>> referenced by ld-temp.o
302:22.02 >>> ../../../dist/bin/libxul.so.lto.o:(NS_InitXPCOM)
302:22.02 ld.lld: error: undefined symbol: ures_open_76
302:22.02 >>> referenced by ld-temp.o
302:22.02 >>> ../../../dist/bin/libxul.so.lto.o:(mozilla::intl::FindTimeSeparator(mozilla::Span<char const, 18446744073709551615ul>, mozilla::Span<char const, 18446744073709551615ul>, mozilla::Span<char const, 18446744073709551615ul>))
302:22.02 >>> referenced by ld-temp.o
302:22.02 >>> ../../../dist/bin/libxul.so.lto.o:(js::intl_availableMeasurementUnits(JSContext*, unsigned int, JS::Value*))
302:22.03 ld.lld: error: undefined symbol: ures_getByKey_76
302:22.03 >>> referenced by ld-temp.o
302:22.03 >>> ../../../dist/bin/libxul.so.lto.o:(mozilla::intl::FindTimeSeparator(mozilla::Span<char const, 18446744073709551615ul>, mozilla::Span<char const, 18446744073709551615ul>, mozilla::Span<char const, 18446744073709551615ul>))
302:22.03 >>> referenced by ld-temp.o
302:22.03 >>> ../../../dist/bin/libxul.so.lto.o:(mozilla::intl::FindTimeSeparator(mozilla::Span<char const, 18446744073709551615ul>, mozilla::Span<char const, 18446744073709551615ul>, mozilla::Span<char const, 18446744073709551615ul>))
302:22.03 >>> referenced by ld-temp.o
302:22.04 >>> ../../../dist/bin/libxul.so.lto.o:(mozilla::intl::FindTimeSeparator(mozilla::Span<char const, 18446744073709551615ul>, mozilla::Span<char const, 18446744073709551615ul>, mozilla::Span<char const, 18446744073709551615ul>))
302:22.04 >>> referenced 1 more times
302:22.04 ld.lld: error: undefined symbol: ures_getStringByKey_76
302:22.04 >>> referenced by ld-temp.o
302:22.04 >>> ../../../dist/bin/libxul.so.lto.o:(mozilla::intl::FindTimeSeparator(mozilla::Span<char const, 18446744073709551615ul>, mozilla::Span<char const, 18446744073709551615ul>, mozilla::Span<char const, 18446744073709551615ul>))
302:22.04 >>> referenced by ld-temp.o
302:22.04 >>> ../../../dist/bin/libxul.so.lto.o:(mozilla::intl::FindTimeSeparator(mozilla::Span<char const, 18446744073709551615ul>, mozilla::Span<char const, 18446744073709551615ul>, mozilla::Span<char const, 18446744073709551615ul>))
302:22.05 ld.lld: error: undefined symbol: ures_getLocaleByType_76
302:22.05 >>> referenced by ld-temp.o
302:22.05 >>> ../../../dist/bin/libxul.so.lto.o:(mozilla::intl::FindTimeSeparator(mozilla::Span<char const, 18446744073709551615ul>, mozilla::Span<char const, 18446744073709551615ul>, mozilla::Span<char const, 18446744073709551615ul>))
302:22.05 ld.lld: error: undefined symbol: ures_close_76
302:22.05 >>> referenced by ld-temp.o
302:22.05 >>> ../../../dist/bin/libxul.so.lto.o:(mozilla::intl::FindTimeSeparator(mozilla::Span<char const, 18446744073709551615ul>, mozilla::Span<char const, 18446744073709551615ul>, mozilla::Span<char const, 18446744073709551615ul>))
302:22.05 >>> referenced by ld-temp.o
302:22.06 >>> ../../../dist/bin/libxul.so.lto.o:(mozilla::intl::FindTimeSeparator(mozilla::Span<char const, 18446744073709551615ul>, mozilla::Span<char const, 18446744073709551615ul>, mozilla::Span<char const, 18446744073709551615ul>))
302:22.06 >>> referenced by ld-temp.o
302:22.06 >>> ../../../dist/bin/libxul.so.lto.o:(mozilla::intl::FindTimeSeparator(mozilla::Span<char const, 18446744073709551615ul>, mozilla::Span<char const, 18446744073709551615ul>, mozilla::Span<char const, 18446744073709551615ul>))
302:22.06 >>> referenced 21 more times
302:22.06 ld.lld: error: undefined symbol: uloc_minimizeSubtags_76
302:22.06 >>> referenced by ld-temp.o
302:22.06 >>> ../../../dist/bin/libxul.so.lto.o:(mozilla::intl::LikelySubtags(mozilla::intl::LikelySubtags, mozilla::intl::Locale&))
302:22.07 >>> referenced by ld-temp.o
302:22.07 >>> ../../../dist/bin/libxul.so.lto.o:(mozilla::intl::LikelySubtags(mozilla::intl::LikelySubtags, mozilla::intl::Locale&))
302:22.07 ld.lld: error: undefined symbol: uloc_addLikelySubtags_76
302:22.07 >>> referenced by ld-temp.o
302:22.07 >>> ../../../dist/bin/libxul.so.lto.o:(mozilla::intl::LikelySubtags(mozilla::intl::LikelySubtags, mozilla::intl::Locale&))
302:22.07 >>> referenced by ld-temp.o
302:22.07 >>> ../../../dist/bin/libxul.so.lto.o:(mozilla::intl::LikelySubtags(mozilla::intl::LikelySubtags, mozilla::intl::Locale&))
302:22.07 ld.lld: error: undefined symbol: ures_getByIndex_76
302:22.07 >>> referenced by ld-temp.o
302:22.07 >>> ../../../dist/bin/libxul.so.lto.o:(mozilla::intl::MeasureUnit::Enumeration::Iterator::advance())
302:22.07 >>> referenced by ld-temp.o
302:22.07 >>> ../../../dist/bin/libxul.so.lto.o:(mozilla::intl::MeasureUnit::Enumeration::Iterator::advance())
302:22.07 ld.lld: error: undefined symbol: ures_getSize_76
302:22.08 >>> referenced by ld-temp.o
302:22.08 >>> ../../../dist/bin/libxul.so.lto.o:(mozilla::intl::MeasureUnit::Enumeration::Iterator::advance())
302:22.08 >>> referenced by ld-temp.o
302:22.08 >>> ../../../dist/bin/libxul.so.lto.o:(js::intl_availableMeasurementUnits(JSContext*, unsigned int, JS::Value*))
302:22.08 ld.lld: error: undefined symbol: uloc_getDefault_76
302:22.08 >>> referenced by ld-temp.o
302:22.08 >>> ../../../dist/bin/libxul.so.lto.o:(mozilla::intl::OSPreferences::GetSystemLocales(nsTArray<nsTString<char>>&))
302:22.08 >>> referenced by ld-temp.o
302:22.08 >>> ../../../dist/bin/libxul.so.lto.o:(JSRuntime::getDefaultLocale())
302:22.08 >>> referenced by ld-temp.o
302:22.08 >>> ../../../dist/bin/libxul.so.lto.o:(GetICUOptions(JSContext*, unsigned int, JS::Value*))
302:22.08 ld.lld: error: undefined symbol: u_getIntPropertyValue_76
302:22.08 >>> referenced by ld-temp.o
302:22.09 >>> ../../../dist/bin/libxul.so.lto.o:(mozilla::intl::LineBreaker::ComputeBreakPositions(char16_t const*, unsigned int, mozilla::intl::WordBreakRule, mozilla::intl::LineBreakRule, bool, unsigned char*))
302:22.09 >>> referenced by ld-temp.o
302:22.09 >>> ../../../dist/bin/libxul.so.lto.o:(mozilla::intl::LineBreaker::ComputeBreakPositions(char16_t const*, unsigned int, mozilla::intl::WordBreakRule, mozilla::intl::LineBreakRule, bool, unsigned char*))
302:22.09 >>> referenced by ld-temp.o
302:22.09 >>> ../../../dist/bin/libxul.so.lto.o:(mozilla::intl::LineBreaker::ComputeBreakPositions(char16_t const*, unsigned int, mozilla::intl::WordBreakRule, mozilla::intl::LineBreakRule, bool, unsigned char*))
302:22.09 >>> referenced 15 more times
302:22.09 ld.lld: error: undefined symbol: uscript_getScript_76
302:22.09 >>> referenced by ld-temp.o
302:22.09 >>> ../../../dist/bin/libxul.so.lto.o:(mozilla::intl::LineBreaker::ComputeBreakPositions(char16_t const*, unsigned int, mozilla::intl::WordBreakRule, mozilla::intl::LineBreakRule, bool, unsigned char*))
302:22.09 >>> referenced by ld-temp.o
302:22.10 >>> ../../../dist/bin/libxul.so.lto.o:(mozilla::intl::WordBreaker::GetClass(char16_t))
302:22.10 >>> referenced by ld-temp.o
302:22.10 >>> ../../../dist/bin/libxul.so.lto.o:(mozilla::intl::UnicodeProperties::IsScriptioContinua(char16_t))
302:22.10 >>> referenced 11 more times
302:22.10 ld.lld: error: undefined symbol: u_charType_76
302:22.10 >>> referenced by ld-temp.o
302:22.10 >>> ../../../dist/bin/libxul.so.lto.o:(ContextState::UseConservativeBreaking(unsigned int) const)
302:22.10 >>> referenced by ld-temp.o
302:22.10 >>> ../../../dist/bin/libxul.so.lto.o:(mozilla::intl::GraphemeClusterBreakIteratorUtf16::Next())
302:22.10 >>> referenced by ld-temp.o
302:22.10 >>> ../../../dist/bin/libxul.so.lto.o:(mozilla::intl::WordBreaker::GetClass(char16_t))
302:22.10 >>> referenced 77 more times
302:22.10 ld.lld: error: undefined symbol: u_hasBinaryProperty_76
302:22.10 >>> referenced by ld-temp.o
302:22.11 >>> ../../../dist/bin/libxul.so.lto.o:(mozilla::intl::GraphemeClusterBreakIteratorUtf16::Next())
302:22.11 >>> referenced by ld-temp.o
302:22.11 >>> ../../../dist/bin/libxul.so.lto.o:(mozilla::intl::GraphemeClusterBreakIteratorUtf16::Next())
302:22.11 >>> referenced by ld-temp.o
302:22.11 >>> ../../../dist/bin/libxul.so.lto.o:(mozilla::intl::GraphemeClusterBreakIteratorUtf16::Next())
302:22.11 >>> referenced 28 more times
302:22.11 ld.lld: error: undefined symbol: u_foldCase_76
302:22.11 >>> referenced by ld-temp.o
302:22.11 >>> ../../../dist/bin/libxul.so.lto.o:(ToFoldedCase(nsTSubstring<char16_t>&))
302:22.11 >>> referenced by ld-temp.o
302:22.11 >>> ../../../dist/bin/libxul.so.lto.o:(ToFoldedCase(nsTSubstring<char16_t>&))
302:22.11 >>> referenced by ld-temp.o
302:22.11 >>> ../../../dist/bin/libxul.so.lto.o:(nsFind::Find(nsTSubstring<char16_t> const&, nsRange*, nsRange*, nsRange*, nsRange**))
302:22.11 >>> referenced 3 more times
302:22.12 ld.lld: error: undefined symbol: uscript_getScriptExtensions_76
302:22.12 >>> referenced by ld-temp.o
302:22.12 >>> ../../../dist/bin/libxul.so.lto.o:(mozilla::intl::UnicodeProperties::GetExtensions(char32_t, mozilla::Vector<mozilla::intl::Script, 32ul, mozilla::MallocAllocPolicy>&))
302:22.12 ld.lld: error: undefined symbol: u_getNumericValue_76
302:22.12 >>> referenced by ld-temp.o
302:22.12 >>> ../../../dist/bin/libxul.so.lto.o:(mozilla_net_is_label_safe)
302:22.12 ld.lld: error: too many errors emitted, stopping now (use --error-limit=0 to see all errors)
302:24.77 clang++: error: linker command failed with exit code 1 (use -v to see invocation)
302:24.85 make[4]: *** [/src/firefox-136.0b5/config/rules.mk:539: ../../../dist/bin/libxul.so] Fehler 1
302:24.87 make[3]: *** [/src/firefox-136.0b5/config/recurse.mk:72: toolkit/library/build/target] Fehler 2
302:24.93 make[2]: *** [/src/firefox-136.0b5/config/recurse.mk:34: compile] Fehler 2
302:24.97 make[1]: *** [/src/firefox-136.0b5/config/rules.mk:359: default] Fehler 2
302:25.00 make: *** [client.mk:60: build] Fehler 2
302:25.12 W 172 compiler warnings present.

I added "-licudata -licuio -licuuc -licui18n" to my LDFLAGS and firefox compiles and runs succesfully.

After research this bug and execute lddtree I got:
/usr/lib/firefox/libxul.so (interpreter => None)
libicuuc.so.76 => /usr/lib/libicuuc.so.76
libicudata.so.76 => /usr/lib/libicudata.so.76
libicui18n.so.76 => /usr/lib/libicui18n.so.76

and reading the above mentioned link https://github.com/unicode-org/icu/commit/199bc827021ffdb43b6579d68e5eecf54c7f6f56 I guess it's enough to add -licui18n -licuuc -licudata to LDFLAGS at the moment.

Since the configure at the beginning reports:

0:04.63 checking for icu-i18n >= 76.1... yes
0:04.63 checking MOZ_ICU_CFLAGS...
0:04.63 checking MOZ_ICU_LIBS... -licui18n

Maybe it is enough to add "-licuuc -licudata" to MOZ_ICU_LIBS. So next time I build firefox I try to "export MOZ_ICU_LIBS="$MOZ_ICU_LIBS -licuuc -licudata" to my buildscript.

regards

Building with , 'MOZ_ICU_LIBS': '-licui18n -licuuc -licudata', resultet in build error again:

   toolkit/library/build/libxul.so
455:41.82 ld.lld: error: undefined symbol: u_tolower_76
455:41.89 >>> referenced by ld-temp.o
455:41.89 >>>               ../../../dist/bin/libxul.so.lto.o:(mozilla::TokenizerBase<char>::Parse(mozilla::TokenizerBase<char>::Token&) const)
455:41.89 >>> referenced by ld-temp.o
455:41.89 >>>               ../../../dist/bin/libxul.so.lto.o:(mozilla::TokenizerBase<char>::Parse(mozilla::TokenizerBase<char>::Token&) const)
455:41.89 >>> referenced by ld-temp.o
455:41.89 >>>               ../../../dist/bin/libxul.so.lto.o:(mozilla::TokenizerBase<char16_t>::Parse(mozilla::TokenizerBase<char16_t>::Token&) const)
455:41.89 >>> referenced 81 more times
455:42.04 ld.lld: error: undefined symbol: u_toupper_76
455:42.04 >>> referenced by ld-temp.o
455:42.04 >>>               ../../../dist/bin/libxul.so.lto.o:(mozilla::TokenizerBase<char>::Parse(mozilla::TokenizerBase<char>::Token&) const)
455:42.04 >>> referenced by ld-temp.o
455:42.04 >>>               ../../../dist/bin/libxul.so.lto.o:(mozilla::TokenizerBase<char>::Parse(mozilla::TokenizerBase<char>::Token&) const)
455:42.05 >>> referenced by ld-temp.o
455:42.05 >>>               ../../../dist/bin/libxul.so.lto.o:(mozilla::TokenizerBase<char16_t>::Parse(mozilla::TokenizerBase<char16_t>::Token&) const)
455:42.05 >>> referenced 12 more times
455:42.05 ld.lld: error: undefined symbol: u_setMemoryFunctions_76
455:42.05 >>> referenced by ld-temp.o
455:42.05 >>>               ../../../dist/bin/libxul.so.lto.o:(NS_InitXPCOM)
455:42.06 ld.lld: error: undefined symbol: ures_open_76
455:42.06 >>> referenced by ld-temp.o
455:42.06 >>>               ../../../dist/bin/libxul.so.lto.o:(mozilla::intl::FindTimeSeparator(mozilla::Span<char const, 18446744073709551615ul>, mozilla::Span<char const, 18446744073709551615ul>, mozilla::Span<char const, 18446744073709551615ul>))
455:42.06 >>> referenced by ld-temp.o
455:42.06 >>>               ../../../dist/bin/libxul.so.lto.o:(js::intl_availableMeasurementUnits(JSContext*, unsigned int, JS::Value*))
455:42.07 ld.lld: error: undefined symbol: ures_getByKey_76
455:42.07 >>> referenced by ld-temp.o
455:42.07 >>>               ../../../dist/bin/libxul.so.lto.o:(mozilla::intl::FindTimeSeparator(mozilla::Span<char const, 18446744073709551615ul>, mozilla::Span<char const, 18446744073709551615ul>, mozilla::Span<char const, 18446744073709551615ul>))
455:42.07 >>> referenced by ld-temp.o
455:42.08 >>>               ../../../dist/bin/libxul.so.lto.o:(mozilla::intl::FindTimeSeparator(mozilla::Span<char const, 18446744073709551615ul>, mozilla::Span<char const, 18446744073709551615ul>, mozilla::Span<char const, 18446744073709551615ul>))
455:42.08 >>> referenced by ld-temp.o
455:42.08 >>>               ../../../dist/bin/libxul.so.lto.o:(mozilla::intl::FindTimeSeparator(mozilla::Span<char const, 18446744073709551615ul>, mozilla::Span<char const, 18446744073709551615ul>, mozilla::Span<char const, 18446744073709551615ul>))
455:42.08 >>> referenced 1 more times
455:42.09 ld.lld: error: undefined symbol: ures_getStringByKey_76
455:42.09 >>> referenced by ld-temp.o
455:42.09 >>>               ../../../dist/bin/libxul.so.lto.o:(mozilla::intl::FindTimeSeparator(mozilla::Span<char const, 18446744073709551615ul>, mozilla::Span<char const, 18446744073709551615ul>, mozilla::Span<char const, 18446744073709551615ul>))
455:42.09 >>> referenced by ld-temp.o
455:42.10 >>>               ../../../dist/bin/libxul.so.lto.o:(mozilla::intl::FindTimeSeparator(mozilla::Span<char const, 18446744073709551615ul>, mozilla::Span<char const, 18446744073709551615ul>, mozilla::Span<char const, 18446744073709551615ul>))
455:42.10 ld.lld: error: undefined symbol: ures_getLocaleByType_76
455:42.10 >>> referenced by ld-temp.o
455:42.11 >>>               ../../../dist/bin/libxul.so.lto.o:(mozilla::intl::FindTimeSeparator(mozilla::Span<char const, 18446744073709551615ul>, mozilla::Span<char const, 18446744073709551615ul>, mozilla::Span<char const, 18446744073709551615ul>))
455:42.11 ld.lld: error: undefined symbol: ures_close_76
455:42.11 >>> referenced by ld-temp.o
455:42.11 >>>               ../../../dist/bin/libxul.so.lto.o:(mozilla::intl::FindTimeSeparator(mozilla::Span<char const, 18446744073709551615ul>, mozilla::Span<char const, 18446744073709551615ul>, mozilla::Span<char const, 18446744073709551615ul>))
455:42.12 >>> referenced by ld-temp.o
455:42.12 >>>               ../../../dist/bin/libxul.so.lto.o:(mozilla::intl::FindTimeSeparator(mozilla::Span<char const, 18446744073709551615ul>, mozilla::Span<char const, 18446744073709551615ul>, mozilla::Span<char const, 18446744073709551615ul>))
455:42.12 >>> referenced by ld-temp.o
455:42.13 >>>               ../../../dist/bin/libxul.so.lto.o:(mozilla::intl::FindTimeSeparator(mozilla::Span<char const, 18446744073709551615ul>, mozilla::Span<char const, 18446744073709551615ul>, mozilla::Span<char const, 18446744073709551615ul>))
455:42.13 >>> referenced 21 more times
455:42.13 ld.lld: error: undefined symbol: uloc_minimizeSubtags_76
455:42.13 >>> referenced by ld-temp.o
455:42.13 >>>               ../../../dist/bin/libxul.so.lto.o:(mozilla::intl::LikelySubtags(mozilla::intl::LikelySubtags, mozilla::intl::Locale&))
455:42.13 >>> referenced by ld-temp.o
455:42.14 >>>               ../../../dist/bin/libxul.so.lto.o:(mozilla::intl::LikelySubtags(mozilla::intl::LikelySubtags, mozilla::intl::Locale&))
455:42.14 ld.lld: error: undefined symbol: uloc_addLikelySubtags_76
455:42.14 >>> referenced by ld-temp.o
455:42.14 >>>               ../../../dist/bin/libxul.so.lto.o:(mozilla::intl::LikelySubtags(mozilla::intl::LikelySubtags, mozilla::intl::Locale&))
455:42.16 >>> referenced by ld-temp.o
455:42.16 >>>               ../../../dist/bin/libxul.so.lto.o:(mozilla::intl::LikelySubtags(mozilla::intl::LikelySubtags, mozilla::intl::Locale&))
455:42.17 ld.lld: error: undefined symbol: ures_getByIndex_76
455:42.17 >>> referenced by ld-temp.o
455:42.17 >>>               ../../../dist/bin/libxul.so.lto.o:(mozilla::intl::MeasureUnit::Enumeration::Iterator::advance())
455:42.17 >>> referenced by ld-temp.o
455:42.17 >>>               ../../../dist/bin/libxul.so.lto.o:(mozilla::intl::MeasureUnit::Enumeration::Iterator::advance())
455:42.17 ld.lld: error: undefined symbol: ures_getSize_76
455:42.17 >>> referenced by ld-temp.o
455:42.18 >>>               ../../../dist/bin/libxul.so.lto.o:(mozilla::intl::MeasureUnit::Enumeration::Iterator::advance())
455:42.18 >>> referenced by ld-temp.o
455:42.18 >>>               ../../../dist/bin/libxul.so.lto.o:(js::intl_availableMeasurementUnits(JSContext*, unsigned int, JS::Value*))
455:42.18 ld.lld: error: undefined symbol: uloc_getDefault_76
455:42.18 >>> referenced by ld-temp.o
455:42.18 >>>               ../../../dist/bin/libxul.so.lto.o:(mozilla::intl::OSPreferences::GetSystemLocales(nsTArray<nsTString<char>>&))
455:42.19 >>> referenced by ld-temp.o
455:42.19 >>>               ../../../dist/bin/libxul.so.lto.o:(JSRuntime::getDefaultLocale())
455:42.19 >>> referenced by ld-temp.o
455:42.19 >>>               ../../../dist/bin/libxul.so.lto.o:(GetICUOptions(JSContext*, unsigned int, JS::Value*))
455:42.19 ld.lld: error: undefined symbol: u_getIntPropertyValue_76
455:42.19 >>> referenced by ld-temp.o
455:42.20 >>>               ../../../dist/bin/libxul.so.lto.o:(mozilla::intl::LineBreaker::ComputeBreakPositions(char16_t const*, unsigned int, mozilla::intl::WordBreakRule, mozilla::intl::LineBreakRule, bool, unsigned char*))
455:42.20 >>> referenced by ld-temp.o
455:42.20 >>>               ../../../dist/bin/libxul.so.lto.o:(mozilla::intl::LineBreaker::ComputeBreakPositions(char16_t const*, unsigned int, mozilla::intl::WordBreakRule, mozilla::intl::LineBreakRule, bool, unsigned char*))
455:42.20 >>> referenced by ld-temp.o
455:42.21 >>>               ../../../dist/bin/libxul.so.lto.o:(mozilla::intl::LineBreaker::ComputeBreakPositions(char16_t const*, unsigned int, mozilla::intl::WordBreakRule, mozilla::intl::LineBreakRule, bool, unsigned char*))
455:42.23 >>> referenced 15 more times
455:42.23 ld.lld: error: undefined symbol: uscript_getScript_76
455:42.23 >>> referenced by ld-temp.o
455:42.24 >>>               ../../../dist/bin/libxul.so.lto.o:(mozilla::intl::LineBreaker::ComputeBreakPositions(char16_t const*, unsigned int, mozilla::intl::WordBreakRule, mozilla::intl::LineBreakRule, bool, unsigned char*))
455:42.24 >>> referenced by ld-temp.o
455:42.24 >>>               ../../../dist/bin/libxul.so.lto.o:(mozilla::intl::WordBreaker::GetClass(char16_t))
455:42.24 >>> referenced by ld-temp.o
455:42.24 >>>               ../../../dist/bin/libxul.so.lto.o:(mozilla::intl::UnicodeProperties::IsScriptioContinua(char16_t))
455:42.24 >>> referenced 11 more times
455:42.25 ld.lld: error: undefined symbol: u_charType_76
455:42.25 >>> referenced by ld-temp.o
455:42.25 >>>               ../../../dist/bin/libxul.so.lto.o:(ContextState::UseConservativeBreaking(unsigned int) const)
455:42.25 >>> referenced by ld-temp.o
455:42.25 >>>               ../../../dist/bin/libxul.so.lto.o:(mozilla::intl::GraphemeClusterBreakIteratorUtf16::Next())
455:42.25 >>> referenced by ld-temp.o
455:42.25 >>>               ../../../dist/bin/libxul.so.lto.o:(mozilla::intl::WordBreaker::GetClass(char16_t))
455:42.25 >>> referenced 77 more times
455:42.26 ld.lld: error: undefined symbol: u_hasBinaryProperty_76
455:42.26 >>> referenced by ld-temp.o
455:42.26 >>>               ../../../dist/bin/libxul.so.lto.o:(mozilla::intl::GraphemeClusterBreakIteratorUtf16::Next())
455:42.26 >>> referenced by ld-temp.o
455:42.26 >>>               ../../../dist/bin/libxul.so.lto.o:(mozilla::intl::GraphemeClusterBreakIteratorUtf16::Next())
455:42.26 >>> referenced by ld-temp.o
455:42.26 >>>               ../../../dist/bin/libxul.so.lto.o:(mozilla::intl::GraphemeClusterBreakIteratorUtf16::Next())
455:42.26 >>> referenced 27 more times
455:42.26 ld.lld: error: undefined symbol: u_foldCase_76
455:42.27 >>> referenced by ld-temp.o
455:42.27 >>>               ../../../dist/bin/libxul.so.lto.o:(ToFoldedCase(nsTSubstring<char16_t>&))
455:42.27 >>> referenced by ld-temp.o
455:42.27 >>>               ../../../dist/bin/libxul.so.lto.o:(ToFoldedCase(nsTSubstring<char16_t>&))
455:42.27 >>> referenced by ld-temp.o
455:42.27 >>>               ../../../dist/bin/libxul.so.lto.o:(nsFind::Find(nsTSubstring<char16_t> const&, nsRange*, nsRange*, nsRange*, nsRange**))
455:42.27 >>> referenced 3 more times
455:42.28 ld.lld: error: undefined symbol: u_isULowercase_76
455:42.28 >>> referenced by ld-temp.o
455:42.28 >>>               ../../../dist/bin/libxul.so.lto.o:(ToTitleCase(unsigned int))
455:42.28 >>> referenced by ld-temp.o
455:42.29 >>>               ../../../dist/bin/libxul.so.lto.o:(nsCaseTransformTextRunFactory::TransformString(nsTSubstring<char16_t> const&, nsTString<char16_t>&, mozilla::Maybe<mozilla::StyleTextTransform> const&, char16_t, bool, nsAtom const*, nsTArray<bool>&, nsTArray<bool>&, nsTransformedTextRun const*, unsigned int, nsTArray<unsigned char>*, nsTArray<RefPtr<nsTransformedCharStyle>>*))
455:42.29 >>> referenced by ld-temp.o
455:42.30 >>>               ../../../dist/bin/libxul.so.lto.o:(nsCaseTransformTextRunFactory::TransformString(nsTSubstring<char16_t> const&, nsTString<char16_t>&, mozilla::Maybe<mozilla::StyleTextTransform> const&, char16_t, bool, nsAtom const*, nsTArray<bool>&, nsTArray<bool>&, nsTransformedTextRun const*, unsigned int, nsTArray<unsigned char>*, nsTArray<RefPtr<nsTransformedCharStyle>>*))
455:42.30 ld.lld: error: undefined symbol: u_totitle_76
455:42.30 >>> referenced by ld-temp.o
455:42.30 >>>               ../../../dist/bin/libxul.so.lto.o:(ToTitleCase(unsigned int))
455:42.30 >>> referenced by ld-temp.o
455:42.30 >>>               ../../../dist/bin/libxul.so.lto.o:(nsCaseTransformTextRunFactory::TransformString(nsTSubstring<char16_t> const&, nsTString<char16_t>&, mozilla::Maybe<mozilla::StyleTextTransform> const&, char16_t, bool, nsAtom const*, nsTArray<bool>&, nsTArray<bool>&, nsTransformedTextRun const*, unsigned int, nsTArray<unsigned char>*, nsTArray<RefPtr<nsTransformedCharStyle>>*))
455:42.30 >>> referenced by ld-temp.o
455:42.31 >>>               ../../../dist/bin/libxul.so.lto.o:(nsCaseTransformTextRunFactory::TransformString(nsTSubstring<char16_t> const&, nsTString<char16_t>&, mozilla::Maybe<mozilla::StyleTextTransform> const&, char16_t, bool, nsAtom const*, nsTArray<bool>&, nsTArray<bool>&, nsTransformedTextRun const*, unsigned int, nsTArray<unsigned char>*, nsTArray<RefPtr<nsTransformedCharStyle>>*))
455:42.31 ld.lld: error: too many errors emitted, stopping now (use --error-limit=0 to see all errors)
455:45.44 clang++: error: linker command failed with exit code 1 (use -v to see invocation)
455:45.53 make[4]: *** [/src/firefox-136.0b9/config/rules.mk:539: ../../../dist/bin/libxul.so] Fehler 1
455:45.56 make[3]: *** [/src/firefox-136.0b9/config/recurse.mk:72: toolkit/library/build/target] Fehler 2
455:45.63 make[2]: *** [/src/firefox-136.0b9/config/recurse.mk:34: compile] Fehler 2
455:45.69 make[1]: *** [/src/firefox-136.0b9/config/rules.mk:359: default] Fehler 2
455:45.72 make: *** [client.mk:60: build] Fehler 2
455:45.85 W 173 compiler warnings present.

to compile succesfully I needed to ad -licuuc -licudata directly to my LDFLAGS.

Because I compile browser and have the same issue, I quess this bug should be moved to build system?

regards

You need to log in before you can comment on or make changes to this bug.