From: Bruno Haible Date: Tue, 13 Jun 2023 23:43:50 +0000 (+0200) Subject: Make internationalization tests stricter on musl systems. X-Git-Tag: v0.22~19 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=81754ff781aa30c10e0e54318c8abc9ede69e94c;p=thirdparty%2Fgettext.git Make internationalization tests stricter on musl systems. * gettext-tools/m4/locale-de.m4 (gt_LOCALE_DE_UTF8): On musl systems, set LOCALE_DE_UTF8 to "de_DE.UTF-8" instead of "none". --- diff --git a/gettext-tools/m4/locale-de.m4 b/gettext-tools/m4/locale-de.m4 index b252a25ec..b5ab877cf 100644 --- a/gettext-tools/m4/locale-de.m4 +++ b/gettext-tools/m4/locale-de.m4 @@ -1,5 +1,5 @@ -# locale-de.m4 serial 2 -dnl Copyright (C) 2003, 2005-2018 Free Software Foundation, Inc. +# locale-de.m4 serial 3 +dnl Copyright (C) 2003-2023 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. @@ -9,9 +9,19 @@ dnl From Bruno Haible. dnl Determine the name of a german locale with UTF-8 encoding. AC_DEFUN([gt_LOCALE_DE_UTF8], [ + AC_REQUIRE([AC_CANONICAL_HOST]) AC_REQUIRE([AM_LANGINFO_CODESET]) AC_CACHE_CHECK([for a german Unicode locale], [gt_cv_locale_de_utf8], [ - AC_LANG_CONFTEST([AC_LANG_SOURCE([[ + case "$host_os" in + *-musl* | midipix*) + dnl On musl libc, all kinds of ll_CC.UTF-8 locales exist, even without + dnl any locale file on disk. But they are effectively equivalent to the + dnl C.UTF-8 locale, except for locale categories (such as LC_MESSSAGES) + dnl for which localizations (.mo files) have been installed. + gt_cv_locale_de_utf8=de_DE.UTF-8 + ;; + *) + AC_LANG_CONFTEST([AC_LANG_SOURCE([[ #include #include #if HAVE_LANGINFO_CODESET @@ -73,50 +83,52 @@ int main () { #endif return 0; } - ]])]) - if AC_TRY_EVAL([ac_link]) && test -s conftest$ac_exeext; then - case "$host_os" in - # Handle native Windows specially, because there setlocale() interprets - # "ar" as "Arabic" or "Arabic_Saudi Arabia.1256", - # "fr" or "fra" as "French" or "French_France.1252", - # "ge"(!) or "deu"(!) as "German" or "German_Germany.1252", - # "ja" as "Japanese" or "Japanese_Japan.932", - # and similar. - mingw*) - # Test for the hypothetical native Windows locale name. - if (LC_ALL=German_Germany.65001 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then - gt_cv_locale_de_utf8=German_Germany.65001 - else - # None found. - gt_cv_locale_de_utf8=none - fi - ;; - *) - # Setting LC_ALL is not enough. Need to set LC_TIME to empty, because - # otherwise on Mac OS 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=de_DE LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then - gt_cv_locale_de_utf8=de_DE - else - # Test for the locale name with explicit encoding suffix. - if (LC_ALL=de_DE.UTF-8 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then - gt_cv_locale_de_utf8=de_DE.UTF-8 - else - # Test for the Solaris 7 locale name. - if (LC_ALL=de.UTF-8 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then - gt_cv_locale_de_utf8=de.UTF-8 + ]])]) + if AC_TRY_EVAL([ac_link]) && test -s conftest$ac_exeext; then + case "$host_os" in + # Handle native Windows specially, because there setlocale() interprets + # "ar" as "Arabic" or "Arabic_Saudi Arabia.1256", + # "fr" or "fra" as "French" or "French_France.1252", + # "ge"(!) or "deu"(!) as "German" or "German_Germany.1252", + # "ja" as "Japanese" or "Japanese_Japan.932", + # and similar. + mingw*) + # Test for the hypothetical native Windows locale name. + if (LC_ALL=German_Germany.65001 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then + gt_cv_locale_de_utf8=German_Germany.65001 else # None found. gt_cv_locale_de_utf8=none fi - fi - fi - ;; - esac - fi - rm -fr conftest* + ;; + *) + # Setting LC_ALL is not enough. Need to set LC_TIME to empty, because + # otherwise on Mac OS 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=de_DE LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then + gt_cv_locale_de_utf8=de_DE + else + # Test for the locale name with explicit encoding suffix. + if (LC_ALL=de_DE.UTF-8 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then + gt_cv_locale_de_utf8=de_DE.UTF-8 + else + # Test for the Solaris 7 locale name. + if (LC_ALL=de.UTF-8 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then + gt_cv_locale_de_utf8=de.UTF-8 + else + # None found. + gt_cv_locale_de_utf8=none + fi + fi + fi + ;; + esac + fi + rm -fr conftest* + ;; + esac ]) LOCALE_DE_UTF8=$gt_cv_locale_de_utf8 AC_SUBST([LOCALE_DE_UTF8])