stdlib_h.m4 7.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170
  1. # stdlib_h.m4 serial 55
  2. dnl Copyright (C) 2007-2021 Free Software Foundation, Inc.
  3. dnl This file is free software; the Free Software Foundation
  4. dnl gives unlimited permission to copy and/or distribute it,
  5. dnl with or without modifications, as long as this notice is preserved.
  6. AC_DEFUN([gl_STDLIB_H],
  7. [
  8. AC_REQUIRE([gl_STDLIB_H_DEFAULTS])
  9. gl_NEXT_HEADERS([stdlib.h])
  10. dnl Check for declarations of anything we want to poison if the
  11. dnl corresponding gnulib module is not in use, and which is not
  12. dnl guaranteed by C89.
  13. gl_WARN_ON_USE_PREPARE([[#include <stdlib.h>
  14. #if HAVE_SYS_LOADAVG_H
  15. /* OpenIndiana has a bug: <sys/time.h> must be included before
  16. <sys/loadavg.h>. */
  17. # include <sys/time.h>
  18. # include <sys/loadavg.h>
  19. #endif
  20. #if HAVE_RANDOM_H
  21. # include <random.h>
  22. #endif
  23. ]], [_Exit aligned_alloc atoll canonicalize_file_name free
  24. getloadavg getsubopt grantpt
  25. initstate initstate_r mbtowc mkdtemp mkostemp mkostemps mkstemp mkstemps
  26. posix_memalign posix_openpt ptsname ptsname_r qsort_r
  27. random random_r reallocarray realpath rpmatch secure_getenv setenv
  28. setstate setstate_r srandom srandom_r
  29. strtod strtold strtoll strtoull unlockpt unsetenv])
  30. AC_REQUIRE([AC_C_RESTRICT])
  31. AC_CHECK_DECLS_ONCE([ecvt])
  32. if test $ac_cv_have_decl_ecvt = no; then
  33. HAVE_DECL_ECVT=0
  34. fi
  35. AC_CHECK_DECLS_ONCE([fcvt])
  36. if test $ac_cv_have_decl_fcvt = no; then
  37. HAVE_DECL_FCVT=0
  38. fi
  39. AC_CHECK_DECLS_ONCE([gcvt])
  40. if test $ac_cv_have_decl_gcvt = no; then
  41. HAVE_DECL_GCVT=0
  42. fi
  43. ])
  44. AC_DEFUN([gl_STDLIB_MODULE_INDICATOR],
  45. [
  46. dnl Use AC_REQUIRE here, so that the default settings are expanded once only.
  47. AC_REQUIRE([gl_STDLIB_H_DEFAULTS])
  48. gl_MODULE_INDICATOR_SET_VARIABLE([$1])
  49. dnl Define it also as a C macro, for the benefit of the unit tests.
  50. gl_MODULE_INDICATOR_FOR_TESTS([$1])
  51. ])
  52. AC_DEFUN([gl_STDLIB_H_DEFAULTS],
  53. [
  54. GNULIB__EXIT=0; AC_SUBST([GNULIB__EXIT])
  55. GNULIB_ALIGNED_ALLOC=0; AC_SUBST([GNULIB_ALIGNED_ALLOC])
  56. GNULIB_ATOLL=0; AC_SUBST([GNULIB_ATOLL])
  57. GNULIB_CALLOC_POSIX=0; AC_SUBST([GNULIB_CALLOC_POSIX])
  58. GNULIB_CANONICALIZE_FILE_NAME=0; AC_SUBST([GNULIB_CANONICALIZE_FILE_NAME])
  59. GNULIB_FREE_POSIX=0; AC_SUBST([GNULIB_FREE_POSIX])
  60. GNULIB_GETLOADAVG=0; AC_SUBST([GNULIB_GETLOADAVG])
  61. GNULIB_GETSUBOPT=0; AC_SUBST([GNULIB_GETSUBOPT])
  62. GNULIB_GRANTPT=0; AC_SUBST([GNULIB_GRANTPT])
  63. GNULIB_MALLOC_POSIX=0; AC_SUBST([GNULIB_MALLOC_POSIX])
  64. GNULIB_MBTOWC=0; AC_SUBST([GNULIB_MBTOWC])
  65. GNULIB_MKDTEMP=0; AC_SUBST([GNULIB_MKDTEMP])
  66. GNULIB_MKOSTEMP=0; AC_SUBST([GNULIB_MKOSTEMP])
  67. GNULIB_MKOSTEMPS=0; AC_SUBST([GNULIB_MKOSTEMPS])
  68. GNULIB_MKSTEMP=0; AC_SUBST([GNULIB_MKSTEMP])
  69. GNULIB_MKSTEMPS=0; AC_SUBST([GNULIB_MKSTEMPS])
  70. GNULIB_POSIX_MEMALIGN=0;AC_SUBST([GNULIB_POSIX_MEMALIGN])
  71. GNULIB_POSIX_OPENPT=0; AC_SUBST([GNULIB_POSIX_OPENPT])
  72. GNULIB_PTSNAME=0; AC_SUBST([GNULIB_PTSNAME])
  73. GNULIB_PTSNAME_R=0; AC_SUBST([GNULIB_PTSNAME_R])
  74. GNULIB_PUTENV=0; AC_SUBST([GNULIB_PUTENV])
  75. GNULIB_QSORT_R=0; AC_SUBST([GNULIB_QSORT_R])
  76. GNULIB_RANDOM=0; AC_SUBST([GNULIB_RANDOM])
  77. GNULIB_RANDOM_R=0; AC_SUBST([GNULIB_RANDOM_R])
  78. GNULIB_REALLOCARRAY=0; AC_SUBST([GNULIB_REALLOCARRAY])
  79. GNULIB_REALLOC_POSIX=0; AC_SUBST([GNULIB_REALLOC_POSIX])
  80. GNULIB_REALPATH=0; AC_SUBST([GNULIB_REALPATH])
  81. GNULIB_RPMATCH=0; AC_SUBST([GNULIB_RPMATCH])
  82. GNULIB_SECURE_GETENV=0; AC_SUBST([GNULIB_SECURE_GETENV])
  83. GNULIB_SETENV=0; AC_SUBST([GNULIB_SETENV])
  84. GNULIB_STRTOD=0; AC_SUBST([GNULIB_STRTOD])
  85. GNULIB_STRTOLD=0; AC_SUBST([GNULIB_STRTOLD])
  86. GNULIB_STRTOLL=0; AC_SUBST([GNULIB_STRTOLL])
  87. GNULIB_STRTOULL=0; AC_SUBST([GNULIB_STRTOULL])
  88. GNULIB_SYSTEM_POSIX=0; AC_SUBST([GNULIB_SYSTEM_POSIX])
  89. GNULIB_UNLOCKPT=0; AC_SUBST([GNULIB_UNLOCKPT])
  90. GNULIB_UNSETENV=0; AC_SUBST([GNULIB_UNSETENV])
  91. GNULIB_WCTOMB=0; AC_SUBST([GNULIB_WCTOMB])
  92. dnl Support Microsoft deprecated alias function names by default.
  93. GNULIB_MDA_ECVT=1; AC_SUBST([GNULIB_MDA_ECVT])
  94. GNULIB_MDA_FCVT=1; AC_SUBST([GNULIB_MDA_FCVT])
  95. GNULIB_MDA_GCVT=1; AC_SUBST([GNULIB_MDA_GCVT])
  96. GNULIB_MDA_MKTEMP=1; AC_SUBST([GNULIB_MDA_MKTEMP])
  97. GNULIB_MDA_PUTENV=1; AC_SUBST([GNULIB_MDA_PUTENV])
  98. dnl Assume proper GNU behavior unless another module says otherwise.
  99. HAVE__EXIT=1; AC_SUBST([HAVE__EXIT])
  100. HAVE_ALIGNED_ALLOC=1; AC_SUBST([HAVE_ALIGNED_ALLOC])
  101. HAVE_ATOLL=1; AC_SUBST([HAVE_ATOLL])
  102. HAVE_CANONICALIZE_FILE_NAME=1; AC_SUBST([HAVE_CANONICALIZE_FILE_NAME])
  103. HAVE_DECL_ECVT=1; AC_SUBST([HAVE_DECL_ECVT])
  104. HAVE_DECL_FCVT=1; AC_SUBST([HAVE_DECL_FCVT])
  105. HAVE_DECL_GCVT=1; AC_SUBST([HAVE_DECL_GCVT])
  106. HAVE_DECL_GETLOADAVG=1; AC_SUBST([HAVE_DECL_GETLOADAVG])
  107. HAVE_GETSUBOPT=1; AC_SUBST([HAVE_GETSUBOPT])
  108. HAVE_GRANTPT=1; AC_SUBST([HAVE_GRANTPT])
  109. HAVE_INITSTATE=1; AC_SUBST([HAVE_INITSTATE])
  110. HAVE_DECL_INITSTATE=1; AC_SUBST([HAVE_DECL_INITSTATE])
  111. HAVE_MBTOWC=1; AC_SUBST([HAVE_MBTOWC])
  112. HAVE_MKDTEMP=1; AC_SUBST([HAVE_MKDTEMP])
  113. HAVE_MKOSTEMP=1; AC_SUBST([HAVE_MKOSTEMP])
  114. HAVE_MKOSTEMPS=1; AC_SUBST([HAVE_MKOSTEMPS])
  115. HAVE_MKSTEMP=1; AC_SUBST([HAVE_MKSTEMP])
  116. HAVE_MKSTEMPS=1; AC_SUBST([HAVE_MKSTEMPS])
  117. HAVE_POSIX_MEMALIGN=1; AC_SUBST([HAVE_POSIX_MEMALIGN])
  118. HAVE_POSIX_OPENPT=1; AC_SUBST([HAVE_POSIX_OPENPT])
  119. HAVE_PTSNAME=1; AC_SUBST([HAVE_PTSNAME])
  120. HAVE_PTSNAME_R=1; AC_SUBST([HAVE_PTSNAME_R])
  121. HAVE_QSORT_R=1; AC_SUBST([HAVE_QSORT_R])
  122. HAVE_RANDOM=1; AC_SUBST([HAVE_RANDOM])
  123. HAVE_RANDOM_H=1; AC_SUBST([HAVE_RANDOM_H])
  124. HAVE_RANDOM_R=1; AC_SUBST([HAVE_RANDOM_R])
  125. HAVE_REALLOCARRAY=1; AC_SUBST([HAVE_REALLOCARRAY])
  126. HAVE_REALPATH=1; AC_SUBST([HAVE_REALPATH])
  127. HAVE_RPMATCH=1; AC_SUBST([HAVE_RPMATCH])
  128. HAVE_SECURE_GETENV=1; AC_SUBST([HAVE_SECURE_GETENV])
  129. HAVE_SETENV=1; AC_SUBST([HAVE_SETENV])
  130. HAVE_DECL_SETENV=1; AC_SUBST([HAVE_DECL_SETENV])
  131. HAVE_SETSTATE=1; AC_SUBST([HAVE_SETSTATE])
  132. HAVE_DECL_SETSTATE=1; AC_SUBST([HAVE_DECL_SETSTATE])
  133. HAVE_STRTOD=1; AC_SUBST([HAVE_STRTOD])
  134. HAVE_STRTOLD=1; AC_SUBST([HAVE_STRTOLD])
  135. HAVE_STRTOLL=1; AC_SUBST([HAVE_STRTOLL])
  136. HAVE_STRTOULL=1; AC_SUBST([HAVE_STRTOULL])
  137. HAVE_STRUCT_RANDOM_DATA=1; AC_SUBST([HAVE_STRUCT_RANDOM_DATA])
  138. HAVE_SYS_LOADAVG_H=0; AC_SUBST([HAVE_SYS_LOADAVG_H])
  139. HAVE_UNLOCKPT=1; AC_SUBST([HAVE_UNLOCKPT])
  140. HAVE_DECL_UNSETENV=1; AC_SUBST([HAVE_DECL_UNSETENV])
  141. REPLACE_ALIGNED_ALLOC=0; AC_SUBST([REPLACE_ALIGNED_ALLOC])
  142. REPLACE_CALLOC=0; AC_SUBST([REPLACE_CALLOC])
  143. REPLACE_CANONICALIZE_FILE_NAME=0; AC_SUBST([REPLACE_CANONICALIZE_FILE_NAME])
  144. REPLACE_FREE=0; AC_SUBST([REPLACE_FREE])
  145. REPLACE_INITSTATE=0; AC_SUBST([REPLACE_INITSTATE])
  146. REPLACE_MALLOC=0; AC_SUBST([REPLACE_MALLOC])
  147. REPLACE_MBTOWC=0; AC_SUBST([REPLACE_MBTOWC])
  148. REPLACE_MKSTEMP=0; AC_SUBST([REPLACE_MKSTEMP])
  149. REPLACE_POSIX_MEMALIGN=0; AC_SUBST([REPLACE_POSIX_MEMALIGN])
  150. REPLACE_PTSNAME=0; AC_SUBST([REPLACE_PTSNAME])
  151. REPLACE_PTSNAME_R=0; AC_SUBST([REPLACE_PTSNAME_R])
  152. REPLACE_PUTENV=0; AC_SUBST([REPLACE_PUTENV])
  153. REPLACE_QSORT_R=0; AC_SUBST([REPLACE_QSORT_R])
  154. REPLACE_RANDOM=0; AC_SUBST([REPLACE_RANDOM])
  155. REPLACE_RANDOM_R=0; AC_SUBST([REPLACE_RANDOM_R])
  156. REPLACE_REALLOC=0; AC_SUBST([REPLACE_REALLOC])
  157. REPLACE_REALPATH=0; AC_SUBST([REPLACE_REALPATH])
  158. REPLACE_SETENV=0; AC_SUBST([REPLACE_SETENV])
  159. REPLACE_SETSTATE=0; AC_SUBST([REPLACE_SETSTATE])
  160. REPLACE_STRTOD=0; AC_SUBST([REPLACE_STRTOD])
  161. REPLACE_STRTOLD=0; AC_SUBST([REPLACE_STRTOLD])
  162. REPLACE_UNSETENV=0; AC_SUBST([REPLACE_UNSETENV])
  163. REPLACE_WCTOMB=0; AC_SUBST([REPLACE_WCTOMB])
  164. ])