On Slackware 13.37, in a testdir, I see a number of test failures:

FAIL: test-c32isalnum.sh
========================

../../gltests/test-c32isalnum.c:42: assertion 'ret == n' failed
../../gltests/test-c32isalnum.sh: line 40: 29713 Aborted                 
LC_ALL=$LOCALE_ZH_CN ${CHECKER} ./test-c32isalnum${EXEEXT} 4
FAIL test-c32isalnum.sh (exit status: 1)

FAIL: test-c32isalpha.sh
========================

../../gltests/test-c32isalpha.c:42: assertion 'ret == n' failed
../../gltests/test-c32isalpha.sh: line 40: 29725 Aborted                 
LC_ALL=$LOCALE_ZH_CN ${CHECKER} ./test-c32isalpha${EXEEXT} 4
FAIL test-c32isalpha.sh (exit status: 1)

FAIL: test-c32isblank.sh
========================

../../gltests/test-c32isblank.c:42: assertion 'ret == n' failed
../../gltests/test-c32isblank.sh: line 40: 29737 Aborted                 
LC_ALL=$LOCALE_ZH_CN ${CHECKER} ./test-c32isblank${EXEEXT} 4
FAIL test-c32isblank.sh (exit status: 1)

FAIL: test-c32iscntrl.sh
========================

../../gltests/test-c32iscntrl.c:42: assertion 'ret == n' failed
../../gltests/test-c32iscntrl.sh: line 40: 29749 Aborted                 
LC_ALL=$LOCALE_ZH_CN ${CHECKER} ./test-c32iscntrl${EXEEXT} 4
FAIL test-c32iscntrl.sh (exit status: 1)

FAIL: test-c32isdigit.sh
========================

../../gltests/test-c32isdigit.c:42: assertion 'ret == n' failed
../../gltests/test-c32isdigit.sh: line 40: 29761 Aborted                 
LC_ALL=$LOCALE_ZH_CN ${CHECKER} ./test-c32isdigit${EXEEXT} 4
FAIL test-c32isdigit.sh (exit status: 1)

FAIL: test-c32isgraph.sh
========================

../../gltests/test-c32isgraph.c:42: assertion 'ret == n' failed
../../gltests/test-c32isgraph.sh: line 40: 29773 Aborted                 
LC_ALL=$LOCALE_ZH_CN ${CHECKER} ./test-c32isgraph${EXEEXT} 4
FAIL test-c32isgraph.sh (exit status: 1)

FAIL: test-c32islower.sh
========================

../../gltests/test-c32islower.c:42: assertion 'ret == n' failed
../../gltests/test-c32islower.sh: line 40: 29785 Aborted                 
LC_ALL=$LOCALE_ZH_CN ${CHECKER} ./test-c32islower${EXEEXT} 4
FAIL test-c32islower.sh (exit status: 1)

FAIL: test-c32isprint.sh
========================

../../gltests/test-c32isprint.c:42: assertion 'ret == n' failed
../../gltests/test-c32isprint.sh: line 40: 29797 Aborted                 
LC_ALL=$LOCALE_ZH_CN ${CHECKER} ./test-c32isprint${EXEEXT} 4
FAIL test-c32isprint.sh (exit status: 1)

FAIL: test-c32ispunct.sh
========================

../../gltests/test-c32ispunct.c:42: assertion 'ret == n' failed
../../gltests/test-c32ispunct.sh: line 40: 29809 Aborted                 
LC_ALL=$LOCALE_ZH_CN ${CHECKER} ./test-c32ispunct${EXEEXT} 4
FAIL test-c32ispunct.sh (exit status: 1)

FAIL: test-c32isspace.sh
========================

../../gltests/test-c32isspace.c:42: assertion 'ret == n' failed
../../gltests/test-c32isspace.sh: line 40: 29821 Aborted                 
LC_ALL=$LOCALE_ZH_CN ${CHECKER} ./test-c32isspace${EXEEXT} 4
FAIL test-c32isspace.sh (exit status: 1)

FAIL: test-c32isupper.sh
========================

../../gltests/test-c32isupper.c:42: assertion 'ret == n' failed
../../gltests/test-c32isupper.sh: line 40: 29833 Aborted                 
LC_ALL=$LOCALE_ZH_CN ${CHECKER} ./test-c32isupper${EXEEXT} 4
FAIL test-c32isupper.sh (exit status: 1)

