[OE-core] ICU not working on powerpc (ppce500v2)

Stefano Babic sbabic at denx.de
Wed Jun 3 09:42:21 UTC 2015


Hi,

I get an issue with icu (54.1, I am testing with Yocto-fido) on powepc
(I am testing with a p2020rdb from Freescale). Running icuinfo on target
I get:

 <icuSystemParams type="icu4c">
    <param name="copyright"> Copyright (C) 2014, International Business
Machines Corporation and others. All Rights Reserved. </param>
    <param name="product">icu4c</param>
    <param name="product.full">International Components for Unicode for
C/C++</param>
    <param name="version">54.1</param>
    <param name="version.unicode">7.0</param>
    <param name="platform.number">4000</param>
    <param name="platform.type">Linux</param>
    <param name="locale.default">en_US_POSIX</param>
    <param name="locale.default.bcp47">en-US-u-va-posix</param>
    <param name="converter.default">US-ASCII</param>
    <param name="icudata.name">icudt54b</param>
    <param name="icudata.path"></param>
  <!-- n="cldr.version" ERROR: U_MISSING_RESOURCE_ERROR -->
  <!-- n="tz.version" ERROR: U_MISSING_RESOURCE_ERROR -->
    <param name="tz.default">Universal</param>
    <param name="cpu.bits">32</param>
    <param name="cpu.big_endian">1</param>
    <param name="os.wchar_width">4</param>
    <param name="os.charset_family">0</param>
    <param name="os.host">powerpc-unknown-linux-gnuspe</param>
    <param name="build.build">x86_64-pc-linux-gnu</param>
    <param name="build.cc">powerpc-linux-gnuspe-gcc -m32 -mcpu=8548
-mabi=spe -mspe -mfloat-gprs=double
--sysroot=/opt/work/sbabic/eldk/p2020rdb/tmp/sysroots/generic-powerpc-e500v2</param>
    <param name="build.cxx">powerpc-linux-gnuspe-g++ -m32 -mcpu=8548
-mabi=spe -mspe -mfloat-gprs=double
--sysroot=/opt/work/sbabic/eldk/p2020rdb/tmp/sysroots/generic-powerpc-e500v2</param>
    <param name="uconfig.internal_digitlist">1</param>
    <param name="uconfig.have_parseallinput">1</param>
    <param name="uconfig.format_fastpaths_49">1</param>
 </icuSystemParams>


ICU Initialization returned: U_INVALID_FORMAT_ERROR
Plugin file is: /usr/lib/icu/icuplugins54.txt

cldr.version and tz.version report errors and even simple tests do not
work. If I copy all .res files (icu54 directory) and then I set ICU_DATA
to that directory, it works - that means there should be an issue by
generating libicudata with PowerPc, or at least with e500v2.

I did exactly the same tests with an ARM platform (i.MX6), everything
works as expected. I suspect some issue due to endianess, but checking
the header in the libicudata it looks correct ( at least the first bytes).

I saw :

commit f5205c568cb0d29059c4d8c2dc200e435787f5d8
Author: Khem Raj <raj.khem at gmail.com>
Date:   Sat Feb 15 22:04:05 2014 +0000

    icu: Disable the default LDFLAGSICUDT for target compile


and, as it looks like ARM related, I have already tried to revert it,
without any success. Does anyone have a hint ?

Best regards,
Stefano Babic

-- 
=====================================================================
DENX Software Engineering GmbH,      Managing Director: Wolfgang Denk
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: +49-8142-66989-53 Fax: +49-8142-66989-80 Email: sbabic at denx.de
=====================================================================



More information about the Openembedded-core mailing list