Move all to deprecated folder.

This commit is contained in:
2016-11-16 21:57:57 +01:00
parent 01738a7684
commit 05de7d6c04
9777 changed files with 0 additions and 0 deletions

View File

@@ -0,0 +1,37 @@
Don't build object files twice
When passed --enable-static and --enable-shared, icu will generate
both a shared and a static version of its libraries.
However, in order to do so, it builds each and every object file
twice: once with -fPIC (for the shared library), and once without
-fPIC (for the static library). While admittedly building -fPIC for a
static library generates a slightly suboptimal code, this is what all
the autotools-based project are doing. They build each object file
once, and they use it for both the static and shared libraries.
icu builds the object files for the shared library as .o files, and
the object files for static library as .ao files. By simply changing
the suffix of object files used for static libraries to ".o", we tell
icu to use the ones built for the shared library (i.e, with -fPIC),
and avoid the double build of icu.
On a fast build server, this brings the target icu build from
3m41.302s down to 1m43.926s (approximate numbers: some other builds
are running on the system at the same time).
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Index: b/source/config/mh-linux
===================================================================
--- a/source/config/mh-linux
+++ b/source/config/mh-linux
@@ -35,7 +35,7 @@
## Shared object suffix
SO = so
## Non-shared intermediate object suffix
-STATIC_O = ao
+STATIC_O = o
## Compilation rules
%.$(STATIC_O): $(srcdir)/%.c

View File

@@ -0,0 +1,37 @@
Workaround toolchain bugs
Many of ARM Sourcery CodeBench toolchain have a bug when compiling
icu's translit.cpp source file. The bug is trigerred when there is a
combination of "-W -Wall" and "-Os", and causes an internal compiler
error. The bug has been reported to Mentor Graphics.
Even though it is clearly a toolchain bug, having a workaround for it
is trivial in this case. So it will avoid our users falling into this
internal compiler error, and allow our autobuilders to test more
packages using this Sourcery CodeBench toolchain.qq
[Gustavo: update for ICU4C 54.1]
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
diff -Nura icu.orig/source/configure icu/source/configure
--- icu.orig/source/configure 2014-12-18 15:49:43.038628644 -0300
+++ icu/source/configure 2014-12-18 15:51:23.183083232 -0300
@@ -4323,7 +4323,7 @@
;;
esac
- CFLAGS="$CFLAGS -Wall -pedantic -Wshadow -Wpointer-arith -Wmissing-prototypes -Wwrite-strings"
+ CFLAGS="$CFLAGS -pedantic -Wshadow -Wpointer-arith -Wmissing-prototypes -Wwrite-strings"
else
case "${host}" in
*-*-cygwin)
@@ -4337,7 +4337,7 @@
fi
if test "$GXX" = yes
then
- CXXFLAGS="$CXXFLAGS -W -Wall -pedantic -Wpointer-arith -Wwrite-strings -Wno-long-long"
+ CXXFLAGS="$CXXFLAGS -pedantic -Wpointer-arith -Wwrite-strings -Wno-long-long"
else
case "${host}" in
*-*-cygwin)

View File

