How to include the icu pkgconfig as part of the rootfs?

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

How to include the icu pkgconfig as part of the rootfs?

Jump to solution
3,942 Views
erichawkins
Contributor I

How do I include the icu.pc into the /rootfs/usr/lib64/pkgconfig when building imag-full for  t4240rdb-64b?

0 Kudos
1 Solution
2,483 Views
yipingwang
NXP TechSupport
NXP TechSupport

Hello Eric,


In SDK 1.6, this file should be icudt51l.dat, it is missed in the Makefile, you could modify the recipe meta/recipes-support/icu/icu.inc as the following and reinstall icu again.


icu.inc:

do_install_append_class-target() {

      cp  ${S}/data/in/icudt51l.dat  ${D}/usr/share/icu/51.2/

}

...

FILES_${PN} += "${D}/usr/share/icu/51.2/*"

Then reinstall the package as the following

$bitbake icu -c install -f

$bitbake icu


Have a great day,
Yiping

-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------

View solution in original post

0 Kudos
14 Replies
2,483 Views
erichawkins
Contributor I

Hello Yiping,

I used the icu that u sent to me and I did a clean and did build the fsl-image-full for my T4240RDB-64b board.

After I deployed the full image to the board  i don't see icu.pc being installed under  "/usr/lib64/pkgconfig/"


When I try to build user space application using the new image on the t4240rdb-64b the build fails in my %prep function. the failure indicates that  /usr/lib64/pkgconfig/icu.pc cannot be found.


Thanks

Eric.

0 Kudos
2,483 Views
yipingwang
NXP TechSupport
NXP TechSupport

Hello Eric,

I checked the full rootfs image, it seems that icu is not enabled.

Please add "icu" in "IMAGE_INSTALL" variable in meta-fsl-networking/images/fsl-image-full.bb.

You will get the following file under usr/lib/pkgconfig folder.

icu-i18n.pc icu-io.pc

icu-le.pc

icu-lx.pcicu-uc.pc


Have a great day,
Yiping

-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------

0 Kudos
2,483 Views
erichawkins
Contributor I

Hello Yiping,

I did that and i can see the above packages. But for some reason our build is checking if

icu.pc is under ../pkgconfig which it does to appear to be included.

are you aware of how to include the icu.pc to the above packages that u listed?

Thanks

Eric

0 Kudos
2,483 Views
yipingwang
NXP TechSupport
NXP TechSupport

Hello Eric,

If you want to install icu.pc in the pkgconfig folder, you need to modify the Makefile.

Please try to use the following steps.

1. $bitbake icu -c patch -f

2. Go to the folder build_t4240rdb_release/tmp/work/ppce6500-fsl-linux/icu/51.2-r0/icu/source

to modify Makefile.in.

Find ALL_PKGCONFIG_FILES and add the following line under the original definition.

ALL_PKGCONFIG_FILES+=$(top_builddir)/config/icu.pc

3. Then rebuild icu into rootfs filesystem.


Have a great day,
Yiping

-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------

0 Kudos
2,483 Views
erichawkins
Contributor I

Hello Yiping,

Thanks for the help.

Thanks

Eric

0 Kudos
2,482 Views
erichawkins
Contributor I

Hello Yiping,

It looks like my ICU-xx.pc are all included and I dio go further in my build but know I am encountering another failure which makes me think that the icu recipe maybe not 100%.

basically the failure I get is as Follows:

genrb: can not initialize ICU. status = U_INVALID_FORMAT_ERROR.

Thanks

Eric

0 Kudos
2,482 Views
yipingwang
NXP TechSupport
NXP TechSupport

Hello Eric,

Please check whether the following would be helpful for this problem.

In meta/recipes-support/icu/icu.inc add "--host" configure option based on your host name, for example

EXTRA_OECONF = "--with-cross-build=${STAGING_ICU_DIR_NATIVE} --host='i86-solaris'"

Then "bitbake icu -c clean", and follow previous steps to rebuild icu.

If this doesn't work, please provide detailed information

Thanks,

Yiping

0 Kudos
2,482 Views
erichawkins
Contributor I

Hello Yiping,

So the email you sent to include icu.pc as part of the ICU build did fail the ICU recipe. I am not so concerned about that because I really do't need the icu.pc to be part of ../pkgconfig since all the libicu* and the icu-xx.pc are build OK.

So I still use the icu.inc that you provided to me to include all the icu-xx.pc  when ICU is build.

Basically I am using a Centos 6.3 host to build my fsl_image_full. I can build the ICU recipe on my host system without any issues. Once I deploy the image to t4240-64b board which works fine then I try to build my code on the t4240-64b then I start running into this genrb issue which basically is related to the ICU package.

I can try to add the EXTRA_OECONF you recommended in your last reply to see if that helps. If that does not help I wil send you details information regarding my failure.

Again thanks for all the Help.

Cheers,

Eric

0 Kudos
2,482 Views
erichawkins
Contributor I

hello Yipling,

