[win32] integrate mainline
[p5sagit/p5-mst-13.2.git] / config_h.SH
old mode 100755 (executable)
new mode 100644 (file)
index c6d662a..33009ab
@@ -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.
@@ -285,7 +315,13 @@ sed <<!GROK!THIS! >config.h -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un-
  *     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
@@ -293,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
@@ -349,13 +415,6 @@ sed <<!GROK!THIS! >config.h -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un-
 #$d_htonl HAS_NTOHL            /**/
 #$d_htonl HAS_NTOHS            /**/
 
-/* 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_ISASCII:
  *     This manifest constant lets the C program know that isascii 
  *     is available.
@@ -507,6 +566,12 @@ sed <<!GROK!THIS! >config.h -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un-
  */
 #$d_poll HAS_POLL              /**/
 
+/* HAS_PTHREAD_YIELD:
+ *     This symbol, if defined, indicates that the pthread_yield routine is
+ *     available to yield the execution of the current thread.
+ */
+#$d_pthread_yield HAS_PTHREAD_YIELD
+
 /* HAS_READDIR:
  *     This symbol, if defined, indicates that the readdir routine is
  *     available to read directory entries. You may have to include
@@ -514,6 +579,12 @@ sed <<!GROK!THIS! >config.h -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un-
  */
 #$d_readdir HAS_READDIR                /**/
 
+/* HAS_SCHED_YIELD:
+ *     This symbol, if defined, indicates that the sched_yield
+ *     routine is available to yield the execution of the current thread.
+ */
+#$d_sched_yield HAS_SCHED_YIELD
+
 /* HAS_SEEKDIR:
  *     This symbol, if defined, indicates that the seekdir routine is
  *     available. You may have to include <dirent.h>. See I_DIRENT.
@@ -737,22 +808,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:
@@ -994,14 +1055,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:
@@ -1098,6 +1159,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>.
@@ -1284,10 +1351,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.
@@ -1304,6 +1381,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.
@@ -1328,14 +1432,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
@@ -1352,6 +1448,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".
@@ -1402,7 +1508,7 @@ sed <<!GROK!THIS! >config.h -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un-
 /* 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 
@@ -1491,6 +1597,13 @@ sed <<!GROK!THIS! >config.h -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un-
 #$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
@@ -1523,6 +1636,12 @@ sed <<!GROK!THIS! >config.h -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un-
  */
 #$d_sfio       USE_SFIO                /**/
 
+/* PTHREADS_CREATED_JOINABLE:
+ *     This symbol, if defined, indicates that pthreads are created
+ *     in the joinable (aka undetached) state.
+ */
+#$d_pthreads_created_joinable  PTHREADS_CREATED_JOINABLE               /**/
+
 /* Sigjmp_buf:
  *     This is the buffer type to be used with Sigsetjmp and Siglongjmp.
  */
@@ -1605,33 +1724,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
@@ -1732,16 +1824,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