FAIL: test-c32isxdigit.sh
=========================

../../gltests/test-c32isxdigit.c:42: assertion 'ret == n' failed
../../gltests/test-c32isxdigit.sh: line 40: 29845 Aborted                 
LC_ALL=$LOCALE_ZH_CN ${CHECKER} ./test-c32isxdigit${EXEEXT} 4
FAIL test-c32isxdigit.sh (exit status: 1)

FAIL: test-c32rtomb.sh
======================

../../gltests/test-c32rtomb.c:45: assertion 'iret == n' failed
../../gltests/test-c32rtomb.sh: line 40: 29857 Aborted                 
LC_ALL=$LOCALE_ZH_CN ${CHECKER} ./test-c32rtomb${EXEEXT} 5
FAIL test-c32rtomb.sh (exit status: 1)

FAIL: test-c32snrtombs-5.sh
===========================

../../gltests/test-c32snrtombs.c:171: assertion 'ret == 5' failed
../../gltests/test-c32snrtombs-5.sh: line 15: 29934 Aborted                 
LC_ALL=$LOCALE_ZH_CN ${CHECKER} ./test-c32snrtombs${EXEEXT} 5
FAIL test-c32snrtombs-5.sh (exit status: 134)

FAIL: test-c32srtombs-5.sh
==========================

../../gltests/test-c32srtombs.c:171: assertion 'ret == 5' failed
../../gltests/test-c32srtombs-5.sh: line 15: 29962 Aborted                 
LC_ALL=$LOCALE_ZH_CN ${CHECKER} ./test-c32srtombs${EXEEXT} 5
FAIL test-c32srtombs-5.sh (exit status: 134)

FAIL: test-c32stombs-5.sh
=========================

../../gltests/test-c32stombs.c:150: assertion 'ret == 5' failed
../../gltests/test-c32stombs-5.sh: line 15: 29990 Aborted                 
LC_ALL=$LOCALE_ZH_CN ${CHECKER} ./test-c32stombs${EXEEXT} 5
FAIL test-c32stombs-5.sh (exit status: 134)

FAIL: test-c32tolower.sh
========================

+ LC_ALL=C
+ ./test-c32tolower 0
+ LC_ALL=POSIX
+ ./test-c32tolower 0
+ : fr_FR
+ test fr_FR '!=' none
+ LC_ALL=fr_FR
+ ./test-c32tolower 1
+ : ja_JP
+ test ja_JP '!=' none
+ LC_ALL=ja_JP
+ ./test-c32tolower 2
+ : fr_FR.UTF-8
+ test fr_FR.UTF-8 '!=' none
+ LC_ALL=fr_FR.UTF-8
+ ./test-c32tolower 3
+ : zh_CN.GB18030
+ test zh_CN.GB18030 '!=' none
+ LC_ALL=zh_CN.GB18030
+ ./test-c32tolower 4
../../gltests/test-c32tolower.c:52: assertion 'ret == n' failed
../../gltests/test-c32tolower.sh: line 43: 30008 Aborted                 
LC_ALL=$LOCALE_ZH_CN ${CHECKER} ./test-c32tolower${EXEEXT} 4
+ case $? in
+ exit 1
FAIL test-c32tolower.sh (exit status: 1)

FAIL: test-c32toupper.sh
========================

+ LC_ALL=C
+ ./test-c32toupper 0
+ LC_ALL=POSIX
+ ./test-c32toupper 0
+ : fr_FR
+ test fr_FR '!=' none
+ LC_ALL=fr_FR
+ ./test-c32toupper 1
+ : ja_JP
+ test ja_JP '!=' none
+ LC_ALL=ja_JP
+ ./test-c32toupper 2
+ : fr_FR.UTF-8
+ test fr_FR.UTF-8 '!=' none
+ LC_ALL=fr_FR.UTF-8
+ ./test-c32toupper 3
+ : zh_CN.GB18030
+ test zh_CN.GB18030 '!=' none
+ LC_ALL=zh_CN.GB18030
+ ./test-c32toupper 4
../../gltests/test-c32toupper.c:52: assertion 'ret == n' failed
../../gltests/test-c32toupper.sh: line 43: 30020 Aborted                 
LC_ALL=$LOCALE_ZH_CN ${CHECKER} ./test-c32toupper${EXEEXT} 4
+ case $? in
+ exit 1
FAIL test-c32toupper.sh (exit status: 1)

