Buildroot Archive on lore.kernel.org
 help / color / mirror / Atom feed
From: "Yann E. MORIN" <yann.morin.1998@free.fr>
To: yann.morin@orange.com
Cc: Thomas Petazzoni <thomas.petazzoni@bootlin.com>,
	Giulio Benetti <giulio.benetti@benettiengineering.com>,
	Romain Naour <romain.naour@gmail.com>,
	Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>,
	buildroot@buildroot.org
Subject: Re: [Buildroot] [PATCH 3/3] toolchain: suppot gconv modules fro mglibc >= 2.34
Date: Fri, 21 Oct 2022 21:10:05 +0200	[thread overview]
Message-ID: <20221021191005.GE2992523@scaer> (raw)
In-Reply-To: <8818_1665746314_6349458A_8818_181_1_964b37c54bd0ea2c0ca9a24787249f3276aec699.1665746266.git.yann.morin@orange.com>

Yann, All,

In the title: *support, from glibc

Also, many typoes in the commit log...

On 2022-10-14 13:18 +0200, yann.morin@orange.com spake thusly:
> Startig with glibc 2.34, the gconv modules description has been split in
> two:
>   - a common definition in the old location, /usr/lib/gconv/gconv-modules
>   - specific defitions in a subdirectory, /usr/lib/gconv/gconv-modules.d/
> 
> This is done so as to simplify the handling of glibc gconv modules, and
> eventually to segregate those outside of glibc, and so that third-parties
> may also provide their own gconv converters and their definitions.
> 
> And starting with that same glibc version, most of the gconv modules
> definition is moved to an extra configuration file in that
> sub-directory.
> 
> It is thus no longer possible to use special code pages, like cp850,
> which are very usefull to access FAT-formatted devices.
> 
> Add suppot for this new gconv layout, while keeping support for older
> glibc versions. Note that the modules themselves are not moved or
> renaed, just the definition files have changed.
> 
> Instead of passing the one old gonv modules definitions file on stdin,
> we pass the base directory to that file, and move into the script the
> responsibility to find all the gconv definition files.
> 
> Signed-off-by: Yann E. MORIN <yann.morin@orange.com>
> Cc: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
> Cc: Romain Naour <romain.naour@gmail.com>
> Cc: Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
> Cc: Giulio Benetti <giulio.benetti@benettiengineering.com>

Applied to master with the many typoes fixed, thanks.

Regards,
Yann E. MORIN.

