0
votes

I am building binaries for our custom board(iMX7) using Yocto-morty. I need some libraries such as UTF-32.so, UTF-16.so, UTF-7.so from glibc package for bluetooth file tranfer. But these libraries are not available in the rootfs, only files available under /usr/lib/gconv are gconv-modules and ISO8859-1.so. So I am trying to add these libraries by adding new bbappend file glibc_2.24.bbappend with the following content

FILES_${PN} += "${libdir}/gconv/*"

do_install_locale_append() {
cp -r ${dest}${libdir}/gconv ${D}${libdir}/
}

But it results in the following error:

ERROR: glibc-2.24-r0 do_populate_sysroot: The recipe glibc is trying to install files into a shared area when those files already exist. Those files and their manifest location are:

build_dir/tmp/sysroots/esomimx7d/usr/lib/gconv/ISO-2022-CN.so  Matched in b'manifest-esomimx7d-glibc-locale.populate_sysroot'

build_dir/tmp/sysroots/esomimx7d/usr/lib/gconv/ARMSCII-8.so Matched in b'manifest-esomimx7d-glibc-locale.populate_sysroot'

......

Then I tried to remove the glibc-locale from the image but due to some dependency issues I could not do that.

Could anyone help me to add the above mentioned libraries to the rootfs?

2

2 Answers

2
votes

The error is telling you the answer to your problem. Those files are part of the glibc-locale recipe, so you just need to install the right packages into the rootfs.

$ oe-pkgdata-util find-path \*/UTF-7.so
glibc-gconv-utf-7: /usr/lib/gconv/UTF-7.so

So you need to add glibc-gconv-utf-7 (or -utf-32, etc) to your image.

0
votes

You can remove thm and compile again it will work.

rm build_dir/tmp/sysroots/esomimx7d/usr/lib/gconv/ISO-2022-CN.so
rm build_dir/tmp/sysroots/esomimx7d/usr/lib/gconv/ARMSCII-8.so

This is for work around only we need for perminant sol. These files are belongs to glibc-locale so you need to install the required packages.

$ oe-pkgdata-util find-path */UTF-7.so
glibc-gconv-utf-7:> /usr/lib/gconv/UTF-7.so

Add the glibc-gconv-utf-7 (or -utf-32, etc) to recipe image(e.g core-image-minimal).