Let Configure sort out get{host,net}byaddr* prototypes:
[p5sagit/p5-mst-13.2.git] / config_h.SH
old mode 100755 (executable)
new mode 100644 (file)
index f00588f..7575143
@@ -39,14 +39,44 @@ sed <<!GROK!THIS! >config.h -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un-
 /* MEM_ALIGNBYTES:
  *     This symbol contains the number of bytes required to align a
  *     double. Usual values are 2, 4 and 8.
+ *     On NeXT starting with 3.2, you can build "Fat" Multiple Architecture
+ *     Binaries (MAB) for targets with varying alignment.  This only matters
+ *     for perl, where the config.h can be generated and installed on one
+ *     system, and used by a different architecture to build an extension.
+ *     The default is eight, for safety.
  */
+#ifndef NeXT
 #define MEM_ALIGNBYTES $alignbytes     /**/
+#else  /* NeXT */
+#ifdef __m68k__
+#define MEM_ALIGNBYTES 2
+#else
+#ifdef __i386__
+#define MEM_ALIGNBYTES 4
+#else /* __hppa__, __sparc__ and default for unknown architectures */
+#define MEM_ALIGNBYTES 8
+#endif /* __i386__ */
+#endif /* __m68k__ */
+#endif /* NeXT */
+
+/* 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 "$archname"           /**/
 
 /* 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 "$bin"     /**/
+#define BIN_EXP "$binexp"      /**/
 
 /* CAT2:
  *     This macro catenates 2 tokens together.
@@ -269,12 +299,29 @@ sed <<!GROK!THIS! >config.h -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un-
  */
 #$d_fsetpos 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".
+ */
+#$d_gettimeod 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.
+ */
 #$d_getgrps HAS_GETGROUPS              /**/
+#$d_setgrps HAS_SETGROUPS              /**/
 
 /* HAS_GETHOSTENT:
  *     This symbol, if defined, indicates that the gethostent routine is
@@ -282,6 +329,36 @@ sed <<!GROK!THIS! >config.h -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un-
  */
 #$d_gethent HAS_GETHOSTENT             /**/
 
+/* HAS_GETHBADD:
+ *     This symbol, if defined, indicates that the gethostbyaddr routine is
+ *     available to lookup host names by their IP addresses.
+ */
+#$d_gethbadd HAS_GETHBADD              /**/
+
+/* Gethbadd_addr_t:
+ *     This symbol holds the type used for the 1st argument
+ *     to gethostbyaddr().
+ */
+#define Gethbadd_addr_t                $gethbadd_addr_type
+
+/* Gethbadd_alen_t:
+ *     This symbol holds the type used for the 2nd argument
+ *     to gethostbyaddr().
+ */
+#define Gethbadd_alen_t                $gethbadd_alen_type
+
+/* HAS_GETNBADD:
+ *     This symbol, if defined, indicates that the getnetbyaddr routine is
+ *     available to lookup networks by their IP addresses.
+ */
+#$d_getnbadd HAS_GETNBADD              /**/
+
+/* Gethbadd_net_t:
+ *     This symbol holds the type used for the 1st argument
+ *     to getnetbyaddr().
+ */
+#define Getnbadd_net_t         $getnbadd_net_type
+
 /* HAS_UNAME:
  *     This symbol, if defined, indicates that the C program may use the
  *     uname() routine to derive the host name.  See also HAS_GETHOSTNAME
@@ -295,12 +372,6 @@ sed <<!GROK!THIS! >config.h -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un-
  */
 #$d_getlogin HAS_GETLOGIN              /**/
 
-/* HAS_GETPGRP:
- *     This symbol, if defined, indicates that the getpgrp routine is
- *     available to get the current process group.
- */
-#$d_getpgrp HAS_GETPGRP                /**/
-
 /* HAS_GETPGRP2:
  *     This symbol, if defined, indicates that the getpgrp2() (as in DG/UX)
  *     routine is available to get the current process group.
@@ -556,6 +627,13 @@ sed <<!GROK!THIS! >config.h -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un-
  */
 #$d_safemcpy 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.
+ */
+#$d_sanemcmp 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
@@ -594,24 +672,6 @@ sed <<!GROK!THIS! >config.h -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un-
  */
 #$d_setlocale HAS_SETLOCALE    /**/
 