> ---
>  support/scripts/expunge-gconv-modules | 22 ++++++++++++++++------
>  toolchain/toolchain.mk                |  9 +++++++--
>  2 files changed, 23 insertions(+), 8 deletions(-)
> 
> diff --git a/support/scripts/expunge-gconv-modules b/support/scripts/expunge-gconv-modules
> index bc60fc0ce4..e9ac48ca3f 100755
> --- a/support/scripts/expunge-gconv-modules
> +++ b/support/scripts/expunge-gconv-modules
> @@ -1,11 +1,17 @@
>  #!/usr/bin/env bash
>  
>  # This script is used to generate a gconv-modules file that takes into
> -# account only the gconv modules installed by Buildroot. It receives
> -# on its standard input the original complete gconv-modules file from
> -# the toolchain, and as arguments the list of gconv modules that were
> -# actually installed, and writes on its standard output the new
> -# gconv-modules file.
> +# account only the gconv modules installed by Buildroot, and generates
> +# a stripped-down gconv-moduels file on its stdout.
> +# It takes two arguments:
> +#   $1: the directory where to look for gconv modules definitions
> +#   $2: a space-separated list of gconv modules that were actually
> +#       installed
> +
> +# Starting with glibc-2.34, modules definitions are located in multiple
> +# files:
> +#   ${1}/gconv-modules
> +#   ${1}/gconv-modules.d/*.conf
>  
>  # The format of gconv-modules is precisely documented in the
>  # file itself. It consists of two different directives:
> @@ -19,7 +25,11 @@
>  # we handle each with slightly different code, since the second never has
>  # associated aliases.
>  
> -awk -v files="${2}" '
> +for f in ${1}/gconv-modules ${1}/gconv-modules.d/*.conf; do
> +    [ -e "${f}" ] || continue
> +    cat "${f}"
> +done \
> +|awk -v files="${2}" '
>  $1 == "alias" {
>      aliases[$3] = aliases[$3] " " $2;
>  }
> diff --git a/toolchain/toolchain.mk b/toolchain/toolchain.mk
> index 08d1649603..fe87a72ed4 100644
> --- a/toolchain/toolchain.mk
> +++ b/toolchain/toolchain.mk
> @@ -27,6 +27,10 @@ define TOOLCHAIN_GLIBC_COPY_GCONV_LIBS
>  		$(INSTALL) -m 0644 $(STAGING_DIR)/usr/lib/$${d}/gconv/*.so \
>  				   $(TARGET_DIR)/usr/lib/gconv \
>  		|| exit 1; \
> +		if [ -d $(STAGING_DIR)/usr/lib/$${d}/gconv/gconv-modules.d ]; then \
> +			cp -a $(STAGING_DIR)/usr/lib/$${d}/gconv/gconv-modules.d \
> +				$(TARGET_DIR)/usr/lib/gconv/ || exit 1; \
> +		fi; \
>  	else \
>  		for l in $(TOOLCHAIN_GLIBC_GCONV_LIBS); do \
>  			$(INSTALL) -m 0644 -D $(STAGING_DIR)/usr/lib/$${d}/gconv/$${l}.so \
> @@ -41,8 +45,9 @@ define TOOLCHAIN_GLIBC_COPY_GCONV_LIBS
>  				 || exit 1; \
>  			done; \
>  		done; \
> -		./support/scripts/expunge-gconv-modules "$(TOOLCHAIN_GLIBC_GCONV_LIBS)" \
> -			<$(STAGING_DIR)/usr/lib/$${d}/gconv/gconv-modules \
> +		./support/scripts/expunge-gconv-modules \
> +			$(STAGING_DIR)/usr/lib/$${d}/gconv \
> +			"$(TOOLCHAIN_GLIBC_GCONV_LIBS)" \
>  			>$(TARGET_DIR)/usr/lib/gconv/gconv-modules; \
>  	fi
>  endef
> -- 
> 2.25.1
> 
> 
> _________________________________________________________________________________________________________________________
> 
> Ce message et ses pieces jointes peuvent contenir des informations confidentielles ou privilegiees et ne doivent donc
> pas etre diffuses, exploites ou copies sans autorisation. Si vous avez recu ce message par erreur, veuillez le signaler
> a l'expediteur et le detruire ainsi que les pieces jointes. Les messages electroniques etant susceptibles d'alteration,
> Orange decline toute responsabilite si ce message a ete altere, deforme ou falsifie. Merci.
> 
> This message and its attachments may contain confidential or privileged information that may be protected by law;
> they should not be distributed, used or copied without authorisation.
> If you have received this email in error, please notify the sender and delete this message and its attachments.
> As emails may be altered, Orange is not liable for messages that have been modified, changed or falsified.
> Thank you.
> 
> _______________________________________________
> buildroot mailing list
> buildroot@buildroot.org
> https://lists.buildroot.org/mailman/listinfo/buildroot

-- 
.-----------------.--------------------.------------------.--------------------.
|  Yann E. MORIN  | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
| +33 662 376 056 | Software  Designer | \ / CAMPAIGN     |  ___               |
| +33 561 099 427 `------------.-------:  X  AGAINST      |  \e/  There is no  |
| http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL    |   v   conspiracy.  |
'------------------------------^-------^------------------^--------------------'
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

  reply	other threads:[~2022-10-21 19:10 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <2b0b6b796ff36967c963ba90f138a03d467ee5cf.1665746266.git.yann.morin@orange.com>
2022-10-14 11:18 ` [Buildroot] [PATCH 2/3] support/scripts: don't require gawk to generate glibc gconv modules yann.morin
2022-10-21 19:08   ` Yann E. MORIN
2022-11-04  7:40   ` Peter Korsgaard
2022-10-14 11:18 ` [Buildroot] [PATCH 3/3] toolchain: suppot gconv modules fro mglibc >= 2.34 yann.morin
2022-10-21 19:10   ` Yann E. MORIN [this message]
2022-11-04  7:43   ` Peter Korsgaard
2022-10-14 11:18 [Buildroot] [PATCH 1/3] Makefile: really generate glibc locales in parallel yann.morin
2022-10-21 19:07 ` Yann E. MORIN
2022-10-21 19:46 ` Yann E. MORIN
2022-11-03 13:49 ` Peter Korsgaard

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20221021191005.GE2992523@scaer \
    --to=yann.morin.1998@free.fr \
    --cc=buildroot@buildroot.org \
    --cc=giulio.benetti@benettiengineering.com \
    --cc=romain.naour@gmail.com \
    --cc=thomas.de_schampheleire@nokia.com \
    --cc=thomas.petazzoni@bootlin.com \
    --cc=yann.morin@orange.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox