embed endian info in locale data files magic (PR231965)

Yuri Pankov yuripv at yuripv.net
Thu Oct 18 01:59:11 UTC 2018


Yuri Pankov wrote:
> https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=231965 ([PowerPC64]
> Cross compiling powerpc64 from amd64 results in nonfunctional locale
> installations), describes the issue with locale data built on LE system
> (amd64) when used on BE system (powerpc).
> 
> Fix introduced in rS308170 depends on the fact that locale data is built
> on LE system, and will likely fail when it's built natively on mips
> (please correct me if I'm wrong).  More so, we shouldn't be hardcoding
> the conversion in libc, and I see 2 options here:
> 
> 1. fix localedef to output data in target's system endian
> 2. embed the endian info in locale data files (updating magic signature)
>    and ehhance the previous fix with runtime selection of needed
>    conversion

Thinking more about this, or:

3. Always store the data in LE (or BE, doesn't matter), and
appropriately convert while reading.  This will likely require least change.

> I have put the change for #2 together at
> https://reviews.freebsd.org/D17603 (more a PoC at the moment than a real
> review), and wondering if it looks sane enough or if there's anything
> obvious I'm missing.
> 
> I have briefly tested the libc and locale files (LC_CTYPE and
> LC_COLLATE) built on amd64 on a powerpc system, and it seems to work.
> 
> TIA
> 


-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 488 bytes
Desc: OpenPGP digital signature
URL: <http://lists.freebsd.org/pipermail/freebsd-hackers/attachments/20181018/36343538/attachment.sig>


More information about the freebsd-hackers mailing list