freebsd-ports/www/libxul/files/patch-bug851992

340 lines
9.9 KiB
Text
Raw Normal View History

diff --git a/config/Makefile.in b/config/Makefile.in
--- config/Makefile.in
+++ config/Makefile.in
@@ -97,16 +97,17 @@ export:: $(export-preqs)
-DMOZ_TREE_PIXMAN=$(MOZ_TREE_PIXMAN) \
-DMOZ_NATIVE_HUNSPELL=$(MOZ_NATIVE_HUNSPELL) \
-DMOZ_NATIVE_BZ2=$(MOZ_NATIVE_BZ2) \
-DMOZ_NATIVE_ZLIB=$(MOZ_NATIVE_ZLIB) \
-DMOZ_NATIVE_PNG=$(MOZ_NATIVE_PNG) \
-DMOZ_NATIVE_JPEG=$(MOZ_NATIVE_JPEG) \
-DMOZ_NATIVE_LIBEVENT=$(MOZ_NATIVE_LIBEVENT) \
-DMOZ_NATIVE_LIBVPX=$(MOZ_NATIVE_LIBVPX) \
+ -DMOZ_NATIVE_ICU=$(MOZ_NATIVE_ICU) \
$(srcdir)/system-headers | $(PERL) $(topsrcdir)/nsprpub/config/make-system-wrappers.pl system_wrappers
$(INSTALL) system_wrappers $(DIST)
GARBAGE_DIRS += system_wrappers
endif
ifdef WRAP_STL_INCLUDES
ifdef GNU_CXX
diff --git a/config/system-headers b/config/system-headers
--- config/system-headers
+++ config/system-headers
@@ -1125,8 +1125,19 @@ gst/video/video.h
sys/msg.h
sys/ipc.h
sys/thr.h
sys/user.h
kvm.h
spawn.h
err.h
xlocale.h
+#if MOZ_NATIVE_ICU==1
+unicode/locid.h
+unicode/numsys.h
+unicode/ucal.h
+unicode/ucol.h
+unicode/udat.h
+unicode/udatpg.h
+unicode/uenum.h
+unicode/unum.h
+unicode/ustring.h
+#endif
diff --git a/configure.in b/configure.in
--- configure.in
+++ configure.in
@@ -4134,16 +4134,32 @@ if test -n "$MOZ_NATIVE_FFI"; then
PKG_CHECK_MODULES(MOZ_FFI, libffi > 3.0.9)
else
PKG_CHECK_MODULES(MOZ_FFI, libffi >= 3.0.9)
fi
MOZ_JS_STATIC_LIBS="$MOZ_JS_STATIC_LIBS $MOZ_FFI_LIBS"
fi
dnl ========================================================
+dnl system icu support
+dnl ========================================================
+MOZ_NATIVE_ICU=
+MOZ_ARG_WITH_BOOL(system-icu,
+[ --with-system-icu
+ Use system icu (located with pkgconfig)],
+ MOZ_NATIVE_ICU=1)
+
+if test -n "$MOZ_NATIVE_ICU"; then
+ PKG_CHECK_MODULES(MOZ_ICU, icu-i18n >= 50.1)
+ MOZ_JS_STATIC_LIBS="$MOZ_JS_STATIC_LIBS $MOZ_ICU_LIBS"
+fi
+
+AC_SUBST(MOZ_NATIVE_ICU)
+
+dnl ========================================================
dnl Java SDK support
dnl ========================================================
JAVA_BIN_PATH=
MOZ_ARG_WITH_STRING(java-bin-path,
[ --with-java-bin-path=dir
Location of Java binaries (java, javac, jar)],
JAVA_BIN_PATH=$withval)
diff --git a/js/src/Makefile.in b/js/src/Makefile.in
--- js/src/Makefile.in.orig 2013-10-22 08:19:02.000000000 +0200
+++ js/src/Makefile.in 2013-10-29 10:11:58.272605098 +0100
@@ -237,10 +237,14 @@
# ICU headers need to be available whether we build with the complete
# Internationalization API or not - ICU stubs rely on them.
+ifdef MOZ_NATIVE_ICU
+LOCAL_INCLUDES += $(MOZ_ICU_CFLAGS)
+else
LOCAL_INCLUDES += \
-I$(topsrcdir)/../../intl/icu/source/common \
-I$(topsrcdir)/../../intl/icu/source/i18n \
$(NULL)
+endif
ifdef ENABLE_INTL_API
@@ -260,6 +264,7 @@
ICU_MAKE = $(MAKE)
endif
+ifndef MOZ_NATIVE_ICU
# - Build ICU as part of the "export" target, so things get built
# in the right order.
# - ICU requires GNU make according to its readme.html. pymake can't be used
@@ -276,6 +281,7 @@
$(call SUBMAKE,$@,intl/icu)
endif
+endif
#
# END ECMAScript Internationalization API
@@ -413,7 +419,11 @@
DEFINES += -DUSE_ZLIB
endif
-SHARED_LIBRARY_LIBS += $(ICU_LIBS)
+ifdef MOZ_NATIVE_ICU
+EXTRA_DSO_LDOPTS += $(MOZ_ICU_LIBS)
+else
+SHARED_LIBRARY_LIBS += $(MOZ_ICU_LIBS)
+endif
# Prevent floating point errors caused by VC++ optimizations
ifdef _MSC_VER
diff --git a/js/src/config/Makefile.in b/js/src/config/Makefile.in
--- js/src/config/Makefile.in
+++ js/src/config/Makefile.in
@@ -54,16 +54,17 @@ include $(topsrcdir)/config/rules.mk
HOST_CFLAGS += -DUNICODE -D_UNICODE
ifdef WRAP_SYSTEM_INCLUDES
export:: \
$(call mkdir_deps,system_wrappers_js) \
$(NULL)
$(PYTHON) $(srcdir)/Preprocessor.py $(DEFINES) $(ACDEFINES) \
+ -DMOZ_NATIVE_ICU=$(MOZ_NATIVE_ICU) \
$(srcdir)/system-headers | $(PERL) $(srcdir)/make-system-wrappers.pl system_wrappers_js
$(INSTALL) system_wrappers_js $(DIST)
GARBAGE_DIRS += system_wrappers_js
endif
GARBAGE += $(srcdir)/*.pyc *.pyc
diff --git a/js/src/config/system-headers b/js/src/config/system-headers
--- js/src/config/system-headers
+++ js/src/config/system-headers
@@ -1125,8 +1125,19 @@ gst/video/video.h
sys/msg.h
sys/ipc.h
sys/thr.h
sys/user.h
kvm.h
spawn.h
err.h
xlocale.h
+#if MOZ_NATIVE_ICU==1
+unicode/locid.h
+unicode/numsys.h
+unicode/ucal.h
+unicode/ucol.h
+unicode/udat.h
+unicode/udatpg.h
+unicode/uenum.h
+unicode/unum.h
+unicode/ustring.h
+#endif
diff --git a/js/src/configure.in b/js/src/configure.in
--- js/src/configure.in
+++ js/src/configure.in
@@ -4406,59 +4406,68 @@ if test "$ACCESSIBILITY" -a "$MOZ_ENABLE
AC_DEFINE_UNQUOTED(ATK_MINOR_VERSION, $ATK_MINOR_VERSION)
AC_DEFINE_UNQUOTED(ATK_REV_VERSION, $ATK_REV_VERSION)
fi
dnl ========================================================
dnl ECMAScript Internationalization API Support (uses ICU)
dnl ========================================================
+ICU_LIB_NAMES=
+MOZ_NATIVE_ICU=
+MOZ_ARG_WITH_BOOL(system-icu,
+[ --with-system-icu
+ Use system icu (located with pkgconfig)],
+ MOZ_NATIVE_ICU=1)
+
+if test -n "$MOZ_NATIVE_ICU"; then
+ PKG_CHECK_MODULES(MOZ_ICU, icu-i18n >= 50.1)
+fi
if test -n "$JS_STANDALONE"; then
ENABLE_INTL_API=1
fi
MOZ_ARG_ENABLE_BOOL(intl-api,
[ --enable-intl-api Enable ECMAScript Internationalization API (default=yes for standalone JS)],
ENABLE_INTL_API=1,
ENABLE_INTL_API= )
dnl Settings for the implementation of the ECMAScript Internationalization API
if test -n "$ENABLE_INTL_API"; then
AC_DEFINE(ENABLE_INTL_API)
- # We build ICU as a static library.
- AC_DEFINE(U_STATIC_IMPLEMENTATION)
-
- case "$OS_TARGET" in
- WINNT)
- ICU_LIB_NAMES="icuin icuuc icudt"
- ;;
- Darwin|Linux)
- ICU_LIB_NAMES="icui18n icuuc icudata"
- ;;
- *)
- AC_MSG_ERROR([ECMAScript Internationalization API is not yet supported on this platform])
- esac
-
- ICU_LIBS='$(call EXPAND_LIBNAME_PATH,$(ICU_LIB_NAMES),$(DEPTH)/intl/icu/lib)'
-else
- ICU_LIB_NAMES=
- ICU_LIBS=
+
+ if test -z "$MOZ_NATIVE_ICU"; then
+ case "$OS_TARGET" in
+ WINNT)
+ ICU_LIB_NAMES="icuin icuuc icudt"
+ ;;
+ Darwin|Linux)
+ ICU_LIB_NAMES="icui18n icuuc icudata"
+ ;;
+ *)
+ AC_MSG_ERROR([ECMAScript Internationalization API is not yet supported on this platform])
+ esac
+ MOZ_ICU_LIBS='$(call EXPAND_LIBNAME_PATH,$(ICU_LIB_NAMES),$(DEPTH)/intl/icu/lib)'
+ fi
fi
AC_SUBST(ENABLE_INTL_API)
AC_SUBST(ICU_LIB_NAMES)
-AC_SUBST(ICU_LIBS)
-
-dnl Source files that use ICU should have control over which parts of the ICU
-dnl namespace they want to use.
-AC_DEFINE(U_USING_ICU_NAMESPACE,0)
-
+AC_SUBST(MOZ_ICU_LIBS)
+AC_SUBST(MOZ_NATIVE_ICU)
dnl Settings for ICU
-if test -n "$ENABLE_INTL_API" ; then
+if test -n "$ENABLE_INTL_API" -a -z "$MOZ_NATIVE_ICU"; then
+ dnl We build ICU as a static library.
+ AC_DEFINE(U_STATIC_IMPLEMENTATION)
+
+ dnl Source files that use ICU should have control over which parts of the ICU
+ dnl namespace they want to use.
+ AC_DEFINE(U_USING_ICU_NAMESPACE,0)
+
# Set ICU compile options
ICU_CPPFLAGS=""
# don't use icu namespace automatically in client code
ICU_CPPFLAGS="$ICU_CPPFLAGS -DU_USING_ICU_NAMESPACE=0"
# don't include obsolete header files
ICU_CPPFLAGS="$ICU_CPPFLAGS -DU_NO_DEFAULT_INCLUDE_UTF_HEADERS=1"
# remove chunks of the library that we don't need (yet)
ICU_CPPFLAGS="$ICU_CPPFLAGS -DUCONFIG_NO_LEGACY_CONVERSION"
diff --git a/js/src/gdb/Makefile.in b/js/src/gdb/Makefile.in
--- js/src/gdb/Makefile.in
+++ js/src/gdb/Makefile.in
@@ -14,16 +14,20 @@ include $(DEPTH)/config/autoconf.mk
# Building against js_static requires that we declare mfbt sybols "exported"
# on its behalf.
DEFINES += -DEXPORT_JS_API -DIMPL_MFBT
LIBS = $(DEPTH)/$(LIB_PREFIX)js_static.$(LIB_SUFFIX) $(NSPR_LIBS) $(MOZ_ZLIB_LIBS)
LOCAL_INCLUDES += -I$(topsrcdir) -I..
+ifdef MOZ_NATIVE_ICU
+EXTRA_LIBS += $(MOZ_ICU_LIBS)
+endif
+
EXTRA_LIBS += $(MOZ_FFI_LIBS)
# Place a GDB Python auto-load file next to the gdb-tests executable, both
# in the build directory and in the dist/bin directory.
PP_TARGETS += GDB_AUTOLOAD
GDB_AUTOLOAD := gdb-tests-gdb.py.in
GDB_AUTOLOAD_FLAGS := -Dtopsrcdir=$(abspath $(topsrcdir))
diff --git a/js/src/jsapi-tests/Makefile.in b/js/src/jsapi-tests/Makefile.in
--- js/src/jsapi-tests/Makefile.in
+++ js/src/jsapi-tests/Makefile.in
@@ -15,16 +15,20 @@ DEFINES += -DEXPORT_JS_API
# Building against js_static requires that we declare mfbt sybols "exported"
# on its behalf.
DEFINES += -DIMPL_MFBT
LIBS = $(DEPTH)/$(LIB_PREFIX)js_static.$(LIB_SUFFIX) $(NSPR_LIBS) $(MOZ_ZLIB_LIBS)
LOCAL_INCLUDES += -I$(topsrcdir) -I..
+ifdef MOZ_NATIVE_ICU
+EXTRA_LIBS += $(MOZ_ICU_LIBS)
+endif
+
EXTRA_LIBS += $(MOZ_FFI_LIBS)
ifdef QEMU_EXE
MOZ_POST_PROGRAM_COMMAND = $(topsrcdir)/build/qemu-wrap --qemu $(QEMU_EXE) --libdir $(CROSS_LIB)
endif
# Place a GDB Python auto-load file next to the jsapi-tests executable in
# the build directory.
diff --git a/js/src/shell/Makefile.in b/js/src/shell/Makefile.in
--- js/src/shell/Makefile.in
+++ js/src/shell/Makefile.in
@@ -22,16 +22,19 @@ DEFINES += -DEXPORT_JS_API
# Building against js_static requires that we declare mfbt sybols "exported"
# on its behalf.
DEFINES += -DIMPL_MFBT
LIBS = $(NSPR_LIBS) $(EDITLINE_LIBS) $(DEPTH)/$(LIB_PREFIX)js_static.$(LIB_SUFFIX) $(MOZ_ZLIB_LIBS)
ifdef MOZ_NATIVE_FFI
EXTRA_LIBS += $(MOZ_FFI_LIBS)
endif
+ifdef MOZ_NATIVE_ICU
+EXTRA_LIBS += $(MOZ_ICU_LIBS)
+endif
LOCAL_INCLUDES += -I$(topsrcdir) -I..
ifeq ($(OS_ARCH),Darwin)
ifeq ($(TARGET_CPU),x86_64)
DARWIN_EXE_LDFLAGS += -pagezero_size 10000 -image_base 100000000
endif
endif