[Buildroot] [PATCH] glibc: Install iconvconfig on target with gconv libs

Romain Naour romain.naour at gmail.com
Sat Oct 20 21:07:17 UTC 2018


Hi Alexey,

Le 02/08/2018 à 08:38, Alexey Brodkin a écrit :
> In some cases we need to have gconv-modules.cache on target,
> for example see [1] or glibc's test-suite (iconv/test-iconvconfig).
> 
> We do have iconvconfig installed in Buildroot's staging folder but
> it gets never installed on targe because instead of calling glibc's
> "install" target we simply copy a list of libs.
> 
> So then let's copy oven iconvconfig there as well in a similar manner.
> Still we do it only if gconv libs are being copied otherwise it makes no
> sense I guess.
> 
> [1] http://lists.busybox.net/pipermail/buildroot/2013-July/075097.html
> 
> Signed-off-by: Alexey Brodkin <abrodkin at synopsys.com>
> Cc: Romain Naour <romain.naour at gmail.com>
> Cc: Baruch Siach <baruch at tkos.co.il>
> ---
> 
> I do realize my implementation might look not super correct as
> appending *binary* to the list of *libs* is not good. But:
> 
> 1. It's very tiny yet working fix or even better "improvement"
> 2. That might at least be a good starting pont for a discussion on
>    what would be a better way :)

Well, we don't require copy_toolchain_lib_root to install iconvconfig binary on
the target. Libraries needs a complicated logic to be deployed on the target
hence copy_toolchain_lib_root.

Maybe just add GLIBC_INSTALL_ICONVCONFIG:

define GLIBC_INSTALL_ICONVCONFIG
	$(INSTALL) -m 0755 -D $(@D)/build/iconv/iconvconfig \
		$(TARGET_DIR)/usr/sbin/iconvconfig
endef

define GLIBC_INSTALL_TARGET_CMDS
	for libpattern in $(GLIBC_LIBS_LIB); do \
		$(call copy_toolchain_lib_root,$$libpattern) ; \
	done
	$(GLIBC_INSTALL_ICONVCONFIG)
endef

Best regards,
Romain


> 
>  package/glibc/glibc.mk | 4 ++++
>  1 file changed, 4 insertions(+)
> 
> diff --git a/package/glibc/glibc.mk b/package/glibc/glibc.mk
> index 6d21ae7ac07d..9366b3ec4199 100644
> --- a/package/glibc/glibc.mk
> +++ b/package/glibc/glibc.mk
> @@ -119,6 +119,10 @@ ifeq ($(BR2_PACKAGE_GDB),y)
>  GLIBC_LIBS_LIB += libthread_db.so.*
>  endif
>  
> +ifeq ($(BR2_TOOLCHAIN_GLIBC_GCONV_LIBS_COPY),y)
> +GLIBC_LIBS_LIB += iconvconfig
> +endif
> +
>  define GLIBC_INSTALL_TARGET_CMDS
>  	for libpattern in $(GLIBC_LIBS_LIB); do \
>  		$(call copy_toolchain_lib_root,$$libpattern) ; \
> 



More information about the buildroot mailing list