This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Banishing eval from getopt.pl and Getopt/Std.pm
[perl5.git] / config_H
index dec1e75..87fc608 100644 (file)
--- a/config_H
+++ b/config_H
  */
 #define MEM_ALIGNBYTES 4       /**/
 
+/* ARCHNAME:
+ *     This symbol holds a string representing the architecture name.
+ *     It may be used to construct an architecture-dependant pathname
+ *     where library files may be held under a private library, for
+ *     instance.
+ */
+#define ARCHNAME "unknown"     /**/
+
 /* BIN:
  *     This symbol holds the path of the bin directory where the package will
  *     be installed. Program must be prepared to deal with ~name substitution.
  */
+/* BIN_EXP:
+ *     This symbol is the filename expanded version of the BIN symbol, for
+ *     programs that do not want to deal with that at run-time.
+ */
 #define BIN "/opt/perl/bin"    /**/
+#define BIN_EXP "/opt/perl/bin"        /**/
 
 /* CAT2:
  *     This macro catenates 2 tokens together.
  */
 #define HAS_FSETPOS    /**/
 
+/* HAS_GETTIMEOFDAY:
+ *     This symbol, if defined, indicates that the gettimeofday() system
+ *     call is available for a sub-second accuracy clock. Usually, the file
+ *     <sys/resource.h> needs to be included (see I_SYS_RESOURCE).
+ *     The type "Timeval" should be used to refer to "struct timeval".
+ */
+/*#define HAS_GETTIMEOFDAY     / **/
+#ifdef HAS_GETTIMEOFDAY
+#define Timeval struct timeval /* Structure used by gettimeofday() */
+#endif
+
 /* HAS_GETGROUPS:
  *     This symbol, if defined, indicates that the getgroups() routine is
  *     available to get the list of process groups.  If unavailable, multiple
  *     groups are probably not supported.
  */
+/* 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.
+ */
 #define HAS_GETGROUPS          /**/
+#define HAS_SETGROUPS          /**/
 
 /* HAS_GETHOSTENT:
  *     This symbol, if defined, indicates that the gethostent routine is
  */
 /*#define HAS_SAFE_MEMCPY      / **/
 
+/* HAS_SANE_MEMCMP:
+ *     This symbol, if defined, indicates that the memcmp routine is available
+ *     and can be used to compare relative magnitudes of chars with their high
+ *     bits set.  If it is not defined, roll your own version.
+ */
+/*#define HAS_SANE_MEMCMP      / **/
+
 /* HAS_SELECT:
  *     This symbol, if defined, indicates that the select routine is
  *     available to select active file descriptors. If the timeout field
  *     This symbol is defined if the FILE_cnt macro can be used as an
  *     lvalue.
  */
-/* FILE_filbuf:
- *     This macro is used to access the internal stdio _filbuf function
- *     (or equivalent), if STDIO_CNT_LVALUE and STDIO_PTR_LVALUE
- *     are defined.  It is typically either _filbuf or __filbuf.
- *     This macro will only be defined if both STDIO_CNT_LVALUE and
- *     STDIO_PTR_LVALUE are defined.
- */
 #define USE_STDIO_PTR  /**/
 #ifdef USE_STDIO_PTR
 #define FILE_ptr(fp)   ((fp)->_ptr)
 #define STDIO_PTR_LVALUE               /**/
 #define FILE_cnt(fp)   ((fp)->_cnt)
 #define STDIO_CNT_LVALUE               /**/
