Skip to content

Commit

Permalink
[WIP] Update icu4c to version 71.1
Browse files Browse the repository at this point in the history
This is a test build for wasm only.
  • Loading branch information
mgautierfr committed Oct 25, 2023
1 parent 078dfa0 commit 279832e
Show file tree
Hide file tree
Showing 3 changed files with 166 additions and 11 deletions.
20 changes: 11 additions & 9 deletions kiwixbuild/dependencies/icu4c.py
Original file line number Diff line number Diff line change
Expand Up @@ -11,15 +11,17 @@ class Icu(Dependency):
name = "icu4c"

class Source(ReleaseDownload):
archive = Remotefile('icu4c_svn_58-2.tar.gz',
'fd8fcc1f1b8b2b71b879e88844480ebec107189c21076c81573f71dca5686a0d')
patches = ["icu4c_fix_static_lib_name_mingw.patch",
"icu4c_android_elf64_st_info.patch",
"icu4c_custom_data.patch",
"icu4c_noxlocale.patch",
"icu4c_rpath.patch",
"icu4c_build_config.patch",
"icu4c_wasm.patch"
archive = Remotefile('icu4c_71_1-src.tgz',
'',
'https://github.com/unicode-org/icu/releases/download/release-71-1/icu4c-71_1-src.tgz')
patches = [
# "icu4c_fix_static_lib_name_mingw.patch",
# "icu4c_android_elf64_st_info.patch",
# "icu4c_custom_data.patch",
# "icu4c_noxlocale.patch",
# "icu4c_rpath.patch",
# "icu4c_build_config.patch",
"icu4c_71_wasm.patch"
]


Expand Down
153 changes: 153 additions & 0 deletions kiwixbuild/patches/icu4c_71_wasm.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,153 @@
diff '--color=auto' -ur icu4c-71.1/source/config/mh-unknown icu4c-71.1.wasm/source/config/mh-unknown
--- icu4c-71.1/source/config/mh-unknown 2022-04-08 00:41:55.000000000 +0200
+++ icu4c-71.1.wasm/source/config/mh-unknown 2023-10-25 14:00:18.035718690 +0200
@@ -1,29 +1,87 @@
## -*-makefile-*-
## Copyright (C) 2016 and later: Unicode, Inc. and others.
## License & terms of use: http://www.unicode.org/copyright.html
-## Copyright (c) 2003, International Business Machines Corporation and
+## Linux-specific setup
+## Copyright (c) 1999-2013, International Business Machines Corporation and
## others. All Rights Reserved.
-##

-# Note, this is not a real mh- file. You got here because configure
-# (specifically, aclocal.m4) could not determine a suitable mh- file.
-#
-# Perhaps your platform wasn't detected- try changing aclocal.m4 and
-# re-running autoconf.
-#
-# If your platform is truly new/different:
-# As a start, try copying mh-linux (which is fairly generic) over this
-# file, and re-run config.status.
-
-%.$(STATIC_O) %.o %.$(STATIC_O) %.o ../data/%.o %.d %.d %.$(SO).$(SO_TARGET_VERSION_MAJOR) %.$(SO):
- @echo
- @echo
- @echo "*** ERROR - configure could not detect your platform"
- @echo "*** see the readme.html"
- @echo "*** or, try copying icu/source/config/mh-linux to mh-unknown"
- @echo "*** and editing it."
- @echo
- @echo
- exit 1
+## Commands to generate dependency files
+GEN_DEPS.c= $(CC) -E -MM $(DEFS) $(CPPFLAGS)
+GEN_DEPS.cc= $(CXX) -E -MM $(DEFS) $(CPPFLAGS) $(CXXFLAGS)

+## Flags for position independent code
+SHAREDLIBCFLAGS = -fPIC
+SHAREDLIBCXXFLAGS = -fPIC
+SHAREDLIBCPPFLAGS = -DPIC
+
+## Additional flags when building libraries and with threads
+THREADSCPPFLAGS = -D_REENTRANT
+LIBCPPFLAGS =
+
+## Compiler switch to embed a runtime search path
+LD_RPATH= -Wl,-zorigin,-rpath,'$$'ORIGIN
+LD_RPATH_PRE = -Wl,-rpath,
+
+## These are the library specific LDFLAGS
+LDFLAGSICUDT=-nodefaultlibs -nostdlib
+
+## Compiler switch to embed a library name
+# The initial tab in the next line is to prevent icu-config from reading it.
+ LD_SONAME = -Wl,-soname -Wl,$(notdir $(MIDDLE_SO_TARGET))
+#SH# # We can't depend on MIDDLE_SO_TARGET being set.
+#SH# LD_SONAME=
+
+## Shared library options
+LD_SOOPTIONS= -Wl,-Bsymbolic
+
+## Shared object suffix
+SO = so
+## Non-shared intermediate object suffix
+STATIC_O = ao
+
+## Compilation rules
+%.$(STATIC_O): $(srcdir)/%.c
+ $(call SILENT_COMPILE,$(strip $(COMPILE.c) $(STATICCPPFLAGS) $(STATICCFLAGS)) -o $@ $<)
+%.o: $(srcdir)/%.c
+ $(call SILENT_COMPILE,$(strip $(COMPILE.c) $(DYNAMICCPPFLAGS) $(DYNAMICCFLAGS)) -o $@ $<)
+
+%.$(STATIC_O): $(srcdir)/%.cpp
+ $(call SILENT_COMPILE,$(strip $(COMPILE.cc) $(STATICCPPFLAGS) $(STATICCXXFLAGS)) -o $@ $<)
+%.o: $(srcdir)/%.cpp
+ $(call SILENT_COMPILE,$(strip $(COMPILE.cc) $(DYNAMICCPPFLAGS) $(DYNAMICCXXFLAGS)) -o $@ $<)
+
+
+## Dependency rules
+%.d: $(srcdir)/%.c
+ $(call ICU_MSG,(deps)) $<
+ @$(SHELL) -ec '$(GEN_DEPS.c) $< \
+ | sed '\''s%\($*\)\.o[ :]*%\1.o $@ : %g'\'' > $@; \
+ [ -s $@ ] || rm -f $@'
+
+%.d: $(srcdir)/%.cpp
+ $(call ICU_MSG,(deps)) $<
+ @$(SHELL) -ec '$(GEN_DEPS.cc) $< \
+ | sed '\''s%\($*\)\.o[ :]*%\1.o $@ : %g'\'' > $@; \
+ [ -s $@ ] || rm -f $@'
+
+## Versioned libraries rules
+
+%.$(SO).$(SO_TARGET_VERSION_MAJOR): %.$(SO).$(SO_TARGET_VERSION)
+ $(RM) $@ && ln -s ${<F} $@
+%.$(SO): %.$(SO).$(SO_TARGET_VERSION_MAJOR)
+ $(RM) $@ && ln -s ${*F}.$(SO).$(SO_TARGET_VERSION) $@
+
+## Bind internal references
+
+# LDflags that pkgdata will use
+BIR_LDFLAGS= -Wl,-Bsymbolic
+
+# Dependencies [i.e. map files] for the final library
+BIR_DEPS=
+
+## Remove shared library 's'
+STATIC_PREFIX_WHEN_USED =
+STATIC_PREFIX =
+
+## End Linux-specific setup

diff '--color=auto' -ur icu4c-71.1/source/config.sub icu4c-71.1.wasm/source/config.sub
--- icu4c-71.1/source/config.sub 2022-04-08 00:41:55.000000000 +0200
+++ icu4c-71.1.wasm/source/config.sub 2023-10-25 13:58:23.711645708 +0200
@@ -312,7 +312,7 @@
| ubicom32 \
| v850 | v850e | v850e1 | v850e2 | v850es | v850e2v3 \
| visium \
- | wasm32 \
+ | wasm32 | wasm64 \
| x86 | xc16x | xstormy16 | xtensa \
| z8k | z80)
basic_machine=$basic_machine-unknown
@@ -443,7 +443,7 @@
| v850-* | v850e-* | v850e1-* | v850es-* | v850e2-* | v850e2v3-* \
| vax-* \
| visium-* \
- | wasm32-* \
+ | wasm32-* | wasm64-* \
| we32k-* \
| x86-* | x86_64-* | xc16x-* | xps100-* \
| xstormy16-* | xtensa*-* \
@@ -1247,6 +1247,9 @@
wasm32)
basic_machine=wasm32-unknown
;;
+ wasm64)
+ basic_machine=wasm64-unknown
+ ;;
w65*)
basic_machine=w65-wdc
os=-none
@@ -1416,7 +1419,7 @@
| -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \
| -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \
| -skyos* | -haiku* | -rdos* | -toppers* | -drops* | -es* \
- | -onefs* | -tirtos* | -phoenix* | -fuchsia* | -redox*)
+ | -onefs* | -tirtos* | -phoenix* | -fuchsia* | -redox* | -emscripten*)
# Remember, each alternative MUST END IN *, to match a version number.
;;
-qnx*)
4 changes: 2 additions & 2 deletions kiwixbuild/versions.py
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@

# This is the "version" of the whole base_deps_versions dict.
# Change this when you change base_deps_versions.
base_deps_meta_version = '92'
base_deps_meta_version = '92_wasm'

base_deps_versions = {
'zlib' : '1.2.12',
Expand All @@ -52,7 +52,7 @@
'pugixml' : '1.2',
'libmicrohttpd' : '0.9.76',
'gumbo' : '0.10.1',
'icu4c' : '58.2',
'icu4c' : '71.1',
'libaria2' : '1.36.0',
'libmagic' : '5.44',
'android-ndk' : 'r21e',
Expand Down

0 comments on commit 279832e

Please sign in to comment.