This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Avoid SIGFPE in Tru64.
[perl5.git] / uconfig.h
index 9eff617..4dcddc8 100644 (file)
--- a/uconfig.h
+++ b/uconfig.h
  */
 /*#define 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.
- */
-/*#define SETUID_SCRIPTS_ARE_SECURE_NOW        / **/
-/*#define DOSUID               / **/
-
 /* HAS_DUP2:
  *     This symbol, if defined, indicates that the dup2 routine is
  *     available to duplicate file descriptors.
  */
 /*#define I_VALUES             / **/
 
-/* I_STDARG:
- *     This symbol, if defined, indicates that <stdarg.h> exists and should
- *     be included.
- */
-/* I_VARARGS:
- *     This symbol, if defined, indicates to the C program that it should
- *     include <varargs.h>.
- */
-#define I_STDARG               /**/
-/*#define I_VARARGS    / **/
-
 /* I_VFORK:
  *     This symbol, if defined, indicates to the C program that it should
  *     include vfork.h.
  */
 #define SH_PATH ""  /**/
 
-/* CROSSCOMPILE:
- *     This symbol, if defined, signifies that we our
- *     build process is a cross-compilation.
- */
-/*#define CROSSCOMPILE         / **/
-
 /* INTSIZE:
  *     This symbol contains the value of sizeof(int) so that the C
  *     preprocessor can make decisions based on it.
  *     This symbol contains the value of sizeof(short) so that the C
  *     preprocessor can make decisions based on it.
  */
-#define INTSIZE 1              /**/
+#define INTSIZE 4              /**/
 #define LONGSIZE 4             /**/
-#define SHORTSIZE 1            /**/
+#define SHORTSIZE 2            /**/
 
 /* MULTIARCH:
  *     This symbol, if defined, signifies that the build
  *     double, or a long double when applicable. Usual values are 2,
  *     4 and 8. The default is eight, for safety.
  */
-#if defined(CROSSCOMPILE) || defined(MULTIARCH)
+#if defined(USE_CROSS_COMPILE) || defined(MULTIARCH)
 #  define MEM_ALIGNBYTES 8
 #else
 #define MEM_ALIGNBYTES 4
  *     so the default case (for NeXT) is big endian to catch them. 
  *     This might matter for NeXT 3.0.
  */
-#if defined(CROSSCOMPILE) || defined(MULTIARCH)
+#if defined(USE_CROSS_COMPILE) || defined(MULTIARCH)
 #  ifdef __LITTLE_ENDIAN__
 #    if LONGSIZE == 4
 #      define BYTEORDER 0x1234
  */
 /*#define HAS_ENDSERVENT               / **/
 
+/* HAS_FCHDIR:
+ *     This symbol, if defined, indicates that the fchdir routine is
+ *     available to change directory using a file descriptor.
+ */
+/*#define HAS_FCHDIR           / **/
+
 /* FCNTL_CAN_LOCK:
  *     This symbol, if defined, indicates that fcntl() can be used
  *     for file locking.  Normally on Unix systems this is defined.
  */
 /*#define HAS_LONG_DOUBLE              / **/
 #ifdef HAS_LONG_DOUBLE
-#define LONG_DOUBLESIZE 1              /**/
+#define LONG_DOUBLESIZE 8              /**/
 #endif
 
 /* HAS_LONG_LONG:
  */
 /*#define HAS_LONG_LONG                / **/
 #ifdef HAS_LONG_LONG
-#define LONGLONGSIZE 1         /**/
+#define LONGLONGSIZE 8         /**/
 #endif
 
 /* HAS_LSEEK_PROTO:
  *     available to split a long double x into a fractional part f and
  *     an integer part i such that |f| < 1.0 and (f + i) = x.
  */
+/* HAS_MODFL_POW32_BUG:
+ *     This symbol, if defined, indicates that the modfl routine is
+ *     broken for long doubles >= pow(2, 32).
+ *     For example from 4294967303.150000 one would get 4294967302.000000
+ *     and 1.150000.  The bug has been seen in certain versions of glibc,
+ *     release 2.2.2 is known to be okay.
+ */
 /*#define HAS_MODFL            / **/
+/*#define HAS_MODFL_POW32_BUG          / **/
 
 /* HAS_MPROTECT:
  *     This symbol, if defined, indicates that the mprotect system call is
 
 /* HAS_SAFE_BCOPY:
  *     This symbol, if defined, indicates that the bcopy routine is available
- *     to copy potentially overlapping memory blocks. Otherwise you should
+ *     to copy potentially overlapping memory blocks. Normally, you should
  *     probably use memmove() or memcpy(). If neither is defined, roll your
  *     own version.
  */
 
 /* HAS_SAFE_MEMCPY:
  *     This symbol, if defined, indicates that the memcpy routine is available
- *     to copy potentially overlapping memory blocks. Otherwise you should
- *     probably use memmove() or memcpy(). If neither is defined, roll your
- *     own version.
+ *     to copy potentially overlapping memory blocks.  If you need to
+ *     copy overlapping memory blocks, you should check HAS_MEMMOVE and
+ *     use memmove() instead, if available.
  */
 /*#define HAS_SAFE_MEMCPY      / **/
 
  *     This symbol holds the number of bytes used by the Off_t.
  */
 #define Off_t int              /* <offset> type */
-#define LSEEKSIZE 1            /* <offset> size */
-#define Off_t_size 1   /* <offset> size */
+#define LSEEKSIZE 4            /* <offset> size */
+#define Off_t_size 4   /* <offset> size */
 
 /* Free_t:
  *     This variable contains the return type of free().  It is usually
  *     This macro is to be used to generate uniformly distributed
  *     random numbers over the range [0., 1.[.  You may have to supply
  *     an 'extern double drand48();' in your program since SunOS 4.1.3
- *     doesn't provide you with anything relevant in it's headers.
+ *     doesn't provide you with anything relevant in its headers.
  *     See HAS_DRAND48_PROTO.
  */
 /* Rand_seed_t:
 /* Size_t_size:
  *     This symbol holds the size of a Size_t in bytes.
  */
