Backed out changeset e40580ed0fe6 (bug 1247396) for Windows builds failing to find sicudt.lib

MozReview-Commit-ID: GxVMNWcjdBY
This commit is contained in:
Wes Kocher 2016-03-25 10:38:54 -07:00
Родитель 815dd278b6
Коммит a7fbcdcca6
10 изменённых файлов: 120 добавлений и 25 удалений

Просмотреть файл

@ -102,6 +102,9 @@ DEFINES += -DMOZ_ICU_VERSION=$(MOZ_ICU_VERSION)
ifdef MOZ_SYSTEM_ICU
DEFINES += -DMOZ_SYSTEM_ICU
endif
ifdef MOZ_SHARED_ICU
DEFINES += -DMOZ_SHARED_ICU
endif
DEFINES += -DMOZ_ICU_DBG_SUFFIX=$(MOZ_ICU_DBG_SUFFIX)
ifneq (,$(filter gtk%,$(MOZ_WIDGET_TOOLKIT)))

Просмотреть файл

@ -72,6 +72,21 @@
#endif
#endif
#ifndef MOZ_SYSTEM_ICU
#ifdef MOZ_SHARED_ICU
#ifdef XP_WIN
@BINPATH@/icudt@MOZ_ICU_DBG_SUFFIX@@MOZ_ICU_VERSION@.dll
@BINPATH@/icuin@MOZ_ICU_DBG_SUFFIX@@MOZ_ICU_VERSION@.dll
@BINPATH@/icuuc@MOZ_ICU_DBG_SUFFIX@@MOZ_ICU_VERSION@.dll
#elif defined(XP_MACOSX)
@BINPATH@/libicudata.@MOZ_ICU_VERSION@.dylib
@BINPATH@/libicui18n.@MOZ_ICU_VERSION@.dylib
@BINPATH@/libicuuc.@MOZ_ICU_VERSION@.dylib
#elif defined(XP_UNIX)
@BINPATH@/libicudata.so.@MOZ_ICU_VERSION@
@BINPATH@/libicui18n.so.@MOZ_ICU_VERSION@
@BINPATH@/libicuuc.so.@MOZ_ICU_VERSION@
#endif
#endif
#endif
#ifdef MOZ_SHARED_MOZGLUE
@BINPATH@/@DLL_PREFIX@mozglue@DLL_SUFFIX@

Просмотреть файл

@ -121,6 +121,9 @@ DEFINES += -DMOZ_ICU_VERSION=$(MOZ_ICU_VERSION)
ifdef MOZ_SYSTEM_ICU
DEFINES += -DMOZ_SYSTEM_ICU
endif
ifdef MOZ_SHARED_ICU
DEFINES += -DMOZ_SHARED_ICU
endif
DEFINES += -DMOZ_ICU_DBG_SUFFIX=$(MOZ_ICU_DBG_SUFFIX)
ifdef CLANG_CXX
DEFINES += -DCLANG_CXX

Просмотреть файл

@ -98,6 +98,21 @@
#endif
#endif
#ifndef MOZ_SYSTEM_ICU
#ifdef MOZ_SHARED_ICU
#ifdef XP_WIN
@BINPATH@/icudt@MOZ_ICU_DBG_SUFFIX@@MOZ_ICU_VERSION@.dll
@BINPATH@/icuin@MOZ_ICU_DBG_SUFFIX@@MOZ_ICU_VERSION@.dll
@BINPATH@/icuuc@MOZ_ICU_DBG_SUFFIX@@MOZ_ICU_VERSION@.dll
#elif defined(XP_MACOSX)
@BINPATH@/libicudata.@MOZ_ICU_VERSION@.dylib
@BINPATH@/libicui18n.@MOZ_ICU_VERSION@.dylib
@BINPATH@/libicuuc.@MOZ_ICU_VERSION@.dylib
#elif defined(XP_UNIX)
@BINPATH@/libicudata.so.@MOZ_ICU_VERSION@
@BINPATH@/libicui18n.so.@MOZ_ICU_VERSION@
@BINPATH@/libicuuc.so.@MOZ_ICU_VERSION@
#endif
#endif
#endif
#ifdef MOZ_GTK3
@BINPATH@/@DLL_PREFIX@mozgtk@DLL_SUFFIX@

Просмотреть файл

