noreturn tests: Avoid test failure on Solaris 10/x86 with cc.
[gnulib.git] / m4 / string_h.m4
bloba4cc5b4378337b4d7a04fa0ac3926ac9e4444c9b
1 # Configure a GNU-like replacement for <string.h>.
3 # Copyright (C) 2007-2021 Free Software Foundation, Inc.
4 # This file is free software; the Free Software Foundation
5 # gives unlimited permission to copy and/or distribute it,
6 # with or without modifications, as long as this notice is preserved.
8 # serial 29
10 # Written by Paul Eggert.
12 AC_DEFUN([gl_HEADER_STRING_H],
14   dnl Use AC_REQUIRE here, so that the default behavior below is expanded
15   dnl once only, before all statements that occur in other macros.
16   AC_REQUIRE([gl_HEADER_STRING_H_BODY])
19 AC_DEFUN([gl_HEADER_STRING_H_BODY],
21   AC_REQUIRE([gl_HEADER_STRING_H_DEFAULTS])
22   gl_NEXT_HEADERS([string.h])
24   dnl Check for declarations of anything we want to poison if the
25   dnl corresponding gnulib module is not in use, and which is not
26   dnl guaranteed by C89.
27   gl_WARN_ON_USE_PREPARE([[#include <string.h>
28     ]],
29     [ffsl ffsll memmem mempcpy memrchr rawmemchr stpcpy stpncpy strchrnul
30      strdup strncat strndup strnlen strpbrk strsep strcasestr strtok_r
31      strerror_r strerrorname_np sigabbrev_np sigdescr_np strsignal strverscmp])
33   AC_REQUIRE([AC_C_RESTRICT])
36 AC_DEFUN([gl_STRING_MODULE_INDICATOR],
38   dnl Use AC_REQUIRE here, so that the default settings are expanded once only.
39   AC_REQUIRE([gl_HEADER_STRING_H_DEFAULTS])
40   gl_MODULE_INDICATOR_SET_VARIABLE([$1])
41   dnl Define it also as a C macro, for the benefit of the unit tests.
42   gl_MODULE_INDICATOR_FOR_TESTS([$1])
45 AC_DEFUN([gl_HEADER_STRING_H_DEFAULTS],
47   GNULIB_EXPLICIT_BZERO=0;   AC_SUBST([GNULIB_EXPLICIT_BZERO])
48   GNULIB_FFSL=0;             AC_SUBST([GNULIB_FFSL])
49   GNULIB_FFSLL=0;            AC_SUBST([GNULIB_FFSLL])
50   GNULIB_MEMCHR=0;           AC_SUBST([GNULIB_MEMCHR])
51   GNULIB_MEMMEM=0;           AC_SUBST([GNULIB_MEMMEM])
52   GNULIB_MEMPCPY=0;          AC_SUBST([GNULIB_MEMPCPY])
53   GNULIB_MEMRCHR=0;          AC_SUBST([GNULIB_MEMRCHR])
54   GNULIB_RAWMEMCHR=0;        AC_SUBST([GNULIB_RAWMEMCHR])
55   GNULIB_STPCPY=0;           AC_SUBST([GNULIB_STPCPY])
56   GNULIB_STPNCPY=0;          AC_SUBST([GNULIB_STPNCPY])
57   GNULIB_STRCHRNUL=0;        AC_SUBST([GNULIB_STRCHRNUL])
58   GNULIB_STRDUP=0;           AC_SUBST([GNULIB_STRDUP])
59   GNULIB_STRNCAT=0;          AC_SUBST([GNULIB_STRNCAT])
60   GNULIB_STRNDUP=0;          AC_SUBST([GNULIB_STRNDUP])
61   GNULIB_STRNLEN=0;          AC_SUBST([GNULIB_STRNLEN])
62   GNULIB_STRPBRK=0;          AC_SUBST([GNULIB_STRPBRK])
63   GNULIB_STRSEP=0;           AC_SUBST([GNULIB_STRSEP])
64   GNULIB_STRSTR=0;           AC_SUBST([GNULIB_STRSTR])
65   GNULIB_STRCASESTR=0;       AC_SUBST([GNULIB_STRCASESTR])
66   GNULIB_STRTOK_R=0;         AC_SUBST([GNULIB_STRTOK_R])
67   GNULIB_MBSLEN=0;           AC_SUBST([GNULIB_MBSLEN])
68   GNULIB_MBSNLEN=0;          AC_SUBST([GNULIB_MBSNLEN])
69   GNULIB_MBSCHR=0;           AC_SUBST([GNULIB_MBSCHR])
70   GNULIB_MBSRCHR=0;          AC_SUBST([GNULIB_MBSRCHR])
71   GNULIB_MBSSTR=0;           AC_SUBST([GNULIB_MBSSTR])
72   GNULIB_MBSCASECMP=0;       AC_SUBST([GNULIB_MBSCASECMP])
73   GNULIB_MBSNCASECMP=0;      AC_SUBST([GNULIB_MBSNCASECMP])
74   GNULIB_MBSPCASECMP=0;      AC_SUBST([GNULIB_MBSPCASECMP])
75   GNULIB_MBSCASESTR=0;       AC_SUBST([GNULIB_MBSCASESTR])
76   GNULIB_MBSCSPN=0;          AC_SUBST([GNULIB_MBSCSPN])
77   GNULIB_MBSPBRK=0;          AC_SUBST([GNULIB_MBSPBRK])
78   GNULIB_MBSSPN=0;           AC_SUBST([GNULIB_MBSSPN])
79   GNULIB_MBSSEP=0;           AC_SUBST([GNULIB_MBSSEP])
80   GNULIB_MBSTOK_R=0;         AC_SUBST([GNULIB_MBSTOK_R])
81   GNULIB_STRERROR=0;         AC_SUBST([GNULIB_STRERROR])
82   GNULIB_STRERROR_R=0;       AC_SUBST([GNULIB_STRERROR_R])
83   GNULIB_STRERRORNAME_NP=0;  AC_SUBST([GNULIB_STRERRORNAME_NP])
84   GNULIB_SIGABBREV_NP=0;     AC_SUBST([GNULIB_SIGABBREV_NP])
85   GNULIB_SIGDESCR_NP=0;      AC_SUBST([GNULIB_SIGDESCR_NP])
86   GNULIB_STRSIGNAL=0;        AC_SUBST([GNULIB_STRSIGNAL])
87   GNULIB_STRVERSCMP=0;       AC_SUBST([GNULIB_STRVERSCMP])
88   HAVE_MBSLEN=0;             AC_SUBST([HAVE_MBSLEN])
89   dnl Support Microsoft deprecated alias function names by default.
90   GNULIB_MDA_MEMCCPY=1;      AC_SUBST([GNULIB_MDA_MEMCCPY])
91   GNULIB_MDA_STRDUP=1;       AC_SUBST([GNULIB_MDA_STRDUP])
92   dnl Assume proper GNU behavior unless another module says otherwise.
93   HAVE_EXPLICIT_BZERO=1;        AC_SUBST([HAVE_EXPLICIT_BZERO])
94   HAVE_FFSL=1;                  AC_SUBST([HAVE_FFSL])
95   HAVE_FFSLL=1;                 AC_SUBST([HAVE_FFSLL])
96   HAVE_DECL_MEMMEM=1;           AC_SUBST([HAVE_DECL_MEMMEM])
97   HAVE_MEMPCPY=1;               AC_SUBST([HAVE_MEMPCPY])
98   HAVE_DECL_MEMRCHR=1;          AC_SUBST([HAVE_DECL_MEMRCHR])
99   HAVE_RAWMEMCHR=1;             AC_SUBST([HAVE_RAWMEMCHR])
100   HAVE_STPCPY=1;                AC_SUBST([HAVE_STPCPY])
101   HAVE_STPNCPY=1;               AC_SUBST([HAVE_STPNCPY])
102   HAVE_STRCHRNUL=1;             AC_SUBST([HAVE_STRCHRNUL])
103   HAVE_DECL_STRDUP=1;           AC_SUBST([HAVE_DECL_STRDUP])
104   HAVE_DECL_STRNDUP=1;          AC_SUBST([HAVE_DECL_STRNDUP])
105   HAVE_DECL_STRNLEN=1;          AC_SUBST([HAVE_DECL_STRNLEN])
106   HAVE_STRPBRK=1;               AC_SUBST([HAVE_STRPBRK])
107   HAVE_STRSEP=1;                AC_SUBST([HAVE_STRSEP])
108   HAVE_STRCASESTR=1;            AC_SUBST([HAVE_STRCASESTR])
109   HAVE_DECL_STRTOK_R=1;         AC_SUBST([HAVE_DECL_STRTOK_R])
110   HAVE_DECL_STRERROR_R=1;       AC_SUBST([HAVE_DECL_STRERROR_R])
111   HAVE_STRERRORNAME_NP=1;       AC_SUBST([HAVE_STRERRORNAME_NP])
112   HAVE_SIGABBREV_NP=1;          AC_SUBST([HAVE_SIGABBREV_NP])
113   HAVE_SIGDESCR_NP=1;           AC_SUBST([HAVE_SIGDESCR_NP])
114   HAVE_DECL_STRSIGNAL=1;        AC_SUBST([HAVE_DECL_STRSIGNAL])
115   HAVE_STRVERSCMP=1;            AC_SUBST([HAVE_STRVERSCMP])
116   REPLACE_FFSLL=0;              AC_SUBST([REPLACE_FFSLL])
117   REPLACE_MEMCHR=0;             AC_SUBST([REPLACE_MEMCHR])
118   REPLACE_MEMMEM=0;             AC_SUBST([REPLACE_MEMMEM])
119   REPLACE_STPNCPY=0;            AC_SUBST([REPLACE_STPNCPY])
120   REPLACE_STRCHRNUL=0;          AC_SUBST([REPLACE_STRCHRNUL])
121   REPLACE_STRDUP=0;             AC_SUBST([REPLACE_STRDUP])
122   REPLACE_STRNCAT=0;            AC_SUBST([REPLACE_STRNCAT])
123   REPLACE_STRNDUP=0;            AC_SUBST([REPLACE_STRNDUP])
124   REPLACE_STRNLEN=0;            AC_SUBST([REPLACE_STRNLEN])
125   REPLACE_STRSTR=0;             AC_SUBST([REPLACE_STRSTR])
126   REPLACE_STRCASESTR=0;         AC_SUBST([REPLACE_STRCASESTR])
127   REPLACE_STRTOK_R=0;           AC_SUBST([REPLACE_STRTOK_R])
128   REPLACE_STRERROR=0;           AC_SUBST([REPLACE_STRERROR])
129   REPLACE_STRERROR_R=0;         AC_SUBST([REPLACE_STRERROR_R])
130   REPLACE_STRERRORNAME_NP=0;    AC_SUBST([REPLACE_STRERRORNAME_NP])
131   REPLACE_STRSIGNAL=0;          AC_SUBST([REPLACE_STRSIGNAL])
132   UNDEFINE_STRTOK_R=0;          AC_SUBST([UNDEFINE_STRTOK_R])