All of lore.kernel.org
 help / color / mirror / Atom feed
From: Martin Jansa <martin.jansa@gmail.com>
To: Qi.Chen@windriver.com
Cc: Zhenfeng.Zhao@windriver.com, openembedded-core@lists.openembedded.org
Subject: Re: [PATCH V2 1/1] ICU: upgrade to 50.1
Date: Fri, 14 Dec 2012 21:52:53 +0100	[thread overview]
Message-ID: <20121214205253.GE8699@jama.jama.net> (raw)
In-Reply-To: <2ff77d8cdc19c9040f3ede2203700ee91e878e5f.1355479412.git.Qi.Chen@windriver.com>

[-- Attachment #1: Type: text/plain, Size: 17148 bytes --]

On Fri, Dec 14, 2012 at 06:08:52PM +0800, Qi.Chen@windriver.com wrote:
> From: Chen Qi <Qi.Chen@windriver.com>
> 
> Upgrade ICU to 50.1.
> All unnecessary patches of previous version are dropped.

Here it fails with:

ERROR: Logfile of failure stored in:
/OE/jansa-test/shr-core/tmp-eglibc/work/armv5te-oe-linux-gnueabi/icu/50.1-r1/temp/log.do_configure.5863
| configure:3917: checking for gmake
| configure:3935: found /usr/bin/gmake
| configure:3947: result: /usr/bin/gmake
| configure:3983: error: No such directory
/OE/jansa-test/shr-core/tmp-eglibc/work/x86_64-linux/icu-native/50.1-r1/icu/source
supplied as the argument to --with-cross-build. Use an absolute path.

Notice native path when building for target (armv5te). Ah and I'm using
rmwork so maybe it worked for you, because source from native build was
still available when you started target build.

Cheers,

> Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
> ---
>  .../icu/files/fix-parallel-build.patch             |   19 -----
>  meta/recipes-support/icu/files/gccfix.patch        |   19 -----
>  .../icu/files/icu-add-pkgconfig-support.patch      |   43 ------------
>  .../icu/files/larger-cmd-size.patch                |   27 -------
>  meta/recipes-support/icu/files/noldlibpath.patch   |   52 --------------
>  .../icu/files/use-g++-for-linking.patch            |   74 --------------------
>  meta/recipes-support/icu/{icu-3.6.inc => icu.inc}  |   54 ++++----------
>  meta/recipes-support/icu/icu_3.6.bb                |    6 --
>  meta/recipes-support/icu/icu_50.1.bb               |   11 +++
>  9 files changed, 24 insertions(+), 281 deletions(-)
>  delete mode 100644 meta/recipes-support/icu/files/fix-parallel-build.patch
>  delete mode 100644 meta/recipes-support/icu/files/gccfix.patch
>  delete mode 100644 meta/recipes-support/icu/files/icu-add-pkgconfig-support.patch
>  delete mode 100644 meta/recipes-support/icu/files/larger-cmd-size.patch
>  delete mode 100644 meta/recipes-support/icu/files/noldlibpath.patch
>  delete mode 100644 meta/recipes-support/icu/files/use-g++-for-linking.patch
>  rename meta/recipes-support/icu/{icu-3.6.inc => icu.inc} (42%)
>  delete mode 100644 meta/recipes-support/icu/icu_3.6.bb
>  create mode 100644 meta/recipes-support/icu/icu_50.1.bb
> 
> diff --git a/meta/recipes-support/icu/files/fix-parallel-build.patch b/meta/recipes-support/icu/files/fix-parallel-build.patch
> deleted file mode 100644
> index 5b01a4c..0000000
> --- a/meta/recipes-support/icu/files/fix-parallel-build.patch
> +++ /dev/null
> @@ -1,19 +0,0 @@
> -Upstream-Status: pending
> -
> -Fix parallel builds
> -
> -Signed-off-by: Dmitry Eremin-Solenikov <dbaryshkov@gmail.com>
> -
> -Index: source/data/Makefile.in
> -===================================================================
> ---- source.orig/data/Makefile.in	2011-09-02 02:03:37.000000000 +0400
> -+++ source/data/Makefile.in	2011-09-02 02:06:26.000000000 +0400
> -@@ -351,8 +351,8 @@
> - endif
> -
> -
> --build-dir: $(BUILD_DIRS)
> --$(BUILD_DIRS):
> -+$(MAINBUILDDIR) $(BUILD_DIRS): build-dir
> -+build-dir:
> -	-$(MKINSTALLDIRS) $(BUILD_DIRS)
> diff --git a/meta/recipes-support/icu/files/gccfix.patch b/meta/recipes-support/icu/files/gccfix.patch
> deleted file mode 100644
> index 755341f..0000000
> --- a/meta/recipes-support/icu/files/gccfix.patch
> +++ /dev/null
> @@ -1,19 +0,0 @@
> -Fixes an error which prevents compilation
> -
> -Upstream-Status: Pending
> -
> -Signed-off-by: Scott Garman <scott.a.garman@intel.com>
> -
> -Index: source/layoutex/ParagraphLayout.cpp
> -===================================================================
> ---- source.orig/layoutex/ParagraphLayout.cpp	2009-06-30 11:48:47.000000000 +0100
> -+++ source/layoutex/ParagraphLayout.cpp	2009-06-30 11:49:06.000000000 +0100
> -@@ -798,7 +798,7 @@
> - 
> -     return nullLanguageCode;
> - }
> --#elif
> -+#else
> - 
> - // TODO - dummy implementation for right now...
> - le_int32 ParagraphLayout::getLanguageCode(const Locale *locale)
> diff --git a/meta/recipes-support/icu/files/icu-add-pkgconfig-support.patch b/meta/recipes-support/icu/files/icu-add-pkgconfig-support.patch
> deleted file mode 100644
> index c7cd9d5..0000000
> --- a/meta/recipes-support/icu/files/icu-add-pkgconfig-support.patch
> +++ /dev/null
> @@ -1,43 +0,0 @@
> -Upstream-Status: Inappropriate [version]
> -ICU-3.6 has no pkgconfig, so I add it here. 
> -But ICU has had pkgconfig support since 4.6.
> -So this patch is inappropriate to upstream.
> -
> -Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
> -
> -Index: configure.in
> -=============================================================
> ---- a/configure.in
> -+++ b/configure.in
> -@@ -1057,4 +1057,7 @@ echo "This may cause ICU to fail to build. Please make sure that GNU make"
> - echo "is in your PATH so that this configure script can detect its location."
> - fi
> - 
> -+AC_CONFIG_FILES([icu.pc])
> -+AC_OUTPUT
> -+
> - $as_unset _CXX_CXXSUFFIX
> -
> -Index: icu.pc.in
> -=============================================================
> ---- /dev/null
> -+++ b/icu.pc.in
> -@@ -0,0 +1,15 @@
> -+# Process this file with autoconf to produce a pkg-config metadata file.
> -+
> -+prefix=@prefix@
> -+exec_prefix=@exec_prefix@
> -+libdir=@libdir@
> -+includedir=@includedir@
> -+unicode_version=@UNICODE_VERSION@
> -+
> -+Name: ICU
> -+Description: International Component for Unicode libraries
> -+Requires:
> -+Version: @VERSION@
> -+Libs: -L${libdir} -licui18n -licuuc -licudata
> -+Libs.private: -L{libdir} -lpthread -lm
> -+Cflags: -I${includedir} -O2 -pipe -g -feliminate-unused-debug-types
> --- 
> -1.7.11.2
> -
> diff --git a/meta/recipes-support/icu/files/larger-cmd-size.patch b/meta/recipes-support/icu/files/larger-cmd-size.patch
> deleted file mode 100644
> index 74a84f1..0000000
> --- a/meta/recipes-support/icu/files/larger-cmd-size.patch
> +++ /dev/null
> @@ -1,27 +0,0 @@
> -Allocate a larger memory size for cmd
> -
> -The length of the command line can be longer than 1024 sometimes,
> -which will cause a "Segmentation fault" error.
> -
> -Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
> -
> -Upstream-Status: Pending
> ----
> - tools/pkgdata/pkgdata.c |    2 +-
> - 1 file changed, 1 insertion(+), 1 deletion(-)
> -
> -diff --git a/tools/pkgdata/pkgdata.c b/tools/pkgdata/pkgdata.c
> ---- a/tools/pkgdata/pkgdata.c
> -+++ b/tools/pkgdata/pkgdata.c
> -@@ -439,7 +439,7 @@ main(int argc, char* argv[]) {
> - /* POSIX - execute makefile */
> - static int executeMakefile(const UPKGOptions *o)
> - {
> --    char cmd[1024];
> -+    char cmd[2048];
> -     /*char pwd[1024];*/
> -     const char *make;
> -     int rc;
> --- 
> -1.7.10.2
> -
> diff --git a/meta/recipes-support/icu/files/noldlibpath.patch b/meta/recipes-support/icu/files/noldlibpath.patch
> deleted file mode 100644
> index 8543044..0000000
> --- a/meta/recipes-support/icu/files/noldlibpath.patch
> +++ /dev/null
> @@ -1,52 +0,0 @@
> -Setting LD_LIBRARY_PATH is a really bad idea when cross compiling. Simplest way
> -to disable this is to rename the variable as per the patch below, then its 
> -harmless. This is a hack.
> -
> -RP 10/6/2010
> -
> -Upstream-Status: Inappropriate [Other]
> -Hacky workaround not likely to be accepted upstream.
> -
> -Signed-off-by: Scott Garman <scott.a.garman@intel.com>
> -
> -Index: source/config/Makefile.inc.in
> -===================================================================
> ---- source.orig/config/Makefile.inc.in	2010-06-10 21:49:19.000000000 +0100
> -+++ source/config/Makefile.inc.in	2010-06-10 21:49:46.000000000 +0100
> -@@ -126,7 +126,7 @@
> - ##################################################################
> - # Environment variable to set a runtime search path
> - #   (Overridden when necessary in -mh files)
> --LDLIBRARYPATH_ENVVAR = LD_LIBRARY_PATH
> -+LDLIBRARYPATH_ENVVAR = LD_LIBRARY_PATH2
> - 
> - # Versioned target for a shared library
> - FINAL_SO_TARGET = $(SO_TARGET).$(SO_TARGET_VERSION)
> -Index: source/icudefs.mk.in
> -===================================================================
> ---- source.orig/icudefs.mk.in	2010-06-10 21:51:03.000000000 +0100
> -+++ source/icudefs.mk.in	2010-06-10 21:51:09.000000000 +0100
> -@@ -150,7 +150,7 @@
> - SHLIB.cc=     $(CXX) $(CXXFLAGS) $(LDFLAGS) -shared
> - 
> - # Environment variable to set a runtime search path
> --LDLIBRARYPATH_ENVVAR = LD_LIBRARY_PATH
> -+LDLIBRARYPATH_ENVVAR = LD_LIBRARY_PATH2
> - 
> - # Versioned target for a shared library.
> - FINAL_SO_TARGET = $(SO_TARGET).$(SO_TARGET_VERSION)
> -Index: source/tools/genrb/gendtjar.pl
> -===================================================================
> ---- source.orig/tools/genrb/gendtjar.pl	2010-06-10 21:51:36.000000000 +0100
> -+++ source/tools/genrb/gendtjar.pl	2010-06-10 21:52:03.000000000 +0100
> -@@ -68,8 +68,8 @@
> -         $icuLibDir = abs_path($icuBinDir."/../lib");
> -         $path .=":$icuBinDir:$icuLibDir";
> -         
> --        $libpath = $ENV{'LD_LIBRARY_PATH'}.":$icuLibDir";
> --        $ENV{'LD_LIBRARY_PATH'} = $libpath;
> -+        $libpath = $ENV{'LD_LIBRARY_PATH2'}.":$icuLibDir";
> -+        $ENV{'LD_LIBRARY_PATH2'} = $libpath;
> -         
> -         #print ("#####  LD_LIBRARY_PATH = $ENV{'LD_LIBRARY_PATH'}\n");
> -     
> diff --git a/meta/recipes-support/icu/files/use-g++-for-linking.patch b/meta/recipes-support/icu/files/use-g++-for-linking.patch
> deleted file mode 100644
> index f477dad..0000000
> --- a/meta/recipes-support/icu/files/use-g++-for-linking.patch
> +++ /dev/null
> @@ -1,74 +0,0 @@
> -Use g++ for linking.
> -
> -Upstream-Status: Inappropriate [Other]
> -Build system specific
> -
> -Signed-off-by: Scott Garman <scott.a.garman@intel.com>
> -
> ----
> - tools/genccode/Makefile.in |    2 +-
> - tools/gencmn/Makefile.in   |    2 +-
> - tools/genrb/Makefile.in    |    2 +-
> - tools/pkgdata/Makefile.in  |    2 +-
> - 4 files changed, 4 insertions(+), 4 deletions(-)
> -
> ---- source.orig/tools/genccode/Makefile.in
> -+++ source/tools/genccode/Makefile.in
> -@@ -76,11 +76,11 @@ check-local: all-local
> - Makefile: $(srcdir)/Makefile.in  $(top_builddir)/config.status
> - 	cd $(top_builddir) \
> - 	 && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
> - 
> - $(TARGET) : $(OBJECTS)
> --	$(LINK.c) $(OUTOPT)$@ $^ $(LIBS)
> -+	$(LINK.cc) $(OUTOPT)$@ $^ $(LIBS)
> - 
> - 
> - %.$(SECTION): $(srcdir)/%.$(SECTION).in
> - 	cd $(top_builddir) \
> - 	 && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
> ---- source.orig/tools/gencmn/Makefile.in
> -+++ source/tools/gencmn/Makefile.in
> -@@ -76,11 +76,11 @@ check-local: all-local
> - Makefile: $(srcdir)/Makefile.in  $(top_builddir)/config.status
> - 	cd $(top_builddir) \
> - 	 && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
> - 
> - $(TARGET) : $(OBJECTS)
> --	$(LINK.c) $(OUTOPT)$@ $^ $(LIBS)
> -+	$(LINK.cc) $(OUTOPT)$@ $^ $(LIBS)
> - 
> - %.$(SECTION): $(srcdir)/%.$(SECTION).in
> - 	cd $(top_builddir) \
> - 	 && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
> - 
> ---- source.orig/tools/genrb/Makefile.in
> -+++ source/tools/genrb/Makefile.in
> -@@ -84,11 +84,11 @@ Makefile: $(srcdir)/Makefile.in  $(top_b
> - 
> - $(TARGET) : $(OBJECTS)
> - 	$(LINK.cc) $(OUTOPT)$@ $^ $(LIBS) 
> - 
> - $(DERB) : $(DERB_OBJ)
> --	$(LINK.c) $(OUTOPT)$@ $^ $(LIBS) 
> -+	$(LINK.cc) $(OUTOPT)$@ $^ $(LIBS)
> - 
> - 
> - # This line is needed to serialize builds when the gmake -j option is used.
> - $(TARGET_STUB_NAME).$(SECTION): $(DERB_STUB_NAME).$(SECTION)
> - 
> ---- source.orig/tools/pkgdata/Makefile.in
> -+++ source/tools/pkgdata/Makefile.in
> -@@ -81,11 +81,11 @@ check-local: all-local
> - Makefile: $(srcdir)/Makefile.in  $(top_builddir)/config.status
> - 	cd $(top_builddir) \
> - 	 && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
> - 
> - $(TARGET) : $(OBJECTS)
> --	$(LINK.c) $(OUTOPT)$@ $^ $(LIBS) 
> -+	$(LINK.cc) $(OUTOPT)$@ $^ $(LIBS)
> - 
> - 
> - %.$(SECTION): $(srcdir)/%.$(SECTION).in
> - 	cd $(top_builddir) \
> - 	 && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
> diff --git a/meta/recipes-support/icu/icu-3.6.inc b/meta/recipes-support/icu/icu.inc
> similarity index 42%
> rename from meta/recipes-support/icu/icu-3.6.inc
> rename to meta/recipes-support/icu/icu.inc
> index 8caf71c..e7d6189 100644
> --- a/meta/recipes-support/icu/icu-3.6.inc
> +++ b/meta/recipes-support/icu/icu.inc
> @@ -1,61 +1,34 @@
>  SUMMARY = "International Component for Unicode libraries"
>  DESCRIPTION = "The International Component for Unicode (ICU) is a mature, portable set of C/C++ and Java libraries for Unicode support, software internationalization (I18N) and globalization (G11N), giving applications the same results on all platforms."
> -HOMEPAGE = "http://www-01.ibm.com/software/globalization/icu/index.jsp"
> -
> -BASE_SRC_URI = "ftp://ftp.software.ibm.com/software/globalization/icu/3.6/icu4c-3_6-src.tgz \
> -           file://gccfix.patch \
> -           file://fix-parallel-build.patch \
> -           file://use-g++-for-linking.patch \
> -           file://larger-cmd-size.patch \
> -	   file://icu-add-pkgconfig-support.patch \
> -           "
> -SRC_URI = "${BASE_SRC_URI} \
> -           file://noldlibpath.patch \
> -           "
> -SRC_URI_class-native = "${BASE_SRC_URI}"
> +HOMEPAGE = "http://site.icu-project.org/"
>  
>  LICENSE = "ICU"
> -LIC_FILES_CHKSUM = "file://../license.html;md5=5c94767cedb5d6987c902ac850ded2c6"
>  DEPENDS = "icu-native"
>  DEPENDS_class-native = ""
>  
>  S = "${WORKDIR}/icu/source"
> +STAGING_ICU_SOURCE_DIR_NATIVE = "${STAGING_DATADIR_NATIVE}/icu"
>  
>  PARALLEL_MAKE = ""
>  FULL_OPTIMIZATION_arm = "-Os"
>  
>  inherit autotools pkgconfig binconfig
>  
> -do_configure() {
> -	libtoolize --force
> -	gnu-configize --force
> -	if [ "${PN}" != "icu-native" ]; then
> -		OLD=`pwd`
> -		cd ${S}
> -		autoconf
> -		cd ${OLD}
> -	fi
> -	oe_runconf
> -	if [ "${PN}" != "icu-native" ]; then
> -		# In the non-native case we need to make substitutions to use
> -		# the native versions of the tools
> -		for i in */Makefile* */*.inc */*/Makefile* */*/*.inc */*/*.inc.in ; do
> -			sed -i -e 's:$(INVOKE) $(BINDIR)/:$(INVOKE) :g' $i 
> -			sed -i -e 's:$(BINDIR)/::g' $i 
> -		done
> -	fi
> -}
> +# ICU needs the native build directory as an argument to its --with-cross-build option when
> +# cross-compiling. Taken the situation that different builds may share a common sstate-cache
> +# into consideration, the native build directory needs to be staged.
> +EXTRA_OECONF = "--with-cross-build=${STAGING_DATADIR_NATIVE}/icu/source"
> +EXTRA_OECONF_class-native = ""
>  
> -do_compile() {
> -	oe_runmake 'CXX=${CXX}'
> +do_configure_prepend() {
> +    [ -f acinclude.m4 ] || cp aclocal.m4 acinclude.m4
>  }
>  
>  do_install_append() {
> -        chmod +x ${D}${libdir}/lib*
> -	if [ "${PN}" != "icu-native" ]; then
> -		install -d ${D}/${libdir}/pkgconfig
> -        	install -m 0644 ${S}/icu.pc ${D}/${libdir}/pkgconfig
> -	fi
> +    if [ ${PN} == 'icu-native' ]; then
> +	mkdir -p ${D}/${STAGING_ICU_SOURCE_DIR_NATIVE}
> +	cp -r ${S} ${D}/${STAGING_ICU_SOURCE_DIR_NATIVE}
> +    fi
>  }
>  
>  PACKAGES =+ "libicudata libicuuc libicui18n libicule libiculx libicutu libicuio"
> @@ -72,4 +45,3 @@ FILES_libicuio = "${libdir}/libicuio.so.*"
>  
>  BBCLASSEXTEND = "native"
>  
> -SSTATE_SCAN_FILES += "Makefile.inc"
> diff --git a/meta/recipes-support/icu/icu_3.6.bb b/meta/recipes-support/icu/icu_3.6.bb
> deleted file mode 100644
> index f50abe2..0000000
> --- a/meta/recipes-support/icu/icu_3.6.bb
> +++ /dev/null
> @@ -1,6 +0,0 @@
> -require icu-3.6.inc
> -
> -PR = "r10"
> -
> -SRC_URI[md5sum] = "6243f7a19e03e05403ce84e597510d4c"
> -SRC_URI[sha256sum] = "5135e8d69d6206d320515df7aeee7027711ab1aef9d8dbf29571a97a9746b041"
> diff --git a/meta/recipes-support/icu/icu_50.1.bb b/meta/recipes-support/icu/icu_50.1.bb
> new file mode 100644
> index 0000000..8f65c6d
> --- /dev/null
> +++ b/meta/recipes-support/icu/icu_50.1.bb
> @@ -0,0 +1,11 @@
> +require icu.inc
> +
> +LIC_FILES_CHKSUM = "file://../license.html;md5=4ee45701e87d34303281978e3b78ecda"
> +
> +PR = "r1"
> +
> +BASE_SRC_URI = "http://download.icu-project.org/files/icu4c/50.1/icu4c-50_1-src.tgz"
> +SRC_URI = "${BASE_SRC_URI}"
> +
> +SRC_URI[md5sum] = "cf7bf9e56aa6c2057a8b6f464046483e"
> +SRC_URI[sha256sum] = "68592b3c07d9b86100f41d0172eb1a81f3ffb2a8fef1104d7395099079ba7350"
> \ No newline at end of file
> -- 
> 1.7.9.5
> 
> 
> _______________________________________________
> Openembedded-core mailing list
> Openembedded-core@lists.openembedded.org
> http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-core

-- 
Martin 'JaMa' Jansa     jabber: Martin.Jansa@gmail.com

[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 205 bytes --]

  parent reply	other threads:[~2012-12-14 21:07 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-12-14 10:08 [PATCH V2 0/1] ICU: upgrade to 50.1 Qi.Chen
2012-12-14 10:08 ` [PATCH V2 1/1] " Qi.Chen
2012-12-14 11:02   ` Burton, Ross
2012-12-14 20:52   ` Martin Jansa [this message]
2012-12-17  2:23     ` ChenQi
2012-12-17 19:42       ` Martin Jansa
2012-12-18  2:16         ` ChenQi

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20121214205253.GE8699@jama.jama.net \
    --to=martin.jansa@gmail.com \
    --cc=Qi.Chen@windriver.com \
    --cc=Zhenfeng.Zhao@windriver.com \
    --cc=openembedded-core@lists.openembedded.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.