This patch makes a single generated <stdint.h> work for both 32-bit and 64-bit builds simultaneously.
2008-12-25 Bruno Haible <br...@clisp.org> Add support for universal builds to <stdint.h>. * lib/stdint.in.h (PDFDIFF_MIN, PTRDIFF_MAX, SIZE_MAX): In Apple universal builds, define directly, using _LP64. * m4/stdint.m4 (gl_STDINT_TYPE_PROPERTIES): Require gl_MULTIARCH. In Apple universal builds, don't test for the size and suffix of ptrdiff_t and size_t. * modules/stdint (Depends-on): Add multiarch. (Makefile.am): Substitute APPLE_UNIVERSAL_BUILD. *** lib/stdint.in.h.orig 2008-12-25 19:27:05.000000000 +0100 --- lib/stdint.in.h 2008-12-25 18:59:38.000000000 +0100 *************** *** 443,452 **** /* ptrdiff_t limits */ #undef PTRDIFF_MIN #undef PTRDIFF_MAX ! #define PTRDIFF_MIN \ ! _STDINT_MIN (1, @BITSIZEOF_PTRDIFF_T@, 0...@ptrdiff_t_suffix@) ! #define PTRDIFF_MAX \ ! _STDINT_MAX (1, @BITSIZEOF_PTRDIFF_T@, 0...@ptrdiff_t_suffix@) /* sig_atomic_t limits */ #undef SIG_ATOMIC_MIN --- 443,462 ---- /* ptrdiff_t limits */ #undef PTRDIFF_MIN #undef PTRDIFF_MAX ! #if @APPLE_UNIVERSAL_BUILD@ ! # if _LP64 ! # define PTRDIFF_MIN _STDINT_MIN (1, 64, 0l) ! # define PTRDIFF_MAX _STDINT_MAX (1, 64, 0l) ! # else ! # define PTRDIFF_MIN _STDINT_MIN (1, 32, 0) ! # define PTRDIFF_MAX _STDINT_MAX (1, 32, 0) ! # endif ! #else ! # define PTRDIFF_MIN \ ! _STDINT_MIN (1, @BITSIZEOF_PTRDIFF_T@, 0...@ptrdiff_t_suffix@) ! # define PTRDIFF_MAX \ ! _STDINT_MAX (1, @BITSIZEOF_PTRDIFF_T@, 0...@ptrdiff_t_suffix@) ! #endif /* sig_atomic_t limits */ #undef SIG_ATOMIC_MIN *************** *** 461,467 **** /* size_t limit */ #undef SIZE_MAX ! #define SIZE_MAX _STDINT_MAX (0, @BITSIZEOF_SIZE_T@, 0...@size_t_suffix@) /* wchar_t limits */ #undef WCHAR_MIN --- 471,485 ---- /* size_t limit */ #undef SIZE_MAX ! #if @APPLE_UNIVERSAL_BUILD@ ! # if _LP64 ! # define SIZE_MAX _STDINT_MAX (0, 64, 0ul) ! # else ! # define SIZE_MAX _STDINT_MAX (0, 32, 0ul) ! # endif ! #else ! # define SIZE_MAX _STDINT_MAX (0, @BITSIZEOF_SIZE_T@, 0...@size_t_suffix@) ! #endif /* wchar_t limits */ #undef WCHAR_MIN *** m4/stdint.m4.orig 2008-12-25 19:27:05.000000000 +0100 --- m4/stdint.m4 2008-12-25 19:09:05.000000000 +0100 *************** *** 1,4 **** ! # stdint.m4 serial 31 dnl Copyright (C) 2001-2008 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, --- 1,4 ---- ! # stdint.m4 serial 32 dnl Copyright (C) 2001-2008 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, *************** *** 373,385 **** dnl of interest to stdint.in.h. AC_DEFUN([gl_STDINT_TYPE_PROPERTIES], [ ! gl_STDINT_BITSIZEOF([ptrdiff_t sig_atomic_t size_t wchar_t wint_t], [gl_STDINT_INCLUDES]) gl_CHECK_TYPES_SIGNED([sig_atomic_t wchar_t wint_t], [gl_STDINT_INCLUDES]) gl_cv_type_ptrdiff_t_signed=yes gl_cv_type_size_t_signed=no ! gl_INTEGER_TYPE_SUFFIX([ptrdiff_t sig_atomic_t size_t wchar_t wint_t], [gl_STDINT_INCLUDES]) ]) --- 373,394 ---- dnl of interest to stdint.in.h. AC_DEFUN([gl_STDINT_TYPE_PROPERTIES], [ ! AC_REQUIRE([gl_MULTIARCH]) ! if test $APPLE_UNIVERSAL_BUILD = 0; then ! gl_STDINT_BITSIZEOF([ptrdiff_t size_t], ! [gl_STDINT_INCLUDES]) ! fi ! gl_STDINT_BITSIZEOF([sig_atomic_t wchar_t wint_t], [gl_STDINT_INCLUDES]) gl_CHECK_TYPES_SIGNED([sig_atomic_t wchar_t wint_t], [gl_STDINT_INCLUDES]) gl_cv_type_ptrdiff_t_signed=yes gl_cv_type_size_t_signed=no ! if test $APPLE_UNIVERSAL_BUILD = 0; then ! gl_INTEGER_TYPE_SUFFIX([ptrdiff_t size_t], ! [gl_STDINT_INCLUDES]) ! fi ! gl_INTEGER_TYPE_SUFFIX([sig_atomic_t wchar_t wint_t], [gl_STDINT_INCLUDES]) ]) *** modules/stdint.orig 2008-12-25 19:27:05.000000000 +0100 --- modules/stdint 2008-12-25 19:07:23.000000000 +0100 *************** *** 13,18 **** --- 13,19 ---- Depends-on: include_next + multiarch wchar configure.ac: *************** *** 36,41 **** --- 37,43 ---- -e 's/@''HAVE_SYS_BITYPES_H''@/$(HAVE_SYS_BITYPES_H)/g' \ -e 's/@''HAVE_LONG_LONG_INT''@/$(HAVE_LONG_LONG_INT)/g' \ -e 's/@''HAVE_UNSIGNED_LONG_LONG_INT''@/$(HAVE_UNSIGNED_LONG_LONG_INT)/g' \ + -e 's/@''APPLE_UNIVERSAL_BUILD''@/$(APPLE_UNIVERSAL_BUILD)/g' \ -e 's/@''BITSIZEOF_PTRDIFF_T''@/$(BITSIZEOF_PTRDIFF_T)/g' \ -e 's/@''PTRDIFF_T_SUFFIX''@/$(PTRDIFF_T_SUFFIX)/g' \ -e 's/@''BITSIZEOF_SIG_ATOMIC_T''@/$(BITSIZEOF_SIG_ATOMIC_T)/g' \