Issue #1971 - Part 2: Update ICU source to 63.2.

This commit is contained in:
Job Bautista 2022-07-24 21:03:27 +08:00 committed by roytam1
commit 1e69214382
3160 changed files with 275815 additions and 234203 deletions

View file

@ -8,22 +8,23 @@
# This is to be called from ../Makefile.in
#
# This will only work if subversion is installed.
# You must checkout ICU4C at the `/icu` or `/icu/icu4c` level - not just `…/source`
# also note that `make dist` does NOT reflect any local modifications - it only does a fresh SVN export.
top_builddir = .
include $(top_builddir)/icudefs.mk
DISTY_DIR=dist
DISTY_TMP=dist/tmp
DISTY_ICU=$(DISTY_TMP)/icu
DISTY_DATA=$(DISTY_ICU)/source/data
DISTY_RMV=brkitr coll curr lang locales mappings rbnf region translit xml zone
DISTY_RMV=brkitr coll curr lang locales mappings rbnf region translit xml zone misc/*.txt misc/*.mk unit
DISTY_RMDIR=$(DISTY_RMV:%=$(DISTY_DATA)/%)
DISTY_IN=$(DISTY_DATA)/in
DOCZIP=icu-docs.zip
SVNTOP=$(top_srcdir)/..
SVNDOT=$(SVNTOP)/.svn
SVNVER=$(shell svnversion $(SVNTOP) | cut -d: -f1 | tr -cd 'a-zA-Z0-9')
SVNURL=$(shell svn info $(SVNTOP) | grep '^URL:' | cut -d: -f2-)
DISTY_VER=$(shell echo $(VERSION) | tr '.' '_' )
@ -33,14 +34,12 @@ DISTY_FILE_TGZ=$(DISTY_FILE_DIR)/$(DISTY_PREFIX)-src-$(DISTY_VER)-r$(SVNVER).tgz
DISTY_FILE_ZIP=$(DISTY_FILE_DIR)/$(DISTY_PREFIX)-src-$(DISTY_VER)-r$(SVNVER).zip
DISTY_DOC_ZIP=$(DISTY_FILE_DIR)/$(DISTY_PREFIX)-docs-$(DISTY_VER)-r$(SVNVER).zip
DISTY_DATA_ZIP=$(DISTY_FILE_DIR)/$(DISTY_PREFIX)-data-$(DISTY_VER)-r$(SVNVER).zip
DISTY_DAT=$(firstword $(wildcard data/out/tmp/icudt$(SO_TARGET_VERSION_MAJOR)*.dat))
DISTY_DAT:=$(firstword $(wildcard data/out/tmp/icudt$(SO_TARGET_VERSION_MAJOR)*.dat))
DISTY_FILES_SRC=$(DISTY_FILE_TGZ) $(DISTY_FILE_ZIP)
DISTY_FILES=$(DISTY_FILES_SRC) $(DISTY_DOC_ZIP)
$(SVNDOT):
@echo "ERROR: 'dist' will not work unless the parent of the top_srcdir ( $(SVNTOP) ) is checked out from svn, and svn is installed."
false
# colon-equals because we watn to run this once!
EXCLUDES_FILE:=$(shell mktemp)
$(DISTY_FILE_DIR):
$(MKINSTALLDIRS) $(DISTY_FILE_DIR)
@ -48,30 +47,43 @@ $(DISTY_FILE_DIR):
$(DISTY_TMP):
$(MKINSTALLDIRS) $(DISTY_TMP)
$(DISTY_DOC_ZIP): $(SVNDOT) $(DOCZIP) $(DISTY_FILE_DIR)
$(DISTY_DOC_ZIP): $(DOCZIP) $(DISTY_FILE_DIR)
cp $(DOCZIP) $(DISTY_DOC_ZIP)
ln -sf $(shell basename $(DISTY_DOC_ZIP)) $(DISTY_FILE_DIR)/icu4c-docs.zip
$(DISTY_DAT):
echo Missing $@
/bin/false
# make sure we get the non-lgpl docs
$(DOCZIP):
$(MAKE) -C . srcdir="$(srcdir)" top_srcdir="$(top_srcdir)" builddir=. $@
-$(RMV) "$(top_builddir)"/doc
"$(MAKE)" -C . srcdir="$(srcdir)" top_srcdir="$(top_srcdir)" builddir=. $@
$(DISTY_FILE_TGZ) $(DISTY_FILE_ZIP) $(DISTY_DATA_ZIP): $(SVNDOT) $(DISTY_DAT) $(DISTY_TMP)
$(DISTY_FILE_TGZ) $(DISTY_FILE_ZIP) $(DISTY_DATA_ZIP): $(DISTY_DAT) $(DISTY_TMP)
@echo "svnversion of $(SVNTOP) is as follows (if this fails, make sure svn is installed..)"
svnversion $(SVNTOP)
-$(RMV) $(DISTY_FILE) $(DISTY_TMP)
$(MKINSTALLDIRS) $(DISTY_TMP)
svn export -r $(shell echo $(SVNVER) | tr -d 'a-zA-Z' ) $(SVNURL) "$(DISTY_TMP)/icu"
@echo collecting excludes to $(EXCLUDES_FILE)
(cd "$(SVNTOP)" ; svn status --no-ignore | grep '^I' | cut -c2- > "$(EXCLUDES_FILE)" )
@echo pseudo-exporting $(SVNVER)
@#svn export -r $(shell echo $(SVNVER) | tr -d 'a-zA-Z' ) $(SVNURL) "$(DISTY_TMP)/icu"
rsync -a --exclude-from="$(EXCLUDES_FILE)" "$(SVNTOP)" "$(DISTY_TMP)/icu"
( cd $(DISTY_TMP)/icu/source ; zip -rlq $(DISTY_DATA_ZIP) data )
$(RMV) $(DISTY_RMDIR)
$(MKINSTALLDIRS) $(DISTY_IN)
echo DISTY_DAT=$(DISTY_DAT)
cp $(DISTY_DAT) $(DISTY_IN)
$(RMV) $(DISTY_RMDIR)
( cd $(DISTY_TMP)/icu ; python as_is/bomlist.py > as_is/bomlist.txt || rm -f as_is/bomlist.txt )
( cd $(DISTY_TMP) ; tar cfpz $(DISTY_FILE_TGZ) icu )
( cd $(DISTY_TMP) ; zip -rlq $(DISTY_FILE_ZIP) icu )
ls -l $(DISTY_FILE)
$(RMV) $(DISTY_TMP)
ln -sf $(shell basename $(DISTY_FILE_ZIP)) $(DISTY_FILE_DIR)/icu4c-src.zip
ln -sf $(shell basename $(DISTY_FILE_TGZ)) $(DISTY_FILE_DIR)/icu4c-src.tgz
ln -sf $(shell basename $(DISTY_DATA_ZIP)) $(DISTY_FILE_DIR)/icu4c-data.zip
ls -l $(DISTY_FILE_TGZ) $(DISTY_FILE_ZIP) $(DISTY_DATA_ZIP)
dist-local: $(DISTY_FILES)

View file

@ -4,6 +4,7 @@
s%^\([a-zA-Z0-9\._-]*\)[ ]*+=%\1=$(\1) %
s%^[A-Z]*_SO_TARG*%## &%
s%^SHARED_OBJECT.*%## &%
s@^_%.*@## &@
s%^LD_SONAME.*%## &%
s%$(\([^\)]*\))%${\1}%g
s%^ %#M# %

View file

@ -13,8 +13,8 @@ GEN_DEPS.cc= $(CXX) -E -M $(DEFS) $(CPPFLAGS)
# This helps in the data library,
# -qproto assumes all functions are prototyped (for optimization)
# -qrtti turns on compiler RTTI, required beginning with ICU 4.6
CFLAGS += -qproto -qroconst
CXXFLAGS += -qproto -qroconst -qrtti
CFLAGS += -qproto -qroconst -qlanglvl=extended
CXXFLAGS += -qproto -qroconst -qrtti -qlanglvl=extended0x
# If you readd this line, you must change the SO value
#LDFLAGS += -brtl
@ -111,11 +111,31 @@ $(LIBDIR)/%.a : %.so
%.o: $(srcdir)/%.c
$(COMPILE.c) $(DYNAMICCPPFLAGS) $(DYNAMICCFLAGS) -o $@ $<
%.$(STATIC_O): $(srcdir)/%.cpp
$(COMPILE.cc) $(STATICCPPFLAGS) $(STATICCXXFLAGS) -o $@ $<
## C++ compilation rules.
# This causes escapesrc to be built before other ICU targets.
NEED_ESCAPING=YES
ifneq ($(SKIP_ESCAPING),)
# no escaping - bootstrap
%.o: $(srcdir)/%.cpp
$(COMPILE.cc) $(DYNAMICCPPFLAGS) $(DYNAMICCXXFLAGS) -o $@ $<
else
# convert *.cpp files to _*.cpp with \u / \U escaping
CLEANFILES += _*.cpp
# the actual escaping
_%.cpp: $(srcdir)/%.cpp
@$(BINDIR)/escapesrc$(EXEEXT) $< $@
# compilation for static obj
%.$(STATIC_O): _%.cpp
$(COMPILE.cc) $(STATICCPPFLAGS) $(STATICCXXFLAGS) -o $@ $<
# compilation for dynamic obj
%.o: _%.cpp
$(COMPILE.cc) $(DYNAMICCPPFLAGS) $(DYNAMICCXXFLAGS) -o $@ $<
endif
## Dependency rules
%.d : %.u

View file

@ -7,7 +7,7 @@
## Commands to generate dependency files
GEN_DEPS.c= $(CC) -E -MM $(DEFS) $(CPPFLAGS)
GEN_DEPS.cc= $(CXX) -E -MM $(DEFS) $(CPPFLAGS)
GEN_DEPS.cc= $(CXX) -E -MM -std=c++11 $(DEFS) $(CPPFLAGS)
## Flags to create/use a static library
ifneq ($(ENABLE_SHARED),YES)

View file

@ -47,8 +47,9 @@ endif
# /EHsc enables exception handling
# /Zc:wchar_t makes wchar_t a native type. Required for C++ ABI compatibility.
# -D_CRT_SECURE_NO_DEPRECATE is needed to quiet warnings about using standard C functions.
CFLAGS+=-GF -nologo
CXXFLAGS+=-GF -nologo -EHsc -Zc:wchar_t
# -utf-8 set source file encoding to utf-8.
CFLAGS+=-GF -nologo -utf-8
CXXFLAGS+=-GF -nologo -EHsc -Zc:wchar_t -utf-8
CPPFLAGS+=-D_CRT_SECURE_NO_DEPRECATE
DEFS+=-DWIN32 -DCYGWINMSVC
LDFLAGS+=-nologo

View file

@ -7,7 +7,7 @@
## Commands to generate dependency files
GEN_DEPS.c= $(CC) -E -MM $(DEFS) $(CPPFLAGS)
GEN_DEPS.cc= $(CXX) -E -MM $(DEFS) $(CPPFLAGS)
GEN_DEPS.cc= $(CXX) -E -MM -std=c++11 $(DEFS) $(CPPFLAGS)
## Flags to create/use a static library
ifneq ($(ENABLE_SHARED),YES)

View file

@ -28,6 +28,10 @@ else
STATICCPPFLAGS = -DU_STATIC_IMPLEMENTATION
endif
## ICU requires a minimum target of Windows 7, and MinGW does not set this by default.
## https://msdn.microsoft.com/en-us/library/aa383745.aspx
CPPFLAGS += -DWINVER=0x0601 -D_WIN32_WINNT=0x0601
## Flags for position independent code
SHAREDLIBCFLAGS =
SHAREDLIBCXXFLAGS =
@ -38,6 +42,11 @@ THREADSCFLAGS = -mthreads
THREADSCXXFLAGS = -mthreads
LIBCPPFLAGS =
## Add 'd' suffix to the names of binary files with Debug configuration
ifeq ($(ENABLE_DEBUG),1)
ICULIBSUFFIX:=$(ICULIBSUFFIX)d#M#
endif
# Commands to link. Link with C++ in case static libraries are used.
LINK.c= $(CXX) $(CXXFLAGS) $(LDFLAGS)
#LINK.cc= $(CXX) $(CXXFLAGS) $(LDFLAGS)

View file

@ -28,6 +28,10 @@ else
STATICCPPFLAGS = -DU_STATIC_IMPLEMENTATION
endif
## ICU requires a minimum target of Windows 7, and MinGW does not set this by default.
## https://msdn.microsoft.com/en-us/library/aa383745.aspx
CPPFLAGS += -DWINVER=0x0601 -D_WIN32_WINNT=0x0601
## Flags for position independent code
SHAREDLIBCFLAGS =
SHAREDLIBCXXFLAGS =
@ -38,6 +42,11 @@ THREADSCFLAGS = -mthreads
THREADSCXXFLAGS = -mthreads
LIBCPPFLAGS =
## Add 'd' suffix to the names of binary files with Debug configuration
ifeq ($(ENABLE_DEBUG),1)
ICULIBSUFFIX:=$(ICULIBSUFFIX)d#M#
endif
# Commands to link. Link with C++ in case static libraries are used.
LINK.c= $(CXX) $(CXXFLAGS) $(LDFLAGS)
#LINK.cc= $(CXX) $(CXXFLAGS) $(LDFLAGS)

View file

@ -52,8 +52,9 @@ endif
# -EHsc enables exception handling
# -Zc:wchar_t makes wchar_t a native type. Required for C++ ABI compatibility.
# -D_CRT_SECURE_NO_DEPRECATE is needed to quiet warnings about using standard C functions.
CFLAGS+=-GF -nologo
CXXFLAGS+=-GF -nologo -EHsc -Zc:wchar_t
# -utf-8 set source file encoding to utf-8.
CFLAGS+=-GF -nologo -utf-8
CXXFLAGS+=-GF -nologo -EHsc -Zc:wchar_t -utf-8
CPPFLAGS+=-D_CRT_SECURE_NO_DEPRECATE
DEFS+=-DWIN32 -DCYGWINMSVC
LDFLAGS+=-nologo

View file

@ -69,7 +69,7 @@ SHAREDLIBCXXFLAGS = -Wc,expo
# NOCSECT might be used as an optimization option.
# -+ means accept any file extension as a C++ file. By default only .C is accepted.
CFLAGS += -Wc,DLL,ROS,RENT,'ARCH(7)','LOC(POSIX)',NOANSIALIAS,'LANGLVL(EXTENDED)' $(ICU_IEEE)
CXXFLAGS += -Wc,DLL,ROS,RTTI,'ARCH(7)','LOC(POSIX)',NOANSIALIAS,'LANGLVL(EXTENDED)' $(ICU_IEEE) -+
CXXFLAGS += -Wc,DLL,ROS,RTTI,'ARCH(7)','LOC(POSIX)',NOANSIALIAS,'LANGLVL(EXTENDED0X)' $(ICU_IEEE) -+
ARFLAGS = -cr
# _MSE_PROTOS usually interacts with _XOPEN_SOURCE. It affects some standard
@ -208,10 +208,27 @@ endif
%.o: $(srcdir)/%.c
$(COMPILE.c) $(DYNAMICCPPFLAGS) $(DYNAMICCFLAGS) -o $@ $<
# This causes escapesrc to be built before other ICU targets.
NEED_ESCAPING=YES
ifneq ($(SKIP_ESCAPING),)
%.$(STATIC_O): $(srcdir)/%.cpp
$(COMPILE.cc) $(STATICCPPFLAGS) $(STATICCXXFLAGS) -o $@ $<
%.o: $(srcdir)/%.cpp
$(COMPILE.cc) $(DYNAMICCPPFLAGS) $(DYNAMICCXXFLAGS) -o $@ $<
else
# convert *.cpp files to _*.cpp with \u / \U escaping
CLEANFILES += _*.cpp
# the actual escaping
_%.cpp: $(srcdir)/%.cpp
@$(BINDIR)/escapesrc$(EXEEXT) $< $@
%.$(STATIC_O): _%.cpp
$(COMPILE.cc) $(STATICCPPFLAGS) $(STATICCXXFLAGS) -o $@ $<
%.o: _%.cpp
$(COMPILE.cc) $(DYNAMICCPPFLAGS) $(DYNAMICCXXFLAGS) -o $@ $<
endif
## Dependency rules
%.d : %.u

View file

@ -5,6 +5,10 @@
## Copyright (c) 1999-2010, International Business Machines Corporation and
## others. All Rights Reserved.
## Flags for ICU 59+
CXXFLAGS += -std=c++11
CFLAGS += -std=c11
## Flags for position independent code
SHAREDLIBCFLAGS = -KPIC
SHAREDLIBCXXFLAGS = -KPIC
@ -59,17 +63,34 @@ SO= so
## Non-shared intermediate object suffix
STATIC_O = o
# This causes escapesrc to be built before other ICU targets.
NEED_ESCAPING=YES
## Compilation rules
%.$(STATIC_O): $(srcdir)/%.c
$(COMPILE.c) $(STATICCPPFLAGS) $(STATICCFLAGS) -o $@ $<
%.o: $(srcdir)/%.c
$(COMPILE.c) $(DYNAMICCPPFLAGS) $(DYNAMICCFLAGS) -o $@ $<
%.$(STATIC_O): $(srcdir)/%.cpp
$(COMPILE.cc) $(STATICCPPFLAGS) $(STATICCXXFLAGS) -o $@ $<
ifneq ($(SKIP_ESCAPING),)
%.o: $(srcdir)/%.cpp
$(COMPILE.cc) $(DYNAMICCPPFLAGS) $(DYNAMICCXXFLAGS) -o $@ $<
%.$(STATIC_O): $(srcdir)/%.cpp
$(COMPILE.cc) $(STATICCPPFLAGS) $(STATICCXXFLAGS) -o $@ $<
else
# convert *.cpp files to _*.cpp with \u / \U escaping
CLEANFILES += _*.cpp
# the actual escaping
_%.cpp: $(srcdir)/%.cpp
@$(BINDIR)/escapesrc$(EXEEXT) $< $@
# no escaping - bootstrap
%.$(STATIC_O): _%.cpp
$(COMPILE.cc) $(STATICCPPFLAGS) $(STATICCXXFLAGS) -o $@ $<
%.o: _%.cpp
$(COMPILE.cc) $(DYNAMICCPPFLAGS) $(DYNAMICCXXFLAGS) -o $@ $<
endif
## Dependency rules
%.d : $(srcdir)/%.c