@@ -0,0 +1,116 @@
detect and add compiler symbol prefix to the assembly code
Some compiler, such as Blackfin GNU compiler, prefix a charater to any
C symbol in generated assembly code. If any assembly symbol is invoked
from C code, it needs to be prefixed as well.
Note: since autoreconf doesn't work with this package because automake
isn't support
[Ryan: add information about why patching configure is ok]
[Gustavo: update for ICU4C 54.1]
Signed-off-by: Sonic Zhang <sonic.zhang@analog.com>
Signed-off-by: Ryan Barnett <rjbarnet@rockwellcollins.com>
Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
diff -Nura icu.orig/source/configure icu/source/configure
--- icu.orig/source/configure 2014-12-18 15:49:43.038628644 -0300
+++ icu/source/configure 2014-12-18 15:56:05.793832186 -0300
@@ -637,6 +637,7 @@
ICUDATA_CHAR
SAMPLES_TRUE
TESTS_TRUE
+SYMBOL_PREFIX
ICULIBSUFFIXCNAME
U_HAVE_LIB_SUFFIX
ICULIBSUFFIX
@@ -7414,6 +7415,17 @@
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $CHECK_UTF16_STRING_RESULT" >&5
$as_echo "$CHECK_UTF16_STRING_RESULT" >&6; }
+# Check compiler generated symbol profix
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for symbol prefix" >&5
+$as_echo "checking for symbol prefix... " >&6; }
+ SYMBOL_PREFIX=`echo "PREFIX=__USER_LABEL_PREFIX__" \
+ | ${CPP-${CC-gcc} -E} - 2>&1 \
+ | ${EGREP-grep} "^PREFIX=" \
+ | sed -e "s:^PREFIX=::" -e "s:__USER_LABEL_PREFIX__::"`
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $SYMBOL_PREFIX" >&5
+$as_echo "$SYMBOL_PREFIX" >&6; }
+
# Enable/disable extras
# Check whether --enable-extras was given.
if test "${enable_extras+set}" = set; then :
diff -Nura icu.orig/source/data/Makefile.in icu/source/data/Makefile.in
--- icu.orig/source/data/Makefile.in 2014-12-18 15:49:42.908624160 -0300
+++ icu/source/data/Makefile.in 2014-12-18 16:01:32.751110913 -0300
@@ -182,11 +182,11 @@
packagedata: icupkg.inc $(PKGDATA_LIST) build-local
ifneq ($(ENABLE_STATIC),)
ifeq ($(PKGDATA_MODE),dll)
- $(PKGDATA_INVOKE) $(PKGDATA) -e $(ICUDATA_ENTRY_POINT) -T $(OUTTMPDIR) -p $(ICUDATA_NAME) $(PKGDATA_LIBSTATICNAME) -m static $(PKGDATA_VERSIONING) $(PKGDATA_LIST)
+ $(PKGDATA_INVOKE) $(PKGDATA) -e @SYMBOL_PREFIX@$(ICUDATA_ENTRY_POINT) -T $(OUTTMPDIR) -p $(ICUDATA_NAME) $(PKGDATA_LIBSTATICNAME) -m static $(PKGDATA_VERSIONING) $(PKGDATA_LIST)
endif
endif
ifneq ($(ICUDATA_SOURCE_IS_NATIVE_TARGET),YES)
- $(PKGDATA_INVOKE) $(PKGDATA) -e $(ICUDATA_ENTRY_POINT) -T $(OUTTMPDIR) -p $(ICUDATA_NAME) -m $(PKGDATA_MODE) $(PKGDATA_VERSIONING) $(PKGDATA_LIBNAME) $(PKGDATA_LIST)
+ $(PKGDATA_INVOKE) $(PKGDATA) -e @SYMBOL_PREFIX@$(ICUDATA_ENTRY_POINT) -T $(OUTTMPDIR) -p $(ICUDATA_NAME) -m $(PKGDATA_MODE) $(PKGDATA_VERSIONING) $(PKGDATA_LIBNAME) $(PKGDATA_LIST)
else
$(INSTALL_DATA) $(ICUDATA_SOURCE_ARCHIVE) $(OUTDIR)
endif
@@ -209,11 +209,11 @@
endif
ifneq ($(ENABLE_STATIC),)
ifeq ($(PKGDATA_MODE),dll)
- $(PKGDATA_INVOKE) $(PKGDATA) -m static -e $(ICUDATA_ENTRY_POINT) -T $(OUTTMPDIR) -s $(BUILDDIR) -p $(ICUDATA_NAME) $(PKGDATA_LIBSTATICNAME) $(PKGDATA_LIST) -I $(ICUPKGDATA_INSTALL_LIBDIR)
+ $(PKGDATA_INVOKE) $(PKGDATA) -m static -e @SYMBOL_PREFIX@$(ICUDATA_ENTRY_POINT) -T $(OUTTMPDIR) -s $(BUILDDIR) -p $(ICUDATA_NAME) $(PKGDATA_LIBSTATICNAME) $(PKGDATA_LIST) -I $(ICUPKGDATA_INSTALL_LIBDIR)
endif
endif
ifneq ($(ICUDATA_SOURCE_IS_NATIVE_TARGET),YES)
- $(PKGDATA_INVOKE) $(PKGDATA) -m $(PKGDATA_MODE) $(PKGDATA_VERSIONING) -e $(ICUDATA_ENTRY_POINT) -T $(OUTTMPDIR) -s $(BUILDDIR) -p $(ICUDATA_NAME) $(PKGDATA_LIBNAME) $(PKGDATA_LIST) -I $(ICUPKGDATA_INSTALL_DIR)
+ $(PKGDATA_INVOKE) $(PKGDATA) -m $(PKGDATA_MODE) $(PKGDATA_VERSIONING) -e @SYMBOL_PREFIX@$(ICUDATA_ENTRY_POINT) -T $(OUTTMPDIR) -s $(BUILDDIR) -p $(ICUDATA_NAME) $(PKGDATA_LIBNAME) $(PKGDATA_LIST) -I $(ICUPKGDATA_INSTALL_DIR)
else
$(INSTALL_DATA) $(ICUDATA_SOURCE_ARCHIVE) $(DESTDIR)$(ICUPKGDATA_DIR)
endif
@@ -224,7 +224,7 @@
#### 390 support
install390: package390
$(MKINSTALLDIRS) $(TMPDATADIR) $(DESTDIR)$(libdir)
- $(INVOKE) $(PKGDATA) -s $(BUILDDIR)$(STUB_SUFFIX) -T $(OUTTMPDIR_390STUB) -p $(ICUDATA_NAME)$(STUB_SUFFIX) $(PKGDATA_LIBNAME)$(STUB_SUFFIX) -e $(ICUDATA_ENTRY_POINT) $(OS390LIST) -m dll $(PKGDATA_VERSIONING) -I $(DESTDIR)$(ICUPKGDATA_DIR)
+ $(INVOKE) $(PKGDATA) -s $(BUILDDIR)$(STUB_SUFFIX) -T $(OUTTMPDIR_390STUB) -p $(ICUDATA_NAME)$(STUB_SUFFIX) $(PKGDATA_LIBNAME)$(STUB_SUFFIX) -e @SYMBOL_PREFIX@$(ICUDATA_ENTRY_POINT) $(OS390LIST) -m dll $(PKGDATA_VERSIONING) -I $(DESTDIR)$(ICUPKGDATA_DIR)
ifeq ($(PKGDATA_MODE),dll)
$(INSTALL-L) $(ICUPKGDATA_OUTDIR)/$(FINAL_IMPORT_LIB) $(DESTDIR)$(ICUPKGDATA_DIR)/$(FINAL_IMPORT_LIB)
endif
@@ -232,7 +232,7 @@
#### $(LIB_ICUDATA_NAME)$(STUB_SUFFIX) is the subset data for batch mode
package390: $(OUTTMPDIR)/icudata390.lst $(PKGDATA_LIST) ./icupkg.inc packagedata
ln -s $(ICUDATA_NAME) $(OUTDIR)/build/$(ICUDATA_NAME)$(STUB_SUFFIX)
- $(INVOKE) $(PKGDATA) -s $(BUILDDIR)$(STUB_SUFFIX) -T $(OUTTMPDIR_390STUB) -p $(ICUDATA_NAME)$(STUB_SUFFIX) $(PKGDATA_LIBNAME)$(STUB_SUFFIX) -e $(ICUDATA_ENTRY_POINT) $(OS390LIST) -m dll $(PKGDATA_VERSIONING)
+ $(INVOKE) $(PKGDATA) -s $(BUILDDIR)$(STUB_SUFFIX) -T $(OUTTMPDIR_390STUB) -p $(ICUDATA_NAME)$(STUB_SUFFIX) $(PKGDATA_LIBNAME)$(STUB_SUFFIX) -e @SYMBOL_PREFIX@$(ICUDATA_ENTRY_POINT) $(OS390LIST) -m dll $(PKGDATA_VERSIONING)
cp $(ICUPKGDATA_OUTDIR)/$(LIB_ICUDATA_NAME)$(STUB_SUFFIX).$(SO) $(top_builddir)/stubdata/$(LIB_ICUDATA_NAME)$(STUB_SUFFIX).$(SO)
diff -Nura icu.orig/source/extra/uconv/Makefile.in icu/source/extra/uconv/Makefile.in
--- icu.orig/source/extra/uconv/Makefile.in 2014-12-18 15:49:42.986626850 -0300
+++ icu/source/extra/uconv/Makefile.in 2014-12-18 15:57:40.558101179 -0300
@@ -58,7 +58,8 @@
## Static mode
ifeq ($(UCONVMSG_MODE),static)
DEFS += -DUCONVMSG_LINK=$(MSGNAME)
-UCONVMSG_LIB = $(RESDIR)/$(LIBPREFIX)$(STATIC_PREFIX_WHEN_USED)$(MSGNAME).$(A)
+UCONVMSG_LIB = $(RESDIR)/$(LIBPREFIX)$(STATIC_PREFIX_WHEN_USED)@SYMBOL_PREFIX@$(MSGNAME).$(A)
+
LIBS += $(UCONVMSG_LIB)
PKGMODE=static
INSTALLTO=$(libdir)
@@ -152,7 +153,7 @@
endif
$(UCONVMSG_LIB): $(RESFILES) $(RESDIR)/$(RESDIR).lst pkgdata.inc
- $(INVOKE) $(PKGDATA_INVOKE_OPTS) $(TOOLBINDIR)/pkgdata -p $(MSGNAME) $(PKGDATA_OPTS) -m $(PKGMODE) -s $(RESDIR) -d $(RESDIR) -T $(RESDIR) $(RESDIR)/$(RESDIR).lst
+ $(INVOKE) $(PKGDATA_INVOKE_OPTS) $(TOOLBINDIR)/pkgdata -p @SYMBOL_PREFIX@$(MSGNAME) $(PKGDATA_OPTS) -m $(PKGMODE) -s $(RESDIR) -d $(RESDIR) -T $(RESDIR) $(RESDIR)/$(RESDIR).lst
$(RESDIR)/$(RESDIR).lst: Makefile $(srcdir)/resfiles.mk
@-$(RMV) $@

