[OE-core] [PATCH 2/4] ICU: add pkgconfig support

ChenQi Qi.Chen at windriver.com
Wed Dec 12 08:48:32 UTC 2012


On 12/11/2012 09:59 AM, Saul Wold wrote:
> On 12/10/2012 05:07 PM, Andreas Müller wrote:
>> On Mon, Dec 10, 2012 at 10:44 PM, Saul Wold <sgw at linux.intel.com> wrote:
>>> On 12/10/2012 08:48 AM, Saul Wold wrote:
>>>>
>>>> On 12/04/2012 12:46 AM, Qi.Chen at windriver.com wrote:
>>>>>
> <SNIP>
>>>>>               "
>>>>>    SRC_URI = "${BASE_SRC_URI} \
>>>>>               file://noldlibpath.patch \
>>>>> @@ -28,6 +29,12 @@ inherit autotools pkgconfig binconfig
>>>>>    do_configure() {
>>>>>        libtoolize --force
>>>>>        gnu-configize --force
>>>>> +    if [ "${PN}" != "icu-native" ]; then
>>>>> +        OLD=`pwd`
>>>>> +        cd ${S}
>>>>> +        autoconf
>>>>> +        cd ${OLD}
>>>>> +    fi
>>>
>>>
>>> I had some time this morning to investigate this more deeply.  What 
>>> I found
>>> was that the ICU tarball was being delivered with a "configure" and 
>>> that the
>>> do_configure was avoiding the "autoconf" conversion of configure.in ->
>>> configure.  I am not sure if this is historical or if this is truly 
>>> needed.
>>>
>>> So by doing the autoconf above you changed the "configure" script, 
>>> this in
>>> turn caused some configuration changes to occur in the platform.h 
>>> file.  Why
>>> these changed (particularly the U_HAVE_NAMESPACE define) then caused 
>>> the ICU
>>> libraries to be built with different namespace.
>>>
>>> So a couple of key questions that need to be resolved:
>>> 1) Will updating to 4.6 solve this issue, if not then we need to 
>>> dive into 2
>>> + 3 Below:
>>>
>>> 2) Why does icu tarball have a generated configure?
>>>
>>> 3) Why does the autoconf generated configure fail to configure things
>>> correctly?
>>>
>>> Sau!
>>>
>> Also got this error but reported it to the wrong mailing list - sorry.
>> I also looked around for this. The patch added pkg-config to icu. Just
>> a guess: webkit-gtk fails due to a mixture of renamed symbols
>> (EventListener_3_6 - see sysroot/usr/include/unicode/urename.h) and
>> unrenamed symbols. Before the icu-patch this did not happen because
>> (icu's) urename.h was not included and no symbols were renamed or
>> renamed differently. My problem: The error gives me information about
>> renamed symbol but I did not yet find the time to search for
>> unrenamed. As I said: Just a guess
>>
> I am not sure that's it, the renaming is actually in the NAMESPACE, 
> the older (no pkg-config) sets HAVE_NAMESPACE in the platform.h file 
> and then the symbols have icu_2_6 in them, that's the real issue, 
> which is caused by running autoconf and getting a bad/wrong 
> "configure" script vs the one suplied in the tarball.
>
> Sau!
>
>> Andreas
>>
>>
>
Hi Saul,

The errors are:
configure.in:219: error: possibly undefined macro: AC_CHECK_STRICT_COMPILE
       If this token and others are legitimate, please use m4_pattern_allow.
       See the Autoconf documentation.
configure.in:222: error: possibly undefined macro: AC_CHECK_64BIT_LIBS
configure.in:492: error: possibly undefined macro: AC_SEARCH_LIBS_FIRST

The recipe's in attachment.

I first tried it on my own computer without yocto, everything's OK. The 
autoconf-generated configure is the same with the shipped one. So I 
figured maybe we don't need to override the do_configure and do_compile 
method here.


-------------- next part --------------
require icu-50.inc

PR = "r1"

SRC_URI[md5sum] = "cf7bf9e56aa6c2057a8b6f464046483e"
SRC_URI[sha256sum] = "68592b3c07d9b86100f41d0172eb1a81f3ffb2a8fef1104d7395099079ba7350"
-------------- next part --------------
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://site.icu-project.org/"

BASE_SRC_URI = "http://download.icu-project.org/files/icu4c/50.1/icu4c-50_1-src.tgz"

SRC_URI = "${BASE_SRC_URI}"

SRC_URI_class-native = "${BASE_SRC_URI}"

LICENSE = "ICU"
LIC_FILES_CHKSUM = "file://../license.html;md5=5c94767cedb5d6987c902ac850ded2c6"
DEPENDS = "icu-native"
DEPENDS_class-native = ""

S = "${WORKDIR}/icu/source"

PARALLEL_MAKE = ""
FULL_OPTIMIZATION_arm = "-Os"

inherit autotools pkgconfig binconfig

PACKAGES =+ "libicudata libicuuc libicui18n libicule libiculx libicutu libicuio"

FILES_${PN}-dev += "${libdir}/${BPN}/"

FILES_libicudata = "${libdir}/libicudata.so.*"
FILES_libicuuc = "${libdir}/libicuuc.so.*"
FILES_libicui18n = "${libdir}/libicui18n.so.*"
FILES_libicule = "${libdir}/libicule.so.*"
FILES_libiculx = "${libdir}/libiculx.so.*"
FILES_libicutu = "${libdir}/libicutu.so.*"
FILES_libicuio = "${libdir}/libicuio.so.*"

BBCLASSEXTEND = "native"


More information about the Openembedded-core mailing list