-/* HAS_SETPGID:
- *     This symbol, if defined, indicates that the setpgid routine is
- *     available to set process group ID.
- */
-#$d_setpgid HAS_SETPGID        /**/
-
-/* HAS_SETPGRP:
- *     This symbol, if defined, indicates that the setpgrp routine is
- *     available to set the current process group.
- */
-/* USE_BSDPGRP:
- *     This symbol, if defined, indicates that the BSD notion of process
- *     group is to be used. For instance, you have to say setpgrp(pid, pgrp)
- *     instead of the USG setpgrp().
- */
-#$d_setpgrp HAS_SETPGRP                /**/
-#$d_bsdpgrp USE_BSDPGRP                /**/
-
 /* HAS_SETPGRP2:
  *     This symbol, if defined, indicates that the setpgrp2() (as in DG/UX)
  *     routine is available to set the current process group.
@@ -736,22 +796,12 @@ sed <<!GROK!THIS! >config.h -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un-
  *     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.
- */
 #$d_stdstdio USE_STDIO_PTR     /**/
 #ifdef USE_STDIO_PTR
 #define FILE_ptr(fp)   $stdio_ptr
 #$d_stdio_ptr_lval STDIO_PTR_LVALUE            /**/
 #define FILE_cnt(fp)   $stdio_cnt
 #$d_stdio_cnt_lval STDIO_CNT_LVALUE            /**/
-#if defined(STDIO_PTR_LVALUE) && defined(STDIO_CNT_LVALUE)
-#define FILE_filbuf(fp)        $stdio_filbuf           /**/
-#endif
 #endif
 
 /* USE_STDIO_BASE:
@@ -824,6 +874,24 @@ sed <<!GROK!THIS! >config.h -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un-
 #$d_syserrlst HAS_SYS_ERRLIST  /**/
 #define Strerror(e) $d_strerrm
 
+/* HAS_STRTOD:
+ *     This symbol, if defined, indicates that the strtod routine is
+ *     available to provide better numeric string conversion than atof().
+ */
+#$d_strtod HAS_STRTOD  /**/
+
+/* HAS_STRTOL:
+ *     This symbol, if defined, indicates that the strtol routine is available
+ *     to provide better numeric string conversion than atoi() and friends.
+ */
+#$d_strtol HAS_STRTOL  /**/
+
+/* HAS_STRTOUL:
+ *     This symbol, if defined, indicates that the strtoul routine is
+ *     available to provide conversion of strings to unsigned long.
+ */
+#$d_strtoul HAS_STRTOUL        /**/
+
 /* HAS_STRXFRM:
  *     This symbol, if defined, indicates that the strxfrm() routine is
  *     available to transform strings.
@@ -975,14 +1043,14 @@ sed <<!GROK!THIS! >config.h -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un-
 
 /* 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 $groupstype   /* Type for 2nd arg to getgroups() */
+#if defined(HAS_GETGROUPS) || defined(HAS_SETGROUPS)
+#define Groups_t $groupstype   /* Type for 2nd arg to [gs]etgroups() */
 #endif
 
 /* DB_Prefix_t:
@@ -1079,6 +1147,12 @@ sed <<!GROK!THIS! >config.h -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un-
  */
 #$i_niin I_NETINET_IN  /**/
 
+/* I_NETDB:
+ *     This symbol, if defined, indicates that <netdb.h> exists and 
+ *     should be included.
+ */
+#$i_netdb I_NETDB              /**/
+
 /* I_PWD:
  *     This symbol, if defined, indicates to the C program that it should
  *     include <pwd.h>.
@@ -1265,10 +1339,20 @@ sed <<!GROK!THIS! >config.h -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un-
 #$i_vfork 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 $intsize               /**/
+#define LONGSIZE $longsize             /**/
+#define SHORTSIZE $shortsize           /**/
 
 /* Off_t:
  *     This symbol holds the type used to declare offsets in the kernel.
@@ -1285,6 +1369,33 @@ sed <<!GROK!THIS! >config.h -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un-
  */
 #define Mode_t $modetype        /* 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 $rd_nodata
+#$d_eofnblk EOF_NONBLOCK
+
 /* CAN_PROTOTYPE:
  *     If defined, this macro indicates that the C compiler can handle
  *     function prototypes.
@@ -1309,14 +1420,6 @@ sed <<!GROK!THIS! >config.h -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un-
  */
 #define RANDBITS $randbits             /**/
 
-/* 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 "$scriptdir" /**/
-
 /* 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
@@ -1333,6 +1436,16 @@ sed <<!GROK!THIS! >config.h -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un-
  */
 #define Size_t $sizetype        /* 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 $ssizetype      /* 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".