@ -3,7 +3,9 @@ dnl License, v. 2.0. If a copy of the MPL was not distributed with this
dnl file, You can obtain one at http://mozilla.org/MPL/2.0/.
dnl Set the MOZ_ICU_VERSION variable to denote the current version of the
dnl ICU library, as well as a few other things.
dnl ICU library, and also the MOZ_SHARED_ICU which would be true if we are
dnl linking against a shared library of ICU, either one that we build from
dnl our copy of ICU or the system provided library.
AC_DEFUN([MOZ_CONFIG_ICU], [
@ -16,6 +18,7 @@ MOZ_ARG_WITH_BOOL(system-icu,
if test -n "$MOZ_SYSTEM_ICU"; then
PKG_CHECK_MODULES(MOZ_ICU, icu-i18n >= 50.1)
MOZ_SHARED_ICU=1
else
MOZ_ICU_INCLUDES="/intl/icu/source/common /intl/icu/source/i18n"
fi
@ -76,12 +79,21 @@ if test -n "$USE_ICU"; then
fi
MOZ_ICU_VERSION="$version"
if test "$OS_TARGET" = WINNT; then
MOZ_SHARED_ICU=1
fi
if test -z "${JS_STANDALONE}" -a -n "${JS_SHARED_LIBRARY}${MOZ_SYSTEM_ICU}"; then
MOZ_SHARED_ICU=1
fi
AC_SUBST(MOZ_ICU_VERSION)
AC_SUBST(MOZ_SHARED_ICU)
if test -z "$MOZ_SYSTEM_ICU"; then
case "$OS_TARGET" in
WINNT)
ICU_LIB_NAMES="sicuin sicuuc sicudt"
ICU_LIB_NAMES="icuin icuuc icudt"
MOZ_ICU_DBG_SUFFIX=
if test -n "$MOZ_DEBUG" -a -z "$MOZ_NO_DEBUG_RTL"; then
MOZ_ICU_DBG_SUFFIX=d
@ -102,8 +114,10 @@ AC_SUBST(USE_ICU)
AC_SUBST_LIST(ICU_LIB_NAMES)
if test -n "$USE_ICU" -a -z "$MOZ_SYSTEM_ICU"; then
dnl We build ICU as a static library.
AC_DEFINE(U_STATIC_IMPLEMENTATION)
dnl We build ICU as a static library for non-shared js builds and as a shared library for shared js builds.
if test -z "$MOZ_SHARED_ICU"; then
AC_DEFINE(U_STATIC_IMPLEMENTATION)
fi
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)
@ -184,9 +198,12 @@ if test "$MOZ_BUILD_APP" != js -o -n "$JS_STANDALONE"; then
ICU_TARGET_OPT="--build=$target --host=$target"
fi
# To reduce library size, use static linking
ICU_LINK_OPTS="--enable-static --disable-shared"
if test -z "$MOZ_SHARED_ICU"; then
# To reduce library size, use static linking
ICU_LINK_OPTS="--enable-static --disable-shared"
else
ICU_LINK_OPTS="--disable-static --enable-shared"
fi
# Force the ICU static libraries to be position independent code
ICU_CFLAGS="$DSO_PIC_CFLAGS $CFLAGS"
ICU_CXXFLAGS="$DSO_PIC_CFLAGS $CXXFLAGS"
@ -259,11 +276,13 @@ if test "$MOZ_BUILD_APP" != js -o -n "$JS_STANDALONE"; then
ICU_CXXFLAGS="-I$_topsrcdir/build/gabi++/include $ICU_CXXFLAGS"
fi
ICU_CXXFLAGS="$ICU_CXXFLAGS -DU_STATIC_IMPLEMENTATION"
ICU_CFLAGS="$ICU_CFLAGS -DU_STATIC_IMPLEMENTATION"
if test "$GNU_CC"; then
ICU_CFLAGS="$ICU_CFLAGS -fvisibility=hidden"
ICU_CXXFLAGS="$ICU_CXXFLAGS -fvisibility=hidden"
if test -z "$MOZ_SHARED_ICU"; then
ICU_CXXFLAGS="$ICU_CXXFLAGS -DU_STATIC_IMPLEMENTATION"
ICU_CFLAGS="$ICU_CFLAGS -DU_STATIC_IMPLEMENTATION"
if test "$GNU_CC"; then
ICU_CFLAGS="$ICU_CFLAGS -fvisibility=hidden"
ICU_CXXFLAGS="$ICU_CXXFLAGS -fvisibility=hidden"
fi
fi
(export AR="$AR"

34
config/external/icu/Makefile.in поставляемый
Просмотреть файл

@ -5,15 +5,30 @@
# Ensure that this happens before including rules.mk
ifdef USE_ICU
ifndef MOZ_SYSTEM_ICU
ifdef MOZ_ICU_DATA_ARCHIVE
ICU_FILES += $(DEPTH)/intl/icu/target/data/out/$(ICU_DATA_FILE)
endif
ifdef ICU_FILES
ICU_DEST := $(DIST)/bin
INSTALL_TARGETS += ICU
$(ICU_FILES): buildicu
ICU_TARGET := target
endif
# Library names: On Windows, ICU uses modified library names for static
# and debug libraries.
ifdef MOZ_SHARED_ICU
ifeq ($(OS_ARCH),WINNT)
ICU_FILES := $(foreach libname,$(ICU_LIB_NAMES),$(DEPTH)/intl/icu/target/lib/$(libname)$(MOZ_ICU_DBG_SUFFIX)$(MOZ_ICU_VERSION).dll)
else # ! WINNT
ifeq ($(OS_ARCH),Darwin)
ICU_FILES := $(foreach libname,$(ICU_LIB_NAMES),$(DEPTH)/intl/icu/target/lib/$(DLL_PREFIX)$(libname).$(MOZ_ICU_VERSION)$(DLL_SUFFIX))
else # ! Darwin
ICU_FILES := $(foreach libname,$(ICU_LIB_NAMES),$(DEPTH)/intl/icu/target/lib/$(DLL_PREFIX)$(libname)$(DLL_SUFFIX).$(MOZ_ICU_VERSION))
endif
endif # WINNT
ifdef ICU_FILES
ICU_DEST := $(DIST)/bin
INSTALL_TARGETS += ICU
$(ICU_FILES): buildicu
ICU_TARGET := target
endif
else # !MOZ_SHARED_ICU
ifeq ($(OS_ARCH),WINNT)
ICU_LIB_RENAME = $(foreach libname,$(ICU_LIB_NAMES),\
cp -p $(DEPTH)/intl/icu/target/lib/s$(libname)$(MOZ_ICU_DBG_SUFFIX).lib $(DEPTH)/intl/icu/target/lib/$(libname)$(MOZ_ICU_DBG_SUFFIX).lib;)
endif
endif # MOZ_SHARED_ICU
endif # !MOZ_SYSTEM_ICU
endif # USE_ICU
@ -35,6 +50,7 @@ ifdef CROSS_COMPILE
+ASAN_OPTIONS=detect_leaks=0 $(MAKE) -j1 -C $(DEPTH)/intl/icu/host STATIC_O=$(OBJ_SUFFIX) GENRBOPTS='-kRC'
endif
+ASAN_OPTIONS=detect_leaks=0 $(MAKE) -j1 -C $(DEPTH)/intl/icu/target STATIC_O=$(OBJ_SUFFIX) GENRBOPTS='-kR'
$(ICU_LIB_RENAME)
distclean clean::
ifdef CROSS_COMPILE

3
config/external/icu/moz.build поставляемый
Просмотреть файл

@ -11,7 +11,8 @@ if CONFIG['MOZ_SYSTEM_ICU']:
else:
# Order needs to be preserved
for l in CONFIG['ICU_LIB_NAMES']:
USE_LIBS += ['static:/intl/icu/target/lib/%s%s' % (
USE_LIBS += ['%s/intl/icu/target/lib/%s%s' % (
'static:' if not CONFIG['MOZ_SHARED_ICU'] else '',
l,
CONFIG['MOZ_ICU_DBG_SUFFIX']
)]

Просмотреть файл

@ -29,8 +29,8 @@ if CONFIG['HOST_OS_ARCH'] != 'WINNT':
# while the program here is in C.
HostProgram('nsinstall_real', c_only=True)
if CONFIG['MOZ_SYSTEM_ICU']:
DEFINES['MOZ_SYSTEM_ICU'] = True
if CONFIG['MOZ_SHARED_ICU']:
DEFINES['MOZ_SHARED_ICU'] = True
PYTHON_UNIT_TESTS += [
'tests/test_mozbuild_reading.py',

Просмотреть файл

@ -1327,7 +1327,7 @@ kvm.h
spawn.h
err.h
xlocale.h
#ifdef MOZ_SYSTEM_ICU
#ifdef MOZ_SHARED_ICU
unicode/locid.h
unicode/numsys.h
unicode/timezone.h

Просмотреть файл

@ -87,6 +87,29 @@ ifdef WIN_UCRT_REDIST_DIR
JSSHELL_BINS += ucrtbase.dll
endif
ifdef MOZ_SHARED_ICU
ifeq ($(OS_TARGET), WINNT)
JSSHELL_BINS += \
icudt$(MOZ_ICU_DBG_SUFFIX)$(MOZ_ICU_VERSION).dll \
icuin$(MOZ_ICU_DBG_SUFFIX)$(MOZ_ICU_VERSION).dll \
icuuc$(MOZ_ICU_DBG_SUFFIX)$(MOZ_ICU_VERSION).dll \
$(NULL)
else
ifeq ($(OS_TARGET), Darwin)
JSSHELL_BINS += \
libicudata.$(MOZ_ICU_VERSION).dylib \
libicui18n.$(MOZ_ICU_VERSION).dylib \
libicuuc.$(MOZ_ICU_VERSION).dylib \
$(NULL)
else
JSSHELL_BINS += \
libicudata.so.$(MOZ_ICU_VERSION) \
libicui18n.so.$(MOZ_ICU_VERSION) \
libicuuc.so.$(MOZ_ICU_VERSION) \
$(NULL)
endif # Darwin
endif # WINNT
endif # MOZ_STATIC_JS
MAKE_JSSHELL = $(call py_action,zip,-C $(DIST)/bin $(abspath $(PKG_JSSHELL)) $(JSSHELL_BINS))
JARLOG_DIR = $(topobjdir)/jarlog/