FAIL: test-fnmatch-5.sh
=======================

../../gltests/test-fnmatch.c:859: assertion 'fnmatch ("x?y", 
"x\224\071\375\067y", 0) == 0' failed
../../gltests/test-fnmatch-5.sh: line 15:   397 Aborted                 
LC_ALL=$LOCALE_ZH_CN ${CHECKER} ./test-fnmatch${EXEEXT} 5
FAIL test-fnmatch-5.sh (exit status: 134)

FAIL: test-mbrtoc16-5.sh
========================

../../gltests/test-mbrtoc16.c:414: assertion 'ret == 4' failed
../../gltests/test-mbrtoc16-5.sh: line 15:  2195 Aborted                 
LC_ALL=$LOCALE_ZH_CN ${CHECKER} ./test-mbrtoc16${EXEEXT} 5
FAIL test-mbrtoc16-5.sh (exit status: 134)

FAIL: test-mbrtoc32-5.sh
========================

../../gltests/test-mbrtoc32.c:415: assertion 'ret == 4' failed
../../gltests/test-mbrtoc32-5.sh: line 15:  2286 Aborted                 
LC_ALL=$LOCALE_ZH_CN ${CHECKER} ./test-mbrtoc32${EXEEXT} 5
FAIL test-mbrtoc32-5.sh (exit status: 134)

FAIL: test-mbsnrtoc32s-5.sh
===========================

../../gltests/test-mbsnrtoc32s.c:343: assertion 'ret == 4' failed
../../gltests/test-mbsnrtoc32s-5.sh: line 15:  2518 Aborted                 
LC_ALL=$LOCALE_ZH_CN ${CHECKER} ./test-mbsnrtoc32s${EXEEXT} 5
FAIL test-mbsnrtoc32s-5.sh (exit status: 134)

FAIL: test-mbsrtoc32s-5.sh
==========================

../../gltests/test-mbsrtoc32s.c:343: assertion 'ret == 4' failed
../../gltests/test-mbsrtoc32s-5.sh: line 15:  2611 Aborted                 
LC_ALL=$LOCALE_ZH_CN ${CHECKER} ./test-mbsrtoc32s${EXEEXT} 5
FAIL test-mbsrtoc32s-5.sh (exit status: 134)

FAIL: test-mbstoc32s-5.sh
=========================

../../gltests/test-mbstoc32s.c:287: assertion 'ret == 3' failed
../../gltests/test-mbstoc32s-5.sh: line 15:  2710 Aborted                 
LC_ALL=$LOCALE_ZH_CN ${CHECKER} ./test-mbstoc32s${EXEEXT} 5
FAIL test-mbstoc32s-5.sh (exit status: 134)


This patch avoids the failures.


2023-08-16  Bruno Haible  <br...@clisp.org>

        tests: Avoid some test failures on Slackware 13.37.
        * tests/test-c32isalnum.c (main): Disable GB18030 tests on
        glibc 2.13..2.15.
        * tests/test-c32isalpha.c (main): Likewise.
        * tests/test-c32isblank.c (main): Likewise.
        * tests/test-c32iscntrl.c (main): Likewise.
        * tests/test-c32isdigit.c (main): Likewise.
        * tests/test-c32isgraph.c (main): Likewise.
        * tests/test-c32islower.c (main): Likewise.
        * tests/test-c32isprint.c (main): Likewise.
        * tests/test-c32ispunct.c (main): Likewise.
        * tests/test-c32isspace.c (main): Likewise.
        * tests/test-c32isupper.c (main): Likewise.
        * tests/test-c32isxdigit.c (main): Likewise.
        * tests/test-c32rtomb.c (main): Likewise.
        * tests/test-c32snrtombs.c (main): Likewise.
        * tests/test-c32srtombs.c (main): Likewise.
        * tests/test-c32stombs.c (main): Likewise.
        * tests/test-c32tolower.c (main): Likewise.
        * tests/test-c32toupper.c (main): Likewise.
        * tests/test-fnmatch.c (main): Likewise.
        * tests/test-mbrtoc16.c (main): Likewise.
        * tests/test-mbrtoc32.c (main): Likewise.
        * tests/test-mbsnrtoc32s.c (main): Likewise.
        * tests/test-mbsrtoc32s.c (main): Likewise.
        * tests/test-mbstoc32s.c (main): Likewise.