@@ -1374,10 +1487,16 @@ sed <<!GROK!THIS! >config.h -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un-
 #$d_archlib ARCHLIB "$archlib"         /**/
 #$d_archlib ARCHLIB_EXP "$archlibexp"          /**/
 
+/* BINCOMPAT3:
+ *     This symbol, if defined, indicates that Perl 5.004 should be
+ *     binary-compatible with Perl 5.003.
+ */
+#$d_bincompat3 BINCOMPAT3                      /**/
+
 /* BYTEORDER:
  *     This symbol holds the hexadecimal constant defined in byteorder,
  *     i.e. 0x1234 or 0x4321, etc...
- *     On NeXT 4 (and greater), you can build "Fat" Multiple Architecture
+ *     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 
@@ -1409,7 +1528,7 @@ sed <<!GROK!THIS! >config.h -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un-
  *     makes sense if you *have* dlsym, which we will presume is the
  *     case if you're using dl_dlopen.xs.
  */
-#$d_dlsymun    DLSYM_NEEDS_UNDERSCORE  /* */
+#$d_dlsymun    DLSYM_NEEDS_UNDERSCORE  /**/
 
 /* SETUID_SCRIPTS_ARE_SECURE_NOW:
  *     This symbol, if defined, indicates that the bug that prevents
@@ -1448,6 +1567,57 @@ sed <<!GROK!THIS! >config.h -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un-
  */
 #define Gconvert(x,n,t,b) $d_Gconvert
 
+/* HAS_GETPGID:
+ *     This symbol, if defined, indicates to the C program that 
+ *     the getpgid(pid) function is available to get the
+ *     process group id.
+ */
+#$d_getpgid HAS_GETPGID                /**/
+
+/* HAS_GETPGRP:
+ *     This symbol, if defined, indicates that the getpgrp routine is
+ *     available to get the current process group.
+ */
+/* USE_BSD_GETPGRP:
+ *     This symbol, if defined, indicates that getpgrp needs one
+ *     arguments whereas USG one needs none.
+ */
+#$d_getpgrp HAS_GETPGRP                /**/
+#$d_bsdgetpgrp 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.
+ */
+#$d_inetaton 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
+ *     process group id.
+ */
+#$d_setpgid HAS_SETPGID                /**/
+
+/* HAS_SETPGRP:
+ *     This symbol, if defined, indicates that the setpgrp routine is
+ *     available to set the current process group.
+ */
+/* USE_BSD_SETPGRP:
+ *     This symbol, if defined, indicates that setpgrp needs two
+ *     arguments whereas USG one needs none.  See also HAS_SETPGID
+ *     for a POSIX interface.
+ */
+/* USE_BSDPGRP:
+ *     This symbol, if defined, indicates that the BSD notion of process
+ *     group is to be used. For instance, you have to say setpgrp(pid, pgrp)
+ *     instead of the USG setpgrp().  This should be obsolete since
+ *     there are systems which have BSD-ish setpgrp but USG-ish getpgrp.
+ */
+#$d_setpgrp HAS_SETPGRP                /**/
+#$d_bsdsetpgrp USE_BSD_SETPGRP /**/
+#$d_bsdpgrp USE_BSDPGRP                /**/
+
 /* USE_SFIO:
  *     This symbol, if defined, indicates that sfio should
  *     be used.
@@ -1536,33 +1706,6 @@ sed <<!GROK!THIS! >config.h -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un-
  */
 #$d_mymalloc 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 $rd_nodata
-#$d_eofnblk 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
@@ -1595,7 +1738,8 @@ sed <<!GROK!THIS! >config.h -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un-
  *     This symbol contains the full pathname to the shell used on this
  *     on this system to execute Bourne shell scripts.  Usually, this will be
  *     /bin/sh, though it's possible that some systems will have /bin/ksh,
- *     /bin/pdksh, /bin/ash, /bin/bash, or even something such as D:/bin/sh.
+ *     /bin/pdksh, /bin/ash, /bin/bash, or even something such as
+ *     D:/bin/sh.exe.
  */
 #define SH_PATH "$sh"  /**/
 
@@ -1662,16 +1806,6 @@ sed <<!GROK!THIS! >config.h -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un-
 #define SITELIB "$sitelib"             /**/
 #define SITELIB_EXP "$sitelibexp"              /**/
 
-/* 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 $ssizetype      /* 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