public inbox for gcc-patches@gcc.gnu.org
 help / color / mirror / Atom feed
* Re: [patch]: Add check for stdint header
@ 2009-09-04 12:48 Tobias Burnus
  2009-09-04 12:53 ` Kai Tietz
  0 siblings, 1 reply; 21+ messages in thread
From: Tobias Burnus @ 2009-09-04 12:48 UTC (permalink / raw)
  To: gcc patches, Paolo Bonzini, Richard Guenther, Kai Tietz,
	Richard Henderson, Ralf Wildenhues

Paolo Bonzini wrote:
> You can use GCC_STDINT_TYPES (new in this version) instead of
> GCC_HEADER_STDINT since GCC does not need int_leastNN_t and int_fastNN_t.

That is not completely true. The Fortran front end needs to know the
storage size of the int_{least,fast}*_t in order to make the
c_int_{least,fast}*_t kind parameters available in the ISO_C_BINDING
module (for interoperability with C). The size needs to match the one on
the target system in order that C and Fortran can interoperate.

I have not checked whether the change affects this (cf.
gcc/fortran/iso-c-binding.def and users of this file), but one should
check this before submittal.

Tobias

^ permalink raw reply	[flat|nested] 21+ messages in thread

* Re: [patch]: Add check for stdint header
  2009-09-04 12:48 [patch]: Add check for stdint header Tobias Burnus
@ 2009-09-04 12:53 ` Kai Tietz
  2009-09-04 13:18   ` Tobias Burnus
  0 siblings, 1 reply; 21+ messages in thread
From: Kai Tietz @ 2009-09-04 12:53 UTC (permalink / raw)
  To: Tobias Burnus
  Cc: gcc patches, Paolo Bonzini, Richard Guenther, Richard Henderson,
	Ralf Wildenhues

2009/9/4 Tobias Burnus <burnus@net-b.de>:
> Paolo Bonzini wrote:
>> You can use GCC_STDINT_TYPES (new in this version) instead of
>> GCC_HEADER_STDINT since GCC does not need int_leastNN_t and int_fastNN_t.
>
> That is not completely true. The Fortran front end needs to know the
> storage size of the int_{least,fast}*_t in order to make the
> c_int_{least,fast}*_t kind parameters available in the ISO_C_BINDING
> module (for interoperability with C). The size needs to match the one on
> the target system in order that C and Fortran can interoperate.
>
> I have not checked whether the change affects this (cf.
> gcc/fortran/iso-c-binding.def and users of this file), but one should
> check this before submittal.
>
> Tobias
>

Well, I bootstrapped this with Paolo's stdint.m4 patch, and it worked
on linux32 and linux64 (i386), and for x86_64-pc-mingw32, too.

Just out of curiosity, who is the size in gfortran frontend for
int_{least,fast}*_t done, as for gcc until now no stdint.h/inttypes.h
file was used?

Kai

-- 
|  (\_/) This is Bunny. Copy and paste
| (='.'=) Bunny into your signature to help
| (")_(") him gain world domination

^ permalink raw reply	[flat|nested] 21+ messages in thread

* Re: [patch]: Add check for stdint header
  2009-09-04 12:53 ` Kai Tietz
@ 2009-09-04 13:18   ` Tobias Burnus
  2009-09-04 13:27     ` Paolo Bonzini
  0 siblings, 1 reply; 21+ messages in thread
From: Tobias Burnus @ 2009-09-04 13:18 UTC (permalink / raw)
  To: Kai Tietz
  Cc: gcc patches, Paolo Bonzini, Richard Guenther, Richard Henderson,
	Ralf Wildenhues

On 09/04/2009 02:52 PM, Kai Tietz wrote:
> Well, I bootstrapped this with Paolo's stdint.m4 patch, and it
> workedon linux32 and linux64 (i386), and for x86_64-pc-mingw32, too.
> Just out of curiosity, who is the size in gfortran frontend for
> int_{least,fast}*_t done, as for gcc until now no stdint.h/inttypes.h
> file was used?
>   

Actually, I do not know how exactly it works ... I now checked - and
here is how it works:

In gcc/fortran/ one calls:
   TYPE_PRECISION (type)
for INT_FAST64_TYPE etc.  The defaults are set in
  gcc/default.h

For instance:
  #ifndef INT_FAST64_TYPE
  #define INT_FAST64_TYPE ((const char *) NULL)
  #endif

And the INT_*_TYPE definitions can seemingly found in
config/*/*stdint.h. For instance:
./i386/cygwin-stdint.h:#define INT_FAST64_TYPE "long long int"
./i386/mingw-stdint.h:#define INT_FAST64_TYPE "long long int"
./glibc-stdint.h:#define INT_FAST64_TYPE (LONG_TYPE_SIZE == 64 ? "long
int" : "long long int")

Thus, stdint.h is not directly involved and the patch should have no
(adverse) effect on gfortran's c_int_fast*_t support.

Tobias

^ permalink raw reply	[flat|nested] 21+ messages in thread

* Re: [patch]: Add check for stdint header
  2009-09-04 13:18   ` Tobias Burnus
@ 2009-09-04 13:27     ` Paolo Bonzini
  2009-09-04 14:07       ` Kai Tietz
  2009-09-06 10:00       ` Ralf Wildenhues
  0 siblings, 2 replies; 21+ messages in thread
From: Paolo Bonzini @ 2009-09-04 13:27 UTC (permalink / raw)
  To: Tobias Burnus
  Cc: Kai Tietz, gcc patches, Richard Guenther, Richard Henderson,
	Ralf Wildenhues

[-- Attachment #1: Type: text/plain, Size: 1748 bytes --]

On 09/04/2009 03:17 PM, Tobias Burnus wrote:
> On 09/04/2009 02:52 PM, Kai Tietz wrote:
>> Well, I bootstrapped this with Paolo's stdint.m4 patch, and it
>> workedon linux32 and linux64 (i386), and for x86_64-pc-mingw32, too.
>> Just out of curiosity, who is the size in gfortran frontend for
>> int_{least,fast}*_t done, as for gcc until now no stdint.h/inttypes.h
>> file was used?
>
> Actually, I do not know how exactly it works ... I now checked - and
> here is how it works:
>
> In gcc/fortran/ one calls:
>     TYPE_PRECISION (type)
> for INT_FAST64_TYPE etc.  The defaults are set in
>    gcc/default.h
>
> For instance:
>    #ifndef INT_FAST64_TYPE
>    #define INT_FAST64_TYPE ((const char *) NULL)
>    #endif
>
> And the INT_*_TYPE definitions can seemingly found in
> config/*/*stdint.h. For instance:
> ./i386/cygwin-stdint.h:#define INT_FAST64_TYPE "long long int"
> ./i386/mingw-stdint.h:#define INT_FAST64_TYPE "long long int"
> ./glibc-stdint.h:#define INT_FAST64_TYPE (LONG_TYPE_SIZE == 64 ? "long
> int" : "long long int")
>
> Thus, stdint.h is not directly involved and the patch should have no
> (adverse) effect on gfortran's c_int_fast*_t support.

Yes, the stdint.h we're talking about is for the host.  libgfortran 
(where the GCC target is actually the host, as in all target libraries) 
does not use int_fast and int_least.  Only the front-end itself cares, 
but it uses info from the target configuration headers.

