X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=vms%2Fconfig.vms;h=cba33616d721bf6cb93e9c13b62764b2ce19c6e5;hb=720cbd8665fdedebd0f7cae0dc4967e04f04a521;hp=3f5b1bf74de39195ec3d6a6e9103a2816b81a478;hpb=1aef975c78d2e948679875705c79cbbbddfe5ad7;p=p5sagit%2Fp5-mst-13.2.git diff --git a/vms/config.vms b/vms/config.vms index 3f5b1bf..cba3361 100644 --- a/vms/config.vms +++ b/vms/config.vms @@ -8,9 +8,10 @@ * GenConfig.pl when producing Config.pm. * * config.h for VMS + * Version: 5.004 */ -/* Configuration time: 12-Oct-1994 17:00 +/* Configuration time: 19-Nov-1996 23:34 * Configured by: Charles Bailey bailey@genetics.upenn.edu * Target system: VMS */ @@ -18,17 +19,44 @@ #ifndef _config_h_ #define _config_h_ +/* CAT2: + * This macro catenates 2 tokens together. + */ +/* STRINGIFY: + * This macro surrounds its token with double quotes. + */ +#ifdef __STDC__ +#define CAT2(a,b)a ## b +#define CAT3(a,b,c)a ## b ## c +#define CAT4(a,b,c,d)a ## b ## c ##d +#define CAT5(a,b,c,d,e)a ## b ## c ## d ## e +#define StGiFy(a) # a +#define STRINGIFY(A)StGiFy(a) +#define SCAT2(a,b)StGiFy(a) StGiFy(b) +#define SCAT3(a,b,c)StGiFy(a) StGiFy(b) StGiFy(c) +#define SCAT4(a,b,c,d)StGiFy(a) StGiFy(b) StGiFy(c) StGiFy(d) +#define SCAT5(a,b,c,d,e)StGiFy(a) StGiFy(b) StGiFy(c) StGiFy(d) StGiFy(e) +#else +#define CAT2(a,b)a/**/b +#define CAT3(a,b,c)a/**/b/**/c +#define CAT4(a,b,c,d)a/**/b/**/c/**/d +#define CAT5(a,b,c,d,e)a/**/b/**/c/**/d/**/e +#define STRINGIFY(a)"a" +#endif + +/* config-start */ + /* MEM_ALIGNBYTES: * This symbol contains the number of bytes required to align a * double. Usual values are 2, 4 and 8. */ #define MEM_ALIGNBYTES 8 /**/ -/* BYTEORDER: - * This symbol hold the hexadecimal constant defined in byteorder, - * i.e. 0x1234 or 0x4321, etc... +/* OSNAME: + * This symbol contains the name of the operating system, as determined + * by Configure. */ -#define BYTEORDER 0x1234 /* large digits for MSB */ +#define OSNAME "VMS" /**/ /* ARCHLIB: * This variable, if defined, holds the name of the directory in @@ -39,27 +67,31 @@ * same as PRIVLIB, it is not defined, since presumably the * program already searches PRIVLIB. */ -#undef ARCHLIB /**/ +/* ARCHLIB_EXP: + * This symbol contains the ~name expanded version of ARCHLIB, to be used + * in programs that are not prepared to deal with ~ expansion at run-time. + */ +/* ==> NOTE <== + * This value is automatically updated by FndVers.Com + * when Perl is built. Please do not change it by hand; make + * any changes to FndVers.Com instead. + */ +#define ARCHLIB_EXP "/perl_root/lib/VMS_VAX/5_004" /**/ +#define ARCHLIB ARCHLIB_EXP /*config-skip*/ -/* CAT2: - * This macro catenates 2 tokens together. +/* 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. */ -/* STRINGIFY: - * This macro surrounds its token with double quotes. +#define ARCHNAME "VMS_VAX" /**/ + +/* BINCOMPAT3: + * This symbol, if defined, indicates that Perl 5.004 should be + * binary-compatible with Perl 5.003. */ -#ifdef __STDC__ -#define CAT2(a,b) a##b /* config-skip */ -#define CAT3(a,b,c) a##b##c /* config-skip */ -#define CAT4(a,b,c,d) a##b##c##d /* config-skip */ -#define CAT5(a,b,c,d,e) a##b##c##d##e /* config-skip */ -#define STRINGIFY(a) #a /* config-skip */ -#else -#define CAT2(a,b) a/**/b /* config-skip */ -#define CAT3(a,b,c) a/**/b/**/c /* config-skip */ -#define CAT4(a,b,c,d) a/**/b/**/c/**/d /* config-skip */ -#define CAT5(a,b,c,d,e) a/**/b/**/c/**/d/**/e /* config-skip */ -#define STRINGIFY(a) "a" /* config-skip */ -#endif +#undef BINCOMPAT3 /* CPPSTDIN: * This symbol contains the first part of the string which will invoke @@ -82,17 +114,24 @@ */ #undef HAS_BCMP /**/ +#include /* Check whether new DECC has #defined bcopy and bzero */ /* HAS_BCOPY: * This symbol is defined if the bcopy() routine is available to * copy blocks of memory. */ #undef HAS_BCOPY /**/ +#ifdef bcopy +# define HAS_BCOPY /*config-skip*/ +#endif /* HAS_BZERO: * This symbol is defined if the bzero() routine is available to * set a memory block to 0. */ #undef HAS_BZERO /**/ +#ifdef bzero +# define HAS_BZERO /*config-skip*/ +#endif /* CASTNEGFLOAT: * This symbol is defined if the C compiler can cast negative @@ -108,14 +147,6 @@ #define CASTNEGFLOAT /**/ #define CASTFLAGS 0 /**/ -/* CHARSPRINTF: - * This symbol is defined if this system declares "char *sprintf()" in - * stdio.h. The trend seems to be to declare it as "int sprintf()". It - * is up to the package author to declare sprintf correctly based on the - * symbol. - */ -#undef CHARSPRINTF /**/ - /* HAS_CHSIZE: * This symbol, if defined, indicates that the chsize routine is available * to truncate files. You might need a -lx to get this routine. @@ -129,15 +160,18 @@ * trigger the necessary tests. */ #define HASCONST /**/ -#ifndef HASCONST -#define const -#endif /* HAS_CRYPT: * This symbol, if defined, indicates that the crypt routine is available * to encrypt passwords and the like. */ -#undef HAS_CRYPT /**/ +#define HAS_CRYPT /**/ + +/* BYTEORDER: + * This symbol hold the hexadecimal constant defined in byteorder, + * i.e. 0x1234 or 0x4321, etc... + */ +#define BYTEORDER 0x1234 /* large digits for MSB */ /* CSH: * This symbol, if defined, indicates that the C-shell exists. @@ -193,12 +227,29 @@ */ #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 + * needs to be included (see I_SYS_RESOURCE). + * The type "Timeval" should be used to refer to "struct timeval". + */ +#undef HAS_GETTIMEOFDAY /**/ +#ifdef HAS_GETTIMEOFDAY +# define Timeval struct timeval /*config-skip*/ +#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. + */ #undef HAS_GETGROUPS /**/ +#undef HAS_SETGROUPS /**/ /* HAS_UNAME: * This symbol, if defined, indicates that the C program may use the @@ -207,18 +258,6 @@ */ #undef HAS_UNAME /**/ -/* HAS_GETPGRP: - * This symbol, if defined, indicates that the getpgrp routine is - * available to get the current process group. - */ -#undef 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. - */ -#undef HAS_GETPGRP2 /**/ - /* HAS_GETPRIORITY: * This symbol, if defined, indicates that the getpriority routine is * available to get a process's priority. @@ -254,13 +293,21 @@ * This symbol, if defined, indicates that the mbstowcs routine is * available to covert a multibyte string into a wide character string. */ -#undef HAS_MBSTOWCS /**/ +#ifdef __DECC +# define HAS_MBSTOWCS /*config-skip*/ +#else +# undef HAS_MBSTOWCS /*config-skip*/ +#endif /* HAS_MBTOWC: * This symbol, if defined, indicates that the mbtowc routine is available * to covert a multibyte to a wide character. */ -#undef HAS_MBTOWC /**/ +#ifdef __DECC +# define HAS_MBTOWC /*config-skip*/ +#else +# undef HAS_MBTOWC /*config-skip*/ +#endif /* HAS_MEMCMP: * This symbol, if defined, indicates that the memcmp routine is available @@ -307,6 +354,12 @@ */ #define HAS_OPEN3 /**/ +/* HAS_POLL: + * This symbol, if defined, indicates that the poll routine is + * available to poll active file descriptors. + */ +#undef HAS_POLL /**/ + /* HAS_READDIR: * This symbol, if defined, indicates that the readdir routine is * available to read directory entries. You may have to include @@ -346,13 +399,6 @@ */ #define HAS_RMDIR /**/ -/* HAS_SELECT: - * This symbol, if defined, indicates that the select routine is - * available to select active file descriptors. If the timeout field - * is used, may need to be included. - */ -#undef HAS_SELECT /**/ - /* HAS_SEM: * This symbol, if defined, indicates that the entire sem*(2) library is * supported. @@ -371,23 +417,6 @@ */ #undef HAS_SETEUID /**/ -/* HAS_SETLOCALE: - * This symbol, if defined, indicates that the setlocale routine is - * available to handle locale-specific ctype implementations. - */ -#undef HAS_SETLOCALE /**/ - -/* HAS_SETPGID: - * This symbol, if defined, indicates that the setpgid routine is - * available to set process group ID. - */ -#undef HAS_SETPGID /**/ - -/* HAS_SETPGRP2: - * This symbol, if defined, indicates that the setpgrp2() (as in DG/UX) - * routine is available to set the current process group. - */ -#undef HAS_SETPGRP2 /**/ /* HAS_SETPRIORITY: * This symbol, if defined, indicates that the setpriority routine is @@ -456,20 +485,87 @@ * but not always right so it should be emitted by the program only * when HAS_SHMAT_PROTOTYPE is not defined to avoid conflicting defs. */ -#undef Shmat_t char * /**/ /* config-skip */ +#undef Shmat_t /**/ /* config-skip */ #undef HAS_SHMAT_PROTOTYPE /**/ +/* HAS_SIGACTION: + * This symbol, if defined, indicates that Vr4's sigaction() routine + * is available. + */ +#undef HAS_SIGACTION /**/ + /* USE_STAT_BLOCKS: * This symbol is defined if this system has a stat structure declaring * st_blksize and st_blocks. */ #undef USE_STAT_BLOCKS /**/ -/* USE_STD_STDIO: - * This symbol is defined if this system has a FILE structure declaring - * _ptr and _cnt in stdio.h. +/* USE_STDIO_PTR: + * This symbol is defined if the _ptr and _cnt fields (or similar) + * of the stdio FILE structure can be used to access the stdio buffer + * for a file handle. If this is defined, then the FILE_ptr(fp) + * and FILE_cnt(fp) macros will also be defined and should be used + * to access these fields. + */ +/* USE_STDIO_BASE: + * This symbol is defined if the _base field (or similar) of the + * stdio FILE structure can be used to access the stdio buffer for + * a file handle. If this is defined, then the FILE_base(fp) macro + * will also be defined and should be used to access this field. + * Also, the FILE_bufsiz(fp) macro will be defined and should be used + * to determine the number of bytes in the buffer. USE_STDIO_BASE + * will never be defined unless USE_STDIO_PTR is. + */ +/* STDIO_PTR_LVALUE: + * This symbol is defined if the FILE_ptr macro can be used as an + * lvalue. + */ +/* STDIO_CNT_LVALUE: + * This symbol is defined if the FILE_cnt macro can be used as an + * lvalue. + */ +#ifdef __DECC +# define USE_STDIO_PTR /*config-skip*/ +# define USE_STDIO_BASE /*config-skip*/ +# define STDIO_PTR_LVALUE /*config-skip*/ +# define STDIO_CNT_LVALUE /*config-skip*/ +#else +# undef USE_STDIO_PTR /*config-skip*/ +# undef USE_STDIO_BASE /*config-skip*/ +# undef STDIO_PTR_LVALUE /*config-skip*/ +# undef STDIO_CNT_LVALUE /*config-skip*/ +#endif + +/* FILE_ptr: + * This macro is used to access the _ptr field (or equivalent) of the + * FILE structure pointed to by its argument. This macro will always be + * defined if USE_STDIO_PTR is defined. + */ +/* FILE_cnt: + * This macro is used to access the _cnt field (or equivalent) of the + * FILE structure pointed to by its argument. This macro will always be + * defined if USE_STDIO_PTR is defined. */ -#undef USE_STD_STDIO /**/ +#ifdef USE_STDIO_PTR +# define FILE_ptr(fp) ((*fp)->_ptr) +# define FILE_cnt(fp) ((*fp)->_cnt) +#endif + +/* FILE_base: + * This macro is used to access the _base field (or equivalent) of the + * FILE structure pointed to by its argument. This macro will always be + * defined if USE_STDIO_BASE is defined. + */ +/* FILE_bufsiz: + * This macro is used to determine the number of bytes in the I/O + * buffer pointed to by _base field (or equivalent) of the FILE + * structure pointed to its argument. This macro will always be defined + * if USE_STDIO_BASE is defined. + */ +#ifdef USE_STDIO_BASE +# define FILE_base(fp) ((*fp)->_base) +# define FILE_bufsiz(fp) ((*fp)->_cnt + (*fp)->_ptr - (*fp)->_base) +#endif /* USE_STRUCT_COPY: * This symbol, if defined, indicates that this C compiler knows how @@ -495,11 +591,7 @@ */ #define HAS_STRERROR /**/ #undef HAS_SYS_ERRLIST /**/ -#ifdef HAS_STRERROR -# define Strerror(e) strerror((e),vaxc$errno) -#else -#define Strerror(e) ((e)<0||(e)>=sys_nerr?"unknown":sys_errlist[e]) /**/ /* config-skip */ -#endif +#define Strerror(e) strerror((e),vaxc$errno) /* HAS_SYMLINK: * This symbol, if defined, indicates that the symlink routine is available @@ -538,6 +630,14 @@ */ #define HAS_VFORK /**/ +/* Signal_t: + * This symbol's value is either "void" or "int", corresponding to the + * appropriate return type of a signal handler. Thus, you can declare + * a signal handler using "Signal_t (*handler)()", and define the + * handler using "Signal_t handler(sig)". + */ +#define Signal_t void /* Signal handler's return type */ + /* HASVOLATILE: * This symbol, if defined, indicates that this C compiler knows about * the volatile declaration. @@ -570,13 +670,17 @@ * This symbol, if defined, indicates that the waitpid routine is * available to wait for child process. */ -#undef HAS_WAITPID /**/ +#define HAS_WAITPID /**/ /* HAS_WCSTOMBS: * This symbol, if defined, indicates that the wcstombs routine is * available to convert wide character strings to multibyte strings. */ -#undef HAS_WCSTOMBS /**/ +#ifdef __DECC +# define HAS_WCSTOMBS /*config-skip*/ +#else +# undef HAS_WCSTOMBS /*config-skip*/ +#endif /* I_DIRENT: * This symbol, if defined, indicates to the C program that it should @@ -609,7 +713,7 @@ * include to get definition of symbols like WORD_BIT or * LONG_MAX, i.e. machine dependant limitations. */ -#undef I_LIMITS /**/ +#define I_LIMITS /**/ /* I_MEMORY: * This symbol, if defined, indicates to the C program that it should @@ -663,7 +767,7 @@ #undef PWCHANGE /**/ #undef PWCLASS /**/ #undef PWEXPIRE /**/ -#undef PWCOMMENT /**/ +#define PWCOMMENT /**/ /* I_STDDEF: * This symbol, if defined, indicates that exists and should @@ -701,24 +805,46 @@ */ #undef I_SYS_IOCTL /**/ -/* HAS_IOCTL: - * This symbol, if defined, indicates that the ioctl() routine is - * available to set I/O characteristics - */ -#undef HAS_IOCTL /**/ - /* I_SYS_NDIR: * This symbol, if defined, indicates to the C program that it should * include . */ #undef I_SYS_NDIR /**/ +/* I_SYS_RESOURCE: + * This symbol, if defined, indicates to the C program that it should + * include . + */ +#undef I_SYS_RESOURCE /**/ + /* I_SYS_SELECT: * This symbol, if defined, indicates to the C program that it should * include in order to get definition of struct timeval. */ #undef I_SYS_SELECT /**/ +/* I_DBM: + * This symbol, if defined, indicates that exists and should + * be included. + */ +/* I_RPCSVC_DBM: + * This symbol, if defined, indicates that exists and + * should be included. + */ +#undef I_DBM /**/ +#undef I_RPCSVC_DBM /**/ + +/* I_SFIO: + * This symbol, if defined, indicates to the C program that it should + * include . + */ +#undef I_SFIO /**/ + +/* I_SYS_STAT: + * This symbol, if defined, indicates to the C program that it should + * include . + */ +#define I_SYS_STAT /**/ /* I_SYS_TIMES: * This symbol, if defined, indicates to the C program that it should @@ -726,6 +852,24 @@ */ #undef I_SYS_TIMES /**/ +/* I_SYS_TYPES: + * This symbol, if defined, indicates to the C program that it should + * include . + */ +#define I_SYS_TYPES /**/ + +/* I_SYS_UN: + * This symbol, if defined, indicates to the C program that it should + * include to get UNIX domain socket definitions. + */ +#undef I_SYS_UN /**/ + +/* I_SYS_WAIT: + * This symbol, if defined, indicates to the C program that it should + * include . + */ +#undef I_SYS_WAIT /**/ + /* I_TERMIO: * This symbol, if defined, indicates that the program should include * rather than . There are also differences in @@ -774,21 +918,10 @@ */ #undef I_UTIME /**/ -/* HAS_UTIME: - * This symbol, if defined, indicates that the routine utime() is - * available to update the access and modification times of files. - */ -#undef HAS_UTIME /**/ - -/* I_STDARG: - * This symbol, if defined, indicates that exists and should - * be included. - */ /* I_VARARGS: * This symbol, if defined, indicates to the C program that it should * include . */ -#define I_STDARG /**/ #undef I_VARARGS /**/ @@ -798,13 +931,6 @@ */ #undef I_VFORK /**/ -/* INTSIZE: - * This symbol contains the size of an int, so that the C preprocessor - * can make decisions based on it. - */ -#define INTSIZE 4 /**/ - - /* CAN_PROTOTYPE: * If defined, this macro indicates that the C compiler can handle * function prototypes. @@ -836,7 +962,11 @@ * is defined, and 'int *' otherwise. This is only useful if you * have select(), of course. */ -#define Select_fd_set_t fd_set * /**/ +#if defined(__DECC) && defined(__DECC_VER) && (__DECC_VER >= 50200000) +#define Select_fd_set_t fd_set * /* config-skip */ +#else +#define Select_fd_set_t int * /**/ +#endif /* STDCHAR: * This symbol is defined to be the type of char used in stdio.h. @@ -844,49 +974,11 @@ */ #define STDCHAR char /**/ -/* VOIDFLAGS: - * This symbol indicates how much support of the void type is given by this - * compiler. What various bits mean: - * - * 1 = supports declaration of void - * 2 = supports arrays of pointers to functions returning void - * 4 = supports comparisons between pointers to void functions and - * addresses of void functions - * 8 = suports declaration of generic void pointers - * - * The package designer should define VOIDUSED to indicate the requirements - * of the package. This can be done either by #defining VOIDUSED before - * including config.h, or by defining defvoidused in Myinit.U. If the - * latter approach is taken, only those flags will be tested. If the - * level of void support necessary is not present, defines void to int. - */ -#ifndef VOIDUSED -#define VOIDUSED 15 -#endif -#define VOIDFLAGS 15 -#if (VOIDFLAGS & VOIDUSED) != VOIDUSED -#define void int /* is void to be avoided? */ /* config-skip */ -#define M_VOID /* Xenix strikes again */ /* config-skip */ -#endif - - -/* EUNICE: - * This symbol, if defined, indicates that the program is being compiled - * under the EUNICE package under VMS. The program will need to handle - * things like files that don't go away the first time you unlink them, - * due to version numbering. It will also need to compensate for lack - * of a respectable link() command. - */ -/* VMS: - * This symbol, if defined, indicates that the program is running under - * VMS. It is currently only set in conjunction with the EUNICE symbol. +/* UNLINK_ALL_VERSIONS: + * This symbol, if defined, indicates that the program should arrange + * to remove all versions of a file if unlink() is called. */ -#define EUNICE /**/ -/* This symbol is automagically defined by all VMS C compilers I've seen. - * Just in case, however . . . */ -#ifndef VMS -#define VMS /**/ -#endif +#undef UNLINK_ALL_VERSIONS /**/ /* LOC_SED: * This symbol holds the complete pathname to the sed program. @@ -897,7 +989,12 @@ * 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 "/perl_root/000000" /**/ +#define BIN_EXP "/perl_root/000000" /**/ /* HAS_ALARM: * This symbol, if defined, indicates that the alarm routine is @@ -905,6 +1002,19 @@ */ #define HAS_ALARM /**/ +/* HASATTRIBUTE: + * This symbol indicates the C compiler can check for function attributes, + * such as printf formats. This is normally only supported by GNU cc. + */ +#ifdef __GNUC__ +# define HASATTRIBUTE /*config-skip*/ +#else +# undef HASATTRIBUTE /*config-skip*/ +#endif +#ifndef HASATTRIBUTE +#define __attribute__(_arg_) +#endif + /* CASTI32: * This symbol is defined if the C compiler can cast negative * or large floating point numbers to 32-bit ints. @@ -957,7 +1067,7 @@ * This symbol, if defined, indicates that the getlogin routine is * available. */ -#undef HAS_GETLOGIN /**/ +#define HAS_GETLOGIN /**/ /* HAS_GETPPID: * This symbol, if defined, indicates that the getppid routine is @@ -965,12 +1075,6 @@ */ #undef HAS_GETPPID /**/ -/* HAS_GETGRENT: - * This symbol, if defined, indicates that the getgrent routine is - * available. - */ -#undef HAS_GETGRENT /**/ - /* HAS_HTONL: * This symbol, if defined, indicates that the htonl() routine (and * friends htons() ntohl() ntohs()) are available to do network @@ -1000,13 +1104,21 @@ * This symbol, if defined, indicates that the mblen routine is available * to find the number of bytes in a multibye character. */ -#undef HAS_MBLEN /**/ +#ifdef __DECC +# define HAS_MBLEN /*config-skip*/ +#else +# undef HAS_MBLEN /*config-skip*/ +#endif /* HAS_MKTIME: * This symbol, if defined, indicates that the mktime routine is * available. */ -#undef HAS_MKTIME /**/ +#ifdef __DECC +# define HAS_MKTIME /*config-skip*/ +#else +# undef HAS_MKTIME /*config-skip*/ +#endif /* HAS_NICE: * This symbol, if defined, indicates that the nice routine is @@ -1014,13 +1126,6 @@ */ #define HAS_NICE /**/ -/* HAS_PASSWD: - * This symbol, if defined, indicates that the getpwnam(), - * getpwuid(), and getpwent() routines are available to - * get password entries. - */ -#undef HAS_PASSWD /**/ - /* HAS_PAUSE: * This symbol, if defined, indicates that the pause routine is * available. @@ -1062,13 +1167,39 @@ * This symbol, if defined, indicates that the strcoll routine is * available to compare strings using collating information. */ -#undef HAS_STRCOLL /**/ +#ifdef __DECC +# define HAS_STRCOLL /*config-skip*/ +#else +# undef HAS_STRCOLL /*config-skip*/ +#endif + +/* HAS_STRTOD: + * This symbol, if defined, indicates that the strtod routine is + * 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 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 provide conversion of strings to unsigned long. + */ +#define HAS_STRTOUL /**/ /* HAS_STRXFRM: * This symbol, if defined, indicates that the strxfrm() routine is * available to compare strings using collating information. */ -#undef HAS_STRXFRM /**/ +#ifdef __DECC +# define HAS_STRXFRM /*config-skip*/ +#else +# undef HAS_STRXFRM /*config-skip*/ +#endif /* HAS_TCGETPGRP: * This symbol, if defined, indicates that the tcgetpgrp routine is @@ -1101,19 +1232,15 @@ */ #define HAS_UMASK /**/ -/* VOIDSIG: - * This symbol is defined if this system declares "void (*signal(...))()" in - * signal.h. The old way was to declare it as "int (*signal(...))()". It - * is up to the package author to declare things correctly based on the - * symbol. - */ -#define VOIDSIG /**/ - /* HAS_WCTOMB: * This symbol, if defined, indicates that the wctomb routine is available * to covert a wide character to a multibyte. */ -#undef HAS_WCTOMB /**/ +#ifdef __DECC +# define HAS_WCTOMB /*config-skip*/ +#else +# undef HAS_WCTOMB /*config-skip*/ +#endif /* Fpos_t: * This symbol holds the type used to declare file positions in libc. @@ -1129,7 +1256,11 @@ * It can be int, ushort, uid_t, etc... It may be necessary to include * to get any typedef'ed information. */ -#define Gid_t unsigned int /* Type for getgid(), etc... */ +#if defined(__DECC) && defined(__DECC_VER) && (__DECC_VER >= 500000) +# define Gid_t gid_t /* config-skip */ +#else +# define Gid_t unsigned int /* config-skip */ +#endif /* I_DLFCN: * This symbol, if defined, indicates that exists and should @@ -1150,22 +1281,91 @@ */ #define I_MATH /**/ +/* INTSIZE: + * This symbol contains the size of an 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. * It can be int, long, off_t, etc... It may be necessary to include * to get any typedef'ed information. */ #define Off_t int /* type */ + +/* I_VALUES: + * This symbol, if defined, indicates to the C program that it should + * include to get definition of symbols like MINFLOAT or + * MAXLONG, i.e. machine dependant limitations. Probably, you + * should use instead, if it is available. + */ +#undef I_VALUES /**/ + +/* Free_t: + * This variable contains the return type of free(). It is usually + * void, but occasionally int. + */ /* Malloc_t: * This symbol is the type of pointer returned by malloc and realloc. */ #define Malloc_t void * /**/ +#define Free_t void /**/ /* MYMALLOC: * This symbol, if defined, indicates that we're using our own malloc. */ #undef MYMALLOC /**/ +/* SH_PATH: + * 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. + */ +#define SH_PATH "MCR" /**/ + +/* SIG_NAME: + * This symbol contains a list of signal names in order. This is intended + * to be used as a static array initialization, like this: + * char *sig_name[] = { SIG_NAME }; + * The signals in the list are separated with commas, and each signal + * is surrounded by double quotes. There is no leading SIG in the signal + * name, i.e. SIGQUIT is known as "QUIT". Duplicates are allowed. + * The signal number for sig_name[i] is stored in sig_num[i]. + * The last element is 0 to terminate the list with a NULL. This + * corresponds to the 0 at the end of the sig_num list. + * See SIG_NUM and SIG_MAX. + */ +#define SIG_NAME "ZERO","HUP","INT","QUIT","ILL","TRAP","IOT","EMT","FPE",\ + "KILL","BUS","SEGV","SYS","PIPE","ALRM","TERM",\ + "ABRT","USR1","USR2",0 + +/* SIG_NUM: + * This symbol contains a list of signal number, in the same order as the + * SIG_NAME list. It is suitable for static array initialization, as in: + * int sig_num[] = { SIG_NUM }; + * 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. Duplicates are allowed, so you can't assume + * sig_num[i] == i. Instead, the signal number corresponding to + * sig_name[i] is sig_number[i]. + * The last element is 0, corresponding to the 0 at the end of + * the sig_name list. + */ +#define SIG_NUM 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,6,16,17,0 /**/ + /* Mode_t: * This symbol holds the type used to declare file modes * for systems calls. It is usually mode_t, but may be @@ -1184,6 +1384,52 @@ */ #define SSize_t int /* signed count of bytes */ +/* 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!). + */ +#undef VAL_O_NONBLOCK +#undef VAL_EAGAIN +#undef RD_NODATA +#undef 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 + * public library files for $package. For the most part, these + * files will work with 5.002 (and later), but that is not + * guaranteed. + */ +/* OLDARCHLIB_EXP: + * This symbol contains the ~name expanded version of OLDARCHLIB, to be + * used in programs that are not prepared to deal with ~ expansion at + * run-time. + */ +/* ==> NOTE <== + * This value is automatically updated by FndVers.Com + * when Perl is built. Please do not change it by hand; make + * any changes to FndVers.Com instead. + */ +#define OLDARCHLIB_EXP "/perl_root/lib/VMS_VAX" /**/ +#define OLDARCHLIB OLDARCHLIB_EXP /*config-skip*/ /* PRIVLIB: * This symbol contains the name of the private library for this package. @@ -1191,26 +1437,49 @@ * execution path, but it should be accessible by the world. The program * should be prepared to do ~ expansion. */ -#define PRIVLIB "/perl_root/lib" /**/ +/* PRIVLIB_EXP: + * This symbol contains the ~name expanded version of PRIVLIB, to be used + * in programs that are not prepared to deal with ~ expansion at run-time. + */ +#define PRIVLIB_EXP "/perl_root/lib" /**/ +#define PRIVLIB PRIVLIB_EXP /*config-skip*/ -/* 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. +/* SITELIB: + * This symbol contains the name of the private library for this package. + * The library is private in the sense that it needn't be in anyone's + * execution path, but it should be accessible by the world. The program + * should be prepared to do ~ expansion. + * The standard distribution will put nothing in this directory. + * Individual sites may place their own extensions and modules in + * this directory. */ -#define SCRIPTDIR "/perl_root/script" /**/ +/* SITELIB_EXP: + * This symbol contains the ~name expanded version of SITELIB, to be used + * in programs that are not prepared to deal with ~ expansion at run-time. + */ +#define SITELIB_EXP "/perl_root/lib/site_perl" /**/ +#define SITELIB SITELIB_EXP /*config-skip*/ -/* SIG_NAME: - * This symbol contains a list of signal names in order. This is intended - * to be used as a static array initialization, like this: - * char *sig_name[] = { SIG_NAME }; - * The signals in the list are separated with commas, and each signal - * is surrounded by double quotes. There is no leading SIG in the signal - * name, i.e. SIGQUIT is known as "QUIT". +/* SITEARCH: + * This symbol contains the name of the private library for this package. + * The library is private in the sense that it needn't be in anyone's + * execution path, but it should be accessible by the world. The program + * should be prepared to do ~ expansion. + * The standard distribution will put nothing in this directory. + * Individual sites may place their own extensions and modules in + * this directory. */ -#define SIG_NAME "HUP","INT","QUIT","ILL","TRAP","IOT","EMT","FPE","KILL",\ - "BUS","SEGV","SYS","PIPE","ALRM","TERM" +/* SITEARCH_EXP: + * This symbol contains the ~name expanded version of SITEARCH, to be used + * in programs that are not prepared to deal with ~ expansion at run-time. + */ +/* ==> NOTE <== + * This value is automatically updated by FndVers.Com + * when Perl is built. Please do not change it by hand; make + * any changes to FndVers.Com instead. + */ +#define SITEARCH_EXP "/perl_root/lib/site_perl/VMS_VAX" /**/ +#define SITEARCH SITEARCH_EXP /*config-skip*/ /* Size_t: * This symbol holds the type used to declare length parameters @@ -1225,7 +1494,11 @@ * It can be int, ushort, uid_t, etc... It may be necessary to include * to get any typedef'ed information. */ -#define Uid_t unsigned int /* UID type */ +#if defined(__DECC) && defined(__DECC_VER) && (__DECC_VER >= 500000) +# define Uid_t uid_t /* config-skip */ +#else +# define Uid_t unsigned int /* config-skip */ +#endif /* I_SYS_PARAM: * This symbol, if defined, indicates to the C program that it should @@ -1233,15 +1506,6 @@ */ #undef I_SYS_PARAM -/* GNUC_ATTRIBUTE_CHECK: - * This symbol indicates the C compiler can check for function attributes, - * such as printf formats. - */ -/* VMS: true for gcc, undef for VAXC/DECC. This is handled in Descrip.MMS - * C. Bailey 26-Aug-1994 - */ -/*#define GNUC_ATTRIBUTE_CHECK /* */ - /* VOID_CLOSEDIR: * This symbol, if defined, indicates that the closedir() routine * does not return a value. @@ -1281,28 +1545,14 @@ #undef SETUID_SCRIPTS_ARE_SECURE_NOW /**/ #undef DOSUID /**/ -/* HAS_DREM: - * This symbol, if defined, indicates that the drem routine is - * available. This is a Pyramid routine that is the same as - * fmod. - */ -#undef HAS_DREM /**/ - -/* HAS_FMOD: - * This symbol, if defined, indicates that the fmod routine is - * available. - */ -#define HAS_FMOD /**/ - -/* Gconvert: - * This preprocessor macro is defined to convert a floating point - * number to a string without a trailing decimal point. This - * emulates the behavior of sprintf("%g"), but is sometimes much more - * efficient. If gconvert() is not available, but gcvt() drops the - * trailing decimal point, then gcvt() is used. If all else fails, - * a macro using sprintf("%g") is used. +/* 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. + * VMS: SocketShr doesn't support this, so we let the Socket extension + * roll its own. */ -#define Gconvert(x,n,t,b) my_gconvert(x,n,t,b) +#undef HAS_INET_ATON /**/ /* HAS_ISASCII: * This manifest constant lets the C program know that the @@ -1310,17 +1560,27 @@ */ #define HAS_ISASCII /**/ -/* USE_LINUX_STDIO: - * This symbol is defined if this system has a FILE structure declaring - * _IO_read_base, _IO_read_ptr, and _IO_read_end in stdio.h. +/* HAS_SETLOCALE: + * This symbol, if defined, indicates that the setlocale routine is + * available to handle locale-specific ctype implementations. + */ +/* I_LOCALE: + * This symbol, if defined, indicates to the C program that it should + * include . */ -#undef USE_LINUX_STDIO /**/ - /* HAS_LOCALECONV: * This symbol, if defined, indicates that the localeconv routine is * available for numeric and monetary formatting conventions. */ -#undef HAS_LOCALECONV /**/ +#ifdef __DECC +# define I_LOCALE /*config-skip*/ +# define HAS_SETLOCALE /*config-skip*/ +# define HAS_LOCALECONV /*config-skip*/ +#else +# undef I_LOCALE /*config-skip*/ +# undef HAS_SETLOCALE /*config-skip*/ +# undef HAS_LOCALECONV /*config-skip*/ +#endif /* HAS_MKFIFO: * This symbol, if defined, indicates that the mkfifo routine is @@ -1357,30 +1617,188 @@ */ #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_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(). */ #undef HAS_SETPGRP /**/ +#undef USE_BSD_SETPGRP /**/ #undef USE_BSDPGRP /**/ +/* HAS_SETPGID: + * This symbol, if defined, indicates that the setpgid routine is + * available to set process group ID. + */ +#undef HAS_SETPGID /**/ + +/* HAS_SETPGRP2: + * This symbol, if defined, indicates that the setpgrp2() (as in DG/UX) + * routine is available to set the current process group. + */ +#undef HAS_SETPGRP2 /**/ + /* HAS_SYSCONF: * This symbol, if defined, indicates that sysconf() is available * to determine system related limits and options. */ #undef HAS_SYSCONF /**/ +/* Gconvert: + * This preprocessor macro is defined to convert a floating point + * number to a string without a trailing decimal point. This + * emulates the behavior of sprintf("%g"), but is sometimes much more + * efficient. If gconvert() is not available, but gcvt() drops the + * trailing decimal point, then gcvt() is used. If all else fails, + * a macro using sprintf("%g") is used. Arguments for the Gconvert + * macro are: value, number of digits, whether trailing zeros should + * be retained, and the output buffer. + * Possible values are: + * d_Gconvert='gconvert((x),(n),(t),(b))' + * d_Gconvert='gcvt((x),(n),(b))' + * d_Gconvert='sprintf((b),"%.*g",(n),(x))' + * The last two assume trailing zeros should not be kept. + */ +#define Gconvert(x,n,t,b) my_gconvert(x,n,t,b) + +/* HAS_GETPGID: + * This symbol, if defined, indicates to the C program that + * the getpgid(pid) function is available to get the + * process group id. + */ +#undef 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. + */ +#undef HAS_GETPGRP /**/ +#undef USE_BSD_GETPGRP /**/ + +/* HAS_GETPGRP2: + * This symbol, if defined, indicates that the getpgrp2() (as in DG/UX) + * routine is available to get the current process group. + */ +#undef HAS_GETPGRP2 /**/ + +/* USE_SFIO: + * This symbol, if defined, indicates that sfio should + * be used. + */ +#undef USE_SFIO /**/ + +/* Sigjmp_buf: + * This is the buffer type to be used with Sigsetjmp and Siglongjmp. + */ +/* Sigsetjmp: + * This macro is used in the same way as sigsetjmp(), but will invoke + * traditional setjmp() if sigsetjmp isn't available. + */ +/* Siglongjmp: + * This macro is used in the same way as siglongjmp(), but will invoke + * traditional longjmp() if siglongjmp isn't available. + */ +#undef HAS_SIGSETJMP /**/ +#ifdef HAS_SIGSETJMP +#define Sigjmp_buf sigjmp_buf /* config-skip */ +#define Sigsetjmp(buf,save_mask) sigsetjmp(buf,save_mask) /* config-skip */ +#define Siglongjmp(buf,retval) siglongjmp(buf,retval) /* config-skip */ +#else +#define Sigjmp_buf jmp_buf /* config-skip */ +#define Sigsetjmp(buf,save_mask) setjmp(buf) /* config-skip */ +#define Siglongjmp(buf,retval) longjmp(buf,retval) /* config-skip */ +#endif + /* USE_DYNAMIC_LOADING: * This symbol, if defined, indicates that dynamic loading of * some sort is available. */ #define USE_DYNAMIC_LOADING /**/ +/* 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 + * some shell. + */ +#define STARTPERL "" /**/ + +/* Groups_t: + * This symbol holds the type used for the second argument to + * [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 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 unsigned int /* config-skip */ +#endif + +/* DB_Prefix_t: + * This symbol contains the type of the prefix structure element + * in the header file. In older versions of DB, it was + * int, while in newer ones it is u_int32_t. + */ +/* DB_Hash_t: + * This symbol contains the type of the prefix structure element + * in the header file. In older versions of DB, it was + * int, while in newer ones it is size_t. + */ +#undef DB_Hash_t /**/ +#undef DB_Prefix_t /**/ + +/* USE_PERLIO: + * This symbol, if defined, indicates that the PerlIO abstraction should + * be used throughout. If not defined, stdio should be + * used in a fully backward compatible manner. + */ +#undef USE_PERLIO /**/ + +/* VOIDFLAGS: + * This symbol indicates how much support of the void type is given by this + * compiler. What various bits mean: + * + * 1 = supports declaration of void + * 2 = supports arrays of pointers to functions returning void + * 4 = supports comparisons between pointers to void functions and + * addresses of void functions + * 8 = suports declaration of generic void pointers + * + * The package designer should define VOIDUSED to indicate the requirements + * of the package. This can be done either by #defining VOIDUSED before + * including config.h, or by defining defvoidused in Myinit.U. If the + * latter approach is taken, only those flags will be tested. If the + * level of void support necessary is not present, defines void to int. + */ +#ifndef VOIDUSED +#define VOIDUSED 15 +#endif +#define VOIDFLAGS 15 +#if (VOIDFLAGS & VOIDUSED) != VOIDUSED +#define void int /* is void to be avoided? */ /* config-skip */ +#define M_VOID /* Xenix strikes again */ /* config-skip */ +#endif + #ifdef VMS_DO_SOCKETS /* HAS_SOCKET: * This symbol, if defined, indicates that the BSD socket interface is @@ -1409,24 +1827,19 @@ */ #undef I_NETINET_IN /**/ /* config-skip */ -/* Groups_t: - * This symbol holds the type used for the second argument to - * getgroups(). 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 to get any - * typedef'ed information. This is only required if you have - * getgroups(). - */ -#ifdef HAS_GETGROUPS -#define Groups_t unsigned int /* Type for 2nd arg to getgroups() */ /* config-skip */ -#endif - /* I_NET_ERRNO: * This symbol, if defined, indicates that exists and * should be included. */ #undef I_NET_ERRNO /**/ /* config-skip */ +/* HAS_SELECT: + * This symbol, if defined, indicates that the select routine is + * available to select active file descriptors. If the timeout field + * is used, may need to be included. + */ +#define HAS_SELECT /**/ /* config-skip */ + #else /* VMS_DO_SOCKETS */ #undef HAS_SOCKET /**/ /* config-skip */ @@ -1434,6 +1847,7 @@ #undef HAS_GETHOSTENT /**/ /* config-skip */ #undef I_NETINET_IN /**/ /* config-skip */ #undef I_NET_ERRNO /**/ /* config-skip */ +#undef HAS_SELECT /**/ /* config-skip */ #endif /* !VMS_DO_SOCKETS */