#
# 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
'')
* 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_chsize HAS_CHSIZE /**/
+/* HAS_CRYPT:
+ * This symbol, if defined, indicates that the crypt routine is available
+ * to encrypt passwords and the like.
+ */
+#$d_crypt HAS_CRYPT /**/
+
/* HAS_CTERMID:
* This symbol, if defined, indicates that the ctermid routine is
* available to generate filename for terminal.
*/
#$d_dlerror HAS_DLERROR /**/
+/* SETUID_SCRIPTS_ARE_SECURE_NOW:
+ * This symbol, if defined, indicates that the bug that prevents
+ * setuid scripts from being secure is not present in this kernel.
+ */
+/* DOSUID:
+ * This symbol, if defined, indicates that the C program should
+ * check the script that it is executing for setuid/setgid bits, and
+ * attempt to emulate setuid/setgid on systems that have disabled
+ * setuid #! scripts because the kernel can't do it securely.
+ * It is up to the package designer to make sure that this emulation
+ * is done securely. Among other things, it should do an fstat on
+ * the script it just opened to make sure it really is a setuid/setgid
+ * script, it should make sure the arguments passed correspond exactly
+ * to the argument on the #! line, and it should not trust any
+ * subprocesses to which it must pass the filename rather than the
+ * file descriptor of the script to be executed.
+ */
+#$d_suidsafe SETUID_SCRIPTS_ARE_SECURE_NOW /**/
+#$d_dosuid DOSUID /**/
+
/* HAS_DUP2:
* This symbol, if defined, indicates that the dup2 routine is
* available to duplicate file descriptors.
*/
#$d_pipe HAS_PIPE /**/
+/* HAS_POLL:
+ * This symbol, if defined, indicates that the poll routine is
+ * 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 /**/
+
/* HAS_READDIR:
* This symbol, if defined, indicates that the readdir routine is
* available to read directory entries. You may have to include
*/
#$d_seteuid HAS_SETEUID /**/
+/* HAS_SETGROUPS:
+ * This symbol, if defined, indicates that the setgroups() routine is
+ * available to set the list of process groups. If unavailable, multiple
+ * groups are probably not supported.
+ */
+#$d_setgrps HAS_SETGROUPS /**/
+
/* HAS_SETLINEBUF:
* This symbol, if defined, indicates that the setlinebuf routine is
* available to change stderr or stdout from block-buffered or unbuffered
*/
#$d_wctomb HAS_WCTOMB /**/
+/* Groups_t:
+ * 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
+ * typedef'ed information. This is only required if you have
+ * getgroups() or setgroups()..
+ */
+#if defined(HAS_GETGROUPS) || defined(HAS_SETGROUPS)
+#define Groups_t $groupstype /* Type for 2nd arg to [sg]etgroups() */
+#endif
+
/* I_ARPA_INET:
* This symbol, if defined, indicates to the C program that it should
* include <arpa/inet.h> to get inet_addr and friends declarations.
*/
#$i_arpainet I_ARPA_INET /**/
-/* I_ASSERT:
- * This symbol, if defined, indicates to the C program that it could
- * include <assert.h> to get the assert() macro.
- */
-#$i_assert I_ASSERT /**/
-
/* I_DBM:
* This symbol, if defined, indicates that <dbm.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>.
*/
#$i_sysparam I_SYS_PARAM /**/
+/* I_SYS_POLL:
+ * This symbol, if defined, indicates that the program may include
+ * <sys/poll.h>. When I_POLL is also defined, it's probably safest
+ * to only include <poll.h>.
+ */
+#$i_syspoll I_SYS_POLL /**/
+
/* I_SYS_RESOURCE:
* This symbol, if defined, indicates to the C program that it should
* include <sys/resource.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:
#define const
#endif
-/* HAS_CRYPT:
- * This symbol, if defined, indicates that the crypt routine is available
- * to encrypt passwords and the like.
- */
-#$d_crypt HAS_CRYPT /**/
-
/* HAS_CRYPT_R:
* This symbol, if defined, indicates that the crypt_r routine
* is available to crypt re-entrantly.
#$d_ctime_r HAS_CTIME_R /**/
#define CTIME_R_PROTO $ctime_r_proto /**/
-/* SETUID_SCRIPTS_ARE_SECURE_NOW:
- * This symbol, if defined, indicates that the bug that prevents
- * setuid scripts from being secure is not present in this kernel.
- */
-/* DOSUID:
- * This symbol, if defined, indicates that the C program should
- * check the script that it is executing for setuid/setgid bits, and
- * attempt to emulate setuid/setgid on systems that have disabled
- * setuid #! scripts because the kernel can't do it securely.
- * It is up to the package designer to make sure that this emulation
- * is done securely. Among other things, it should do an fstat on
- * the script it just opened to make sure it really is a setuid/setgid
- * script, it should make sure the arguments passed correspond exactly
- * to the argument on the #! line, and it should not trust any
- * subprocesses to which it must pass the filename rather than the
- * file descriptor of the script to be executed.
- */
-#$d_suidsafe SETUID_SCRIPTS_ARE_SECURE_NOW /**/
-#$d_dosuid DOSUID /**/
-
/* HAS_DRAND48_R:
* This symbol, if defined, indicates that the drand48_r routine
* is available to drand48 re-entrantly.
* 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.
*/
*/
#$d_msg HAS_MSG /**/
-/* 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.
- */
-#$d_poll HAS_POLL /**/
-
/* OLD_PTHREAD_CREATE_JOINABLE:
* This symbol, if defined, indicates how to create pthread
* in joinable (aka undetached) state. NOTE: not defined
#$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_setgrent_r HAS_SETGRENT_R /**/
#define SETGRENT_R_PROTO $setgrent_r_proto /**/
-/* HAS_SETGROUPS:
- * This symbol, if defined, indicates that the setgroups() routine is
- * available to set the list of process groups. If unavailable, multiple
- * groups are probably not supported.
- */
-#$d_setgrps HAS_SETGROUPS /**/
-
/* HAS_SETHOSTENT:
* This symbol, if defined, indicates that the sethostent() routine is
* available.
*/
#define Gid_t $gidtype /* Type for getgid(), etc... */
-/* Groups_t:
- * 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
- * typedef'ed information. This is only required if you have
- * getgroups() or setgroups()..
- */
-#if defined(HAS_GETGROUPS) || defined(HAS_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
* This symbol, if defined, indicates that <ndbm.h> exists and should
* be included.
*/
+/* I_GDBMNDBM:
+ * This symbol, if defined, indicates that <gdbm/ndbm.h> exists and should
+ * be included. This was the location of the ndbm.h compatibility file
+ * in RedHat 7.1.
+ */
+/* I_GDBM_NDBM:
+ * This symbol, if defined, indicates that <gdbm-ndbm.h> exists and should
+ * be included. This is the location of the ndbm.h compatibility file
+ * in Debian 4.0.
+ */
#$i_ndbm I_NDBM /**/
+#$i_gdbmndbm I_GDBMNDBM /**/
+#$i_gdbm_ndbm I_GDBM_NDBM /**/
/* I_NETDB:
* This symbol, if defined, indicates that <netdb.h> exists and
*/
#$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,
*/
#define Sock_size_t $socksizetype /**/
-/* STDCHAR:
- * This symbol is defined to be the type of char used in stdio.h.
- * It has the values "unsigned char" or "char".
- */
-#define STDCHAR $stdchar /**/
-
/* Uid_t_f:
* This symbol defines the format string used for printing a Uid_t.
*/
* 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 /**/
*/
#$ebcdic EBCDIC /**/
+/* STDCHAR:
+ * This symbol is defined to be the type of char used in stdio.h.
+ * It has the values "unsigned char" or "char".
+ */
+#define STDCHAR $stdchar /**/
+
/* HAS_ATOLF:
* This symbol, if defined, indicates that the atolf routine is
* available to convert strings into long doubles.
*/
#$d_telldirproto HAS_TELLDIR_PROTO /**/
+/* HAS_TIMEGM:
+ * This symbol, if defined, indicates that the timegm routine is
+ * available to do the opposite of gmtime ()
+ */
+#$d_timegm HAS_TIMEGM /**/
+
/* U32_ALIGNMENT_REQUIRED:
* This symbol, if defined, indicates that you must access
* character data through U32-aligned pointers.
#$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.
*/
#$i_libutil I_LIBUTIL /**/
+/* I_MALLOCMALLOC:
+ * This symbol, if defined, indicates to the C program that it should
+ * include <malloc/malloc.h>.
+ */
+#$i_mallocmalloc I_MALLOCMALLOC /**/
+
/* I_MNTENT:
* This symbol, if defined, indicates that <mntent.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
+
+/* GMTIME_MAX:
+ * This symbol contains the maximum value for the time_t offset that
+ * the system function gmtime () accepts, and defaults to 0
+ */
+/* GMTIME_MIN:
+ * This symbol contains the minimum value for the time_t offset that
+ * the system function gmtime () accepts, and defaults to 0
+ */
+#define GMTIME_MAX $sGMTIME_max /**/
+#define GMTIME_MIN $sGMTIME_min /**/
/* 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'.