Actually I'm pretty sure that stdint.h is not needed in the GCC tree 
only the intNN_t types (managed by GCC_STDINT_TYPES.  But since 
GCC_HEADER_STDINT is used by bfd too and I didn't want Kai to mess up 
with bfd, I provided it in my stdint.m4 rewrite.

Here is the latest and greatest version.

Paolo

[-- Attachment #2: stdint.m4 --]
[-- Type: text/plain, Size: 2591 bytes --]

AC_DEFUN([GCC_STDINT_TYPES],
[AC_REQUIRE([AC_TYPE_INT8_T])
AC_REQUIRE([AC_TYPE_INT16_T])
AC_REQUIRE([AC_TYPE_INT32_T])
AC_REQUIRE([AC_TYPE_INT64_T])
AC_REQUIRE([AC_TYPE_INTMAX_T])
AC_REQUIRE([AC_TYPE_INTPTR_T])
AC_REQUIRE([AC_TYPE_UINT8_T])
AC_REQUIRE([AC_TYPE_UINT16_T])
AC_REQUIRE([AC_TYPE_UINT32_T])
AC_REQUIRE([AC_TYPE_UINT64_T])
AC_REQUIRE([AC_TYPE_UINTMAX_T])
AC_REQUIRE([AC_TYPE_UINTPTR_T])])

AC_DEFUN([GCC_HEADER_STDINT],
[AC_REQUIRE([GCC_STDINT_TYPES])
AC_CHECK_TYPES([int_least32_t, int_fast32_t],,,[#include <sys/types.h>
#ifdef HAVE_STDINT_H
#include <stdint.h>
#endif
#ifdef HAVE_INTTYPES_H
#include <inttypes.h>
#endif])

# ----------------- Summarize what we found so far

m4_define([_GCC_STDINT_H], m4_ifval($1, $1, _stdint.h))
m4_if(m4_bmatch(m4_quote(/_GCC_STDINT_H),
                /stdint\.h$, bad,
                /inttypes\.h$, bad, ok), bad,
      [m4_fatal([cannot overwrite ]m4_quote(_GCC_STDINT_H))])

# ----------------- done all checks, emit header -------------
AC_CONFIG_COMMANDS(_GCC_STDINT_H, [
cat >> tmp-stdint.h <<EOF
#ifndef GCC_GENERATED_STDINT_H
#define GCC_GENERATED_STDINT_H 1

#include "config.h"
#include <sys/types.h>
#ifdef HAVE_STDINT_H
#include <stdint.h>
#endif
#ifdef HAVE_INTTYPES_H
#include <inttypes.h>
#endif
EOF

if test "$ac_cv_type_int_least32_t" != yes; then
  sed 's/^ *//' >> tmp-stdint.h <<EOF

    /* Define int_least types */
    typedef int8_t     int_least8_t;
    typedef int16_t    int_least16_t;
    typedef int32_t    int_least32_t;
    typedef int64_t    int_least64_t;

    typedef uint8_t    uint_least8_t;
    typedef uint16_t   uint_least16_t;
    typedef uint32_t   uint_least32_t;
    typedef uint64_t   uint_least64_t;
EOF
fi

if test "$ac_cv_type_int_fast32_t" != yes; then
  dnl NOTE: The following code assumes that sizeof (int) > 1.
  dnl Fix when strange machines are reported.
  sed 's/^ *//' >> tmp-stdint.h <<EOF

    /* Define int_fast types.  short is often slow */
    typedef int8_t       int_fast8_t;
    typedef int          int_fast16_t;
    typedef int32_t      int_fast32_t;
    typedef int64_t      int_fast64_t;

    typedef uint8_t      uint_fast8_t;
    typedef unsigned int uint_fast16_t;
    typedef uint32_t     uint_fast32_t;
    typedef uint64_t     uint_fast64_t;
EOF
fi

echo '#endif /* GCC_GENERATED_STDINT_H */' >> tmp-stdint.h

if test -r ]_GCC_STDINT_H[ && cmp -s tmp-stdint.h ]_GCC_STDINT_H[; then
  rm -f tmp-stdint.h
else
  mv -f tmp-stdint.h ]_GCC_STDINT_H[
fi

], [
ac_cv_type_int_least32_t="$ac_cv_type_int_least32_t"
ac_cv_type_int_fast32_t="$ac_cv_type_int_fast32_t"
])

])

^ permalink raw reply	[flat|nested] 21+ messages in thread

* Re: [patch]: Add check for stdint header
  2009-09-04 13:27     ` Paolo Bonzini
@ 2009-09-04 14:07       ` Kai Tietz
  2009-09-05 12:41         ` Paolo Bonzini
  2009-09-06 10:00       ` Ralf Wildenhues
  1 sibling, 1 reply; 21+ messages in thread
From: Kai Tietz @ 2009-09-04 14:07 UTC (permalink / raw)
  To: Paolo Bonzini
  Cc: Tobias Burnus, gcc patches, Richard Guenther, Richard Henderson,
	Ralf Wildenhues

[-- Attachment #1: Type: text/plain, Size: 982 bytes --]

ChangeLog config

2009-09-04  Paolo Bonzini  <bonzini@gnu.org>

	* stdint.m4: Rewrite by using autoconf 2.64 features.

ChangeLog gcc

2009-09-04  Kai Tietz  <kai.tietz@onevision.com>

	* config.in (HAVE_STDINT_H): New undef.
	(HAVE_INTTYPES_H): New undef.
	(HAVE_UINTPTR_T): New undef.
	(HAVE_INTPTR_T): New undef.
	(uintptr_t): New undef.
	(intptr_t): New undef.
	* configure.ac (GCC_STDINT_TYPES): Initialize intptr_t,
	uintptr_t, HAVE_INTTYPE_H, HAVE_STDINT_H, HAVE_UINTPTR_T,
	and HAVE_INTPTR_T.
	* configure: Regenerated.
	* system.h (stdint.h): Add include.
	(inttypes.h): Likewise.
	* Makefile.in (aclocal): Add config/stdint.m4.
	* aclocal.m4: Regenerated.

Here this the new revised version, which uses Paolo's greatest version
of stdint.m4. Tested for x86_64-pc-linux, i386-pc-mingw32, and
x86_64-pc-mingw32. Ok for apply after trunk melts?


Kai

-- 
|  (\_/) This is Bunny. Copy and paste
| (='.'=) Bunny into your signature to help
| (")_(") him gain world domination

[-- Attachment #2: stdint.diff --]
[-- Type: text/x-diff, Size: 20072 bytes --]

Index: gcc/config/stdint.m4
===================================================================
--- gcc.orig/config/stdint.m4	2009-09-04 15:04:07.366681000 +0200
+++ gcc/config/stdint.m4	2009-09-04 15:31:03.485681500 +0200
@@ -1,440 +1,51 @@
-dnl @synopsis GCC_HEADER_STDINT [( HEADER-TO-GENERATE [, HEADERS-TO-CHECK])]
-dnl
-dnl the "ISO C9X: 7.18 Integer types <stdint.h>" section requires the
-dnl existence of an include file <stdint.h> that defines a set of
-dnl typedefs, especially uint8_t,int32_t,uintptr_t.
-dnl Many older installations will not provide this file, but some will
-dnl have the very same definitions in <inttypes.h>. In other enviroments
-dnl we can use the inet-types in <sys/types.h> which would define the
-dnl typedefs int8_t and u_int8_t respectivly.
-dnl
-dnl This macros will create a local "_stdint.h" or the headerfile given as
-dnl an argument. In many cases that file will pick the definition from a
-dnl "#include <stdint.h>" or "#include <inttypes.h>" statement, while
-dnl in other environments it will provide the set of basic 'stdint's defined:
-dnl int8_t,uint8_t,int16_t,uint16_t,int32_t,uint32_t,intptr_t,uintptr_t
-dnl int_least32_t.. int_fast32_t.. intmax_t
-dnl which may or may not rely on the definitions of other files.
-dnl
-dnl Sometimes the stdint.h or inttypes.h headers conflict with sys/types.h,
-dnl so we test the headers together with sys/types.h and always include it
-dnl into the generated header (to match the tests with the generated file).
-dnl Hopefully this is not a big annoyance.
-dnl
-dnl If your installed header files require the stdint-types you will want to
-dnl create an installable file mylib-int.h that all your other installable
-dnl header may include. So, for a library package named "mylib", just use
-dnl      GCC_HEADER_STDINT(mylib-int.h)
-dnl in configure.in and install that header file in Makefile.am along with
-dnl the other headers (mylib.h).  The mylib-specific headers can simply
-dnl use "#include <mylib-int.h>" to obtain the stdint-types.
-dnl
-dnl Remember, if the system already had a valid <stdint.h>, the generated
-dnl file will include it directly. No need for fuzzy HAVE_STDINT_H things...
-dnl
-dnl @author  Guido Draheim <guidod@gmx.de>, Paolo Bonzini <bonzini@gnu.org>
+AC_DEFUN([GCC_STDINT_TYPES],
+[AC_REQUIRE([AC_TYPE_INT8_T])
+AC_REQUIRE([AC_TYPE_INT16_T])
+AC_REQUIRE([AC_TYPE_INT32_T])
+AC_REQUIRE([AC_TYPE_INT64_T])
+AC_REQUIRE([AC_TYPE_INTMAX_T])
+AC_REQUIRE([AC_TYPE_INTPTR_T])
+AC_REQUIRE([AC_TYPE_UINT8_T])
+AC_REQUIRE([AC_TYPE_UINT16_T])
+AC_REQUIRE([AC_TYPE_UINT32_T])
+AC_REQUIRE([AC_TYPE_UINT64_T])
+AC_REQUIRE([AC_TYPE_UINTMAX_T])
+AC_REQUIRE([AC_TYPE_UINTPTR_T])])
 
 AC_DEFUN([GCC_HEADER_STDINT],
-[m4_define(_GCC_STDINT_H, m4_ifval($1, $1, _stdint.h))
-
-inttype_headers=`echo inttypes.h sys/inttypes.h $2 | sed -e 's/,/ /g'`
-
-acx_cv_header_stdint=stddef.h
-acx_cv_header_stdint_kind="(already complete)"
-for i in stdint.h $inttype_headers; do
-  unset ac_cv_type_uintptr_t
-  unset ac_cv_type_uintmax_t
-  unset ac_cv_type_int_least32_t
-  unset ac_cv_type_int_fast32_t
-  unset ac_cv_type_uint64_t
-  _AS_ECHO_N([looking for a compliant stdint.h in $i, ])
-  AC_CHECK_TYPE(uintmax_t,[acx_cv_header_stdint=$i],continue,[#include <sys/types.h>
-#include <$i>])
-  AC_CHECK_TYPE(uintptr_t,,[acx_cv_header_stdint_kind="(mostly complete)"], [#include <sys/types.h>
-#include <$i>])
-  AC_CHECK_TYPE(int_least32_t,,[acx_cv_header_stdint_kind="(mostly complete)"], [#include <sys/types.h>
-#include <$i>])
-  AC_CHECK_TYPE(int_fast32_t,,[acx_cv_header_stdint_kind="(mostly complete)"], [#include <sys/types.h>
-#include <$i>])
-  AC_CHECK_TYPE(uint64_t,,[acx_cv_header_stdint_kind="(lacks uint64_t)"], [#include <sys/types.h>
-#include <$i>])
-  break
-done
-if test "$acx_cv_header_stdint" = stddef.h; then
-  acx_cv_header_stdint_kind="(lacks uintmax_t)"
-  for i in stdint.h $inttype_headers; do
-    unset ac_cv_type_uintptr_t
-    unset ac_cv_type_uint32_t
-    unset ac_cv_type_uint64_t
-    _AS_ECHO_N([looking for an incomplete stdint.h in $i, ])
-    AC_CHECK_TYPE(uint32_t,[acx_cv_header_stdint=$i],continue,[#include <sys/types.h>
-#include <$i>])
-    AC_CHECK_TYPE(uint64_t,,,[#include <sys/types.h>
-#include <$i>])
-    AC_CHECK_TYPE(uintptr_t,,,[#include <sys/types.h>
-#include <$i>])
-    break
-  done
-fi
-if test "$acx_cv_header_stdint" = stddef.h; then
-  acx_cv_header_stdint_kind="(u_intXX_t style)"
-  for i in sys/types.h $inttype_headers; do
-    unset ac_cv_type_u_int32_t
-    unset ac_cv_type_u_int64_t
-    _AS_ECHO_N([looking for u_intXX_t types in $i, ])
-    AC_CHECK_TYPE(u_int32_t,[acx_cv_header_stdint=$i],continue,[#include <sys/types.h>
-#include <$i>])
-    AC_CHECK_TYPE(u_int64_t,,,[#include <sys/types.h>
-#include <$i>])
-    break
-  done
-fi
-if test "$acx_cv_header_stdint" = stddef.h; then
-  acx_cv_header_stdint_kind="(using manual detection)"
-fi
-
-test -z "$ac_cv_type_uintptr_t" && ac_cv_type_uintptr_t=no
-test -z "$ac_cv_type_uint64_t" && ac_cv_type_uint64_t=no
-test -z "$ac_cv_type_u_int64_t" && ac_cv_type_u_int64_t=no
-test -z "$ac_cv_type_int_least32_t" && ac_cv_type_int_least32_t=no
-test -z "$ac_cv_type_int_fast32_t" && ac_cv_type_int_fast32_t=no
+[AC_REQUIRE([GCC_STDINT_TYPES])
+AC_CHECK_TYPES([int_least32_t, int_fast32_t],,,[#include <sys/types.h>
+#ifdef HAVE_STDINT_H
+#include <stdint.h>
+#endif
+#ifdef HAVE_INTTYPES_H
+#include <inttypes.h>
+#endif])
 
 # ----------------- Summarize what we found so far
 
-AC_MSG_CHECKING([what to include in _GCC_STDINT_H])
-
-case `AS_BASENAME(_GCC_STDINT_H)` in
-  stdint.h) AC_MSG_WARN([are you sure you want it there?]) ;;
-  inttypes.h) AC_MSG_WARN([are you sure you want it there?]) ;;
-  *) ;;
-esac
-
-AC_MSG_RESULT($acx_cv_header_stdint $acx_cv_header_stdint_kind)
-
-# ----------------- done included file, check C basic types --------
-
-# Lacking an uintptr_t?  Test size of void *
-case "$acx_cv_header_stdint:$ac_cv_type_uintptr_t" in
-  stddef.h:* | *:no) AC_CHECK_SIZEOF(void *) ;;
-esac
-
-# Lacking an uint64_t?  Test size of long
-case "$acx_cv_header_stdint:$ac_cv_type_uint64_t:$ac_cv_type_u_int64_t" in
-  stddef.h:*:* | *:no:no) AC_CHECK_SIZEOF(long) ;;
-esac
-
-if test $acx_cv_header_stdint = stddef.h; then
-  # Lacking a good header?  Test size of everything and deduce all types.
-  AC_CHECK_SIZEOF(int)
-  AC_CHECK_SIZEOF(short)
-  AC_CHECK_SIZEOF(char)
-
-  AC_MSG_CHECKING(for type equivalent to int8_t)
-  case "$ac_cv_sizeof_char" in
-    1) acx_cv_type_int8_t=char ;;
-    *) AC_MSG_ERROR(no 8-bit type, please report a bug)
-  esac
-  AC_MSG_RESULT($acx_cv_type_int8_t)
-
-  AC_MSG_CHECKING(for type equivalent to int16_t)
-  case "$ac_cv_sizeof_int:$ac_cv_sizeof_short" in
-    2:*) acx_cv_type_int16_t=int ;;
-    *:2) acx_cv_type_int16_t=short ;;
-    *) AC_MSG_ERROR(no 16-bit type, please report a bug)
-  esac
-  AC_MSG_RESULT($acx_cv_type_int16_t)
-
-  AC_MSG_CHECKING(for type equivalent to int32_t)
-  case "$ac_cv_sizeof_int:$ac_cv_sizeof_long" in
-    4:*) acx_cv_type_int32_t=int ;;
-    *:4) acx_cv_type_int32_t=long ;;
-    *) AC_MSG_ERROR(no 32-bit type, please report a bug)
-  esac
-  AC_MSG_RESULT($acx_cv_type_int32_t)
-fi
-
-# These tests are here to make the output prettier
-
-if test "$ac_cv_type_uint64_t" != yes && test "$ac_cv_type_u_int64_t" != yes; then
-  case "$ac_cv_sizeof_long" in
-    8) acx_cv_type_int64_t=long ;;
-  esac
-  AC_MSG_CHECKING(for type equivalent to int64_t)
-  AC_MSG_RESULT(${acx_cv_type_int64_t-'using preprocessor symbols'})
-fi
-
-# Now we can use the above types
-
-if test "$ac_cv_type_uintptr_t" != yes; then
-  AC_MSG_CHECKING(for type equivalent to intptr_t)
-  case $ac_cv_sizeof_void_p in
-    2) acx_cv_type_intptr_t=int16_t ;;
-    4) acx_cv_type_intptr_t=int32_t ;;
-    8) acx_cv_type_intptr_t=int64_t ;;
-    *) AC_MSG_ERROR(no equivalent for intptr_t, please report a bug)
-  esac
-  AC_MSG_RESULT($acx_cv_type_intptr_t)
-fi
+m4_define([_GCC_STDINT_H], m4_ifval($1, $1, _stdint.h))
+m4_if(m4_bmatch(m4_quote(/_GCC_STDINT_H),
+                /stdint\.h$, bad,
+                /inttypes\.h$, bad, ok), bad,
+      [m4_fatal([cannot overwrite ]m4_quote(_GCC_STDINT_H))])
 
 # ----------------- done all checks, emit header -------------
 AC_CONFIG_COMMANDS(_GCC_STDINT_H, [
-if test "$GCC" = yes; then
-  echo "/* generated for " `$CC --version | sed 1q` "*/" > tmp-stdint.h
-else
-  echo "/* generated for $CC */" > tmp-stdint.h
-fi
-
-sed 's/^ *//' >> tmp-stdint.h <<EOF
-
-  #ifndef GCC_GENERATED_STDINT_H
-  #define GCC_GENERATED_STDINT_H 1
-
-  #include <sys/types.h>
-EOF
-
-if test "$acx_cv_header_stdint" != stdint.h; then
-  echo "#include <stddef.h>" >> tmp-stdint.h
-fi
-if test "$acx_cv_header_stdint" != stddef.h; then
-  echo "#include <$acx_cv_header_stdint>" >> tmp-stdint.h
-fi
-
-sed 's/^ *//' >> tmp-stdint.h <<EOF
-  /* glibc uses these symbols as guards to prevent redefinitions.  */
-  #ifdef __int8_t_defined
-  #define _INT8_T
-  #define _INT16_T
-  #define _INT32_T
-  #endif
-  #ifdef __uint32_t_defined
-  #define _UINT32_T
-  #endif
-
+cat >> tmp-stdint.h <<EOF
+#ifndef GCC_GENERATED_STDINT_H
+#define GCC_GENERATED_STDINT_H 1
+
+#include "config.h"
+#include <sys/types.h>
+#ifdef HAVE_STDINT_H
+#include <stdint.h>
+#endif
+#ifdef HAVE_INTTYPES_H
+#include <inttypes.h>
+#endif
 EOF
 
-# ----------------- done header, emit basic int types -------------
-if test "$acx_cv_header_stdint" = stddef.h; then
-  sed 's/^ *//' >> tmp-stdint.h <<EOF
-
-    #ifndef _UINT8_T
-    #define _UINT8_T
-    #ifndef __uint8_t_defined
-    #define __uint8_t_defined
-    typedef unsigned $acx_cv_type_int8_t uint8_t;
-    #endif
-    #endif
-
-    #ifndef _UINT16_T
-    #define _UINT16_T
-    #ifndef __uint16_t_defined
-    #define __uint16_t_defined
-    typedef unsigned $acx_cv_type_int16_t uint16_t;
-    #endif
-    #endif
-
-    #ifndef _UINT32_T
-    #define _UINT32_T
-    #ifndef __uint32_t_defined
-    #define __uint32_t_defined
-    typedef unsigned $acx_cv_type_int32_t uint32_t;
-    #endif
-    #endif
-
-    #ifndef _INT8_T
-    #define _INT8_T
-    #ifndef __int8_t_defined
-    #define __int8_t_defined
-    typedef $acx_cv_type_int8_t int8_t;
-    #endif
-    #endif
-
-    #ifndef _INT16_T
-    #define _INT16_T
-    #ifndef __int16_t_defined
-    #define __int16_t_defined
-    typedef $acx_cv_type_int16_t int16_t;
-    #endif
-    #endif
-
-    #ifndef _INT32_T
-    #define _INT32_T
-    #ifndef __int32_t_defined
-    #define __int32_t_defined
-    typedef $acx_cv_type_int32_t int32_t;
-    #endif
-    #endif
-EOF
-elif test "$ac_cv_type_u_int32_t" = yes; then
-  sed 's/^ *//' >> tmp-stdint.h <<EOF
-
-    /* int8_t int16_t int32_t defined by inet code, we do the u_intXX types */
-    #ifndef _INT8_T
-    #define _INT8_T
-    #endif
-    #ifndef _INT16_T
-    #define _INT16_T
-    #endif
-    #ifndef _INT32_T
-    #define _INT32_T
-    #endif
-
-    #ifndef _UINT8_T
-    #define _UINT8_T
-    #ifndef __uint8_t_defined
-    #define __uint8_t_defined
-    typedef u_int8_t uint8_t;
-    #endif
-    #endif
-
-    #ifndef _UINT16_T
-    #define _UINT16_T
-    #ifndef __uint16_t_defined
-    #define __uint16_t_defined
-    typedef u_int16_t uint16_t;
-    #endif
-    #endif
-
-    #ifndef _UINT32_T
-    #define _UINT32_T
-    #ifndef __uint32_t_defined
-    #define __uint32_t_defined
-    typedef u_int32_t uint32_t;
-    #endif
-    #endif
-EOF
-else
-  sed 's/^ *//' >> tmp-stdint.h <<EOF
-
-    /* Some systems have guard macros to prevent redefinitions, define them.  */
-    #ifndef _INT8_T
-    #define _INT8_T
-    #endif
-    #ifndef _INT16_T
-    #define _INT16_T
-    #endif
-    #ifndef _INT32_T
-    #define _INT32_T
-    #endif
-    #ifndef _UINT8_T
-    #define _UINT8_T
-    #endif
-    #ifndef _UINT16_T
-    #define _UINT16_T
-    #endif
-    #ifndef _UINT32_T
-    #define _UINT32_T
-    #endif
-EOF
-fi
-
-# ------------- done basic int types, emit int64_t types ------------
-if test "$ac_cv_type_uint64_t" = yes; then
-  sed 's/^ *//' >> tmp-stdint.h <<EOF
-
-    /* system headers have good uint64_t and int64_t */
-    #ifndef _INT64_T
-    #define _INT64_T
-    #endif
-    #ifndef _UINT64_T
-    #define _UINT64_T
-    #endif
-EOF
-elif test "$ac_cv_type_u_int64_t" = yes; then
-  sed 's/^ *//' >> tmp-stdint.h <<EOF
-
-    /* system headers have an u_int64_t (and int64_t) */
-    #ifndef _INT64_T
-    #define _INT64_T
-    #endif
-    #ifndef _UINT64_T
-    #define _UINT64_T
-    #ifndef __uint64_t_defined
-    #define __uint64_t_defined
-    typedef u_int64_t uint64_t;
-    #endif
-    #endif
-EOF
-elif test -n "$acx_cv_type_int64_t"; then
-  sed 's/^ *//' >> tmp-stdint.h <<EOF
-
-    /* architecture has a 64-bit type, $acx_cv_type_int64_t */
-    #ifndef _INT64_T
-    #define _INT64_T
-    typedef $acx_cv_type_int64_t int64_t;
-    #endif
-    #ifndef _UINT64_T
-    #define _UINT64_T
-    #ifndef __uint64_t_defined
-    #define __uint64_t_defined
-    typedef unsigned $acx_cv_type_int64_t uint64_t;
-    #endif
-    #endif
-EOF
-else
-  sed 's/^ *//' >> tmp-stdint.h <<EOF
-
-    /* some common heuristics for int64_t, using compiler-specific tests */
-    #if defined __STDC_VERSION__ && (__STDC_VERSION__-0) >= 199901L
-    #ifndef _INT64_T
-    #define _INT64_T
-    #ifndef __int64_t_defined
-    typedef long long int64_t;
-    #endif
-    #endif
-    #ifndef _UINT64_T
-    #define _UINT64_T
-    typedef unsigned long long uint64_t;
-    #endif
-
-    #elif defined __GNUC__ && defined (__STDC__) && __STDC__-0
-    /* NextStep 2.0 cc is really gcc 1.93 but it defines __GNUC__ = 2 and
-       does not implement __extension__.  But that compiler doesn't define
-       __GNUC_MINOR__.  */
-    # if __GNUC__ < 2 || (__NeXT__ && !__GNUC_MINOR__)
-    # define __extension__
-    # endif
-
-    # ifndef _INT64_T
-    # define _INT64_T
-    __extension__ typedef long long int64_t;
-    # endif
-    # ifndef _UINT64_T
-    # define _UINT64_T
-    __extension__ typedef unsigned long long uint64_t;
-    # endif
-
-    #elif !defined __STRICT_ANSI__
-    # if defined _MSC_VER || defined __WATCOMC__ || defined __BORLANDC__
-
-    #  ifndef _INT64_T
-    #  define _INT64_T
-    typedef __int64 int64_t;
-    #  endif
-    #  ifndef _UINT64_T
-    #  define _UINT64_T
-    typedef unsigned __int64 uint64_t;
-    #  endif
-    # endif /* compiler */
-
-    #endif /* ANSI version */
-EOF
-fi
-
-# ------------- done int64_t types, emit intptr types ------------
-if test "$ac_cv_type_uintptr_t" != yes; then
-  sed 's/^ *//' >> tmp-stdint.h <<EOF
-
-    /* Define intptr_t based on sizeof(void*) = $ac_cv_sizeof_void_p */
-    #ifndef __uintptr_t_defined
-    typedef u$acx_cv_type_intptr_t uintptr_t;
-    #endif
-    #ifndef __intptr_t_defined
-    typedef $acx_cv_type_intptr_t  intptr_t;
-    #endif
-EOF
-fi
-
-# ------------- done intptr types, emit int_least types ------------
 if test "$ac_cv_type_int_least32_t" != yes; then
   sed 's/^ *//' >> tmp-stdint.h <<EOF
 
@@ -442,20 +53,15 @@
     typedef int8_t     int_least8_t;
     typedef int16_t    int_least16_t;
     typedef int32_t    int_least32_t;
-    #ifdef _INT64_T
     typedef int64_t    int_least64_t;
-    #endif
 
     typedef uint8_t    uint_least8_t;
     typedef uint16_t   uint_least16_t;
     typedef uint32_t   uint_least32_t;
-    #ifdef _UINT64_T
     typedef uint64_t   uint_least64_t;
-    #endif
 EOF
 fi
 
-# ------------- done intptr types, emit int_fast types ------------
 if test "$ac_cv_type_int_fast32_t" != yes; then
   dnl NOTE: The following code assumes that sizeof (int) > 1.
   dnl Fix when strange machines are reported.
@@ -465,40 +71,16 @@
     typedef int8_t       int_fast8_t;
     typedef int          int_fast16_t;
     typedef int32_t      int_fast32_t;
-    #ifdef _INT64_T
     typedef int64_t      int_fast64_t;
-    #endif
 
     typedef uint8_t      uint_fast8_t;
     typedef unsigned int uint_fast16_t;
     typedef uint32_t     uint_fast32_t;
-    #ifdef _UINT64_T
     typedef uint64_t     uint_fast64_t;
-    #endif
-EOF
-fi
-
-if test "$ac_cv_type_uintmax_t" != yes; then
-  sed 's/^ *//' >> tmp-stdint.h <<EOF
-
-    /* Define intmax based on what we found */
-    #ifdef _INT64_T
-    typedef int64_t       intmax_t;
-    #else
-    typedef long          intmax_t;
-    #endif
-    #ifdef _UINT64_T
-    typedef uint64_t      uintmax_t;
-    #else
-    typedef unsigned long uintmax_t;
-    #endif
 EOF
 fi
 
-sed 's/^ *//' >> tmp-stdint.h <<EOF
-
-  #endif /* GCC_GENERATED_STDINT_H */
-EOF
+echo '#endif /* GCC_GENERATED_STDINT_H */' >> tmp-stdint.h
 
 if test -r ]_GCC_STDINT_H[ && cmp -s tmp-stdint.h ]_GCC_STDINT_H[; then
   rm -f tmp-stdint.h
@@ -507,22 +89,8 @@
 fi
 
 ], [
-GCC="$GCC"
-CC="$CC"
-acx_cv_header_stdint="$acx_cv_header_stdint"
-acx_cv_type_int8_t="$acx_cv_type_int8_t"
-acx_cv_type_int16_t="$acx_cv_type_int16_t"
-acx_cv_type_int32_t="$acx_cv_type_int32_t"
-acx_cv_type_int64_t="$acx_cv_type_int64_t"
-acx_cv_type_intptr_t="$acx_cv_type_intptr_t"
-ac_cv_type_uintmax_t="$ac_cv_type_uintmax_t"
-ac_cv_type_uintptr_t="$ac_cv_type_uintptr_t"
-ac_cv_type_uint64_t="$ac_cv_type_uint64_t"
-ac_cv_type_u_int64_t="$ac_cv_type_u_int64_t"
-ac_cv_type_u_int32_t="$ac_cv_type_u_int32_t"
 ac_cv_type_int_least32_t="$ac_cv_type_int_least32_t"
 ac_cv_type_int_fast32_t="$ac_cv_type_int_fast32_t"
-ac_cv_sizeof_void_p="$ac_cv_sizeof_void_p"
 ])
 
 ])
Index: gcc/gcc/Makefile.in
===================================================================
--- gcc.orig/gcc/Makefile.in	2009-09-04 15:04:07.386681000 +0200
+++ gcc/gcc/Makefile.in	2009-09-04 15:30:51.056681500 +0200
@@ -1621,6 +1621,7 @@
 	$(srcdir)/../config/lib-prefix.m4 \
 	$(srcdir)/../config/override.m4 \
 	$(srcdir)/../config/progtest.m4 \
+        $(srcdir)/../config/stdint.m4 \
 	$(srcdir)/../config/unwind_ipinfo.m4 \
 	$(srcdir)/../config/warnings.m4 \
 	$(srcdir)/acinclude.m4
Index: gcc/gcc/aclocal.m4
===================================================================
--- gcc.orig/gcc/aclocal.m4	2009-09-04 15:04:07.372681000 +0200
+++ gcc/gcc/aclocal.m4	2009-09-04 15:30:51.061681500 +0200
@@ -114,6 +114,7 @@
 m4_include([../config/lib-prefix.m4])
 m4_include([../config/override.m4])
 m4_include([../config/progtest.m4])
+m4_include([../config/stdint.m4])
 m4_include([../config/unwind_ipinfo.m4])
 m4_include([../config/warnings.m4])
 m4_include([acinclude.m4])
Index: gcc/gcc/config.in
===================================================================
--- gcc.orig/gcc/config.in	2009-09-04 15:04:07.376681000 +0200
+++ gcc/gcc/config.in	2009-09-04 15:30:51.066681500 +0200
@@ -1144,6 +1144,29 @@
 #undef HAVE_MALLOC_H
 #endif
 
+#ifndef USED_FOR_TARGET
+#undef HAVE_STDINT_H
+#endif
+
+#ifndef USED_FOR_TARGET
+#undef HAVE_INTTYPES_H
+#endif
+
+#ifndef USED_FOR_TARGET
+#undef HAVE_UINTPTR_T
+#endif
+
+#ifndef USED_FOR_TARGET
+#undef HAVE_INTPTR_T
+#endif
+
+#ifndef USED_FOR_TARGET
+#undef uintptr_t
+#endif
+
+#ifndef USED_FOR_TARGET
+#undef intptr_t
+#endif
 
 /* Define to 1 if you have the `mbstowcs' function. */
 #ifndef USED_FOR_TARGET
Index: gcc/gcc/configure.ac
===================================================================
--- gcc.orig/gcc/configure.ac	2009-09-04 15:04:07.381681000 +0200
+++ gcc/gcc/configure.ac	2009-09-04 15:30:51.073681500 +0200
@@ -311,6 +311,7 @@
 AC_CHECK_SIZEOF(long)
 AC_CHECK_TYPES([long long], [AC_CHECK_SIZEOF(long long)])
 AC_CHECK_TYPES([__int64], [AC_CHECK_SIZEOF(__int64)])
+GCC_STDINT_TYPES
 
 # ---------------------
 # Warnings and checking
Index: gcc/gcc/system.h
===================================================================
--- gcc.orig/gcc/system.h	2009-09-04 15:04:07.391681000 +0200
+++ gcc/gcc/system.h	2009-09-04 15:30:51.077681500 +0200
@@ -414,6 +414,14 @@
 extern void *realloc (void *, size_t);
 #endif
 
+#ifdef HAVE_STDINT_H
+#include <stdint.h>
+#endif
+
+#ifdef HAVE_INTTYPE_H
+#include <inttypes.h>
+#endif
+
 /* If the system doesn't provide strsignal, we get it defined in
    libiberty but no declaration is supplied.  */
 #if !defined (HAVE_STRSIGNAL) \

^ permalink raw reply	[flat|nested] 21+ messages in thread

* Re: [patch]: Add check for stdint header
  2009-09-04 14:07       ` Kai Tietz
@ 2009-09-05 12:41         ` Paolo Bonzini
  2009-09-08 15:22           ` Kai Tietz
  0 siblings, 1 reply; 21+ messages in thread
From: Paolo Bonzini @ 2009-09-05 12:41 UTC (permalink / raw)
  To: Kai Tietz
  Cc: Tobias Burnus, gcc patches, Richard Guenther, Richard Henderson,
	Ralf Wildenhues

In system.h:

+#ifdef HAVE_INTTYPE_H

typo (HAVE_INTTYPES_H)

>        * config.in (HAVE_STDINT_H): New undef.
>        (HAVE_INTTYPES_H): New undef.
>        (HAVE_UINTPTR_T): New undef.
>        (HAVE_INTPTR_T): New undef.
>        (uintptr_t): New undef.
>        (intptr_t): New undef.

Just regenerate this with autoheader.

Ok for trunk at the end of the slush, thanks.

Paolo

^ permalink raw reply	[flat|nested] 21+ messages in thread

* Re: [patch]: Add check for stdint header
  2009-09-04 13:27     ` Paolo Bonzini
  2009-09-04 14:07       ` Kai Tietz
@ 2009-09-06 10:00       ` Ralf Wildenhues
  2009-09-07  6:51         ` Paolo Bonzini
  1 sibling, 1 reply; 21+ messages in thread
From: Ralf Wildenhues @ 2009-09-06 10:00 UTC (permalink / raw)
  To: Paolo Bonzini; +Cc: Kai Tietz, gcc patches

* Paolo Bonzini wrote on Fri, Sep 04, 2009 at 03:27:15PM CEST:
> # ----------------- done all checks, emit header -------------
> AC_CONFIG_COMMANDS(_GCC_STDINT_H, [
> cat >> tmp-stdint.h <<EOF

Hmm, maybe
  cat > tmp-stdint.h <<EOF

to avoid clutter when an old such file is lying around?

(Autoconf should document that config.status provides a $tmp directory
that is cleaned up by a trap, and that config commands can use, if they
use their own namespace below there.)

Cheers,
Ralf

^ permalink raw reply	[flat|nested] 21+ messages in thread

* Re: [patch]: Add check for stdint header
  2009-09-06 10:00       ` Ralf Wildenhues
@ 2009-09-07  6:51         ` Paolo Bonzini
  0 siblings, 0 replies; 21+ messages in thread
From: Paolo Bonzini @ 2009-09-07  6:51 UTC (permalink / raw)
  To: Ralf Wildenhues, Kai Tietz, gcc patches

On 09/06/2009 12:00 PM, Ralf Wildenhues wrote:
> * Paolo Bonzini wrote on Fri, Sep 04, 2009 at 03:27:15PM CEST:
>> # ----------------- done all checks, emit header -------------
>> AC_CONFIG_COMMANDS(_GCC_STDINT_H, [
>> cat>>  tmp-stdint.h<<EOF
>
> Hmm, maybe
>    cat>  tmp-stdint.h<<EOF
>
> to avoid clutter when an old such file is lying around?

Yeah, though this is not a big problem because it happens only if you 
press Ctrl-C on config.status at the right moment.

> (Autoconf should document that config.status provides a $tmp directory
> that is cleaned up by a trap, and that config commands can use, if they
> use their own namespace below there.)

I'll clean this up after the slush finishes and Kai has committed his patch.

Paolo

^ permalink raw reply	[flat|nested] 21+ messages in thread

* Re: [patch]: Add check for stdint header
  2009-09-05 12:41         ` Paolo Bonzini
@ 2009-09-08 15:22           ` Kai Tietz
  0 siblings, 0 replies; 21+ messages in thread
From: Kai Tietz @ 2009-09-08 15:22 UTC (permalink / raw)
  To: Paolo Bonzini
  Cc: Tobias Burnus, gcc patches, Richard Guenther, Richard Henderson,
	Ralf Wildenhues

2009/9/5 Paolo Bonzini <bonzini@gnu.org>:
> In system.h:
>
> +#ifdef HAVE_INTTYPE_H
>
> typo (HAVE_INTTYPES_H)
>
>>        * config.in (HAVE_STDINT_H): New undef.
>>        (HAVE_INTTYPES_H): New undef.
>>        (HAVE_UINTPTR_T): New undef.
>>        (HAVE_INTPTR_T): New undef.
>>        (uintptr_t): New undef.
>>        (intptr_t): New undef.
>
> Just regenerate this with autoheader.
>
> Ok for trunk at the end of the slush, thanks.
>
> Paolo
>

Thank you, Patch is applied at revision 151514.

Cheers,
Kai

-- 
|  (\_/) This is Bunny. Copy and paste
| (='.'=) Bunny into your signature to help
| (")_(") him gain world domination

^ permalink raw reply	[flat|nested] 21+ messages in thread

* Re: [patch]: Add check for stdint header
  2009-09-04  9:57         ` Richard Guenther
  2009-09-04 10:36           ` Paolo Bonzini
@ 2009-09-06  9:57           ` Ralf Wildenhues
  1 sibling, 0 replies; 21+ messages in thread
From: Ralf Wildenhues @ 2009-09-06  9:57 UTC (permalink / raw)
  To: Richard Guenther; +Cc: Kai Tietz, GCC Patches, Richard Henderson

* Richard Guenther wrote on Fri, Sep 04, 2009 at 11:57:23AM CEST:
> I suppose the explicit check for stdint.h is not necessary and you need to
> cover for the case where inttypes.h provides the required definition.  See
> the autoconf manual which says
> 
>  -- Macro: AC_TYPE_INTPTR_T
>      If `stdint.h' or `inttypes.h' defines the type `intptr_t', define
>      `HAVE_INTPTR_T'.  Otherwise, define `intptr_t' to a signed integer
>      type wide enough to hold a pointer, if such a type exists.
> 
> I don't know what the canonical header inclusion case to use would be
> though.  Maybe Ralf knows.

FWIW (since I've been asked by name here) I can't see obvious issues
with the patches in this thread, but also, the GCC build system
maintainers know much better what is needed for GCC here than I do.

Using AC_TYPE_INTPTR_T outside of GCC, you'd include both inttypes.h
and stdint.h, if they are available; that's what the test does, too.

Cheers,
Ralf

^ permalink raw reply	[flat|nested] 21+ messages in thread

* Re: [patch]: Add check for stdint header
       [not found]                 ` <90baa01f0909040534g4ac57551se2e843b861c42a06@mail.gmail.com>
@ 2009-09-04 13:22                   ` Paolo Bonzini
  0 siblings, 0 replies; 21+ messages in thread
From: Paolo Bonzini @ 2009-09-04 13:22 UTC (permalink / raw)
  To: Kai Tietz, GCC Patches

On 09/04/2009 02:34 PM, Kai Tietz wrote:
> Can you file a patch for the stdlib.m4 file? When your patch is then
> approved and committed I can add mine, too.

[you meant stdint.m4]

Just include it in whatever patch you're working on.  Committing it is 
preapproved but I prefer not to do it without testing.

Paolo

^ permalink raw reply	[flat|nested] 21+ messages in thread

* Re: [patch]: Add check for stdint header
  2009-09-04 13:07 Tobias Burnus
@ 2009-09-04 13:18 ` Kai Tietz
  0 siblings, 0 replies; 21+ messages in thread
From: Kai Tietz @ 2009-09-04 13:18 UTC (permalink / raw)
  To: Tobias Burnus
  Cc: gcc patches, Paolo Bonzini, Richard Guenther, Richard Henderson,
	Ralf Wildenhues

2009/9/4 Tobias Burnus <burnus@net-b.de>:
> Paolo Bonzini wrote:
>> You can use GCC_STDINT_TYPES (new in this version) instead of
>> GCC_HEADER_STDINT since GCC does not need int_leastNN_t and int_fastNN_t.
>
> That is not completely true. The Fortran front end needs to know the
> storage size of the int_{least,fast}*_t in order to make the
> c_int_{least,fast}*_t kind parameters available in the ISO_C_BINDING
> module (for interoperability with C). The size needs to match the one on
> the target system in order that C and Fortran can interoperate.
>
> I have not checked whether the change affects this (cf.
> gcc/fortran/iso-c-binding.def and users of this file), but one should
> check this before submittal.
>
> Tobias
>

The fortan frontend file iso-c-binding.def depends on target type
nodes of gcc. These are covered by target's stdint definitions, and
not by the build system's stdint header. So there is no mixture
possible AFAIKS (as bootstrap had already shown, too).

Kai

-- 
|  (\_/) This is Bunny. Copy and paste
| (='.'=) Bunny into your signature to help
| (")_(") him gain world domination

^ permalink raw reply	[flat|nested] 21+ messages in thread

* Re: [patch]: Add check for stdint header
@ 2009-09-04 13:07 Tobias Burnus
  2009-09-04 13:18 ` Kai Tietz
  0 siblings, 1 reply; 21+ messages in thread
From: Tobias Burnus @ 2009-09-04 13:07 UTC (permalink / raw)
  To: gcc patches, Paolo Bonzini, Richard Guenther, Kai Tietz,
	Richard Henderson, Ralf Wildenhues

Paolo Bonzini wrote:
> You can use GCC_STDINT_TYPES (new in this version) instead of
> GCC_HEADER_STDINT since GCC does not need int_leastNN_t and int_fastNN_t.

That is not completely true. The Fortran front end needs to know the
storage size of the int_{least,fast}*_t in order to make the
c_int_{least,fast}*_t kind parameters available in the ISO_C_BINDING
module (for interoperability with C). The size needs to match the one on
the target system in order that C and Fortran can interoperate.

I have not checked whether the change affects this (cf.
gcc/fortran/iso-c-binding.def and users of this file), but one should
check this before submittal.

Tobias

^ permalink raw reply	[flat|nested] 21+ messages in thread

* Re: [patch]: Add check for stdint header
  2009-09-04  9:57         ` Richard Guenther
@ 2009-09-04 10:36           ` Paolo Bonzini
       [not found]             ` <4AA0EE5E.80204@gnu.org>
  2009-09-06  9:57           ` Ralf Wildenhues
  1 sibling, 1 reply; 21+ messages in thread
From: Paolo Bonzini @ 2009-09-04 10:36 UTC (permalink / raw)
  To: Richard Guenther
  Cc: Kai Tietz, GCC Patches, Richard Henderson, Ralf Wildenhues

[-- Attachment #1: Type: text/plain, Size: 969 bytes --]


> I suppose the explicit check for stdint.h is not necessary and you need to
> cover for the case where inttypes.h provides the required definition.  See
> the autoconf manual which says
>
>   -- Macro: AC_TYPE_INTPTR_T
>       If `stdint.h' or `inttypes.h' defines the type `intptr_t', define
>       `HAVE_INTPTR_T'.  Otherwise, define `intptr_t' to a signed integer
>       type wide enough to hold a pointer, if such a type exists.
>
> I don't know what the canonical header inclusion case to use would be
> though.  Maybe Ralf knows.

Since we now use Autoconf 2.64, you could also try the attached 
rewritten stdint.m4.

  stdint.m4 |  510 ++++--------------------------------------------------
  1 file changed, 39 insertions(+), 471 deletions(-)

:-)

You can use GCC_STDINT_TYPES (new in this version) instead of 
GCC_HEADER_STDINT since GCC does not need int_leastNN_t and int_fastNN_t.

Bonus points for using GCC_STDINT_TYPES elsewhere in the tree.

Paolo

[-- Attachment #2: stdint.m4 --]
[-- Type: text/plain, Size: 2584 bytes --]

AC_DEFUN([GCC_STDINT_TYPES],
[AC_REQUIRE([AC_TYPE_INT8_T])
AC_REQUIRE([AC_TYPE_INT16_T])
AC_REQUIRE([AC_TYPE_INT32_T])
AC_REQUIRE([AC_TYPE_INT64_T])
AC_REQUIRE([AC_TYPE_INTMAX_T])
AC_REQUIRE([AC_TYPE_INTPTR_T])
AC_REQUIRE([AC_TYPE_UINT8_T])
AC_REQUIRE([AC_TYPE_UINT16_T])
AC_REQUIRE([AC_TYPE_UINT32_T])
AC_REQUIRE([AC_TYPE_UINT64_T])
AC_REQUIRE([AC_TYPE_UINTMAX_T])
AC_REQUIRE([AC_TYPE_UINTPTR_T])])

AC_DEFUN([GCC_HEADER_STDINT],
[AC_REQUIRE([GCC_STDINT_TYPES])
AC_CHECK_TYPES([int_least32_t, int_fast32_t],,,[#include <sys/types.h>
#ifdef HAVE_STDINT_H
#include <stdint.h>
#endif
#ifdef HAVE_INTTYPES_H
#include <inttypes.h>
#endif])

# ----------------- Summarize what we found so far

m4_define([_GCC_STDINT_H], m4_ifval($1, $1, _stdint.h))
m4_if(m4_bmatch(m4_quote(_GCC_STDINT_H),
                /stdint\.h$, bad,
                /inttypes\.h$, bad, ok), bad,
      [m4_fatal([cannot overwrite _GCC_STDINT_H])])

# ----------------- done all checks, emit header -------------
AC_CONFIG_COMMANDS(_GCC_STDINT_H, [
cat *//' >> tmp-stdint.h <<EOF
#ifndef GCC_GENERATED_STDINT_H
#define GCC_GENERATED_STDINT_H 1

#include "config.h"
#include <sys/types.h>
#ifdef HAVE_STDINT_H
#include <stdint.h>
#endif
#ifdef HAVE_INTTYPES_H
#include <inttypes.h>
#endif
EOF

if test "$ac_cv_type_int_least32_t" != yes; then
  sed 's/^ *//' >> tmp-stdint.h <<EOF

    /* Define int_least types */
    typedef int8_t     int_least8_t;
    typedef int16_t    int_least16_t;
    typedef int32_t    int_least32_t;
    typedef int64_t    int_least64_t;

    typedef uint8_t    uint_least8_t;
    typedef uint16_t   uint_least16_t;
    typedef uint32_t   uint_least32_t;
    typedef uint64_t   uint_least64_t;
EOF
fi

if test "$ac_cv_type_int_fast32_t" != yes; then
  dnl NOTE: The following code assumes that sizeof (int) > 1.
  dnl Fix when strange machines are reported.
  sed 's/^ *//' >> tmp-stdint.h <<EOF

    /* Define int_fast types.  short is often slow */
    typedef int8_t       int_fast8_t;
    typedef int          int_fast16_t;
    typedef int32_t      int_fast32_t;
    typedef int64_t      int_fast64_t;

    typedef uint8_t      uint_fast8_t;
    typedef unsigned int uint_fast16_t;
    typedef uint32_t     uint_fast32_t;
    typedef uint64_t     uint_fast64_t;
EOF
fi

echo '#endif /* GCC_GENERATED_STDINT_H */' > tmp-stdint.h

if test -r ]_GCC_STDINT_H[ && cmp -s tmp-stdint.h ]_GCC_STDINT_H[; then
  rm -f tmp-stdint.h
else
  mv -f tmp-stdint.h ]_GCC_STDINT_H[
fi

], [
ac_cv_type_int_least32_t="$ac_cv_type_int_least32_t"
ac_cv_type_int_fast32_t="$ac_cv_type_int_fast32_t"
])

])

^ permalink raw reply	[flat|nested] 21+ messages in thread

* Re: [patch]: Add check for stdint header
  2009-09-04  7:49       ` Kai Tietz
@ 2009-09-04  9:57         ` Richard Guenther
  2009-09-04 10:36           ` Paolo Bonzini
  2009-09-06  9:57           ` Ralf Wildenhues
  0 siblings, 2 replies; 21+ messages in thread
From: Richard Guenther @ 2009-09-04  9:57 UTC (permalink / raw)
  To: Kai Tietz; +Cc: GCC Patches, Richard Henderson, Ralf Wildenhues

On Fri, Sep 4, 2009 at 9:49 AM, Kai Tietz<ktietz70@googlemail.com> wrote:
> 2009/9/3 Richard Guenther <richard.guenther@gmail.com>:
>> On Thu, Sep 3, 2009 at 1:05 PM, Kai Tietz<ktietz70@googlemail.com> wrote:
>>> 2009/9/3 Richard Guenther <richard.guenther@gmail.com>:
>>>> On Thu, Sep 3, 2009 at 12:18 AM, Kai Tietz<ktietz70@googlemail.com> wrote:
>>>>> Hello,
>>>>>
>>>>> this patch adds to gcc's system.h file the include of stdint.h file,
>>>>> if present. If it doesn't finds this header it defines uintptr_t as
>>>>> 'unsigned long' and intptr_t as 'long'.
>>>>
>>>> The toplevel already has support for creating a stdint comaptible header,
>>>> you should probably simply use that.  See config/stdint*.m4.
>>>>
>>>> Richard.
>>>
>>> Well, we could extend this, but autoconf 2.64 supports the
>>> AC_TYPE_UINTPTR_T and AC_TYPE_INTPTR_T, and defines the types
>>> uintptr_t & intptr_t (as macros) for hosts without stdint.h fine.
>>
>> I'd say use the exisitng support - it's already heavily used by target
>> libs which
>> just do
>>
>> GCC_HEADER_STDINT(gstdint.h)
>>
>> and then include gstdint.h instead of stdint.h.
>>
>> The question is of course if it works well enough for the host, but
>> you'll find out.
>>
>> Richard.
>
> Well, I tested things about it. There are two issues I found about the
> use of gstdint.h instead of using 2.64 UINTPTR_T and INPTR_T checks.
> First the gstdint.h needs to generated dependent and added to the
> include CFLAGS options, well this isn't hard. But by using it in
> system.h header all function decl checks seems to fail. I tested the
> other variant by using
> #ifdef HAVE_STDINT_H
> #include <stdint.h>
> #endif
> in system.h and it bootstraps on linux without issues.
>
> So I would like to use the previous patch without gstdint.h header for
> solving this issue.

I suppose the explicit check for stdint.h is not necessary and you need to
cover for the case where inttypes.h provides the required definition.  See
the autoconf manual which says

 -- Macro: AC_TYPE_INTPTR_T
     If `stdint.h' or `inttypes.h' defines the type `intptr_t', define
     `HAVE_INTPTR_T'.  Otherwise, define `intptr_t' to a signed integer
     type wide enough to hold a pointer, if such a type exists.

I don't know what the canonical header inclusion case to use would be
though.  Maybe Ralf knows.

Richard.

^ permalink raw reply	[flat|nested] 21+ messages in thread

* Re: [patch]: Add check for stdint header
  2009-09-03 11:10     ` Richard Guenther
@ 2009-09-04  7:49       ` Kai Tietz
  2009-09-04  9:57         ` Richard Guenther
  0 siblings, 1 reply; 21+ messages in thread
From: Kai Tietz @ 2009-09-04  7:49 UTC (permalink / raw)
  To: Richard Guenther; +Cc: GCC Patches, Richard Henderson

2009/9/3 Richard Guenther <richard.guenther@gmail.com>:
> On Thu, Sep 3, 2009 at 1:05 PM, Kai Tietz<ktietz70@googlemail.com> wrote:
>> 2009/9/3 Richard Guenther <richard.guenther@gmail.com>:
>>> On Thu, Sep 3, 2009 at 12:18 AM, Kai Tietz<ktietz70@googlemail.com> wrote:
>>>> Hello,
>>>>
>>>> this patch adds to gcc's system.h file the include of stdint.h file,
>>>> if present. If it doesn't finds this header it defines uintptr_t as
>>>> 'unsigned long' and intptr_t as 'long'.
>>>
>>> The toplevel already has support for creating a stdint comaptible header,
>>> you should probably simply use that.  See config/stdint*.m4.
>>>
>>> Richard.
>>
>> Well, we could extend this, but autoconf 2.64 supports the
>> AC_TYPE_UINTPTR_T and AC_TYPE_INTPTR_T, and defines the types
>> uintptr_t & intptr_t (as macros) for hosts without stdint.h fine.
>
> I'd say use the exisitng support - it's already heavily used by target
> libs which
> just do
>
> GCC_HEADER_STDINT(gstdint.h)
>
> and then include gstdint.h instead of stdint.h.
>
> The question is of course if it works well enough for the host, but
> you'll find out.
>
> Richard.

Well, I tested things about it. There are two issues I found about the
use of gstdint.h instead of using 2.64 UINTPTR_T and INPTR_T checks.
First the gstdint.h needs to generated dependent and added to the
include CFLAGS options, well this isn't hard. But by using it in
system.h header all function decl checks seems to fail. I tested the
other variant by using
#ifdef HAVE_STDINT_H
#include <stdint.h>
#endif
in system.h and it bootstraps on linux without issues.

So I would like to use the previous patch without gstdint.h header for
solving this issue.

Cheers,
Kai
-- 
|  (\_/) This is Bunny. Copy and paste
| (='.'=) Bunny into your signature to help
| (")_(") him gain world domination

^ permalink raw reply	[flat|nested] 21+ messages in thread

* Re: [patch]: Add check for stdint header
  2009-09-03 11:05   ` Kai Tietz
@ 2009-09-03 11:10     ` Richard Guenther
  2009-09-04  7:49       ` Kai Tietz
  0 siblings, 1 reply; 21+ messages in thread
From: Richard Guenther @ 2009-09-03 11:10 UTC (permalink / raw)
  To: Kai Tietz; +Cc: GCC Patches, Richard Henderson

On Thu, Sep 3, 2009 at 1:05 PM, Kai Tietz<ktietz70@googlemail.com> wrote:
> 2009/9/3 Richard Guenther <richard.guenther@gmail.com>:
>> On Thu, Sep 3, 2009 at 12:18 AM, Kai Tietz<ktietz70@googlemail.com> wrote:
>>> Hello,
>>>
>>> this patch adds to gcc's system.h file the include of stdint.h file,
>>> if present. If it doesn't finds this header it defines uintptr_t as
>>> 'unsigned long' and intptr_t as 'long'.
>>
>> The toplevel already has support for creating a stdint comaptible header,
>> you should probably simply use that.  See config/stdint*.m4.
>>
>> Richard.
>
> Well, we could extend this, but autoconf 2.64 supports the
> AC_TYPE_UINTPTR_T and AC_TYPE_INTPTR_T, and defines the types
> uintptr_t & intptr_t (as macros) for hosts without stdint.h fine.

I'd say use the exisitng support - it's already heavily used by target
libs which
just do

GCC_HEADER_STDINT(gstdint.h)

and then include gstdint.h instead of stdint.h.

The question is of course if it works well enough for the host, but
you'll find out.

Richard.

> Cheers,
> Kai
> --
> |  (\_/) This is Bunny. Copy and paste
> | (='.'=) Bunny into your signature to help
> | (")_(") him gain world domination
>

^ permalink raw reply	[flat|nested] 21+ messages in thread

* Re: [patch]: Add check for stdint header
  2009-09-03 10:55 ` Richard Guenther
@ 2009-09-03 11:05   ` Kai Tietz
  2009-09-03 11:10     ` Richard Guenther
  0 siblings, 1 reply; 21+ messages in thread
From: Kai Tietz @ 2009-09-03 11:05 UTC (permalink / raw)
  To: Richard Guenther; +Cc: GCC Patches, Richard Henderson

2009/9/3 Richard Guenther <richard.guenther@gmail.com>:
> On Thu, Sep 3, 2009 at 12:18 AM, Kai Tietz<ktietz70@googlemail.com> wrote:
>> Hello,
>>
>> this patch adds to gcc's system.h file the include of stdint.h file,
>> if present. If it doesn't finds this header it defines uintptr_t as
>> 'unsigned long' and intptr_t as 'long'.
>
> The toplevel already has support for creating a stdint comaptible header,
> you should probably simply use that.  See config/stdint*.m4.
>
> Richard.

Well, we could extend this, but autoconf 2.64 supports the
AC_TYPE_UINTPTR_T and AC_TYPE_INTPTR_T, and defines the types
uintptr_t & intptr_t (as macros) for hosts without stdint.h fine.

Cheers,
Kai
-- 
|  (\_/) This is Bunny. Copy and paste
| (='.'=) Bunny into your signature to help
| (")_(") him gain world domination

^ permalink raw reply	[flat|nested] 21+ messages in thread

* Re: [patch]: Add check for stdint header
  2009-09-02 22:18 Kai Tietz
  2009-09-03  1:37 ` Kai Tietz
@ 2009-09-03 10:55 ` Richard Guenther
  2009-09-03 11:05   ` Kai Tietz
  1 sibling, 1 reply; 21+ messages in thread
From: Richard Guenther @ 2009-09-03 10:55 UTC (permalink / raw)
  To: Kai Tietz; +Cc: GCC Patches, Richard Henderson

On Thu, Sep 3, 2009 at 12:18 AM, Kai Tietz<ktietz70@googlemail.com> wrote:
> Hello,
>
> this patch adds to gcc's system.h file the include of stdint.h file,
> if present. If it doesn't finds this header it defines uintptr_t as
> 'unsigned long' and intptr_t as 'long'.

The toplevel already has support for creating a stdint comaptible header,
you should probably simply use that.  See config/stdint*.m4.

Richard.

> ChangeLog
>
> 2009-09-03  Kai Tietz  <kai.tietz@onevision.com>
>
>        * config.in (HAVE_STDINT_H): New.
>        * configure.ac (AC_CHECK_HEADERS): Add stdint.h.
>        * configure: Regenerated.
>        * system.h: Include stdint.h, if present. Or define default
>        versions of uintptr_t and intptr_t with long type.
>
> Tested for x86_64-pc-linux, i686-w64-mingw32, and for
> x86_64-w64-mingw32. Ok for apply to trunk?
>
> Cheers,
> Kai
>
> --
> |  (\_/) This is Bunny. Copy and paste
> | (='.'=) Bunny into your signature to help
> | (")_(") him gain world domination
>

^ permalink raw reply	[flat|nested] 21+ messages in thread

* Re: [patch]: Add check for stdint header
  2009-09-02 22:18 Kai Tietz
@ 2009-09-03  1:37 ` Kai Tietz
  2009-09-03 10:55 ` Richard Guenther
  1 sibling, 0 replies; 21+ messages in thread
From: Kai Tietz @ 2009-09-03  1:37 UTC (permalink / raw)
  To: GCC Patches, Richard Henderson

[-- Attachment #1: Type: text/plain, Size: 893 bytes --]

2009/9/3 Kai Tietz <ktietz70@googlemail.com>:
Hello,

This patch adds to gcc's system.h file the include of stdint.h file,
if present. It uses AC_TYPE_INTPTR_T and AC_TYPE_UINTPTR_T feature of
libtool.

ChangeLog

2009-09-03  Kai Tietz  <kai.tietz@onevision.com>

        * config.in (HAVE_STDINT_H): New.
        (HAVE_UINTPTR_T): New.
        (HAVE_INTPTR_T): New.
        (uintptr_t): New.
        (uintptr_t): New.
        * configure.ac (AC_CHECK_HEADERS): Add stdint.h.
        (AC_TYPE_INTPTR_T): New
        (AC_TYPE_UINTPTR_T): New.
        * configure: Regenerated.
        * system.h: Include stdint.h, if present.

Tested for x86_64-pc-linux, i686-w64-mingw32, and for
x86_64-w64-mingw32. Ok for apply to trunk?

Cheers,
Kai

-- 
|  (\_/) This is Bunny. Copy and paste
| (='.'=) Bunny into your signature to help
| (")_(") him gain world domination

[-- Attachment #2: stdint.diff --]
[-- Type: text/x-diff, Size: 2023 bytes --]

Index: gcc/gcc/config.in
===================================================================
--- gcc.orig/gcc/config.in	2009-08-24 08:11:35.000000000 +0200
+++ gcc/gcc/config.in	2009-09-03 01:23:09.497371000 +0200
@@ -1144,6 +1144,25 @@
 #undef HAVE_MALLOC_H
 #endif
 
+#ifndef USED_FOR_TARGET
+#undef HAVE_STDINT_H
+#endif
+
+#ifndef USED_FOR_TARGET
+#undef HAVE_UINTPTR_T
+#endif
+
+#ifndef USED_FOR_TARGET
+#undef HAVE_INTPTR_T
+#endif
+
+#ifndef USED_FOR_TARGET
+#undef uintptr_t
+#endif
+
+#ifndef USED_FOR_TARGET
+#undef intptr_t
+#endif
 
 /* Define to 1 if you have the `mbstowcs' function. */
 #ifndef USED_FOR_TARGET
Index: gcc/gcc/configure.ac
===================================================================
--- gcc.orig/gcc/configure.ac	2009-08-28 21:28:51.000000000 +0200
+++ gcc/gcc/configure.ac	2009-09-03 03:27:44.886371000 +0200
@@ -311,6 +311,8 @@
 AC_CHECK_SIZEOF(long)
 AC_CHECK_TYPES([long long], [AC_CHECK_SIZEOF(long long)])
 AC_CHECK_TYPES([__int64], [AC_CHECK_SIZEOF(__int64)])
+AC_TYPE_UINTPTR_T
+AC_TYPE_INTPTR_T
 
 # ---------------------
 # Warnings and checking
@@ -933,7 +935,8 @@
 AC_CHECK_HEADERS(limits.h stddef.h string.h strings.h stdlib.h time.h iconv.h \
 		 fcntl.h unistd.h sys/file.h sys/time.h sys/mman.h \
 		 sys/resource.h sys/param.h sys/times.h sys/stat.h \
-		 direct.h malloc.h langinfo.h ldfcn.h locale.h wchar.h)
+		 direct.h malloc.h stdint.h langinfo.h ldfcn.h \
+		 locale.h wchar.h)
 
 # Check for thread headers.
 AC_CHECK_HEADER(thread.h, [have_thread_h=yes], [have_thread_h=])
Index: gcc/gcc/system.h
===================================================================
--- gcc.orig/gcc/system.h	2009-08-27 15:04:09.000000000 +0200
+++ gcc/gcc/system.h	2009-09-03 01:25:05.294371000 +0200
@@ -414,6 +414,10 @@
 extern void *realloc (void *, size_t);
 #endif
 
+#ifdef HAVE_STDINT_H
+#include <stdint.h>
+#endif
+
 /* If the system doesn't provide strsignal, we get it defined in
    libiberty but no declaration is supplied.  */
 #if !defined (HAVE_STRSIGNAL) \

^ permalink raw reply	[flat|nested] 21+ messages in thread

* [patch]: Add check for stdint header
@ 2009-09-02 22:18 Kai Tietz
  2009-09-03  1:37 ` Kai Tietz
  2009-09-03 10:55 ` Richard Guenther
  0 siblings, 2 replies; 21+ messages in thread
From: Kai Tietz @ 2009-09-02 22:18 UTC (permalink / raw)
  To: GCC Patches, Richard Henderson

[-- Attachment #1: Type: text/plain, Size: 707 bytes --]

Hello,

this patch adds to gcc's system.h file the include of stdint.h file,
if present. If it doesn't finds this header it defines uintptr_t as
'unsigned long' and intptr_t as 'long'.

ChangeLog

2009-09-03  Kai Tietz  <kai.tietz@onevision.com>

	* config.in (HAVE_STDINT_H): New.
	* configure.ac (AC_CHECK_HEADERS): Add stdint.h.
	* configure: Regenerated.
	* system.h: Include stdint.h, if present. Or define default
	versions of uintptr_t and intptr_t with long type.

Tested for x86_64-pc-linux, i686-w64-mingw32, and for
x86_64-w64-mingw32. Ok for apply to trunk?

Cheers,
Kai

-- 
|  (\_/) This is Bunny. Copy and paste
| (='.'=) Bunny into your signature to help
| (")_(") him gain world domination

[-- Attachment #2: stdint.diff --]
[-- Type: application/octet-stream, Size: 8192 bytes --]

Index: gcc/gcc/config.in
===================================================================
--- gcc.orig/gcc/config.in	2009-08-24 08:11:35.000000000 +0200
+++ gcc/gcc/config.in	2009-09-03 00:01:22.464371000 +0200
@@ -1144,6 +1144,9 @@
 #undef HAVE_MALLOC_H
 #endif
 
+#ifndef USED_FOR_TARGET
+#undef HAVE_STDINT_H
+#endif
 
 /* Define to 1 if you have the `mbstowcs' function. */
 #ifndef USED_FOR_TARGET
Index: gcc/gcc/configure.ac
===================================================================
--- gcc.orig/gcc/configure.ac	2009-08-28 21:28:51.000000000 +0200
+++ gcc/gcc/configure.ac	2009-09-03 00:02:42.309371000 +0200
@@ -933,7 +933,8 @@
 AC_CHECK_HEADERS(limits.h stddef.h string.h strings.h stdlib.h time.h iconv.h \
 		 fcntl.h unistd.h sys/file.h sys/time.h sys/mman.h \
 		 sys/resource.h sys/param.h sys/times.h sys/stat.h \
-		 direct.h malloc.h langinfo.h ldfcn.h locale.h wchar.h)
+		 direct.h malloc.h stdint.h langinfo.h ldfcn.h \
+		 locale.h wchar.h)
 
 # Check for thread headers.
 AC_CHECK_HEADER(thread.h, [have_thread_h=yes], [have_thread_h=])
Index: gcc/gcc/system.h
===================================================================
--- gcc.orig/gcc/system.h	2009-08-27 15:04:09.000000000 +0200
+++ gcc/gcc/system.h	2009-09-03 00:06:55.908371000 +0200
@@ -414,6 +414,13 @@
 extern void *realloc (void *, size_t);
 #endif
 
+#ifdef HAVE_STDINT_H
+#include <stdint.h>
+#else
+#define uintptr_t unsigned long
+#define intptr_t long
+#endif
+
 /* If the system doesn't provide strsignal, we get it defined in
    libiberty but no declaration is supplied.  */
 #if !defined (HAVE_STRSIGNAL) \
Index: gcc/gcc/configure
===================================================================
--- gcc.orig/gcc/configure	2009-08-28 21:28:51.000000000 +0200
+++ gcc/gcc/configure	2009-09-03 00:13:07.396371000 +0200
@@ -7492,7 +7492,8 @@
 for ac_header in limits.h stddef.h string.h strings.h stdlib.h time.h iconv.h \
 		 fcntl.h unistd.h sys/file.h sys/time.h sys/mman.h \
 		 sys/resource.h sys/param.h sys/times.h sys/stat.h \
-		 direct.h malloc.h langinfo.h ldfcn.h locale.h wchar.h
+		 direct.h malloc.h stdint.h langinfo.h ldfcn.h \
+		 locale.h wchar.h
 do :
   as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
 ac_fn_c_check_header_preproc "$LINENO" "$ac_header" "$as_ac_Header"
@@ -11078,13 +11079,13 @@
 else
   lt_cv_nm_interface="BSD nm"
   echo "int some_variable = 0;" > conftest.$ac_ext
-  (eval echo "\"\$as_me:11081: $ac_compile\"" >&5)
+  (eval echo "\"\$as_me:11082: $ac_compile\"" >&5)
   (eval "$ac_compile" 2>conftest.err)
   cat conftest.err >&5
-  (eval echo "\"\$as_me:11084: $NM \\\"conftest.$ac_objext\\\"\"" >&5)
+  (eval echo "\"\$as_me:11085: $NM \\\"conftest.$ac_objext\\\"\"" >&5)
   (eval "$NM \"conftest.$ac_objext\"" 2>conftest.err > conftest.out)
   cat conftest.err >&5
-  (eval echo "\"\$as_me:11087: output\"" >&5)
+  (eval echo "\"\$as_me:11088: output\"" >&5)
   cat conftest.out >&5
   if $GREP 'External.*some_variable' conftest.out > /dev/null; then
     lt_cv_nm_interface="MS dumpbin"
@@ -12289,7 +12290,7 @@
   ;;
 *-*-irix6*)
   # Find out which ABI we are using.
-  echo '#line 12292 "configure"' > conftest.$ac_ext
+  echo '#line 12293 "configure"' > conftest.$ac_ext
   if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
   (eval $ac_compile) 2>&5
   ac_status=$?
@@ -13949,11 +13950,11 @@
    -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
    -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
    -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:13952: $lt_compile\"" >&5)
+   (eval echo "\"\$as_me:13953: $lt_compile\"" >&5)
    (eval "$lt_compile" 2>conftest.err)
    ac_status=$?
    cat conftest.err >&5
-   echo "$as_me:13956: \$? = $ac_status" >&5
+   echo "$as_me:13957: \$? = $ac_status" >&5
    if (exit $ac_status) && test -s "$ac_outfile"; then
      # The compiler can only warn and ignore the option if not recognized
      # So say no if there are warnings other than the usual output.
@@ -14288,11 +14289,11 @@
    -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
    -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
    -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:14291: $lt_compile\"" >&5)
+   (eval echo "\"\$as_me:14292: $lt_compile\"" >&5)
    (eval "$lt_compile" 2>conftest.err)
    ac_status=$?
    cat conftest.err >&5
-   echo "$as_me:14295: \$? = $ac_status" >&5
+   echo "$as_me:14296: \$? = $ac_status" >&5
    if (exit $ac_status) && test -s "$ac_outfile"; then
      # The compiler can only warn and ignore the option if not recognized
      # So say no if there are warnings other than the usual output.
@@ -14393,11 +14394,11 @@
    -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
    -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
    -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:14396: $lt_compile\"" >&5)
+   (eval echo "\"\$as_me:14397: $lt_compile\"" >&5)
    (eval "$lt_compile" 2>out/conftest.err)
    ac_status=$?
    cat out/conftest.err >&5
-   echo "$as_me:14400: \$? = $ac_status" >&5
+   echo "$as_me:14401: \$? = $ac_status" >&5
    if (exit $ac_status) && test -s out/conftest2.$ac_objext
    then
      # The compiler can only warn and ignore the option if not recognized
@@ -14448,11 +14449,11 @@
    -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
    -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
    -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:14451: $lt_compile\"" >&5)
+   (eval echo "\"\$as_me:14452: $lt_compile\"" >&5)
    (eval "$lt_compile" 2>out/conftest.err)
    ac_status=$?
    cat out/conftest.err >&5
-   echo "$as_me:14455: \$? = $ac_status" >&5
+   echo "$as_me:14456: \$? = $ac_status" >&5
    if (exit $ac_status) && test -s out/conftest2.$ac_objext
    then
      # The compiler can only warn and ignore the option if not recognized
@@ -16830,7 +16831,7 @@
   lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
   lt_status=$lt_dlunknown
   cat > conftest.$ac_ext <<_LT_EOF
-#line 16833 "configure"
+#line 16834 "configure"
 #include "confdefs.h"
 
 #if HAVE_DLFCN_H
@@ -16926,7 +16927,7 @@
   lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
   lt_status=$lt_dlunknown
   cat > conftest.$ac_ext <<_LT_EOF
-#line 16929 "configure"
+#line 16930 "configure"
 #include "confdefs.h"
 
 #if HAVE_DLFCN_H
@@ -18882,11 +18883,11 @@
    -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
    -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
    -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:18885: $lt_compile\"" >&5)
+   (eval echo "\"\$as_me:18886: $lt_compile\"" >&5)
    (eval "$lt_compile" 2>conftest.err)
    ac_status=$?
    cat conftest.err >&5
-   echo "$as_me:18889: \$? = $ac_status" >&5
+   echo "$as_me:18890: \$? = $ac_status" >&5
    if (exit $ac_status) && test -s "$ac_outfile"; then
      # The compiler can only warn and ignore the option if not recognized
      # So say no if there are warnings other than the usual output.
@@ -18981,11 +18982,11 @@
    -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
    -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
    -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:18984: $lt_compile\"" >&5)
+   (eval echo "\"\$as_me:18985: $lt_compile\"" >&5)
    (eval "$lt_compile" 2>out/conftest.err)
    ac_status=$?
    cat out/conftest.err >&5
-   echo "$as_me:18988: \$? = $ac_status" >&5
+   echo "$as_me:18989: \$? = $ac_status" >&5
    if (exit $ac_status) && test -s out/conftest2.$ac_objext
    then
      # The compiler can only warn and ignore the option if not recognized
@@ -19033,11 +19034,11 @@
    -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
    -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
    -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:19036: $lt_compile\"" >&5)
+   (eval echo "\"\$as_me:19037: $lt_compile\"" >&5)
    (eval "$lt_compile" 2>out/conftest.err)
    ac_status=$?
    cat out/conftest.err >&5
-   echo "$as_me:19040: \$? = $ac_status" >&5
+   echo "$as_me:19041: \$? = $ac_status" >&5
    if (exit $ac_status) && test -s out/conftest2.$ac_objext
    then
      # The compiler can only warn and ignore the option if not recognized

^ permalink raw reply	[flat|nested] 21+ messages in thread

end of thread, other threads:[~2009-09-08 15:22 UTC | newest]

Thread overview: 21+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2009-09-04 12:48 [patch]: Add check for stdint header Tobias Burnus
2009-09-04 12:53 ` Kai Tietz
2009-09-04 13:18   ` Tobias Burnus
2009-09-04 13:27     ` Paolo Bonzini
2009-09-04 14:07       ` Kai Tietz
2009-09-05 12:41         ` Paolo Bonzini
2009-09-08 15:22           ` Kai Tietz
2009-09-06 10:00       ` Ralf Wildenhues
2009-09-07  6:51         ` Paolo Bonzini
  -- strict thread matches above, loose matches on Subject: below --
2009-09-04 13:07 Tobias Burnus
2009-09-04 13:18 ` Kai Tietz
2009-09-02 22:18 Kai Tietz
2009-09-03  1:37 ` Kai Tietz
2009-09-03 10:55 ` Richard Guenther
2009-09-03 11:05   ` Kai Tietz
2009-09-03 11:10     ` Richard Guenther
2009-09-04  7:49       ` Kai Tietz
2009-09-04  9:57         ` Richard Guenther
2009-09-04 10:36           ` Paolo Bonzini
     [not found]             ` <4AA0EE5E.80204@gnu.org>
     [not found]               ` <90baa01f0909040359r45b5b0c1gfb9132cf800bde9b@mail.gmail.com>
     [not found]                 ` <90baa01f0909040534g4ac57551se2e843b861c42a06@mail.gmail.com>
2009-09-04 13:22                   ` Paolo Bonzini
2009-09-06  9:57           ` Ralf Wildenhues

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).