Issue #2165 - Build ICU as a shared library if we're building Spidermonkey shared.

It seems that if we're going to enable JS_SHARED_LIBRARY, we need ICU to be a
shared library too in order to prevent code duplication in mozjs.dll bloating
it to a whopping 21 MB.
This unfortunately means we have to fold icudata back to icu itself. But since
icudata is still separated from libxul (which is what really matters for #1451),
I think this is a fair compromise.
Building ICU as shared is offered as an option via --enable-shared-icu. But
technically you really need --enable-shared-icu if you're going to use
--enable-shared-js. Unfortunately I can't make configure exit with an error if
MOZ_SHARED_ICU is not defined when JS_SHARED_LIBRARY is enabled, because options
are controlled by different configure scripts (icu is based on bash, while js is
based on python), and I have no idea how to pass MOZ_SHARED_ICU to js's
moz.configure.

Tag #62
This commit is contained in:
Job Bautista 2023-03-19 00:08:48 +08:00 • committed by roytam1
commit bad884a7c7
6 changed files with 31 additions and 30 deletions

View file

@ -5144,12 +5144,13 @@ AC_SUBST(WIN32_REDIST_DIR)
AC_SUBST(WIN_UCRT_REDIST_DIR)
dnl ========================================================
dnl ICU Support
dnl ICU Shared Library Support
dnl ========================================================
if test "$MOZ_WIDGET_TOOLKIT" = "cocoa"; then
USE_ICU=1
fi
MOZ_ARG_ENABLE_BOOL(shared-icu,
[ --enable-shared-icu Build ICU as a shared library],
MOZ_SHARED_ICU=1,
MOZ_SHARED_ICU=)
MOZ_CONFIG_ICU()