summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSamuel Mehrbrodt <Samuel.Mehrbrodt@cib.de>2015-10-06 15:03:05 +0200
committerAndras Timar <andras.timar@collabora.com>2017-04-23 21:58:59 +0200
commit37622fdd620cb69196e6d9c791ce5649079ae337 (patch)
tree7d86e5c77131406313ea99134837438618c54a0f
parentcd5e1202eef8dfd8aa8fec2b8775137ef94858c4 (diff)
Emscripten: Add patch to build ICU
Change-Id: If5924054b53fd2b5acf2ec903cd1acf710cc2ef1 (cherry picked from commit 70b72e8705c17bad7a232b909b30f0f5b3635821)
-rw-r--r--external/icu/UnpackedTarball_icu.mk1
-rw-r--r--external/icu/icu4c-emscripten.patch.1116
2 files changed, 117 insertions, 0 deletions
diff --git a/external/icu/UnpackedTarball_icu.mk b/external/icu/UnpackedTarball_icu.mk
index 2beeb68b89a0..a1640e77d66b 100644
--- a/external/icu/UnpackedTarball_icu.mk
+++ b/external/icu/UnpackedTarball_icu.mk
@@ -30,6 +30,7 @@ $(eval $(call gb_UnpackedTarball_add_patches,icu,\
external/icu/icu.changeset_36801.patch.1 \
$(if $(filter-out ANDROID,$(OS)),external/icu/icu4c-icudata-stdlibs.diff) \
external/icu/icu.vc15.patch \
+ $(if $(filter EMSCRIPTEN,$(OS)),external/icu/icu4c-emscripten.patch.1) \
))
# vim: set noet sw=4 ts=4:
diff --git a/external/icu/icu4c-emscripten.patch.1 b/external/icu/icu4c-emscripten.patch.1
new file mode 100644
index 000000000000..3ce6d527b5cd
--- /dev/null
+++ b/external/icu/icu4c-emscripten.patch.1
@@ -0,0 +1,116 @@
+--- icu.org/source/config/mh-unknown 2015-10-06 11:35:03.212459286 +0200
++++ icu/source/config/mh-unknown 2015-10-06 12:01:00.497972406 +0200
+@@ -1,27 +1,90 @@
+ ## -*-makefile-*-
+-## Copyright (c) 2003, International Business Machines Corporation and
++## Emscripten-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,
++
++## Force RPATH=$ORIGIN to locate own dependencies w/o need for LD_LIBRARY_PATH:
++ENABLE_RPATH=YES
++RPATHLDFLAGS=${LD_RPATH_PRE}'$$ORIGIN'
++
++## These are the library specific LDFLAGS
++#LDFLAGSICUDT=-nodefaultlibs -nostdlib
++# Debian change: linking icudata as data only causes too many problems.
++LDFLAGSICUDT=
++
++## 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-functions
++
++## 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
+