SeaMonkey link failure with recent system icu
Categories
(SeaMonkey :: Build Config, defect)
Tracking
(Not tracked)
People
(Reporter: psychonaut, Unassigned)
References
Details
Attachments
(2 files)
I'm unable to build SeaMonkey 2.53.18b1 on openSUSE Tumbleweed due to linker errors:
[ 1552s] toolkit/library/libxul.so
[ 1552s] rm -f libxul.so
[ 1552s] /var/lib/build/ccache/bin/g++ -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 -fstack-protector-strong -Wall -Wempty-body -Wignored-qualifiers -Woverloaded-virtual -Wpointer-arith -Wsign-compare -Wtype-limits -Wunreachable-code -Wwrite-strings -Wno-invalid-offsetof -Wc++1z-compat -Wc++2a-compat -Wduplicated-cond -Wimplicit-fallthrough -Wno-error=maybe-uninitialized -Wno-error=pessimizing-move -Wno-error=self-move -Wno-error=deprecated-declarations -Wno-error=array-bounds -Wno-error=free-nonheap-object -Wno-error=multistatement-macros -Wno-error=class-memaccess -Wno-error=deprecated-copy -Wno-error=unused-but-set-variable -Wformat -Wformat-overflow=2 -O2 -Wall -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=3 -fstack-protector-strong -funwind-tables -fasynchronous-unwind-tables -fstack-clash-protection -Werror=return-type -g -fno-strict-aliasing -fimplicit-constexpr -fno-delete-null-pointer-checks -fno-lifetime-dse -fno-schedule-insns2 -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 -fstack-protector-strong -fno-exceptions -fno-strict-aliasing -fno-rtti -ffunction-sections -fdata-sections -fno-exceptions -fno-math-errno -pthread -pipe -g -freorder-blocks -O2 -fomit-frame-pointer -funwind-tables -fPIC -shared -Wl,-z,defs -Wl,--gc-sections -Wl,-h,libxul.so -o libxul.so /home/abuild/rpmbuild/BUILD/seamonkey-2.53.18b1/mozilla/obj-x86_64-pc-linux-gnu/toolkit/library/libxul_so.list -lpthread -fstack-protector-strong -Wl,-z,noexecstack -Wl,-z,text -Wl,-z,relro -Wl,-z,nocopyreloc -Wl,-Bsymbolic-functions -Wl,--build-id=sha1 /home/abuild/rpmbuild/BUILD/seamonkey-2.53.18b1/mozilla/toolkit/library/StaticXULComponents.ld -Wl,-rpath-link,/home/abuild/rpmbuild/BUILD/seamonkey-2.53.18b1/mozilla/obj-x86_64-pc-linux-gnu/dist/bin -Wl,-rpath-link,/usr/lib ../../js/src/build/libjs_static.a x86_64-unknown-linux-gnu/release/libgkrust.a ../../comm/ldap/c-sdk/libraries/libldap/libldap60.so ../../comm/ldap/c-sdk/libraries/libldif/libldif60.so ../../comm/ldap/c-sdk/libraries/libprldap/libprldap60.so ../../security/sandbox/linux/libmozsandbox.so ../../config/external/lgpllibs/liblgpllibs.so ../../config/external/sqlite/libmozsqlite3.so ../../widget/gtk/mozgtk/libmozgtk.so -Wl,--version-script,symverscript -L/usr/lib64 -lplds4 -lplc4 -lnspr4 -lpthread -ldl -licui18n -licuuc -licudata -lz -lm -lrt -lX11 -lX11-xcb -lxcb -lXcomposite -lXcursor -lXdamage -lXext -lXfixes -lXi -lXrender -lc -Wl,-rpath-link,/usr/lib64 -lssl3 -lsmime3 -lnss3 -lnssutil3 -lfreetype -lfontconfig -lgtk-3 -lgdk-3 -lpangocairo-1.0 -lpango-1.0 -lharfbuzz -latk-1.0 -lcairo-gobject -lcairo -lgdk_pixbuf-2.0 -lgio-2.0 -lgobject-2.0 -lglib-2.0 -lwebp -lwebpdemux -lasound -ldbus-glib-1 -ldbus-1 -lxcb-shm -lpangoft2-1.0 -lXt -lgthread-2.0 -lproxy
[ 1561s] /usr/lib64/gcc/x86_64-suse-linux/13/../../../../x86_64-suse-linux/bin/ld: warning: /home/abuild/rpmbuild/BUILD/seamonkey-2.53.18b1/mozilla/toolkit/library/StaticXULComponents.ld contains output sections; did you forget -T?
[ 1574s] /usr/lib64/gcc/x86_64-suse-linux/13/../../../../x86_64-suse-linux/bin/ld: /home/abuild/rpmbuild/BUILD/seamonkey-2.53.18b1/mozilla/obj-x86_64-pc-linux-gnu/toolkit/library/../../intl/locale/gtk/OSPreferences_gtk.o: in function `mozilla::intl::OSPreferences::ReadSystemLocales(nsTArray<nsTString<char> >&)':
[ 1574s] /home/abuild/rpmbuild/BUILD/seamonkey-2.53.18b1/mozilla/intl/locale/gtk/OSPreferences_gtk.cpp:24:(.text._ZN7mozilla4intl13OSPreferences17ReadSystemLocalesER8nsTArrayI9nsTStringIcEE+0x1c): undefined reference to `uloc_getDefault_73'
[ 1581s] /usr/lib64/gcc/x86_64-suse-linux/13/../../../../x86_64-suse-linux/bin/ld: ../../js/src/build/libjs_static.a(Unified_cpp_js_src10.o): in function `js::DateTimeInfo::computeUTCOffsetMilliseconds(long)':
[ 1581s] /home/abuild/rpmbuild/BUILD/seamonkey-2.53.18b1/mozilla/js/src/vm/DateTime.cpp:387:(.text._ZN2js12DateTimeInfo28computeUTCOffsetMillisecondsEl+0x57): undefined reference to `icu_73::BasicTimeZone::getOffsetFromLocal(double, int, int, int&, int&, UErrorCode&) const'
[ 1581s] /usr/lib64/gcc/x86_64-suse-linux/13/../../../../x86_64-suse-linux/bin/ld: ../../js/src/build/libjs_static.a(Unified_cpp_js_src10.o): in function `js::DateTimeInfo::timeZone()':
[ 1581s] /home/abuild/rpmbuild/BUILD/seamonkey-2.53.18b1/mozilla/js/src/vm/DateTime.cpp:483:(.text._ZN2js12DateTimeInfo28computeUTCOffsetMillisecondsEl+0x8f): undefined reference to `icu_73::TimeZone::createDefault()'
[ 1581s] /usr/lib64/gcc/x86_64-suse-linux/13/../../../../x86_64-suse-linux/bin/ld: /home/abuild/rpmbuild/BUILD/seamonkey-2.53.18b1/mozilla/js/src/vm/DateTime.cpp:483:(.text._ZN2js12DateTimeInfo28computeDSTOffsetMillisecondsEl+0x87): undefined reference to `icu_73::TimeZone::createDefault()'
[ 1581s] /usr/lib64/gcc/x86_64-suse-linux/13/../../../../x86_64-suse-linux/bin/ld: /home/abuild/rpmbuild/BUILD/seamonkey-2.53.18b1/mozilla/js/src/vm/DateTime.cpp:483:(.text._ZN2js12DateTimeInfo30computeLocalOffsetMillisecondsEl+0x87): undefined reference to `icu_73::TimeZone::createDefault()'
[ 1581s] /usr/lib64/gcc/x86_64-suse-linux/13/../../../../x86_64-suse-linux/bin/ld: ../../js/src/build/libjs_static.a(Unified_cpp_js_src10.o): in function `js::DateTimeInfo::internalTimeZoneDisplayName(char16_t*, unsigned long, long, char const*)':
[ 1581s] /home/abuild/rpmbuild/BUILD/seamonkey-2.53.18b1/mozilla/js/src/vm/DateTime.cpp:445:(.text._ZN2js12DateTimeInfo27internalTimeZoneDisplayNameEPDsmlPKc+0x255): undefined reference to `icu_73::TimeZone::getDisplayName(signed char, icu_73::TimeZone::EDisplayType, icu_73::Locale const&, icu_73::UnicodeString&) const'
[ 1581s] /usr/lib64/gcc/x86_64-suse-linux/13/../../../../x86_64-suse-linux/bin/ld: ../../js/src/build/libjs_static.a(Unified_cpp_js_src10.o): in function `js::DateTimeInfo::timeZone()':
[ 1581s] /home/abuild/rpmbuild/BUILD/seamonkey-2.53.18b1/mozilla/js/src/vm/DateTime.cpp:483:(.text._ZN2js12DateTimeInfo27internalTimeZoneDisplayNameEPDsmlPKc+0x2f7): undefined reference to `icu_73::TimeZone::createDefault()'
[ 1582s] /usr/lib64/gcc/x86_64-suse-linux/13/../../../../x86_64-suse-linux/bin/ld: ../../js/src/build/libjs_static.a(Unified_cpp_js_src16.o): in function `JSRuntime::getDefaultLocale()':
[ 1582s] /home/abuild/rpmbuild/BUILD/seamonkey-2.53.18b1/mozilla/js/src/vm/Runtime.cpp:564:(.text._ZN9JSRuntime16getDefaultLocaleEv.part.0+0xa): undefined reference to `uloc_getDefault_73'
[ 1582s] /usr/lib64/gcc/x86_64-suse-linux/13/../../../../x86_64-suse-linux/bin/ld: /home/abuild/rpmbuild/BUILD/seamonkey-2.53.18b1/mozilla/js/src/vm/Runtime.cpp:564:(.text._ZN9JSRuntime16getDefaultLocaleEv+0x24): undefined reference to `uloc_getDefault_73'
[ 1582s] /usr/lib64/gcc/x86_64-suse-linux/13/../../../../x86_64-suse-linux/bin/ld: ../../js/src/build/libjs_static.a(Unified_cpp_js_src3.o): in function `js::intl_numberingSystem(JSContext*, unsigned int, JS::Value*)':
[ 1582s] /home/abuild/rpmbuild/BUILD/seamonkey-2.53.18b1/mozilla/js/src/builtin/intl/NumberFormat.cpp:219:(.text._ZN2js20intl_numberingSystemEP9JSContextjPN2JS5ValueE+0x89): undefined reference to `unumsys_open_73'
[ 1582s] /usr/lib64/gcc/x86_64-suse-linux/13/../../../../x86_64-suse-linux/bin/ld: /home/abuild/rpmbuild/BUILD/seamonkey-2.53.18b1/mozilla/js/src/builtin/intl/NumberFormat.cpp:227:(.text._ZN2js20intl_numberingSystemEP9JSContextjPN2JS5ValueE+0x9c): undefined reference to `unumsys_getName_73'
[ 1582s] /usr/lib64/gcc/x86_64-suse-linux/13/../../../../x86_64-suse-linux/bin/ld: ../../js/src/build/libjs_static.a(Unified_cpp_js_src3.o): in function `js::ScopedICUObject<UNumberingSystem, &unumsys_close_73>::~ScopedICUObject()':
[ 1582s] /home/abuild/rpmbuild/BUILD/seamonkey-2.53.18b1/mozilla/js/src/builtin/intl/ScopedICUObject.h:30:(.text._ZN2js20intl_numberingSystemEP9JSContextjPN2JS5ValueE+0xc5): undefined reference to `unumsys_close_73'
[ 1587s] /usr/lib64/gcc/x86_64-suse-linux/13/../../../../x86_64-suse-linux/bin/ld: libxul.so: hidden symbol `_ZN6icu_738TimeZone13createDefaultEv' isn't defined
[ 1587s] /usr/lib64/gcc/x86_64-suse-linux/13/../../../../x86_64-suse-linux/bin/ld: final link failed: bad value
[ 1587s] collect2: error: ld returned 1 exit status
[ 1587s] make[4]: *** [/home/abuild/rpmbuild/BUILD/seamonkey-2.53.18b1/mozilla/config/rules.mk:635: libxul.so] Error 1
Reporter | ||
Comment 1•1 year ago
|
||
I worked around the problem by removing ac_add_options --with-system-icu
from my .mozconfig
. Is this just some coincidental incompatibility between SeaMonkey's and openSUSE's libicu (the latter is on version 73.2) or is this a bona fide bug in SeaMonkey?
Comment 2•1 year ago
|
||
Gentoo seems to have problems too here. Not a bug but an incompatibility with later icu versions. Using system libraries is always hit and miss. Internal 2.53 icu is now at 64.2. When I find the time I try to update it but because of changes inside icu this usually needs other backports and so takes time.
Hi, I'm on gentoo and haven't had any issues with compiling+linking against system icu-73.2
Have you used lto? gcc-13 is pretty broken when dealing with lto
Reporter | ||
Comment 4•1 year ago
|
||
No, we disabled LTO a long time ago due to build errors.
I have to take that back, I wasn't having problem with compiling seamonkey-2.53.17.1 against systems icu-73.2
I haven't had a chance yet to port the gentoo patchset to fully apply to the changed code base, but you if you can add your full build log from Tumbleweed build, I may be able to see something of relevance in there.
Reporter | ||
Comment 6•1 year ago
|
||
OK, see attached for the build log.
reproduced with gcc-12, --enable-system-icu (v73.2) and seamonkey-2.53.18b1:
16:56.01 /usr/lib/gcc/x86_64-pc-linux-gnu/12/../../../../x86_64-pc-linux-gnu/bin/ld.bfd: ../build/libjs_static.a(Unified_cpp_js_src10.o): in function js::DateTimeInfo::computeUTCOffsetMilliseconds(long)': 16:56.01 Unified_cpp_js_src10.cpp:(.text._ZN2js12DateTimeInfo28computeUTCOffsetMillisecondsEl+0x57): undefined reference to
icu::BasicTimeZone::getOffsetFromLocal(double, int, int, int&, int&, UErrorCode&) const'
16:56.01 /usr/lib/gcc/x86_64-pc-linux-gnu/12/../../../../x86_64-pc-linux-gnu/bin/ld.bfd: Unified_cpp_js_src10.cpp:(.text._ZN2js12DateTimeInfo28computeUTCOffsetMillisecondsEl+0x8f): undefined reference to icu::TimeZone::createDefault()' 16:56.01 /usr/lib/gcc/x86_64-pc-linux-gnu/12/../../../../x86_64-pc-linux-gnu/bin/ld.bfd: ../build/libjs_static.a(Unified_cpp_js_src10.o): in function
js::DateTimeInfo::computeDSTOffsetMilliseconds(long)':
16:56.01 Unified_cpp_js_src10.cpp:(.text._ZN2js12DateTimeInfo28computeDSTOffsetMillisecondsEl+0x87): undefined reference to icu::TimeZone::createDefault()' 16:56.01 /usr/lib/gcc/x86_64-pc-linux-gnu/12/../../../../x86_64-pc-linux-gnu/bin/ld.bfd: ../build/libjs_static.a(Unified_cpp_js_src10.o): in function
js::DateTimeInfo::computeLocalOffsetMilliseconds(long)':
16:56.01 Unified_cpp_js_src10.cpp:(.text._ZN2js12DateTimeInfo30computeLocalOffsetMillisecondsEl+0x87): undefined reference to icu::TimeZone::createDefault()' 16:56.01 /usr/lib/gcc/x86_64-pc-linux-gnu/12/../../../../x86_64-pc-linux-gnu/bin/ld.bfd: ../build/libjs_static.a(Unified_cpp_js_src10.o): in function
js::DateTimeInfo::timeZone()':
16:56.01 Unified_cpp_js_src10.cpp:(.text._ZN2js12DateTimeInfo8timeZoneEv+0x15): undefined reference to icu::TimeZone::createDefault()' 16:56.01 /usr/lib/gcc/x86_64-pc-linux-gnu/12/../../../../x86_64-pc-linux-gnu/bin/ld.bfd: ../build/libjs_static.a(Unified_cpp_js_src10.o): in function
js::DateTimeInfo::internalTimeZoneDisplayName(char16_t*, unsigned long, long, char const*)':
16:56.01 Unified_cpp_js_src10.cpp:(.text._ZN2js12DateTimeInfo27internalTimeZoneDisplayNameEPDsmlPKc+0x255): undefined reference to icu::TimeZone::getDisplayName(signed char, icu::TimeZone::EDisplayType, icu::Locale const&, icu::UnicodeString&) const' 16:56.01 /usr/lib/gcc/x86_64-pc-linux-gnu/12/../../../../x86_64-pc-linux-gnu/bin/ld.bfd: Unified_cpp_js_src10.cpp:(.text._ZN2js12DateTimeInfo27internalTimeZoneDisplayNameEPDsmlPKc+0x2f7): undefined reference to
icu::TimeZone::createDefault()'
16:56.02 /usr/lib/gcc/x86_64-pc-linux-gnu/12/../../../../x86_64-pc-linux-gnu/bin/ld.bfd: ../build/libjs_static.a(Unified_cpp_js_src16.o): in function JSRuntime::getDefaultLocale() [clone .part.0]': 16:56.02 Unified_cpp_js_src16.cpp:(.text._ZN9JSRuntime16getDefaultLocaleEv.part.0+0xa): undefined reference to
uloc_getDefault'
16:56.02 /usr/lib/gcc/x86_64-pc-linux-gnu/12/../../../../x86_64-pc-linux-gnu/bin/ld.bfd: ../build/libjs_static.a(Unified_cpp_js_src16.o): in function JSRuntime::getDefaultLocale()': 16:56.02 Unified_cpp_js_src16.cpp:(.text._ZN9JSRuntime16getDefaultLocaleEv+0x24): undefined reference to
uloc_getDefault'
16:56.04 /usr/lib/gcc/x86_64-pc-linux-gnu/12/../../../../x86_64-pc-linux-gnu/bin/ld.bfd: ../build/libjs_static.a(Unified_cpp_js_src3.o): in function js::intl_numberingSystem(JSContext*, unsigned int, JS::Value*)': 16:56.04 Unified_cpp_js_src3.cpp:(.text._ZN2js20intl_numberingSystemEP9JSContextjPN2JS5ValueE+0x89): undefined reference to
unumsys_open'
16:56.04 /usr/lib/gcc/x86_64-pc-linux-gnu/12/../../../../x86_64-pc-linux-gnu/bin/ld.bfd: Unified_cpp_js_src3.cpp:(.text._ZN2js20intl_numberingSystemEP9JSContextjPN2JS5ValueE+0x9c): undefined reference to unumsys_getName' 16:56.04 /usr/lib/gcc/x86_64-pc-linux-gnu/12/../../../../x86_64-pc-linux-gnu/bin/ld.bfd: Unified_cpp_js_src3.cpp:(.text._ZN2js20intl_numberingSystemEP9JSContextjPN2JS5ValueE+0xc5): undefined reference to
unumsys_close'
16:56.18 /usr/lib/gcc/x86_64-pc-linux-gnu/12/../../../../x86_64-pc-linux-gnu/bin/ld.bfd: ../../../dist/bin/jsapi-tests: hidden symbol `unumsys_getName' isn't defined
16:56.18 /usr/lib/gcc/x86_64-pc-linux-gnu/12/../../../../x86_64-pc-linux-gnu/bin/ld.bfd: final link failed: bad value
16:56.19 collect2: error: ld returned 1 exit status
16:56.19 gmake[4]: *** [/var/tmp/portage/www-client/seamonkey-2.53.18_beta1/work/seamonkey-2.53.18b1/config/rules.mk:493: ../../../dist/bin/jsapi-tests] Error 1
16:56.19 gmake[4]: Leaving directory '/var/tmp/portage/www-client/seamonkey-2.53.18_beta1/work/seamonkey-2.53.18b1/seamonk/js/src/jsapi-tests'
16:56.19 gmake[3]: *** [/var/tmp/portage/www-client/seamonkey-2.53.18_beta1/work/seamonkey-2.53.18b1/config/recurse.mk:74: js/src/jsapi-tests/target] Error 2
16:56.19 gmake[3]: Leaving directory '/var/tmp/portage/www-client/seamonkey-2.53.18_beta1/work/seamonkey-2.53.18b1/seamonk'
16:56.19 gmake[2]: *** [/var/tmp/portage/www-client/seamonkey-2.53.18_beta1/work/seamonkey-2.53.18b1/config/recurse.mk:34: compile] Error 2
16:56.19 gmake[2]: Leaving directory '/var/tmp/portage/www-client/seamonkey-2.53.18_beta1/work/seamonkey-2.53.18b1/seamonk'
16:56.19 gmake[1]: *** [/var/tmp/portage/www-client/seamonkey-2.53.18_beta1/work/seamonkey-2.53.18b1/config/rules.mk:361: default] Error 2
16:56.19 gmake[1]: Leaving directory '/var/tmp/portage/www-client/seamonkey-2.53.18_beta1/work/seamonkey-2.53.18b1/seamonk'
16:56.19 gmake: *** [client.mk:124: build] Error 2
16:56.19 0 compiler warnings present.
have you tried diffing the tarballs for the /intl/ stuff?
Reporter | ||
Comment 8•1 year ago
|
||
(In reply to tt_1 from comment #7)
have you tried diffing the tarballs for the /intl/ stuff?
No. Given Frank-Rainer's Comment 2, I was planning on waiting for him to update the internal libicu and will just omit --with-system-icu
for now.
there are more issues with icu-74_1: https://bugzilla.mozilla.org/show_bug.cgi?id=1862601
Comment 10•1 year ago
|
||
from seamonkey-2.53.17.1:
4:16.77 In file included from Unified_cpp_intl_lwbrk0.cpp:2:
4:16.77 /var/tmp/portage/www-client/seamonkey-2.53.17.1/work/seamonkey-2.53.17.1/intl/lwbrk/LineBreaker.cpp: In function ‘int8_t GetClass(uint32_t)’:
4:16.78 /var/tmp/portage/www-client/seamonkey-2.53.17.1/work/seamonkey-2.53.17.1/intl/lwbrk/LineBreaker.cpp:565:28: error: static assertion failed: Gecko vs ICU LineBreak class mismatch
4:16.78 565 | static_assert(U_LB_COUNT == mozilla::ArrayLength(sUnicodeLineBreakToClass),
4:16.78 | ^
and exactly same error with seamonkey-2.53.18b1
Comment 11•1 year ago
•
|
||
Might be possible that this error happens because of missing build stuff backports. Please try the attached three patches for 2.53.18b1. If possible with both variants with and without system icu.
If it works we will put it into the final 2.53.18.
This will not fix the error mentioned in Bug 1862601
Comment 12•1 year ago
|
||
yes, this fixes 2.53.18b1 link errors with --enable-system-icu, and against icu-73_2
Comment 13•1 year ago
|
||
tested the fix successfully for 2.53.18b1 and --without-system-icu
you might want to run a rc1 for your windows builds?
Comment 14•1 year ago
|
||
It is fixed in the final. Windows builds are fine. Source is up in gitlab already. Builds should appear in the next days.
Description
•