-#define Size_t_size 1          /* */
+#define Size_t_size 4          /* */
 
 /* Size_t:
  *     This symbol holds the type used to declare length parameters
  *     This symbol, if defined, indicates that Perl should
  *     be built to use the old draft POSIX threads API.
  */
+/* USE_REENTRANT_API:
+ *     This symbol, if defined, indicates that Perl should
+ *     try to use the various _r versions of library functions.
+ *     This is extremely experimental.
+ */
 /*#define      USE_5005THREADS         / **/
 /*#define      USE_ITHREADS            / **/
 #if defined(USE_5005THREADS) && !defined(USE_ITHREADS)
 #define                USE_THREADS             /* until src is revised*/
 #endif
 /*#define      OLD_PTHREADS_API                / **/
+/*#define      USE_REENTRANT_API       / **/
 
 /* PERL_VENDORARCH:
  *     If defined, this symbol contains the name of a private library.
 #define PERL_XS_APIVERSION "5.005"
 #define PERL_PM_APIVERSION "5.005"
 
-/* HAS_REALPATH:
- *     This symbol, if defined, indicates that the realpath routine is
- *     available to do resolve paths.
+/* 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.
  */
-/*#define HAS_REALPATH         / **/
+/* 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.
+ */
+/*#define SETUID_SCRIPTS_ARE_SECURE_NOW        / **/
+/*#define DOSUID               / **/
+
+/* I_STDARG:
+ *     This symbol, if defined, indicates that <stdarg.h> exists and should
+ *     be included.
+ */
+/* I_VARARGS:
+ *     This symbol, if defined, indicates to the C program that it should
+ *     include <varargs.h>.
+ */
+#define I_STDARG               /**/
+/*#define I_VARARGS    / **/
+
+/* USE_CROSS_COMPILE:
+ *     This symbol, if defined, indicates that Perl is being cross-compiled.
+ */
+/* PERL_TARGETARCH:
+ *     This symbol, if defined, indicates the target architecture
+ *     Perl has been cross-compiled to.  Undefined if not a cross-compile.
+ */
+#ifndef USE_CROSS_COMPILE
+/*#define      USE_CROSS_COMPILE       / **/
+#define        PERL_TARGETARCH ""      /**/
+#endif
+
+/* HAS_DBMINIT_PROTO:
+ *     This symbol, if defined, indicates that the system provides
+ *     a prototype for the dbminit() function.  Otherwise, it is up
+ *     to the program to supply one.  A good guess is
+ *             extern int dbminit(char *);
+ */
+/*#define      HAS_DBMINIT_PROTO       / **/
+
+/* HAS_FLOCK_PROTO:
+ *     This symbol, if defined, indicates that the system provides
+ *     a prototype for the flock() function.  Otherwise, it is up
+ *     to the program to supply one.  A good guess is
+ *             extern int flock(int, int);
+ */
+/*#define      HAS_FLOCK_PROTO / **/
+
+/* HAS_NL_LANGINFO:
+ *     This symbol, if defined, indicates that the nl_langinfo routine is
+ *     available to return local data.  You will also need <langinfo.h>
+ *     and therefore I_LANGINFO.
+ */
+/*#define HAS_NL_LANGINFO              / **/
 
 /* HAS_SIGPROCMASK:
  *     This symbol, if defined, indicates that the sigprocmask
  */
 /*#define HAS_SOCKATMARK               / **/
 
+/* HAS_SOCKATMARK_PROTO:
+ *     This symbol, if defined, indicates that the system provides
+ *     a prototype for the sockatmark() function.  Otherwise, it is up
+ *     to the program to supply one.  A good guess is
+ *             extern int sockatmark _((int));
+ */
+/*#define      HAS_SOCKATMARK_PROTO    / **/
+
 /* HAS_SETRESGID_PROTO:
  *     This symbol, if defined, indicates that the system provides
  *     a prototype for the setresgid() function.  Otherwise, it is up
  */
 /*#define HAS_STRFTIME         / **/
 
+/* HAS_SYSCALL_PROTO:
+ *     This symbol, if defined, indicates that the system provides
+ *     a prototype for the syscall() function.  Otherwise, it is up
+ *     to the program to supply one.  Good guesses are
+ *             extern int syscall(int,  ...);
+ *             extern int syscall(long, ...);
+ */
+/*#define      HAS_SYSCALL_PROTO       / **/
+
 /* U32_ALIGNMENT_REQUIRED:
  *     This symbol, if defined, indicates that you must access
  *     character data through U32-aligned pointers.
  */
 #define U32_ALIGNMENT_REQUIRED /**/
 
+/* HAS_USLEEP_PROTO:
+ *     This symbol, if defined, indicates that the system provides
+ *     a prototype for the usleep() function.  Otherwise, it is up
+ *     to the program to supply one.  A good guess is
+ *             extern int usleep(useconds_t);
+ */
+/*#define      HAS_USLEEP_PROTO        / **/
+
+/* I_LANGINFO:
+ *     This symbol, if defined, indicates that <langinfo.h> exists and
+ *     should be included.
+ */
+/*#define      I_LANGINFO              / **/
+
+/* HAS_PTHREAD_ATFORK:
+ *     This symbol, if defined, indicates that the pthread_atfork routine
+ *     is available setup fork handlers.
+ */
+/*#define HAS_PTHREAD_ATFORK           / **/
+
 #endif