View File

@@ -0,0 +1,35 @@
From d5d0c4bb7cc9aa4a132ec0bea13255aee50c1cf9 Mon Sep 17 00:00:00 2001
From: Maxime Hadjinlian <maxime.hadjinlian@devialet.com>
Date: Fri, 6 Jun 2014 14:55:58 +0200
Subject: [PATCH] Don't link icudata as a data only library
This patch cames straight from Debian. It fixes an issue when
libicudata would not have some flags indicating it's EABIhf, causing
applications linked against libicudata to not start on EABIhf
systems. Getting rid of the -nodefaultlibs -nostdlib flags solves the
problem, and is the solution that is used by Debian, see
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=653457.
Signed-off-by: Maxime Hadjinlian <maxime.hadjinlian@devialet.com>
---
source/config/mh-linux | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/source/config/mh-linux b/source/config/mh-linux
index 531a3b2..5a2a7c4 100644
--- a/source/config/mh-linux
+++ b/source/config/mh-linux
@@ -21,7 +21,9 @@ LD_RPATH= -Wl,-zorigin,-rpath,'$$'ORIGIN
LD_RPATH_PRE = -Wl,-rpath,
## These are the library specific LDFLAGS
-LDFLAGSICUDT=-nodefaultlibs -nostdlib
+#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.
--
2.0.0.rc2

