+# THIS IS A GENERATED FILE
+# DO NOT HAND-EDIT
+#
+# See Porting/config_h.pl
+
+: Set up for generating config_h.SH
case "$CONFIG_SH" in
-'') CONFIG_SH=config.sh ;;
+'') CONFIG_SH=config.sh;;
esac
case "$CONFIG_H" in
-'') CONFIG_H=config.h ;;
+'') CONFIG_H=config.h;;
esac
case $PERL_CONFIG_SH in
'')
case "$0" in
*/*) cd `expr X$0 : 'X\(.*\)/'` ;;
esac
+case "$CONFIG_H" in
+already-done) echo "Not re-extracting config.h" ;;
+*)
echo "Extracting $CONFIG_H (with variable substitutions)"
sed <<!GROK!THIS! >$CONFIG_H -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un-def!#undef!'
/*
* that running config_h.SH again will wipe out any changes you've made.
* For a more permanent change edit $CONFIG_SH and rerun config_h.SH.
*
- * \$Id: Config_h.U,v 3.0.1.5 1997/02/28 14:57:43 ram Exp $
+ * \$Id: Config_h.U 1 2006-08-24 12:32:52Z rmanfredi $
*/
/*
*/
#$d_strcoll HAS_STRCOLL /**/
-/* USE_STRUCT_COPY:
- * This symbol, if defined, indicates that this C compiler knows how
- * to copy structures. If undefined, you'll need to use a block copy
- * routine of some sort instead.
- */
-#$d_strctcpy USE_STRUCT_COPY /**/
-
/* HAS_STRTOD:
* This symbol, if defined, indicates that the strtod routine is
* available to provide better numeric string conversion than atof().
*/
#$d_usleep HAS_USLEEP /**/
-/* HASVOLATILE:
- * This symbol, if defined, indicates that this C compiler knows about
- * the volatile declaration.
- */
-#$d_volatile HASVOLATILE /**/
-#ifndef HASVOLATILE
-#define volatile
-#endif
-
/* HAS_WAIT4:
* This symbol, if defined, indicates that wait4() exists.
*/
#$i_dbm I_DBM /**/
#$i_rpcsvcdbm I_RPCSVC_DBM /**/
-/* I_DIRENT:
- * This symbol, if defined, indicates to the C program that it should
- * include <dirent.h>. Using this symbol also triggers the definition
- * of the Direntry_t define which ends up being 'struct dirent' or
- * 'struct direct' depending on the availability of <dirent.h>.
- */
-/* DIRNAMLEN:
- * This symbol, if defined, indicates to the C program that the length
- * of directory entry names is provided by a d_namlen field. Otherwise
- * you need to do strlen() on the d_name field.
- */
-/* Direntry_t:
- * This symbol is set to 'struct direct' or 'struct dirent' depending on
- * whether dirent is available or not. You should use this pseudo type to
- * portably declare your directory entries.
- */
-#$i_dirent I_DIRENT /**/
-#$d_dirnamlen DIRNAMLEN /**/
-#define Direntry_t $direntrytype
-
/* I_DLFCN:
* This symbol, if defined, indicates that <dlfcn.h> exists and should
* be included.
*/
#$i_memory I_MEMORY /**/
-/* I_NET_ERRNO:
- * This symbol, if defined, indicates that <net/errno.h> exists and
- * should be included.
- */
-#$i_neterrno I_NET_ERRNO /**/
-
/* I_NETINET_IN:
* This symbol, if defined, indicates to the C program that it should
* include <netinet/in.h>. Otherwise, you may try <sys/in.h>.
#if $cpp_stuff == 1
#define CAT2(a,b) a/**/b
#define STRINGIFY(a) "a"
- /* If you can get stringification with catify, tell me how! */
#endif
#if $cpp_stuff == 42
-#define PeRl_CaTiFy(a, b) a ## b
+#define PeRl_CaTiFy(a, b) a ## b
#define PeRl_StGiFy(a) #a
-/* the additional level of indirection enables these macros to be
- * used as arguments to other macros. See K&R 2nd ed., page 231. */
#define CAT2(a,b) PeRl_CaTiFy(a,b)
#define StGiFy(a) PeRl_StGiFy(a)
#define STRINGIFY(a) PeRl_StGiFy(a)
#endif
#if $cpp_stuff != 1 && $cpp_stuff != 42
-# include "Bletch: How does this C preprocessor concatenate tokens?"
+#include "Bletch: How does this C preprocessor concatenate tokens?"
#endif
/* CPPSTDIN:
/* LOCALTIME_R_NEEDS_TZSET:
* Many libc's localtime_r implementations do not call tzset,
* making them differ from localtime(), and making timezone
- * changes using $ENV{TZ} without explicitly calling tzset
+ * changes using \$ENV{TZ} without explicitly calling tzset
* impossible. This symbol makes us call tzset before localtime_r
*/
#$d_localtime_r_needs_tzset LOCALTIME_R_NEEDS_TZSET /**/
* doubles.
*/
/* LONG_DOUBLESIZE:
- * This symbol contains the size of a long double, so that the
+ * This symbol contains the size of a long double, so that the
* C preprocessor can make decisions based on it. It is only
* defined if the system supports long doubles.
*/
* This symbol will be defined if the C compiler supports long long.
*/
/* LONGLONGSIZE:
- * This symbol contains the size of a long long, so that the
+ * This symbol contains the size of a long long, so that the
* C preprocessor can make decisions based on it. It is only
* defined if the system supports long long.
*/
/* HAS_POLL:
* This symbol, if defined, indicates that the poll routine is
- * available to poll active file descriptors. You may safely
- * include <poll.h> when both this symbol *and* I_POLL are defined.
+ * available to poll active file descriptors. Please check I_POLL and
+ * I_SYS_POLL to know which header should be included as well.
*/
#$d_poll HAS_POLL /**/
#$d_pthread_atfork HAS_PTHREAD_ATFORK /**/
/* HAS_PTHREAD_YIELD:
- * This symbol, if defined, indicates that the pthread_yield
+ * This symbol, if defined, indicates that the pthread_yield
* routine is available to yield the execution of the current
* thread. sched_yield is preferable to pthread_yield.
*/
#$d_statblks USE_STAT_BLOCKS /**/
#endif
+/* USE_STRUCT_COPY:
+ * This symbol, if defined, indicates that this C compiler knows how
+ * to copy structures. If undefined, you'll need to use a block copy
+ * routine of some sort instead.
+ */
+#$d_strctcpy USE_STRUCT_COPY /**/
+
/* HAS_STRERROR:
* This symbol, if defined, indicates that the strerror routine is
* available to translate error numbers to strings. See the writeup
*/
#define Signal_t $signal_t /* Signal handler's return type */
+/* HASVOLATILE:
+ * This symbol, if defined, indicates that this C compiler knows about
+ * the volatile declaration.
+ */
+#$d_volatile HASVOLATILE /**/
+#ifndef HASVOLATILE
+#define volatile
+#endif
+
/* Fpos_t:
* This symbol holds the type used to declare file positions in libc.
* It can be fpos_t, long, uint, etc... It may be necessary to include
* This symbol holds the type used for the second argument to
* getgroups() and setgroups(). Usually, this is the same as
* gidtype (gid_t) , but sometimes it isn't.
- * It can be int, ushort, gid_t, etc...
- * It may be necessary to include <sys/types.h> to get any
+ * It can be int, ushort, gid_t, etc...
+ * It may be necessary to include <sys/types.h> to get any
* typedef'ed information. This is only required if you have
* getgroups() or setgroups()..
*/
#define Groups_t $groupstype /* Type for 2nd arg to [sg]etgroups() */
#endif
+/* I_DIRENT:
+ * This symbol, if defined, indicates to the C program that it should
+ * include <dirent.h>. Using this symbol also triggers the definition
+ * of the Direntry_t define which ends up being 'struct dirent' or
+ * 'struct direct' depending on the availability of <dirent.h>.
+ */
+/* DIRNAMLEN:
+ * This symbol, if defined, indicates to the C program that the length
+ * of directory entry names is provided by a d_namlen field. Otherwise
+ * you need to do strlen() on the d_name field.
+ */
+/* Direntry_t:
+ * This symbol is set to 'struct direct' or 'struct dirent' depending on
+ * whether dirent is available or not. You should use this pseudo type to
+ * portably declare your directory entries.
+ */
+#$i_dirent I_DIRENT /**/
+#$d_dirnamlen DIRNAMLEN /**/
+#define Direntry_t $direntrytype
+
/* I_GRP:
* This symbol, if defined, indicates to the C program that it should
* include <grp.h>.
*/
#$i_netdb I_NETDB /**/
+/* I_NET_ERRNO:
+ * This symbol, if defined, indicates that <net/errno.h> exists and
+ * should be included.
+ */
+#$i_neterrno I_NET_ERRNO /**/
+
/* I_PTHREAD:
* This symbol, if defined, indicates to the C program that it should
* include <pthread.h>.
#$d_mymalloc MYMALLOC /**/
/* Mode_t:
- * This symbol holds the type used to declare file modes
+ * This symbol holds the type used to declare file modes
* for systems calls. It is usually mode_t, but may be
* int or unsigned short. It may be necessary to include <sys/types.h>
* to get any typedef'ed information.
/* Select_fd_set_t:
* This symbol holds the type used for the 2nd, 3rd, and 4th
* arguments to select. Usually, this is 'fd_set *', if HAS_FD_SET
- * is defined, and 'int *' otherwise. This is only useful if you
+ * is defined, and 'int *' otherwise. This is only useful if you
* have select(), of course.
*/
#define Select_fd_set_t $selecttype /**/
* The signals in the list are separated with commas, and the indices
* within that list and the SIG_NAME list match, so it's easy to compute
* the signal name from a number or vice versa at the price of a small
- * dynamic linear lookup.
+ * dynamic linear lookup.
* Duplicates are allowed, but are moved to the end of the list.
* The signal number corresponding to sig_name[i] is sig_number[i].
- * if (i < NSIG) then sig_number[i] == i.
+ * if (i < NSIG) then sig_number[i] == i.
* The last element is 0, corresponding to the 0 at the end of
* the sig_name_init list.
* Note that this variable is initialized from the sig_num_init,
* On NeXT 3.2 (and greater), you can build "Fat" Multiple Architecture
* Binaries (MAB) on either big endian or little endian machines.
* The endian-ness is available at compile-time. This only matters
- * for perl, where the config.h can be generated and installed on
+ * for perl, where the config.h can be generated and installed on
* one system, and used by a different architecture to build an
* extension. Older versions of NeXT that might not have
* defined either *_ENDIAN__ were all on Motorola 680x0 series,
- * so the default case (for NeXT) is big endian to catch them.
+ * so the default case (for NeXT) is big endian to catch them.
* This might matter for NeXT 3.0.
*/
#if defined(USE_CROSS_COMPILE) || defined(MULTIARCH)
#$d_getpagsz HAS_GETPAGESIZE /**/
/* HAS_GNULIBC:
- * This symbol, if defined, indicates to the C program that
+ * This symbol, if defined, indicates to the C program that
* the GNU C library is being used. A better check is to use
* the __GLIBC__ and __GLIBC_MINOR__ symbols supplied with glibc.
*/
#if defined(HAS_GNULIBC) && !defined(_GNU_SOURCE)
# define _GNU_SOURCE
#endif
+
/* HAS_ISASCII:
- * This manifest constant lets the C program know that isascii
+ * This manifest constant lets the C program know that isascii
* is available.
*/
#$d_isascii HAS_ISASCII /**/
#$fflushNULL FFLUSH_NULL /**/
#$fflushall FFLUSH_ALL /**/
+/* I_ASSERT:
+ * This symbol, if defined, indicates that <assert.h> exists and
+ * could be included by the C program to get the assert() macro.
+ */
+#$i_assert I_ASSERT /**/
+
/* I_CRYPT:
* This symbol, if defined, indicates that <crypt.h> exists and
* should be included.
* This symbol contains the number of bits a variable of type NVTYPE
* can preserve of a variable of type UVTYPE.
*/
+/* NV_OVERFLOWS_INTEGERS_AT:
+ * This symbol gives the largest integer value that NVs can hold. This
+ * value + 1.0 cannot be stored accurately. It is expressed as constant
+ * floating point expression to reduce the chance of decimale/binary
+ * conversion issues. If it can not be determined, the value 0 is given.
+ */
/* NV_ZERO_IS_ALLBITS_ZERO:
* This symbol, if defined, indicates that a variable of type NVTYPE
* stores 0.0 in memory as all bits zero.
#define NVSIZE $nvsize /**/
#$d_nv_preserves_uv NV_PRESERVES_UV
#define NV_PRESERVES_UV_BITS $nv_preserves_uv_bits
+#define NV_OVERFLOWS_INTEGERS_AT $nv_overflows_integers_at
#$d_nv_zero_is_allbits_zero NV_ZERO_IS_ALLBITS_ZERO
#if UVSIZE == 8
# ifdef BYTEORDER
* Usual values include _iob, __iob, and __sF.
*/
#$d_stdio_stream_array HAS_STDIO_STREAM_ARRAY /**/
+#ifdef HAS_STDIO_STREAM_ARRAY
#define STDIO_STREAM_ARRAY $stdio_stream_array
+#endif
/* USE_64_BIT_INT:
* This symbol, if defined, indicates that 64-bit integers should
#ifndef USE_64_BIT_INT
#$use64bitint USE_64_BIT_INT /**/
#endif
-
#ifndef USE_64_BIT_ALL
#$use64bitall USE_64_BIT_ALL /**/
#endif
+/* USE_DTRACE:
+ * This symbol, if defined, indicates that Perl should
+ * be built with support for DTrace.
+ */
+#$usedtrace USE_DTRACE /**/
+
/* USE_FAST_STDIO:
* This symbol, if defined, indicates that Perl should
* be built to use 'fast stdio'.
#endif
!GROK!THIS!
+;;
+esac