-#if defined(STDIO_PTR_LVALUE) && defined(STDIO_CNT_LVALUE)
-#define FILE_filbuf(fp)        _filbuf(fp)             /**/
-#endif
 #endif
 
 /* USE_STDIO_BASE:
 
 /* HAS_STRTOD:
  *     This symbol, if defined, indicates that the strtod routine is
- *     available to translate strings to doubles.
+ *     available to provide better numeric string conversion than atof().
  */
 #define HAS_STRTOD     /**/
 
 /* HAS_STRTOL:
- *     This symbol, if defined, indicates that the strtol routine is
- *     available to translate strings to integers.
+ *     This symbol, if defined, indicates that the strtol routine is available
+ *     to provide better numeric string conversion than atoi() and friends.
  */
 #define HAS_STRTOL     /**/
 
 /* HAS_STRTOUL:
  *     This symbol, if defined, indicates that the strtoul routine is
- *     available to translate strings to integers.
+ *     available to provide conversion of strings to unsigned long.
  */
 #define HAS_STRTOUL    /**/
 
 
 /* Groups_t:
  *     This symbol holds the type used for the second argument to
- *     getgroups().  Usually, this is the same of gidtype, but
+ *     [gs]etgroups().  Usually, this is the same of gidtype, but
  *     sometimes it isn't.  It can be int, ushort, uid_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().
+ *     getgroups() or setgroups().
  */
-#ifdef HAS_GETGROUPS
-#define Groups_t gid_t /* Type for 2nd arg to getgroups() */
+#if defined(HAS_GETGROUPS) || defined(HAS_SETGROUPS)
+#define Groups_t gid_t /* Type for 2nd arg to [gs]etgroups() */
 #endif
 
 /* DB_Prefix_t:
 /*#define I_VFORK      / **/
 
 /* INTSIZE:
- *     This symbol contains the size of an int, so that the C preprocessor
- *     can make decisions based on it.
+ *     This symbol contains the value of sizeof(int) so that the C
+ *     preprocessor can make decisions based on it.
+ */
+/* LONGSIZE:
+ *     This symbol contains the value of sizeof(long) so that the C
+ *     preprocessor can make decisions based on it.
+ */
+/* SHORTSIZE:
+ *     This symbol contains the value of sizeof(short) so that the C
+ *     preprocessor can make decisions based on it.
  */
 #define INTSIZE 4              /**/
+#define LONGSIZE 4             /**/
+#define SHORTSIZE 2            /**/
 
 /* Off_t:
  *     This symbol holds the type used to declare offsets in the kernel.
  */
 #define Mode_t mode_t   /* file mode parameter for system calls */
 
+/* VAL_O_NONBLOCK:
+ *     This symbol is to be used during open() or fcntl(F_SETFL) to turn on
+ *     non-blocking I/O for the file descriptor. Note that there is no way
+ *     back, i.e. you cannot turn it blocking again this way. If you wish to
+ *     alternatively switch between blocking and non-blocking, use the
+ *     ioctl(FIOSNBIO) call instead, but that is not supported by all devices.
+ */
+/* VAL_EAGAIN:
+ *     This symbol holds the errno error code set by read() when no data was
+ *     present on the non-blocking file descriptor.
+ */
+/* RD_NODATA:
+ *     This symbol holds the return code from read() when no data is present
+ *     on the non-blocking file descriptor. Be careful! If EOF_NONBLOCK is
+ *     not defined, then you can't distinguish between no data and EOF by
+ *     issuing a read(). You'll have to find another way to tell for sure!
+ */
+/* EOF_NONBLOCK:
+ *     This symbol, if defined, indicates to the C program that a read() on
+ *     a non-blocking file descriptor will return 0 on EOF, and not the value
+ *     held in RD_NODATA (-1 usually, in that case!).
+ */
+#define VAL_O_NONBLOCK O_NONBLOCK
+#define VAL_EAGAIN EAGAIN
+#define RD_NODATA -1
+#define EOF_NONBLOCK
+
 /* CAN_PROTOTYPE:
  *     If defined, this macro indicates that the C compiler can handle
  *     function prototypes.
  */
 #define RANDBITS 15            /**/
 
-/* SCRIPTDIR:
- *     This symbol holds the name of the directory in which the user wants
- *     to put publicly executable scripts for the package in question.  It
- *     is often a directory that is mounted across diverse architectures.
- *     Programs must be prepared to deal with ~name expansion.
- */
-#define SCRIPTDIR "/opt/perl/script"   /**/
-
 /* 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
  */
 #define Size_t size_t   /* length paramater for string functions */
 