View File

@@ -0,0 +1,34 @@
From ffff12fd321c7a056e796e74cc508726b0626ae0 Mon Sep 17 00:00:00 2001
From: Romain Naour <romain.naour@openwide.fr>
Date: Wed, 22 Jul 2015 22:43:25 +0200
Subject: [PATCH] fix static linking with icu-uc
During static linking with a C application and libicuuc.a,
-lstdc++ is required.
Add -lstdc++ in Libs.private of icu-uc.pc.
Fixes:
http://autobuild.buildroot.net/results/210/2107f9dfb39eeb6559fb4271c7af8b39aef521ca/
Signed-off-by: Romain Naour <romain.naour@openwide.fr>
---
source/Makefile.in | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/source/Makefile.in b/source/Makefile.in
index 9db6c52..ca48e16 100644
--- a/source/Makefile.in
+++ b/source/Makefile.in
@@ -264,7 +264,7 @@ config/icu-uc.pc: config/icu.pc Makefile icudefs.mk
@echo "Description: $(PACKAGE_ICU_DESCRIPTION): Common and Data libraries" >> $@
@echo "Name: $(PACKAGE)-uc" >> $@
@echo "Libs:" '-L$${libdir}' "${ICULIBS_UC}" "${ICULIBS_DT}" >> $@
- @echo "Libs.private:" '$${baselibs}' >> $@
+ @echo "Libs.private:" '$${baselibs}' -lstdc++ >> $@
@echo $@ updated.
config/icu-i18n.pc: config/icu.pc Makefile icudefs.mk
--
2.4.3

View File

