cvs commit: src Makefile.inc1 src/sys/sys param.h src/tools/build Makefile src/lib/libc/locale rune.c src/include Makefile runefile.h src/usr.bin/mklocale ldef.h lex.l yacc.y

FUJISHIMA Satsuki sf at FreeBSD.org
Mon May 2 04:10:23 PDT 2005


This change broke binary compatibility with FreeBSD =< 5.x. They do not run on
-CURRENT correctly when LC_CTYPE is set. Is this intentional? If so,
is there any workaround?

Currently Opera FreeBSD (4.6 binary) does not work in non-ASCII environment.

# RELENG_4 binary does not work with LC_CTYPE but without it does.
$ file /home/chroot/4/usr/bin/perl              
/home/chroot/4/usr/bin/perl: ELF 32-bit LSB executable, Intel 80386, version 1 (FreeBSD), for FreeBSD 4.11 (492100), dynamically linked (uses shared libs), stripped
$ env - LC_CTYPE=ja_JP.eucJP /home/chroot/4/usr/bin/perl < /dev/null 
perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
        LC_ALL = (unset),
        LC_CTYPE = "ja_JP.eucJP",
        LANG = (unset)
    are supported and installed on your system.
perl: warning: Falling back to the standard locale ("C").
$ env - /home/chroot/4/usr/bin/perl < /dev/null 

# RELENG_5, same as above.
$ file /home/chroot/5/usr/local/bin/perl
/home/chroot/5/usr/local/bin/perl: ELF 32-bit LSB executable, Intel 80386, version 1 (FreeBSD), for FreeBSD 5.4 (504100), dynamically linked (uses shared libs), stripped
$ env - LC_CTYPE=ja_JP.eucJP /home/chroot/5/usr/local/bin/perl < /dev/null 
perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
        LC_ALL = (unset),
        LC_CTYPE = "ja_JP.eucJP",
        LANG = (unset)
    are supported and installed on your system.
perl: warning: Falling back to the standard locale ("C").
$ env - /home/chroot/5/usr/local/bin/perl < /dev/null 

# Of course -CURRENT binary works.
$ file /usr/local/bin/perl
/usr/local/bin/perl: ELF 32-bit LSB executable, Intel 80386, version 1 (FreeBSD), for FreeBSD 6.0 (600008), dynamically linked (uses shared libs), stripped
$ env - LC_CTYPE=ja_JP.eucJP /usr/local/bin/perl < /dev/null 
$ env - /usr/local/bin/perl < /dev/null 

# copying LC_CTYPE from RELENG_5 fixes compatibility, but breaks -CURRENT binary.
$ sudo cp /home/chroot/5/usr/share/locale/ja_JP.eucJP/LC_CTYPE /usr/share/locale/ja_JP.eucJP
$ env - LC_CTYPE=ja_JP.eucJP /home/chroot/4/usr/bin/perl < /dev/null 
$ env - LC_CTYPE=ja_JP.eucJP /home/chroot/5/usr/local/bin/perl < /dev/null 
$ env - LC_CTYPE=ja_JP.eucJP /usr/local/bin/perl < /dev/null 
perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
        LC_ALL = (unset),
        LC_CTYPE = "ja_JP.eucJP",
        LANG = (unset)
    are supported and installed on your system.
perl: warning: Falling back to the standard locale ("C").
$ 


At Sat, 26 Feb 2005 21:47:54 +0000 (UTC),
Ruslan Ermilov wrote:
> 
> ru          2005-02-26 21:47:54 UTC
> 
>   FreeBSD src repository
> 
>   Modified files:
>     .                    Makefile.inc1 
>     sys/sys              param.h 
>     tools/build          Makefile 
>     lib/libc/locale      rune.c 
>     include              Makefile 
>     usr.bin/mklocale     ldef.h lex.l yacc.y 
>   Added files:
>     include              runefile.h 
>   Log:
>   Make the format of LC_CTYPE files architecture independent by
>   introducing the disk formats for _RuneLocale and friends.
>   
>   The disk formats do not have (useless) pointers and have 32-bit
>   quantities instead of rune_t and long.  (htonl(3) only works
>   with 32-bit quantities, so there's no loss).
>   
>   Bootstrap mklocale(1) when necessary.  (Bootstrapping from 4.x
>   would be trivial (verified), but we no longer provide pre-5.3
>   source upgrades and this is the first commit to actually break
>   it.)
>   
>   Revision  Changes    Path
>   1.477     +5 -0      src/Makefile.inc1
>   1.233     +2 -1      src/include/Makefile
>   1.1       +61 -0     src/include/runefile.h (new)
>   1.13      +156 -66   src/lib/libc/locale/rune.c
>   1.228     +1 -1      src/sys/sys/param.h
>   1.8       +5 -0      src/tools/build/Makefile
>   1.4       +7 -5      src/usr.bin/mklocale/ldef.h
>   1.9       +0 -1      src/usr.bin/mklocale/lex.l
>   1.24      +71 -76    src/usr.bin/mklocale/yacc.y
> 


More information about the cvs-src mailing list