File:  [ELWIX - Embedded LightWeight unIX -] / embedaddon / libiconv / srcm4 / stddef_h.m4
Revision 1.1.1.2 (vendor branch): download - view: text, annotated - select for diffs - revision graph
Wed Mar 17 13:38:46 2021 UTC (3 years, 4 months ago) by misho
Branches: libiconv, MAIN
CVS tags: v1_16p0, HEAD
libiconv 1.16

    1: dnl A placeholder for <stddef.h>, for platforms that have issues.
    2: # stddef_h.m4 serial 6
    3: dnl Copyright (C) 2009-2019 Free Software Foundation, Inc.
    4: dnl This file is free software; the Free Software Foundation
    5: dnl gives unlimited permission to copy and/or distribute it,
    6: dnl with or without modifications, as long as this notice is preserved.
    7: 
    8: AC_DEFUN([gl_STDDEF_H],
    9: [
   10:   AC_REQUIRE([gl_STDDEF_H_DEFAULTS])
   11:   AC_REQUIRE([gt_TYPE_WCHAR_T])
   12:   STDDEF_H=
   13: 
   14:   dnl Test whether the type max_align_t exists and whether its alignment
   15:   dnl "is as great as is supported by the implementation in all contexts".
   16:   AC_CACHE_CHECK([for good max_align_t],
   17:     [gl_cv_type_max_align_t],
   18:     [AC_COMPILE_IFELSE(
   19:        [AC_LANG_PROGRAM(
   20:           [[#include <stddef.h>
   21:             unsigned int s = sizeof (max_align_t);
   22:             #if defined __GNUC__ || defined __IBM__ALIGNOF__
   23:             int check1[2 * (__alignof__ (double) <= __alignof__ (max_align_t)) - 1];
   24:             int check2[2 * (__alignof__ (long double) <= __alignof__ (max_align_t)) - 1];
   25:             #endif
   26:           ]])],
   27:        [gl_cv_type_max_align_t=yes],
   28:        [gl_cv_type_max_align_t=no])
   29:     ])
   30:   if test $gl_cv_type_max_align_t = no; then
   31:     HAVE_MAX_ALIGN_T=0
   32:     STDDEF_H=stddef.h
   33:   fi
   34: 
   35:   if test $gt_cv_c_wchar_t = no; then
   36:     HAVE_WCHAR_T=0
   37:     STDDEF_H=stddef.h
   38:   fi
   39: 
   40:   AC_CACHE_CHECK([whether NULL can be used in arbitrary expressions],
   41:     [gl_cv_decl_null_works],
   42:     [AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <stddef.h>
   43:       int test[2 * (sizeof NULL == sizeof (void *)) -1];
   44: ]])],
   45:       [gl_cv_decl_null_works=yes],
   46:       [gl_cv_decl_null_works=no])])
   47:   if test $gl_cv_decl_null_works = no; then
   48:     REPLACE_NULL=1
   49:     STDDEF_H=stddef.h
   50:   fi
   51: 
   52:   AC_SUBST([STDDEF_H])
   53:   AM_CONDITIONAL([GL_GENERATE_STDDEF_H], [test -n "$STDDEF_H"])
   54:   if test -n "$STDDEF_H"; then
   55:     gl_NEXT_HEADERS([stddef.h])
   56:   fi
   57: ])
   58: 
   59: AC_DEFUN([gl_STDDEF_MODULE_INDICATOR],
   60: [
   61:   dnl Use AC_REQUIRE here, so that the default settings are expanded once only.
   62:   AC_REQUIRE([gl_STDDEF_H_DEFAULTS])
   63:   gl_MODULE_INDICATOR_SET_VARIABLE([$1])
   64: ])
   65: 
   66: AC_DEFUN([gl_STDDEF_H_DEFAULTS],
   67: [
   68:   dnl Assume proper GNU behavior unless another module says otherwise.
   69:   REPLACE_NULL=0;                AC_SUBST([REPLACE_NULL])
   70:   HAVE_MAX_ALIGN_T=1;            AC_SUBST([HAVE_MAX_ALIGN_T])
   71:   HAVE_WCHAR_T=1;                AC_SUBST([HAVE_WCHAR_T])
   72: ])

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>