@@ -0,0 +1,34 @@
From 212016f27dd581fd7bef1a44a3342c59619a4ec8 Mon Sep 17 00:00:00 2001
From: Zoltan Gyarmati <mr.zoltan.gyarmati@gmail.com>
Date: Wed, 27 Jan 2016 17:24:25 +0100
Subject: [PATCH] fix "Error allocating memory for pkgDataFlags." compilation
error
This is backport of the upstream icu commit 38081
(http://bugs.icu-project.org/trac/changeset/38081/icu/trunk), which is
a fix to upstream icu bug #11959
(http://bugs.icu-project.org/trac/ticket/11959)
Signed-off-by: Zoltan Gyarmati <mr.zoltan.gyarmati@gmail.com>
---
source/tools/toolutil/flagparser.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/source/tools/toolutil/flagparser.c b/source/tools/toolutil/flagparser.c
index 5543415..57256c3 100644
--- a/source/tools/toolutil/flagparser.c
+++ b/source/tools/toolutil/flagparser.c
@@ -96,8 +96,8 @@ parseFlagsFile_cleanup:
uprv_free(buffer);
T_FileStream_close(f);
-
- if (U_FAILURE(*status)) {
+
+ if (U_FAILURE(*status) && *status != U_BUFFER_OVERFLOW_ERROR) {
return -1;
}
--
1.9.1

View File

@@ -0,0 +1,31 @@
config BR2_PACKAGE_ICU
bool "icu"
depends on BR2_INSTALL_LIBSTDCPP
depends on BR2_USE_WCHAR
depends on BR2_TOOLCHAIN_HAS_THREADS
# icu does some funky things by generating by itself an ELF
# file, and it cannot easily be changed to generate FLAT
# format.
depends on !BR2_BINFMT_FLAT
help
International Components for Unicode.
http://site.icu-project.org/
if BR2_PACKAGE_ICU
config BR2_PACKAGE_ICU_CUSTOM_DATA_PATH
string "Path to custom data library file"
help
This option allows to define the path to a custom data
library generated with http://apps.icu-project.org/datacustom/
Make sure you select the appropiate version to match the one
provided by buildroot.
Leave empty to not use this functionality.
endif
comment "icu needs a toolchain w/ C++, wchar, threads"
depends on !BR2_BINFMT_FLAT
depends on !BR2_INSTALL_LIBSTDCPP || !BR2_USE_WCHAR || \
!BR2_TOOLCHAIN_HAS_THREADS

View File

@@ -0,0 +1,4 @@
# From https://ssl.icu-project.org/files/icu4c/56.1/icu4c-src-56_1.md5
md5 c4a2d71ff56aec5ebfab2a3f059be99d icu4c-56_1-src.tgz
# Calculated based on the hash above
sha256 3a64e9105c734dcf631c0b3ed60404531bce6c0f5a64bfe1a6402a4cc2314816 icu4c-56_1-src.tgz

View File

@@ -0,0 +1,48 @@
################################################################################
#
# icu
#
################################################################################
ICU_VERSION = 56.1
ICU_SOURCE = icu4c-$(subst .,_,$(ICU_VERSION))-src.tgz
ICU_SITE = http://download.icu-project.org/files/icu4c/$(ICU_VERSION)
ICU_LICENSE = ICU License
ICU_LICENSE_FILES = license.html
ICU_DEPENDENCIES = host-icu
ICU_INSTALL_STAGING = YES
ICU_CONFIG_SCRIPTS = icu-config
ICU_CONF_OPTS = \
--with-cross-build=$(HOST_ICU_DIR)/source \
--disable-samples \
--disable-tests
# When available, icu prefers to use C++11 atomics, which rely on the
# __atomic builtins. On certain architectures, this requires linking
# with libatomic starting from gcc 4.8.
ifeq ($(BR2_TOOLCHAIN_GCC_AT_LEAST_4_8),y)
ICU_CONF_ENV += LIBS="-latomic"
endif
HOST_ICU_CONF_OPTS = \
--disable-samples \
--disable-tests \
--disable-extras \
--disable-icuio \
--disable-layout \
--disable-renaming
ICU_SUBDIR = source
HOST_ICU_SUBDIR = source
ICU_CUSTOM_DATA_PATH = $(call qstrip,$(BR2_PACKAGE_ICU_CUSTOM_DATA_PATH))
ifneq ($(ICU_CUSTOM_DATA_PATH),)
define ICU_COPY_CUSTOM_DATA
cp $(ICU_CUSTOM_DATA_PATH) $(@D)/source/data/in/
endef
ICU_POST_PATCH_HOOKS += ICU_COPY_CUSTOM_DATA
endif
$(eval $(autotools-package))
$(eval $(host-autotools-package))