I set the --host option in the EXTRA_OECONF and rebuild ICU and rebuild full image.

I deployed the image to the board: then I ran a simple test on the T4240rdb-64b  by running the following:

root@t4240rdb:/# genrb test.txt

genrb: can not initialize ICU.  status = U_INVALID_FORMAT_ERROR

root@t4240rdb:/# find . -iname *icu*

./usr/share/icu

./usr/share/common-licenses/icu

./usr/share/common-licenses/icu/generic_ICU

./usr/share/common-licenses/libicuuc53

./usr/share/common-licenses/libicuuc53/generic_ICU

./usr/share/common-licenses/libicuio53

./usr/share/common-licenses/libicuio53/generic_ICU

./usr/share/common-licenses/generic_ICU

./usr/share/common-licenses/libicudata53

./usr/share/common-licenses/libicudata53/generic_ICU

./usr/share/common-licenses/libiculx53

./usr/share/common-licenses/libiculx53/generic_ICU

./usr/share/common-licenses/icu-dev

./usr/share/common-licenses/icu-dev/generic_ICU

./usr/share/common-licenses/libicui18n53

./usr/share/common-licenses/libicui18n53/generic_ICU

./usr/share/common-licenses/libicule53

./usr/share/common-licenses/libicule53/generic_ICU

./usr/share/common-licenses/libicutu53

./usr/share/common-licenses/libicutu53/generic_ICU

./usr/share/common-licenses/pkgicu

./usr/share/common-licenses/pkgicu/generic_ICU

./usr/bin/icuinfo

./usr/bin/icu-config

./usr/include/unicode/icuplug.h

./usr/include/unicode/icudataver.h

./usr/sbin/icupkg

./usr/lib64/libicuio.so.53

./usr/lib64/icu

./usr/lib64/libicuio.so

./usr/lib64/libicutest.so.53

./usr/lib64/libicutu.so.53.1

./usr/lib64/libicuuc.so.53

./usr/lib64/libiculx.so

./usr/lib64/libicudata.so.53

./usr/lib64/libicudata.so.53.1

./usr/lib64/libicule.so.53.1

./usr/lib64/pkgconfig/icu-i18n.pc

./usr/lib64/pkgconfig/icu-uc.pc

./usr/lib64/pkgconfig/icu-io.pc

./usr/lib64/pkgconfig/icu-le.pc

./usr/lib64/pkgconfig/icu-lx.pc

./usr/lib64/libicuuc.so.53.1

./usr/lib64/libicule.so.53

./usr/lib64/libicutest.so

./usr/lib64/libicutu.so.53

./usr/lib64/libicui18n.so.53

./usr/lib64/libiculx.so.53.1

./usr/lib64/libicutest.so.53.1

./usr/lib64/libicule.so

./usr/lib64/libiculx.so.53

./usr/lib64/libicuio.so.53.1

./usr/lib64/libicui18n.so.53.1

./usr/lib64/libicudata.so

./usr/lib64/libicutu.so

./usr/lib64/libicui18n.so

./usr/lib64/libicuuc.so

Thanks

Eric.

0 Kudos
2,482 Views
erichawkins
Contributor I

hello Yipling,

The icu rpm package generated by recipe seems to be missing the icudt53b.dat file. I was able to build the icu source code on t4240rdb-64b board and installed the generated rpms and was able to move on beyond the icu issue.

Thanks

Eric

0 Kudos
2,484 Views
yipingwang
NXP TechSupport
NXP TechSupport

Hello Eric,


In SDK 1.6, this file should be icudt51l.dat, it is missed in the Makefile, you could modify the recipe meta/recipes-support/icu/icu.inc as the following and reinstall icu again.


icu.inc:

do_install_append_class-target() {

      cp  ${S}/data/in/icudt51l.dat  ${D}/usr/share/icu/51.2/

}

...

FILES_${PN} += "${D}/usr/share/icu/51.2/*"

Then reinstall the package as the following

$bitbake icu -c install -f

$bitbake icu


Have a great day,
Yiping

-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------

0 Kudos
2,482 Views
erichawkins
Contributor I

Hello Yiping,

Thanks for the help. That did help.

Thanks

Eric.

0 Kudos
2,482 Views
yipingwang
NXP TechSupport
NXP TechSupport

Hello Eric,

Did you encounter problem in building package icu?

Probably there is problem with the package icu Makefile of configuration file.

Would you please share the whole build log to help me to investigate this problem?

And What is your host OS?


Have a great day,
Yiping

-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------

0 Kudos
2,482 Views
yipingwang
NXP TechSupport
NXP TechSupport

Hello Eric,

The configuration files icu-*.pc are provided by the package icu, this package should be included in the full image by default, but there is some problem with icu recipe which doesn't package files under usr/lib/pkgconfig into filesystem, please use the attached recipe file to replace meta/recipes-support/icu/icu.inc, and clean icu  cache with the command "bitbake icu -c clean", then rebuild full filesystem.


Have a great day,
Yiping

-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------

0 Kudos