diff --git a/tests/test-c32isalnum.c b/tests/test-c32isalnum.c
index 9805c1331f..b1e3659cb8 100644
--- a/tests/test-c32isalnum.c
+++ b/tests/test-c32isalnum.c
@@ -212,7 +212,7 @@ main (int argc, char *argv[])
 
       case '4':
         /* Locale encoding is GB18030.  */
-        #if GL_CHAR32_T_IS_UNICODE && (defined __NetBSD__ || defined __sun)
+        #if GL_CHAR32_T_IS_UNICODE && (defined __NetBSD__ || defined __sun || 
(defined __GLIBC__ && __GLIBC__ == 2 && __GLIBC_MINOR__ >= 13 && 
__GLIBC_MINOR__ <= 15))
         fputs ("Skipping test: The GB18030 converter in this system's iconv is 
broken.\n", stderr);
         return 77;
         #endif
diff --git a/tests/test-c32isalpha.c b/tests/test-c32isalpha.c
index 31c98bb76f..1b3751db2c 100644
--- a/tests/test-c32isalpha.c
+++ b/tests/test-c32isalpha.c
@@ -210,7 +210,7 @@ main (int argc, char *argv[])
 
       case '4':
         /* Locale encoding is GB18030.  */
-        #if GL_CHAR32_T_IS_UNICODE && (defined __NetBSD__ || defined __sun)
+        #if GL_CHAR32_T_IS_UNICODE && (defined __NetBSD__ || defined __sun || 
(defined __GLIBC__ && __GLIBC__ == 2 && __GLIBC_MINOR__ >= 13 && 
__GLIBC_MINOR__ <= 15))
         fputs ("Skipping test: The GB18030 converter in this system's iconv is 
broken.\n", stderr);
         return 77;
         #endif
diff --git a/tests/test-c32isblank.c b/tests/test-c32isblank.c
index ac6f4251eb..6e91742611 100644
--- a/tests/test-c32isblank.c
+++ b/tests/test-c32isblank.c
@@ -169,7 +169,7 @@ main (int argc, char *argv[])
 
       case '4':
         /* Locale encoding is GB18030.  */
-        #if GL_CHAR32_T_IS_UNICODE && (defined __NetBSD__ || defined __sun)
+        #if GL_CHAR32_T_IS_UNICODE && (defined __NetBSD__ || defined __sun || 
(defined __GLIBC__ && __GLIBC__ == 2 && __GLIBC_MINOR__ >= 13 && 
__GLIBC_MINOR__ <= 15))
         fputs ("Skipping test: The GB18030 converter in this system's iconv is 
broken.\n", stderr);
         return 77;
         #endif
diff --git a/tests/test-c32iscntrl.c b/tests/test-c32iscntrl.c
index b47f936134..81b9344ee0 100644
--- a/tests/test-c32iscntrl.c
+++ b/tests/test-c32iscntrl.c
@@ -171,7 +171,7 @@ main (int argc, char *argv[])
 
       case '4':
         /* Locale encoding is GB18030.  */
-        #if GL_CHAR32_T_IS_UNICODE && (defined __NetBSD__ || defined __sun)
+        #if GL_CHAR32_T_IS_UNICODE && (defined __NetBSD__ || defined __sun || 
(defined __GLIBC__ && __GLIBC__ == 2 && __GLIBC_MINOR__ >= 13 && 
__GLIBC_MINOR__ <= 15))
         fputs ("Skipping test: The GB18030 converter in this system's iconv is 
broken.\n", stderr);
         return 77;
         #endif
diff --git a/tests/test-c32isdigit.c b/tests/test-c32isdigit.c
index a2a4ab1623..8c7ebcab70 100644
--- a/tests/test-c32isdigit.c
+++ b/tests/test-c32isdigit.c
@@ -183,7 +183,7 @@ main (int argc, char *argv[])
 
       case '4':
         /* Locale encoding is GB18030.  */
-        #if GL_CHAR32_T_IS_UNICODE && (defined __NetBSD__ || defined __sun)
+        #if GL_CHAR32_T_IS_UNICODE && (defined __NetBSD__ || defined __sun || 
(defined __GLIBC__ && __GLIBC__ == 2 && __GLIBC_MINOR__ >= 13 && 
__GLIBC_MINOR__ <= 15))
         fputs ("Skipping test: The GB18030 converter in this system's iconv is 
broken.\n", stderr);
         return 77;
         #endif
diff --git a/tests/test-c32isgraph.c b/tests/test-c32isgraph.c
index 6ee7a1c866..f41d3ec991 100644
--- a/tests/test-c32isgraph.c
+++ b/tests/test-c32isgraph.c
@@ -194,7 +194,7 @@ main (int argc, char *argv[])
 
       case '4':
         /* Locale encoding is GB18030.  */
-        #if GL_CHAR32_T_IS_UNICODE && (defined __NetBSD__ || defined __sun)
+        #if GL_CHAR32_T_IS_UNICODE && (defined __NetBSD__ || defined __sun || 
(defined __GLIBC__ && __GLIBC__ == 2 && __GLIBC_MINOR__ >= 13 && 
__GLIBC_MINOR__ <= 15))
         fputs ("Skipping test: The GB18030 converter in this system's iconv is 
broken.\n", stderr);
         return 77;
         #endif
diff --git a/tests/test-c32islower.c b/tests/test-c32islower.c
index 41e0e27cb6..6f1e2a946a 100644
--- a/tests/test-c32islower.c
+++ b/tests/test-c32islower.c
@@ -267,7 +267,7 @@ main (int argc, char *argv[])
 
       case '4':
         /* Locale encoding is GB18030.  */
-        #if GL_CHAR32_T_IS_UNICODE && (defined __NetBSD__ || defined __sun)
+        #if GL_CHAR32_T_IS_UNICODE && (defined __NetBSD__ || defined __sun || 
(defined __GLIBC__ && __GLIBC__ == 2 && __GLIBC_MINOR__ >= 13 && 
__GLIBC_MINOR__ <= 15))
         fputs ("Skipping test: The GB18030 converter in this system's iconv is 
broken.\n", stderr);
         return 77;
         #endif
diff --git a/tests/test-c32isprint.c b/tests/test-c32isprint.c
index 18ccf55677..fdabc2c637 100644
--- a/tests/test-c32isprint.c
+++ b/tests/test-c32isprint.c
@@ -197,7 +197,7 @@ main (int argc, char *argv[])
 
       case '4':
         /* Locale encoding is GB18030.  */
-        #if GL_CHAR32_T_IS_UNICODE && (defined __NetBSD__ || defined __sun)
+        #if GL_CHAR32_T_IS_UNICODE && (defined __NetBSD__ || defined __sun || 
(defined __GLIBC__ && __GLIBC__ == 2 && __GLIBC_MINOR__ >= 13 && 
__GLIBC_MINOR__ <= 15))
         fputs ("Skipping test: The GB18030 converter in this system's iconv is 
broken.\n", stderr);
         return 77;
         #endif
diff --git a/tests/test-c32ispunct.c b/tests/test-c32ispunct.c
index c655b6317a..792ff61a12 100644
--- a/tests/test-c32ispunct.c
+++ b/tests/test-c32ispunct.c
@@ -256,7 +256,7 @@ main (int argc, char *argv[])
 
       case '4':
         /* Locale encoding is GB18030.  */
-        #if GL_CHAR32_T_IS_UNICODE && (defined __NetBSD__ || defined __sun)
+        #if GL_CHAR32_T_IS_UNICODE && (defined __NetBSD__ || defined __sun || 
(defined __GLIBC__ && __GLIBC__ == 2 && __GLIBC_MINOR__ >= 13 && 
__GLIBC_MINOR__ <= 15))
         fputs ("Skipping test: The GB18030 converter in this system's iconv is 
broken.\n", stderr);
         return 77;
         #endif
diff --git a/tests/test-c32isspace.c b/tests/test-c32isspace.c
index da6335802c..0ca5dea317 100644
--- a/tests/test-c32isspace.c
+++ b/tests/test-c32isspace.c
@@ -165,7 +165,7 @@ main (int argc, char *argv[])
 
       case '4':
         /* Locale encoding is GB18030.  */
-        #if GL_CHAR32_T_IS_UNICODE && (defined __NetBSD__ || defined __sun)
+        #if GL_CHAR32_T_IS_UNICODE && (defined __NetBSD__ || defined __sun || 
(defined __GLIBC__ && __GLIBC__ == 2 && __GLIBC_MINOR__ >= 13 && 
__GLIBC_MINOR__ <= 15))
         fputs ("Skipping test: The GB18030 converter in this system's iconv is 
broken.\n", stderr);
         return 77;
         #endif
diff --git a/tests/test-c32isupper.c b/tests/test-c32isupper.c
index 31daad64c0..8cef611a41 100644
--- a/tests/test-c32isupper.c
+++ b/tests/test-c32isupper.c
@@ -259,7 +259,7 @@ main (int argc, char *argv[])
 
       case '4':
         /* Locale encoding is GB18030.  */
-        #if GL_CHAR32_T_IS_UNICODE && (defined __NetBSD__ || defined __sun)
+        #if GL_CHAR32_T_IS_UNICODE && (defined __NetBSD__ || defined __sun || 
(defined __GLIBC__ && __GLIBC__ == 2 && __GLIBC_MINOR__ >= 13 && 
__GLIBC_MINOR__ <= 15))
         fputs ("Skipping test: The GB18030 converter in this system's iconv is 
broken.\n", stderr);
         return 77;
         #endif
diff --git a/tests/test-c32isxdigit.c b/tests/test-c32isxdigit.c
index 0fec8a4a4b..43ef7f5556 100644
--- a/tests/test-c32isxdigit.c
+++ b/tests/test-c32isxdigit.c
@@ -200,7 +200,7 @@ main (int argc, char *argv[])
 
       case '4':
         /* Locale encoding is GB18030.  */
-        #if GL_CHAR32_T_IS_UNICODE && (defined __NetBSD__ || defined __sun)
+        #if GL_CHAR32_T_IS_UNICODE && (defined __NetBSD__ || defined __sun || 
(defined __GLIBC__ && __GLIBC__ == 2 && __GLIBC_MINOR__ >= 13 && 
__GLIBC_MINOR__ <= 15))
         fputs ("Skipping test: The GB18030 converter in this system's iconv is 
broken.\n", stderr);
         return 77;
         #endif
diff --git a/tests/test-c32rtomb.c b/tests/test-c32rtomb.c
index 4c39fd54a6..ffdc780199 100644
--- a/tests/test-c32rtomb.c
+++ b/tests/test-c32rtomb.c
@@ -156,7 +156,7 @@ main (int argc, char *argv[])
 
       case '5':
         /* Locale encoding is GB18030.  */
-        #if GL_CHAR32_T_IS_UNICODE && (defined __NetBSD__ || defined __sun)
+        #if GL_CHAR32_T_IS_UNICODE && (defined __NetBSD__ || defined __sun || 
(defined __GLIBC__ && __GLIBC__ == 2 && __GLIBC_MINOR__ >= 13 && 
__GLIBC_MINOR__ <= 15))
         fputs ("Skipping test: The GB18030 converter in this system's iconv is 
broken.\n", stderr);
         return 77;
         #endif
diff --git a/tests/test-c32snrtombs.c b/tests/test-c32snrtombs.c
index 9f2c88b307..0dee9c0a2e 100644
--- a/tests/test-c32snrtombs.c
+++ b/tests/test-c32snrtombs.c
@@ -160,7 +160,7 @@ main (int argc, char *argv[])
 
         case '5':
           /* Locale encoding is GB18030.  */
-          #if GL_CHAR32_T_IS_UNICODE && (defined __NetBSD__ || defined __sun)
+          #if GL_CHAR32_T_IS_UNICODE && (defined __NetBSD__ || defined __sun 
|| (defined __GLIBC__ && __GLIBC__ == 2 && __GLIBC_MINOR__ >= 13 && 
__GLIBC_MINOR__ <= 15))
           fputs ("Skipping test: The GB18030 converter in this system's iconv 
is broken.\n", stderr);
           return 77;
           #endif
diff --git a/tests/test-c32srtombs.c b/tests/test-c32srtombs.c
index 465c30d4c2..e6c7a32d6e 100644
--- a/tests/test-c32srtombs.c
+++ b/tests/test-c32srtombs.c
@@ -160,7 +160,7 @@ main (int argc, char *argv[])
 
         case '5':
           /* Locale encoding is GB18030.  */
-          #if GL_CHAR32_T_IS_UNICODE && (defined __NetBSD__ || defined __sun)
+          #if GL_CHAR32_T_IS_UNICODE && (defined __NetBSD__ || defined __sun 
|| (defined __GLIBC__ && __GLIBC__ == 2 && __GLIBC_MINOR__ >= 13 && 
__GLIBC_MINOR__ <= 15))
           fputs ("Skipping test: The GB18030 converter in this system's iconv 
is broken.\n", stderr);
           return 77;
           #endif
diff --git a/tests/test-c32stombs.c b/tests/test-c32stombs.c
index 5e5b957a49..69af9d28bb 100644
--- a/tests/test-c32stombs.c
+++ b/tests/test-c32stombs.c
@@ -139,7 +139,7 @@ main (int argc, char *argv[])
 
         case '5':
           /* Locale encoding is GB18030.  */
-          #if GL_CHAR32_T_IS_UNICODE && (defined __NetBSD__ || defined __sun)
+          #if GL_CHAR32_T_IS_UNICODE && (defined __NetBSD__ || defined __sun 
|| (defined __GLIBC__ && __GLIBC__ == 2 && __GLIBC_MINOR__ >= 13 && 
__GLIBC_MINOR__ <= 15))
           fputs ("Skipping test: The GB18030 converter in this system's iconv 
is broken.\n", stderr);
           return 77;
           #endif
diff --git a/tests/test-c32tolower.c b/tests/test-c32tolower.c
index 1d35abb2bc..4141e58d85 100644
--- a/tests/test-c32tolower.c
+++ b/tests/test-c32tolower.c
@@ -336,7 +336,7 @@ main (int argc, char *argv[])
 
       case '4':
         /* Locale encoding is GB18030.  */
-        #if GL_CHAR32_T_IS_UNICODE && (defined __NetBSD__ || defined __sun)
+        #if GL_CHAR32_T_IS_UNICODE && (defined __NetBSD__ || defined __sun || 
(defined __GLIBC__ && __GLIBC__ == 2 && __GLIBC_MINOR__ >= 13 && 
__GLIBC_MINOR__ <= 15))
         fputs ("Skipping test: The GB18030 converter in this system's iconv is 
broken.\n", stderr);
         return 77;
         #endif
diff --git a/tests/test-c32toupper.c b/tests/test-c32toupper.c
index 4ec6431371..7047afc504 100644
--- a/tests/test-c32toupper.c
+++ b/tests/test-c32toupper.c
@@ -348,7 +348,7 @@ main (int argc, char *argv[])
 
       case '4':
         /* Locale encoding is GB18030.  */
-        #if GL_CHAR32_T_IS_UNICODE && (defined __NetBSD__ || defined __sun)
+        #if GL_CHAR32_T_IS_UNICODE && (defined __NetBSD__ || defined __sun || 
(defined __GLIBC__ && __GLIBC__ == 2 && __GLIBC_MINOR__ >= 13 && 
__GLIBC_MINOR__ <= 15))
         fputs ("Skipping test: The GB18030 converter in this system's iconv is 
broken.\n", stderr);
         return 77;
         #endif
diff --git a/tests/test-fnmatch.c b/tests/test-fnmatch.c
index b6ffc65539..488aacf0c0 100644
--- a/tests/test-fnmatch.c
+++ b/tests/test-fnmatch.c
@@ -853,6 +853,10 @@ main (int argc, char *argv[])
 
       case '5':
         /* Locale encoding is GB18030.  */
+        #if (defined __GLIBC__ && __GLIBC__ == 2 && __GLIBC_MINOR__ >= 13 && 
__GLIBC_MINOR__ <= 15)
+        fputs ("Skipping test: The GB18030 converter in this system's iconv is 
broken.\n", stderr);
+        return 77;
+        #endif
 
         ASSERT (fnmatch ("x?y", "x\250\271y", 0) == 0); /* "xüy" */
         ASSERT (fnmatch ("x?y", "x\201\060\211\070y", 0) == 0); /* "xßy" */
diff --git a/tests/test-mbrtoc16.c b/tests/test-mbrtoc16.c
index b76a9bed28..3e1d29eba7 100644
--- a/tests/test-mbrtoc16.c
+++ b/tests/test-mbrtoc16.c
@@ -361,7 +361,7 @@ main (int argc, char *argv[])
 
       case '5':
         /* Locale encoding is GB18030.  */
-        #if GL_CHAR32_T_IS_UNICODE && (defined __NetBSD__ || defined __sun)
+        #if GL_CHAR32_T_IS_UNICODE && (defined __NetBSD__ || defined __sun || 
(defined __GLIBC__ && __GLIBC__ == 2 && __GLIBC_MINOR__ >= 13 && 
__GLIBC_MINOR__ <= 15))
         fputs ("Skipping test: The GB18030 converter in this system's iconv is 
broken.\n", stderr);
         return 77;
         #endif
diff --git a/tests/test-mbrtoc32.c b/tests/test-mbrtoc32.c
index 93326085c2..f7a5b24e2a 100644
--- a/tests/test-mbrtoc32.c
+++ b/tests/test-mbrtoc32.c
@@ -360,7 +360,7 @@ main (int argc, char *argv[])
 
       case '5':
         /* Locale encoding is GB18030.  */
-        #if GL_CHAR32_T_IS_UNICODE && (defined __NetBSD__ || defined __sun)
+        #if GL_CHAR32_T_IS_UNICODE && (defined __NetBSD__ || defined __sun || 
(defined __GLIBC__ && __GLIBC__ == 2 && __GLIBC_MINOR__ >= 13 && 
__GLIBC_MINOR__ <= 15))
         fputs ("Skipping test: The GB18030 converter in this system's iconv is 
broken.\n", stderr);
         return 77;
         #endif
diff --git a/tests/test-mbsnrtoc32s.c b/tests/test-mbsnrtoc32s.c
index 09ebf2e76f..74ba643eb4 100644
--- a/tests/test-mbsnrtoc32s.c
+++ b/tests/test-mbsnrtoc32s.c
@@ -315,7 +315,7 @@ main (int argc, char *argv[])
 
             case '5':
               /* Locale encoding is GB18030.  */
-              #if GL_CHAR32_T_IS_UNICODE && (defined __NetBSD__ || defined 
__sun)
+              #if GL_CHAR32_T_IS_UNICODE && (defined __NetBSD__ || defined 
__sun || (defined __GLIBC__ && __GLIBC__ == 2 && __GLIBC_MINOR__ >= 13 && 
__GLIBC_MINOR__ <= 15))
               fputs ("Skipping test: The GB18030 converter in this system's 
iconv is broken.\n", stderr);
               return 77;
               #endif
diff --git a/tests/test-mbsrtoc32s.c b/tests/test-mbsrtoc32s.c
index 54ed63fa0c..0cbbbbd870 100644
--- a/tests/test-mbsrtoc32s.c
+++ b/tests/test-mbsrtoc32s.c
@@ -315,7 +315,7 @@ main (int argc, char *argv[])
 
             case '5':
               /* Locale encoding is GB18030.  */
-              #if GL_CHAR32_T_IS_UNICODE && (defined __NetBSD__ || defined 
__sun)
+              #if GL_CHAR32_T_IS_UNICODE && (defined __NetBSD__ || defined 
__sun || (defined __GLIBC__ && __GLIBC__ == 2 && __GLIBC_MINOR__ >= 13 && 
__GLIBC_MINOR__ <= 15))
               fputs ("Skipping test: The GB18030 converter in this system's 
iconv is broken.\n", stderr);
               return 77;
               #endif
diff --git a/tests/test-mbstoc32s.c b/tests/test-mbstoc32s.c
index b0b4f5a719..7bcfe1b03c 100644
--- a/tests/test-mbstoc32s.c
+++ b/tests/test-mbstoc32s.c
@@ -263,7 +263,7 @@ main (int argc, char *argv[])
 
             case '5':
               /* Locale encoding is GB18030.  */
-              #if GL_CHAR32_T_IS_UNICODE && (defined __NetBSD__ || defined 
__sun)
+              #if GL_CHAR32_T_IS_UNICODE && (defined __NetBSD__ || defined 
__sun || (defined __GLIBC__ && __GLIBC__ == 2 && __GLIBC_MINOR__ >= 13 && 
__GLIBC_MINOR__ <= 15))
               fputs ("Skipping test: The GB18030 converter in this system's 
iconv is broken.\n", stderr);
               return 77;
               #endif




Reply via email to