Now that the 'localcharset' module supports non-UTF-8 locales on MacOS X, some special code in m4/locale-*.m4 can be removed: The locales fr_FR.ISO8859-1, ja_JP.eucJP, zh_CN.GB18030 can be used; they don't cause test suite failures in gnulib.
2009-01-25 Bruno Haible <br...@clisp.org> * m4/locale-fr.m4 (gt_LOCALE_FR): Remove special code that hid the fr_FR.ISO8859-1 locale on MacOS X. * m4/locale-ja.m4 (gt_LOCALE_JA): Remove special code that hid the ja_JP.eucJP locale on MacOS X. * m4/locale-zh.m4 (gt_LOCALE_ZH_CN): Remove special code that hid the zh_CN.GB18030 locale on MacOS X. *** m4/locale-fr.m4.orig 2009-01-26 03:06:01.000000000 +0100 --- m4/locale-fr.m4 2009-01-26 02:06:22.000000000 +0100 *************** *** 1,4 **** ! # locale-fr.m4 serial 10 dnl Copyright (C) 2003, 2005-2009 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, --- 1,4 ---- ! # locale-fr.m4 serial 11 dnl Copyright (C) 2003, 2005-2009 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, *************** *** 12,36 **** AC_REQUIRE([AC_CANONICAL_HOST]) AC_REQUIRE([AM_LANGINFO_CODESET]) AC_CACHE_CHECK([for a traditional french locale], [gt_cv_locale_fr], [ ! macosx= ! changequote(,)dnl ! case "$host_os" in ! darwin[56]*) ;; ! darwin*) macosx=yes;; ! esac ! changequote([,])dnl ! if test -n "$macosx"; then ! # On Darwin 7 (MacOS X), the libc supports some locales in non-UTF-8 ! # encodings, but the kernel does not support them. The documentation ! # says: ! # "... all code that calls BSD system routines should ensure ! # that the const *char parameters of these routines are in UTF-8 ! # encoding. All BSD system functions expect their string ! # parameters to be in UTF-8 encoding and nothing else." ! # See the comments in config.charset. Therefore we bypass the test. ! gt_cv_locale_fr=none ! else ! AC_LANG_CONFTEST([AC_LANG_SOURCE([ changequote(,)dnl #include <locale.h> #include <time.h> --- 12,18 ---- AC_REQUIRE([AC_CANONICAL_HOST]) AC_REQUIRE([AM_LANGINFO_CODESET]) AC_CACHE_CHECK([for a traditional french locale], [gt_cv_locale_fr], [ ! AC_LANG_CONFTEST([AC_LANG_SOURCE([ changequote(,)dnl #include <locale.h> #include <time.h> *************** *** 75,116 **** return 0; } changequote([,])dnl ! ])]) ! if AC_TRY_EVAL([ac_link]) && test -s conftest$ac_exeext; then ! # Setting LC_ALL is not enough. Need to set LC_TIME to empty, because ! # otherwise on MacOS X 10.3.5 the LC_TIME=C from the beginning of the ! # configure script would override the LC_ALL setting. Likewise for ! # LC_CTYPE, which is also set at the beginning of the configure script. ! # Test for the usual locale name. ! if (LC_ALL=fr_FR LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then ! gt_cv_locale_fr=fr_FR else ! # Test for the locale name with explicit encoding suffix. ! if (LC_ALL=fr_FR.ISO-8859-1 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then ! gt_cv_locale_fr=fr_FR.ISO-8859-1 else ! # Test for the AIX, OSF/1, FreeBSD, NetBSD, OpenBSD locale name. ! if (LC_ALL=fr_FR.ISO8859-1 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then ! gt_cv_locale_fr=fr_FR.ISO8859-1 else ! # Test for the HP-UX locale name. ! if (LC_ALL=fr_FR.iso88591 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then ! gt_cv_locale_fr=fr_FR.iso88591 else ! # Test for the Solaris 7 locale name. ! if (LC_ALL=fr LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then ! gt_cv_locale_fr=fr ! else ! # None found. ! gt_cv_locale_fr=none ! fi fi fi fi fi fi - rm -fr conftest* fi ]) LOCALE_FR=$gt_cv_locale_fr AC_SUBST([LOCALE_FR]) --- 57,97 ---- return 0; } changequote([,])dnl ! ])]) ! if AC_TRY_EVAL([ac_link]) && test -s conftest$ac_exeext; then ! # Setting LC_ALL is not enough. Need to set LC_TIME to empty, because ! # otherwise on MacOS X 10.3.5 the LC_TIME=C from the beginning of the ! # configure script would override the LC_ALL setting. Likewise for ! # LC_CTYPE, which is also set at the beginning of the configure script. ! # Test for the usual locale name. ! if (LC_ALL=fr_FR LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then ! gt_cv_locale_fr=fr_FR ! else ! # Test for the locale name with explicit encoding suffix. ! if (LC_ALL=fr_FR.ISO-8859-1 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then ! gt_cv_locale_fr=fr_FR.ISO-8859-1 else ! # Test for the AIX, OSF/1, FreeBSD, NetBSD, OpenBSD locale name. ! if (LC_ALL=fr_FR.ISO8859-1 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then ! gt_cv_locale_fr=fr_FR.ISO8859-1 else ! # Test for the HP-UX locale name. ! if (LC_ALL=fr_FR.iso88591 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then ! gt_cv_locale_fr=fr_FR.iso88591 else ! # Test for the Solaris 7 locale name. ! if (LC_ALL=fr LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then ! gt_cv_locale_fr=fr else ! # None found. ! gt_cv_locale_fr=none fi fi fi fi fi fi + rm -fr conftest* ]) LOCALE_FR=$gt_cv_locale_fr AC_SUBST([LOCALE_FR]) *** m4/locale-ja.m4.orig 2009-01-26 03:06:01.000000000 +0100 --- m4/locale-ja.m4 2009-01-26 02:05:39.000000000 +0100 *************** *** 1,4 **** ! # locale-ja.m4 serial 6 dnl Copyright (C) 2003, 2005-2009 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, --- 1,4 ---- ! # locale-ja.m4 serial 7 dnl Copyright (C) 2003, 2005-2009 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, *************** *** 12,36 **** AC_REQUIRE([AC_CANONICAL_HOST]) AC_REQUIRE([AM_LANGINFO_CODESET]) AC_CACHE_CHECK([for a traditional japanese locale], [gt_cv_locale_ja], [ ! macosx= ! changequote(,)dnl ! case "$host_os" in ! darwin[56]*) ;; ! darwin*) macosx=yes;; ! esac ! changequote([,])dnl ! if test -n "$macosx"; then ! # On Darwin 7 (MacOS X), the libc supports some locales in non-UTF-8 ! # encodings, but the kernel does not support them. The documentation ! # says: ! # "... all code that calls BSD system routines should ensure ! # that the const *char parameters of these routines are in UTF-8 ! # encoding. All BSD system functions expect their string ! # parameters to be in UTF-8 encoding and nothing else." ! # See the comments in config.charset. Therefore we bypass the test. ! gt_cv_locale_ja=none ! else ! AC_LANG_CONFTEST([AC_LANG_SOURCE([ changequote(,)dnl #include <locale.h> #include <time.h> --- 12,18 ---- AC_REQUIRE([AC_CANONICAL_HOST]) AC_REQUIRE([AM_LANGINFO_CODESET]) AC_CACHE_CHECK([for a traditional japanese locale], [gt_cv_locale_ja], [ ! AC_LANG_CONFTEST([AC_LANG_SOURCE([ changequote(,)dnl #include <locale.h> #include <time.h> *************** *** 79,125 **** return 0; } changequote([,])dnl ! ])]) ! if AC_TRY_EVAL([ac_link]) && test -s conftest$ac_exeext; then ! # Setting LC_ALL is not enough. Need to set LC_TIME to empty, because ! # otherwise on MacOS X 10.3.5 the LC_TIME=C from the beginning of the ! # configure script would override the LC_ALL setting. Likewise for ! # LC_CTYPE, which is also set at the beginning of the configure script. ! # Test for the AIX locale name. ! if (LC_ALL=ja_JP LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then ! gt_cv_locale_ja=ja_JP else ! # Test for the locale name with explicit encoding suffix. ! if (LC_ALL=ja_JP.EUC-JP LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then ! gt_cv_locale_ja=ja_JP.EUC-JP else ! # Test for the HP-UX, OSF/1, NetBSD locale name. ! if (LC_ALL=ja_JP.eucJP LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then ! gt_cv_locale_ja=ja_JP.eucJP else ! # Test for the IRIX, FreeBSD locale name. ! if (LC_ALL=ja_JP.EUC LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then ! gt_cv_locale_ja=ja_JP.EUC else ! # Test for the Solaris 7 locale name. ! if (LC_ALL=ja LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then ! gt_cv_locale_ja=ja else ! # Special test for NetBSD 1.6. ! if test -f /usr/share/locale/ja_JP.eucJP/LC_CTYPE; then ! gt_cv_locale_ja=ja_JP.eucJP ! else ! # None found. ! gt_cv_locale_ja=none ! fi fi fi fi fi fi fi - rm -fr conftest* fi ]) LOCALE_JA=$gt_cv_locale_ja AC_SUBST([LOCALE_JA]) --- 61,106 ---- return 0; } changequote([,])dnl ! ])]) ! if AC_TRY_EVAL([ac_link]) && test -s conftest$ac_exeext; then ! # Setting LC_ALL is not enough. Need to set LC_TIME to empty, because ! # otherwise on MacOS X 10.3.5 the LC_TIME=C from the beginning of the ! # configure script would override the LC_ALL setting. Likewise for ! # LC_CTYPE, which is also set at the beginning of the configure script. ! # Test for the AIX locale name. ! if (LC_ALL=ja_JP LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then ! gt_cv_locale_ja=ja_JP ! else ! # Test for the locale name with explicit encoding suffix. ! if (LC_ALL=ja_JP.EUC-JP LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then ! gt_cv_locale_ja=ja_JP.EUC-JP else ! # Test for the HP-UX, OSF/1, NetBSD locale name. ! if (LC_ALL=ja_JP.eucJP LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then ! gt_cv_locale_ja=ja_JP.eucJP else ! # Test for the IRIX, FreeBSD locale name. ! if (LC_ALL=ja_JP.EUC LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then ! gt_cv_locale_ja=ja_JP.EUC else ! # Test for the Solaris 7 locale name. ! if (LC_ALL=ja LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then ! gt_cv_locale_ja=ja else ! # Special test for NetBSD 1.6. ! if test -f /usr/share/locale/ja_JP.eucJP/LC_CTYPE; then ! gt_cv_locale_ja=ja_JP.eucJP else ! # None found. ! gt_cv_locale_ja=none fi fi fi fi fi fi fi + rm -fr conftest* ]) LOCALE_JA=$gt_cv_locale_ja AC_SUBST([LOCALE_JA]) *** m4/locale-zh.m4.orig 2009-01-26 03:06:01.000000000 +0100 --- m4/locale-zh.m4 2009-01-26 02:07:09.000000000 +0100 *************** *** 1,4 **** ! # locale-zh.m4 serial 5 dnl Copyright (C) 2003, 2005-2009 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, --- 1,4 ---- ! # locale-zh.m4 serial 6 dnl Copyright (C) 2003, 2005-2009 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, *************** *** 12,36 **** AC_REQUIRE([AC_CANONICAL_HOST]) AC_REQUIRE([AM_LANGINFO_CODESET]) AC_CACHE_CHECK([for a transitional chinese locale], [gt_cv_locale_zh_CN], [ ! macosx= ! changequote(,)dnl ! case "$host_os" in ! darwin[56]*) ;; ! darwin*) macosx=yes;; ! esac ! changequote([,])dnl ! if test -n "$macosx"; then ! # On Darwin 7 (MacOS X), the libc supports some locales in non-UTF-8 ! # encodings, but the kernel does not support them. The documentation ! # says: ! # "... all code that calls BSD system routines should ensure ! # that the const *char parameters of these routines are in UTF-8 ! # encoding. All BSD system functions expect their string ! # parameters to be in UTF-8 encoding and nothing else." ! # See the comments in config.charset. Therefore we bypass the test. ! gt_cv_locale_zh_CN=none ! else ! AC_LANG_CONFTEST([AC_LANG_SOURCE([ changequote(,)dnl #include <locale.h> #include <stdlib.h> --- 12,18 ---- AC_REQUIRE([AC_CANONICAL_HOST]) AC_REQUIRE([AM_LANGINFO_CODESET]) AC_CACHE_CHECK([for a transitional chinese locale], [gt_cv_locale_zh_CN], [ ! AC_LANG_CONFTEST([AC_LANG_SOURCE([ changequote(,)dnl #include <locale.h> #include <stdlib.h> *************** *** 80,110 **** return 0; } changequote([,])dnl ! ])]) ! if AC_TRY_EVAL([ac_link]) && test -s conftest$ac_exeext; then ! # Setting LC_ALL is not enough. Need to set LC_TIME to empty, because ! # otherwise on MacOS X 10.3.5 the LC_TIME=C from the beginning of the ! # configure script would override the LC_ALL setting. Likewise for ! # LC_CTYPE, which is also set at the beginning of the configure script. ! # Test for the locale name without encoding suffix. ! if (LC_ALL=zh_CN LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then ! gt_cv_locale_zh_CN=zh_CN else ! # Test for the locale name with explicit encoding suffix. ! if (LC_ALL=zh_CN.GB18030 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then ! gt_cv_locale_zh_CN=zh_CN.GB18030 ! else ! # None found. ! gt_cv_locale_zh_CN=none ! fi fi - else - # If there was a link error, due to mblen(), the system is so old that - # it certainly doesn't have a chinese locale. - gt_cv_locale_zh_CN=none fi ! rm -fr conftest* fi ]) LOCALE_ZH_CN=$gt_cv_locale_zh_CN AC_SUBST([LOCALE_ZH_CN]) --- 62,91 ---- return 0; } changequote([,])dnl ! ])]) ! if AC_TRY_EVAL([ac_link]) && test -s conftest$ac_exeext; then ! # Setting LC_ALL is not enough. Need to set LC_TIME to empty, because ! # otherwise on MacOS X 10.3.5 the LC_TIME=C from the beginning of the ! # configure script would override the LC_ALL setting. Likewise for ! # LC_CTYPE, which is also set at the beginning of the configure script. ! # Test for the locale name without encoding suffix. ! if (LC_ALL=zh_CN LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then ! gt_cv_locale_zh_CN=zh_CN ! else ! # Test for the locale name with explicit encoding suffix. ! if (LC_ALL=zh_CN.GB18030 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then ! gt_cv_locale_zh_CN=zh_CN.GB18030 else ! # None found. ! gt_cv_locale_zh_CN=none fi fi ! else ! # If there was a link error, due to mblen(), the system is so old that ! # it certainly doesn't have a chinese locale. ! gt_cv_locale_zh_CN=none fi + rm -fr conftest* ]) LOCALE_ZH_CN=$gt_cv_locale_zh_CN AC_SUBST([LOCALE_ZH_CN])