How do I include the icu.pc into the /rootfs/usr/lib64/pkgconfig when building imag-full for t4240rdb-64b?
Solved! Go to Solution.
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!
-----------------------------------------------------------------------------------------------------------------------
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.
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.pc | icu-uc.pc |
Have a great day,
Yiping
-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------
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
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!
-----------------------------------------------------------------------------------------------------------------------
Hello Yiping,
Thanks for the help.
Thanks
Eric
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
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
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
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.
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
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!
-----------------------------------------------------------------------------------------------------------------------
Hello Yiping,
Thanks for the help. That did help.
Thanks
Eric.
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!
-----------------------------------------------------------------------------------------------------------------------
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!
-----------------------------------------------------------------------------------------------------------------------