@@ -551,6 +551,30 @@ endef
TARGET_FINALIZE_HOOKS += PURGE_LOCALES
endif
+ifeq ($(BR2_TOOLCHAIN_GLIBC_GCONV_LIBS_COPY),y)
+GCONV_LIBS = $(call qstrip,$(BR2_TOOLCHAIN_GLIBC_GCONV_LIBS_LIST))
+define COPY_GCONV_LIBS
+ $(Q)if [ -z "$(GCONV_LIBS)" ]; then \
+ $(INSTALL) -m 0644 -D $(STAGING_DIR)/usr/lib/gconv/gconv-modules \
+ $(TARGET_DIR)/usr/lib/gconv/gconv-modules; \
+ $(INSTALL) -m 0644 $(STAGING_DIR)/usr/lib/gconv/*.so \
+ $(TARGET_DIR)/usr/lib/gconv \
+ || exit 1; \
+ else \
+ rm -f $(TARGET_DIR)/usr/lib/gconv/gconv-modules; \
+ for l in $(GCONV_LIBS); do \
+ $(INSTALL) -m 0644 -D $(STAGING_DIR)/usr/lib/gconv/$${l}.so \
+ $(TARGET_DIR)/usr/lib/gconv/$${l}.so \
+ || exit 1; \
+ ./support/scripts/expunge-gconv-modules $${l} \
+ <$(STAGING_DIR)/usr/lib/gconv/gconv-modules \
+ >>$(TARGET_DIR)/usr/lib/gconv/gconv-modules; \
+ done; \
+ fi
+endef
+TARGET_FINALIZE_HOOKS += COPY_GCONV_LIBS
+endif
+
$(TARGETS_ROOTFS): target-finalize
target-finalize: $(TARGETS)
new file mode 100755
@@ -0,0 +1,26 @@
+#!/bin/bash
+
+gawk -v file="${1}" '
+$1 == "alias" {
+ aliases[$3] = aliases[$3] " " $2;
+}
+$1 == "module" && $2 != "INTERNAL" {
+ file2mods[$4] = file2mods[$4] " " $2;
+ mod2cost[$2] = $5;
+}
+
+END {
+ printf( "# Modules and aliases for: %s\n\n", file );
+ nb_mods = split( file2mods[file], mods );
+ for( i=1; i<=nb_mods; i++ ) {
+ first = 0;
+ nb_aliases = split( aliases[mods[i]], mod_aliases );
+ for( j=1; j<=nb_aliases; j++ ) {
+ printf( "alias\t%s\t%s\n", mod_aliases[j], mods[i] );
+ }
+ printf( "module\t%s\t%s\t%s\t%d\n", mods[i], "INTERNAL", file, mod2cost[mods[i]] );
+ printf( "module\t%s\t%s\t%s\t%d\n", "INTERNAL", mods[i], file, mod2cost[mods[i]] );
+ printf( "\n" );
+ }
+}
+'
@@ -77,6 +77,28 @@ config BR2_GENERATE_LOCALE
specified, UTF-8 is assumed. Examples of locales: en_US,
fr_FR.UTF-8.
+config BR2_TOOLCHAIN_GLIBC_GCONV_LIBS_COPY
+ bool "Copy gconv libraries"
+ depends on BR2_TOOLCHAIN_USES_GLIBC
+ help
+ The gconv libraries are used to convert between different
+ character sets (charsets).
+
+ Say 'y' if you need to store and/or display different charsets.
+
+config BR2_TOOLCHAIN_GLIBC_GCONV_LIBS_LIST
+ string "Gconv libraries to copy"
+ depends on BR2_TOOLCHAIN_GLIBC_GCONV_LIBS_COPY
+ help
+ Set to the list of gconv libraries to copy.
+ Leave empty to copy all gconv libraries.
+
+ Specify only the basename of the libraries, leave
+ out the .so extension. Eg.:
+ IBM850 ISO8859-15 UNICODE
+
+ Note: the full set of gconv libs are ~8MiB (on ARM).
+
# glibc and eglibc directly include gettext, so a separatly compiled
# gettext isn't needed and shouldn't be built to avoid conflicts. Some
# packages always need gettext, other packages only need gettext when