diff options
author | Jim Meyering <jim@meyering.net> | 1998-10-18 01:08:22 +0000 |
---|---|---|
committer | Jim Meyering <jim@meyering.net> | 1998-10-18 01:08:22 +0000 |
commit | ec936db8d7fbc6576dd94c6a2621e59da894b63a (patch) | |
tree | fb82e7551a562c2ff80da0372e278895e02c1fdf /m4 | |
parent | 2b69ce2d89a9b573ac96cbc5266101accc4a294e (diff) | |
download | coreutils-ec936db8d7fbc6576dd94c6a2621e59da894b63a.tar.xz |
(jm_CHECK_DECLS): Reflect interface change.
(jm_CHECK_DECL_LOCALTIME_R): New macro.
Diffstat (limited to 'm4')
-rw-r--r-- | m4/check-decl.m4 | 62 |
1 files changed, 60 insertions, 2 deletions
diff --git a/m4/check-decl.m4 b/m4/check-decl.m4 index eb8faa277..e8bb16c88 100644 --- a/m4/check-decl.m4 +++ b/m4/check-decl.m4 @@ -1,10 +1,29 @@ -#serial 2 +#serial 3 dnl This is just a wrapper function to encapsulate this kludge. dnl Putting it in a separate file like this helps share it between dnl different packages. AC_DEFUN(jm_CHECK_DECLS, [ + headers=' +#include <stdio.h> +#ifdef HAVE_STRING_H +# if !STDC_HEADERS && HAVE_MEMORY_H +# include <memory.h> +# endif +# include <string.h> +#else +# ifdef HAVE_STRINGS_H +# include <strings.h> +# endif +#endif +#ifdef HAVE_STDLIB_H +# include <stdlib.h> +#endif +#ifdef HAVE_UNISTD_H +# include <unistd.h> +#endif +' if test x = y; then dnl This code is deliberately never run via ./configure. dnl FIXME: this is a gross hack to make autoheader put entries @@ -14,5 +33,44 @@ AC_DEFUN(jm_CHECK_DECLS, AC_CHECK_FUNCS(DECL_FREE DECL_LSEEK DECL_MALLOC DECL_MEMCHR DECL_REALLOC \ DECL_STPCPY DECL_STRSTR) fi - jm_CHECK_DECLARATIONS(free lseek malloc memchr realloc stpcpy strstr) + jm_CHECK_DECLARATIONS($headers, free lseek malloc \ + memchr realloc stpcpy strstr) + + # Check for a declaration of localtime_r. + jm_CHECK_DECL_LOCALTIME_R +]) + +dnl localtime_r is a special case... +dnl Code that uses the result of this test must use the same cpp +dnl directives as are used below. Also include the following declaration +dnl after the inclusion of time.h. +dnl +dnl #if ! defined HAVE_DECL_LOCALTIME_R +dnl extern struct tm* localtime_r (); +dnl #endif +AC_DEFUN(jm_CHECK_DECL_LOCALTIME_R, +[ + if test x = y; then + dnl This code is deliberately never run via ./configure. + dnl FIXME: this is a gross hack to make autoheader put entries + dnl for each of these symbols in the config.h.in. + dnl Otherwise, I'd have to update acconfig.h every time I change + dnl this list of functions. + AC_CHECK_FUNCS(DECL_LOCALTIME_R) + fi + + headers=' +/* Some systems need this in order to declare localtime_r properly. */ +#ifndef __EXTENSIONS__ +# define __EXTENSIONS__ 1 +#endif + +#if HAVE_UNISTD_H +# include <unistd.h> +#endif + +#include <sys/types.h> +#include <time.h> +' + jm_CHECK_DECLARATIONS($headers, localtime_r) ]) |