[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[bug#67686] [PATCH core-updates 4/5] gnu: glibc: Install C.UTF-8 locale.
From: |
Efraim Flashner |
Subject: |
[bug#67686] [PATCH core-updates 4/5] gnu: glibc: Install C.UTF-8 locale. |
Date: |
Sun, 10 Dec 2023 09:24:01 +0200 |
On Sat, Dec 09, 2023 at 10:41:41PM +0100, Ludovic Courtès wrote:
> Hello!
>
> Efraim Flashner <efraim@flashner.co.il> skribis:
>
> > On Thu, Dec 07, 2023 at 10:26:36PM +0100, Ludovic Courtès wrote:
>
> [...]
>
> >> I was told on #glibc that (1) there’s no ‘localedef’ for the build
> >> machine produced during cross-compilation, and (2) that more generally,
> >> there’s no way to cross-build locale data, that endianness and other
> >> things may matter.
> >>
> >> I suspect #2 was about the locale archive and not locale data, because
> >> evidence suggests that locale data is system-independent:
> >>
> >> --8<---------------cut here---------------start------------->8---
> >> $ for s in aarch64-linux powerpc64le-linux armhf-linux i686-linux ; do
> >> diff -r $(guix build glibc-locales@2.35) $(guix build glibc-locales@2.35
> >> -s "$s") && echo "$s same as x86_64-linux" ; done
> >> aarch64-linux same as x86_64-linux
> >> powerpc64le-linux same as x86_64-linux
> >> armhf-linux same as x86_64-linux
> >> i686-linux same as x86_64-linux
> >> $ guix describe
> >> guix 6e2dd51
> >> repository URL: https://git.savannah.gnu.org/git/guix.git
> >> branch: master
> >> commit: 6e2dd51df5f3f51e9056dd4f2e1b036195ab3caa
> >> --8<---------------cut here---------------end--------------->8---
> >>
> >> Efraim, could you check against powerpc-linux, which is the only
> >> big-endian target we +/- support?
> >
> > I found a difference in almost every file. The tarball of the locales
> > was too big to attach so I've uploaded it here¹. Looking at it in
> > diffoscope it looked like most of the data that looked human readable
> > was the same, but there was some endian switching with the other data
> > bits. So without actually checking other big endian systems it looks
> > like we could set target #f for the locales, but for those that share
> > their endianness.
>
> OK, interesting, thanks for checking!
>
> So we won’t be able to reliably provide C.UTF-8 in cross-compiled libcs.
> Maybe not a big problem, but it does mean that cross-compiled code will
> be “less capable” because of that.
We should be able to create some monstrosity of a #:target field to say
that within an endianness group target is #f but otherwise is
(%current-target-system). Should work for all the locale generators
actually.
untested:
(if (and (target-little-endian? (%current-system))
(target-little-endian? (%current-target-system)))
#f
(%current-target-system))
Although if we are going to rely on target-little-endian we might want
to define that field in (guix platform) too so we don't assign an
endianness to 8-bit controllers or embedded systems.
--
Efraim Flashner <efraim@flashner.co.il> רנשלפ םירפא
GPG key = A28B F40C 3E55 1372 662D 14F7 41AA E7DC CA3D 8351
Confidentiality cannot be guaranteed on emails sent or received unencrypted
signature.asc
Description: PGP signature
- [bug#67686] [PATCH core-updates 1/5] gnu: gcc@11: Update to 11.4.0., (continued)
[bug#67686] [PATCH core-updates 5/5] gnu: glibc: Ensure C.UTF-8 locale is always found., Ludovic Courtès, 2023/12/07
[bug#67686] [PATCH core-updates v2 0/7] Update glibc to 2.38; make C.UTF-8 always available, Ludovic Courtès, 2023/12/07
[bug#67686] [PATCH core-updates v2 7/7] gnu: glibc: Improve handling of empty .a files., Ludovic Courtès, 2023/12/07
[bug#67686] [PATCH core-updates v2 2/7] gnu: glibc-utf8-locales: Generalize and use gexps., Ludovic Courtès, 2023/12/07
[bug#67686] [PATCH core-updates v2 6/7] gnu: glibc: Ensure C.UTF-8 locale is always found., Ludovic Courtès, 2023/12/07