2024-05-11 20:16:48 +00:00
|
|
|
# limits-h.m4
|
|
|
|
# serial 1
|
2024-01-02 01:47:10 +00:00
|
|
|
dnl Copyright 2016-2024 Free Software Foundation, Inc.
|
2016-09-15 18:50:23 +00:00
|
|
|
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.
|
|
|
|
|
2024-05-11 20:16:48 +00:00
|
|
|
dnl Check whether limits.h has needed features.
|
|
|
|
|
2016-09-15 18:50:23 +00:00
|
|
|
dnl From Paul Eggert.
|
|
|
|
|
|
|
|
AC_DEFUN_ONCE([gl_LIMITS_H],
|
|
|
|
[
|
|
|
|
gl_CHECK_NEXT_HEADERS([limits.h])
|
|
|
|
|
Update from Gnulib
Make the following changes by hand, and run 'admin/merge-gnulib'.
* .gitignore: Add lib/malloc/*.gl.h.
* admin/merge-gnulib: Copy lib/af_alg.h and lib/save-cwd.h
directly from Gnulib, without worrying about Gnulib modules,
as these files are special cases.
(AVOIDED_MODULES): Remove malloc-posix.
* lib/malloc.c, lib/realloc.c, m4/malloc.m4, m4/realloc.m4:
* m4/year2038.m4: New files, copied from Gnulib.
* lib/malloca.c, lib/malloca.h:
* m4/close-stream.m4, m4/glibc21.m4, m4/malloca.m4:
Remove. These are either no longer present in Gnulib, or are no
longer needed by modules that Emacs uses.
* oldXMenu/AddPane.c, oldXmenu/Addsel.c: Include XmenuInt.h first;
needed for new Gnulib.
* src/xmenu.c: Call emacs_abort, not abort.
2021-10-04 19:11:39 +00:00
|
|
|
AC_CACHE_CHECK([whether limits.h has WORD_BIT, BOOL_WIDTH etc.],
|
2016-09-15 18:50:23 +00:00
|
|
|
[gl_cv_header_limits_width],
|
|
|
|
[AC_COMPILE_IFELSE(
|
Update from Gnulib
This incorporates:
2018-09-10 timespec: fix resolution confusion
2018-09-09 mktime: simplify in prep for glibc merge
2018-09-07 intprops: minor clarification of code
2018-09-06 stddef: Override max_align_t on NetBSD 8.0/x86
2018-09-06 fcntl: Fix F_DUPFD_CLOEXEC behaviour on Haiku
2018-09-06 strtoll, strtoull: Rely on limits-h module
2018-09-06 limits-h: Provide numerical limits macros
2018-09-06 fcntl: Don't access nonexistent optional argument
2018-09-02 mktime: fix unlikely race+overflow bug
2018-08-31 mktime, timegm: simplify glibc time64_t
2018-08-31 mktime, timegm: simplify merge to glibc
* build-aux/config.guess, build-aux/config.sub:
* lib/dtotimespec.c, lib/fcntl.c, lib/intprops.h:
* lib/limits.in.h, lib/mktime-internal.h, lib/mktime.c:
* lib/stat-time.h, lib/strtol.c, lib/timegm.c:
* lib/timespec-add.c, lib/timespec-sub.c, lib/timespec.h:
* lib/utimens.c, m4/limits-h.m4, m4/stddef_h.m4:
Copy from Gnulib.
2018-09-11 04:16:03 +00:00
|
|
|
[AC_LANG_PROGRAM(
|
|
|
|
[[#ifndef __STDC_WANT_IEC_60559_BFP_EXT__
|
|
|
|
#define __STDC_WANT_IEC_60559_BFP_EXT__ 1
|
|
|
|
#endif
|
|
|
|
#include <limits.h>
|
|
|
|
long long llm = LLONG_MAX;
|
|
|
|
int wb = WORD_BIT;
|
|
|
|
int ullw = ULLONG_WIDTH;
|
Update from Gnulib
Make the following changes by hand, and run 'admin/merge-gnulib'.
* .gitignore: Add lib/malloc/*.gl.h.
* admin/merge-gnulib: Copy lib/af_alg.h and lib/save-cwd.h
directly from Gnulib, without worrying about Gnulib modules,
as these files are special cases.
(AVOIDED_MODULES): Remove malloc-posix.
* lib/malloc.c, lib/realloc.c, m4/malloc.m4, m4/realloc.m4:
* m4/year2038.m4: New files, copied from Gnulib.
* lib/malloca.c, lib/malloca.h:
* m4/close-stream.m4, m4/glibc21.m4, m4/malloca.m4:
Remove. These are either no longer present in Gnulib, or are no
longer needed by modules that Emacs uses.
* oldXMenu/AddPane.c, oldXmenu/Addsel.c: Include XmenuInt.h first;
needed for new Gnulib.
* src/xmenu.c: Call emacs_abort, not abort.
2021-10-04 19:11:39 +00:00
|
|
|
int bw = BOOL_WIDTH;
|
2023-02-26 01:01:22 +00:00
|
|
|
int bm = BOOL_MAX;
|
2023-05-15 01:51:22 +00:00
|
|
|
int mblm = MB_LEN_MAX;
|
Update from Gnulib
This incorporates:
2018-09-10 timespec: fix resolution confusion
2018-09-09 mktime: simplify in prep for glibc merge
2018-09-07 intprops: minor clarification of code
2018-09-06 stddef: Override max_align_t on NetBSD 8.0/x86
2018-09-06 fcntl: Fix F_DUPFD_CLOEXEC behaviour on Haiku
2018-09-06 strtoll, strtoull: Rely on limits-h module
2018-09-06 limits-h: Provide numerical limits macros
2018-09-06 fcntl: Don't access nonexistent optional argument
2018-09-02 mktime: fix unlikely race+overflow bug
2018-08-31 mktime, timegm: simplify glibc time64_t
2018-08-31 mktime, timegm: simplify merge to glibc
* build-aux/config.guess, build-aux/config.sub:
* lib/dtotimespec.c, lib/fcntl.c, lib/intprops.h:
* lib/limits.in.h, lib/mktime-internal.h, lib/mktime.c:
* lib/stat-time.h, lib/strtol.c, lib/timegm.c:
* lib/timespec-add.c, lib/timespec-sub.c, lib/timespec.h:
* lib/utimens.c, m4/limits-h.m4, m4/stddef_h.m4:
Copy from Gnulib.
2018-09-11 04:16:03 +00:00
|
|
|
]])],
|
2016-09-15 18:50:23 +00:00
|
|
|
[gl_cv_header_limits_width=yes],
|
|
|
|
[gl_cv_header_limits_width=no])])
|
2023-06-07 19:00:15 +00:00
|
|
|
GL_GENERATE_LIMITS_H=true
|
|
|
|
AS_IF([test "$gl_cv_header_limits_width" = yes],
|
|
|
|
[AC_CACHE_CHECK([whether limits.h has SSIZE_MAX],
|
|
|
|
[gl_cv_header_limits_ssize_max],
|
|
|
|
[AC_COMPILE_IFELSE(
|
|
|
|
[AC_LANG_SOURCE(
|
|
|
|
[[#include <limits.h>
|
|
|
|
#ifndef SSIZE_MAX
|
|
|
|
#error "SSIZE_MAX is not defined"
|
|
|
|
#endif
|
|
|
|
]])],
|
|
|
|
[gl_cv_header_limits_ssize_max=yes],
|
|
|
|
[gl_cv_header_limits_ssize_max=no])])
|
|
|
|
if test "$gl_cv_header_limits_ssize_max" = yes; then
|
|
|
|
GL_GENERATE_LIMITS_H=false
|
|
|
|
fi])
|
2016-09-15 18:50:23 +00:00
|
|
|
])
|
2018-08-28 01:59:46 +00:00
|
|
|
|
|
|
|
dnl Unconditionally enables the replacement of <limits.h>.
|
|
|
|
AC_DEFUN([gl_REPLACE_LIMITS_H],
|
|
|
|
[
|
|
|
|
AC_REQUIRE([gl_LIMITS_H])
|
2021-12-19 00:12:38 +00:00
|
|
|
GL_GENERATE_LIMITS_H=true
|
2018-08-28 01:59:46 +00:00
|
|
|
])
|