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