+/* SSize_t:
+ *     This symbol holds the type used by functions that return
+ *     a count of bytes or an error condition.  It must be a signed type.
+ *     It is usually ssize_t, but may be long or int, etc.
+ *     It may be necessary to include <sys/types.h> or <unistd.h>
+ *     to get any typedef'ed information.
+ *     We will pick a type such that sizeof(SSize_t) == sizeof(Size_t).
+ */
+#define SSize_t ssize_t         /* signed count of bytes */
+
 /* STDCHAR:
  *     This symbol is defined to be the type of char used in stdio.h.
  *     It has the values "unsigned char" or "char".
 #define ARCHLIB "/opt/perl/lib/i86pc-solaris/5.00305"          /**/
 #define ARCHLIB_EXP "/opt/perl/lib/i86pc-solaris/5.00305"              /**/
 
+/* BINCOMPAT3:
+ *     This symbol, if defined, indicates that Perl 5.004 should be
+ *     binary-compatible with Perl 5.003.
+ */
+#define BINCOMPAT3             /**/
+
 /* BYTEORDER:
  *     This symbol holds the hexadecimal constant defined in byteorder,
  *     i.e. 0x1234 or 0x4321, etc...
 #define HAS_GETPGRP            /**/
 /*#define USE_BSD_GETPGRP      / **/
 
+/* HAS_INET_ATON:
+ *     This symbol, if defined, indicates to the C program that the
+ *     inet_aton() function is available to parse IP address "dotted-quad"
+ *     strings.
+ */
+#define HAS_INET_ATON          /**/
+
 /* HAS_SETPGID:
  *     This symbol, if defined, indicates to the C program that 
  *     the setpgid(pid, gpid) function is available to set the
  */
 #define MYMALLOC                       /**/
 
-/* VAL_O_NONBLOCK:
- *     This symbol is to be used during open() or fcntl(F_SETFL) to turn on
- *     non-blocking I/O for the file descriptor. Note that there is no way
- *     back, i.e. you cannot turn it blocking again this way. If you wish to
- *     alternatively switch between blocking and non-blocking, use the
- *     ioctl(FIOSNBIO) call instead, but that is not supported by all devices.
- */
-/* VAL_EAGAIN:
- *     This symbol holds the errno error code set by read() when no data was
- *     present on the non-blocking file descriptor.
- */
-/* RD_NODATA:
- *     This symbol holds the return code from read() when no data is present
- *     on the non-blocking file descriptor. Be careful! If EOF_NONBLOCK is
- *     not defined, then you can't distinguish between no data and EOF by
- *     issuing a read(). You'll have to find another way to tell for sure!
- */
-/* EOF_NONBLOCK:
- *     This symbol, if defined, indicates to the C program that a read() on
- *     a non-blocking file descriptor will return 0 on EOF, and not the value
- *     held in RD_NODATA (-1 usually, in that case!).
- */
-#define VAL_O_NONBLOCK O_NONBLOCK
-#define VAL_EAGAIN EAGAIN
-#define RD_NODATA -1
-#define EOF_NONBLOCK
-
 /* OLDARCHLIB:
  *     This variable, if defined, holds the name of the directory in
  *     which the user has perl5.000 or perl5.001 architecture-dependent
 #define SITELIB "/opt/perl/lib/site_perl"              /**/
 #define SITELIB_EXP "/opt/perl/lib/site_perl"          /**/
 
-/* SSize_t:
- *     This symbol holds the type used by functions that return
- *     a count of bytes or an error condition.  It must be a signed type.
- *     It is usually ssize_t, but may be long or int, etc.
- *     It may be necessary to include <sys/types.h> or <unistd.h>
- *     to get any typedef'ed information.
- *     We will pick a type such that sizeof(SSize_t) == sizeof(Size_t).
- */
-#define SSize_t ssize_t         /* signed count of bytes */
-
 /* STARTPERL:
  *     This variable contains the string to put in front of a perl
  *     script to make sure (one hopes) that it runs with perl and not