Confusing error from perl -e "x'"
[p5sagit/p5-mst-13.2.git] / vms / config.vms
CommitLineData
2304df62 1/*
a0d0e21e 2 * This file was produced by hand because the configure utilities which
3 * are in the perl distribution are all shell scripts. Someday, I hope
4 * we'll get a perl configure utility, but until then . . .
5 *
6 * Feel free to add or change things to suit your needs, but be careful
7 * about moving the comments which say "config-skip" - they're used by
8 * GenConfig.pl when producing Config.pm.
79072805 9 *
a0d0e21e 10 * config.h for VMS
09b7f37c 11 * Version: 5.005
a0d0e21e 12 */
2304df62 13
09b7f37c 14/* Configuration time: 7-Mar-1998 16:30
15 * Configured by: Charles Bailey bailey@newman.upenn.edu
a0d0e21e 16 * Target system: VMS
79072805 17 */
79072805 18
2304df62 19#ifndef _config_h_
20#define _config_h_
79072805 21
e518068a 22/* CAT2:
23 * This macro catenates 2 tokens together.
24 */
25/* STRINGIFY:
26 * This macro surrounds its token with double quotes.
27 */
28#ifdef __STDC__
29#define CAT2(a,b)a ## b
30#define CAT3(a,b,c)a ## b ## c
31#define CAT4(a,b,c,d)a ## b ## c ##d
32#define CAT5(a,b,c,d,e)a ## b ## c ## d ## e
33#define StGiFy(a) # a
34#define STRINGIFY(A)StGiFy(a)
35#define SCAT2(a,b)StGiFy(a) StGiFy(b)
36#define SCAT3(a,b,c)StGiFy(a) StGiFy(b) StGiFy(c)
37#define SCAT4(a,b,c,d)StGiFy(a) StGiFy(b) StGiFy(c) StGiFy(d)
38#define SCAT5(a,b,c,d,e)StGiFy(a) StGiFy(b) StGiFy(c) StGiFy(d) StGiFy(e)
39#else
40#define CAT2(a,b)a/**/b
41#define CAT3(a,b,c)a/**/b/**/c
42#define CAT4(a,b,c,d)a/**/b/**/c/**/d
43#define CAT5(a,b,c,d,e)a/**/b/**/c/**/d/**/e
44#define STRINGIFY(a)"a"
45#endif
46
47/* config-start */
48
a0d0e21e 49/* MEM_ALIGNBYTES:
50 * This symbol contains the number of bytes required to align a
51 * double. Usual values are 2, 4 and 8.
79072805 52 */
a0d0e21e 53#define MEM_ALIGNBYTES 8 /**/
79072805 54
b94f085b 55/* OSNAME:
56 * This symbol contains the name of the operating system, as determined
57 * by Configure.
58 */
59#define OSNAME "VMS" /**/
60
740ce14c 61/* ARCHLIB:
a0d0e21e 62 * This variable, if defined, holds the name of the directory in
63 * which the user wants to put architecture-dependent public
64 * library files for $package. It is most often a local directory
65 * such as /usr/local/lib. Programs using this variable must be
740ce14c 66 * prepared to deal with filename expansion. If ARCHLIB is the
67 * same as PRIVLIB, it is not defined, since presumably the
68 * program already searches PRIVLIB.
69 */
70/* ARCHLIB_EXP:
71 * This symbol contains the ~name expanded version of ARCHLIB, to be used
72 * in programs that are not prepared to deal with ~ expansion at run-time.
a0d0e21e 73 */
30fb25ec 74/* ==> NOTE <==
75 * This value is automatically updated by FndVers.Com
76 * when Perl is built. Please do not change it by hand; make
77 * any changes to FndVers.Com instead.
78 */
09b7f37c 79#define ARCHLIB_EXP "/perl_root/lib/VMS_VAX/5_00462" /**/
fc1ce8cc 80
61bb5906 81
740ce14c 82#define ARCHLIB ARCHLIB_EXP /*config-skip*/
a0d0e21e 83
774d564b 84/* ARCHNAME:
85 * This symbol holds a string representing the architecture name.
86 * It may be used to construct an architecture-dependant pathname
87 * where library files may be held under a private library, for
88 * instance.
89 */
90#define ARCHNAME "VMS_VAX" /**/
91
2304df62 92/* CPPSTDIN:
79072805 93 * This symbol contains the first part of the string which will invoke
94 * the C preprocessor on the standard input and produce to standard
2304df62 95 * output. Typical value of "cc -E" or "/lib/cpp", but it can also
96 * call a wrapper. See CPPRUN.
79072805 97 */
2304df62 98/* CPPMINUS:
79072805 99 * This symbol contains the second part of the string which will invoke
100 * the C preprocessor on the standard input and produce to standard
101 * output. This symbol will have the value "-" if CPPSTDIN needs a minus
102 * to specify standard input, otherwise the value is "".
103 */
a0d0e21e 104#define CPPSTDIN "cc/noobj/preprocess=sys$output sys$input"
79072805 105#define CPPMINUS ""
106
2304df62 107/* HAS_BCMP:
108 * This symbol is defined if the bcmp() routine is available to
109 * compare blocks of memory.
79072805 110 */
84902520 111#if ((__VMS_VER >= 70000000) && (__DECC_VER >= 50200000)) || (__CRTL_VER >= 70000000)
112#define HAS_BCMP /**/
113#else
114#undef HAS_BCMP /*config-skip*/
115#endif
79072805 116
ff0cee69 117#include <string.h> /* Check whether new DECC has #defined bcopy and bzero */
2304df62 118/* HAS_BCOPY:
119 * This symbol is defined if the bcopy() routine is available to
120 * copy blocks of memory.
79072805 121 */
a0d0e21e 122#undef HAS_BCOPY /**/
ff0cee69 123#ifdef bcopy
124# define HAS_BCOPY /*config-skip*/
125#endif
79072805 126
2304df62 127/* HAS_BZERO:
128 * This symbol is defined if the bzero() routine is available to
129 * set a memory block to 0.
79072805 130 */
a0d0e21e 131#undef HAS_BZERO /**/
ff0cee69 132#ifdef bzero
133# define HAS_BZERO /*config-skip*/
134#endif
79072805 135
2304df62 136/* CASTNEGFLOAT:
137 * This symbol is defined if the C compiler can cast negative
138 * numbers to unsigned longs, ints and shorts.
79072805 139 */
2304df62 140/* CASTFLAGS:
79072805 141 * This symbol contains flags that say what difficulties the compiler
142 * has casting odd floating values to unsigned long:
2304df62 143 * 0 = ok
79072805 144 * 1 = couldn't cast < 0
145 * 2 = couldn't cast >= 0x80000000
146 */
2304df62 147#define CASTNEGFLOAT /**/
148#define CASTFLAGS 0 /**/
79072805 149
2304df62 150/* HAS_CHSIZE:
79072805 151 * This symbol, if defined, indicates that the chsize routine is available
152 * to truncate files. You might need a -lx to get this routine.
153 */
a0d0e21e 154#undef HAS_CHSIZE /**/
79072805 155
2304df62 156/* HASCONST:
157 * This symbol, if defined, indicates that this C compiler knows about
158 * the const type. There is no need to actually test for that symbol
159 * within your programs. The mere use of the "const" keyword will
160 * trigger the necessary tests.
161 */
a0d0e21e 162#define HASCONST /**/
2304df62 163
164/* HAS_CRYPT:
79072805 165 * This symbol, if defined, indicates that the crypt routine is available
166 * to encrypt passwords and the like.
167 */
c07a80fd 168#define HAS_CRYPT /**/
79072805 169
e518068a 170/* BYTEORDER:
171 * This symbol hold the hexadecimal constant defined in byteorder,
172 * i.e. 0x1234 or 0x4321, etc...
173 */
174#define BYTEORDER 0x1234 /* large digits for MSB */
175
2304df62 176/* CSH:
79072805 177 * This symbol, if defined, indicates that the C-shell exists.
178 * If defined, contains the full pathname of csh.
179 */
a0d0e21e 180#undef CSH /**/
79072805 181
2304df62 182/* HAS_DUP2:
183 * This symbol, if defined, indicates that the dup2 routine is
184 * available to duplicate file descriptors.
79072805 185 */
2304df62 186#define HAS_DUP2 /**/
79072805 187
2304df62 188/* HAS_FCHMOD:
79072805 189 * This symbol, if defined, indicates that the fchmod routine is available
190 * to change mode of opened files. If unavailable, use chmod().
191 */
a0d0e21e 192#undef HAS_FCHMOD /**/
79072805 193
2304df62 194/* HAS_FCHOWN:
79072805 195 * This symbol, if defined, indicates that the fchown routine is available
196 * to change ownership of opened files. If unavailable, use chown().
197 */
a0d0e21e 198#undef HAS_FCHOWN /**/
79072805 199
2304df62 200/* HAS_FCNTL:
79072805 201 * This symbol, if defined, indicates to the C program that
202 * the fcntl() function exists.
203 */
a0d0e21e 204#undef HAS_FCNTL /**/
205
206/* HAS_FGETPOS:
207 * This symbol, if defined, indicates that the fgetpos routine is
208 * available to get the file position indicator, similar to ftell().
209 */
210#define HAS_FGETPOS /**/
79072805 211
2304df62 212/* FLEXFILENAMES:
79072805 213 * This symbol, if defined, indicates that the system supports filenames
214 * longer than 14 characters.
215 */
216#define FLEXFILENAMES /**/
217
2304df62 218/* HAS_FLOCK:
219 * This symbol, if defined, indicates that the flock routine is
79072805 220 * available to do file locking.
221 */
a0d0e21e 222#undef HAS_FLOCK /**/
223
224/* HAS_FSETPOS:
225 * This symbol, if defined, indicates that the fsetpos routine is
226 * available to set the file position indicator, similar to fseek().
227 */
228#define HAS_FSETPOS /**/
79072805 229
71be2cbc 230/* HAS_GETTIMEOFDAY:
231 * This symbol, if defined, indicates that the gettimeofday() system
232 * call is available for a sub-second accuracy clock. Usually, the file
233 * <sys/resource.h> needs to be included (see I_SYS_RESOURCE).
234 * The type "Timeval" should be used to refer to "struct timeval".
235 */
84902520 236#if ((__VMS_VER >= 70000000) && (__DECC_VER >= 50200000)) || (__CRTL_VER >= 70000000)
09b7f37c 237#define HAS_GETTIMEOFDAY /*config-skip*/
84902520 238#else
239#undef HAS_GETTIMEOFDAY /*config-skip*/
240#endif
71be2cbc 241#ifdef HAS_GETTIMEOFDAY
242# define Timeval struct timeval /*config-skip*/
243#endif
244
2304df62 245/* HAS_GETGROUPS:
79072805 246 * This symbol, if defined, indicates that the getgroups() routine is
247 * available to get the list of process groups. If unavailable, multiple
248 * groups are probably not supported.
249 */
5cd24f17 250/* HAS_SETGROUPS:
251 * This symbol, if defined, indicates that the setgroups() routine is
252 * available to set the list of process groups. If unavailable, multiple
253 * groups are probably not supported.
254 */
a0d0e21e 255#undef HAS_GETGROUPS /**/
5cd24f17 256#undef HAS_SETGROUPS /**/
2304df62 257
258/* HAS_UNAME:
259 * This symbol, if defined, indicates that the C program may use the
260 * uname() routine to derive the host name. See also HAS_GETHOSTNAME
261 * and PHOSTNAME.
262 */
84902520 263#if ((__VMS_VER >= 70000000) && (__DECC_VER >= 50200000)) || (__CRTL_VER >= 70000000)
09b7f37c 264#define HAS_UNAME /*config-skip*/
84902520 265#else
266#undef HAS_UNAME /*config-skip*/
267#endif
79072805 268
2304df62 269/* HAS_GETPRIORITY:
270 * This symbol, if defined, indicates that the getpriority routine is
79072805 271 * available to get a process's priority.
272 */
a0d0e21e 273#undef HAS_GETPRIORITY /**/
79072805 274
2304df62 275/* HAS_KILLPG:
79072805 276 * This symbol, if defined, indicates that the killpg routine is available
277 * to kill process groups. If unavailable, you probably should use kill
278 * with a negative process number.
279 */
a0d0e21e 280#undef HAS_KILLPG /**/
79072805 281
2304df62 282/* HAS_LINK:
283 * This symbol, if defined, indicates that the link routine is
284 * available to create hard links.
79072805 285 */
a0d0e21e 286#undef HAS_LINK /**/
79072805 287
2304df62 288/* HAS_LSTAT:
289 * This symbol, if defined, indicates that the lstat routine is
290 * available to do file stats on symbolic links.
79072805 291 */
a0d0e21e 292#undef HAS_LSTAT /**/
293
294/* HAS_LOCKF:
295 * This symbol, if defined, indicates that the lockf routine is
296 * available to do file locking.
297 */
298#undef HAS_LOCKF /**/
299
300/* HAS_MBSTOWCS:
301 * This symbol, if defined, indicates that the mbstowcs routine is
302 * available to covert a multibyte string into a wide character string.
303 */
36477c24 304#ifdef __DECC
305# define HAS_MBSTOWCS /*config-skip*/
306#else
307# undef HAS_MBSTOWCS /*config-skip*/
308#endif
a0d0e21e 309
310/* HAS_MBTOWC:
311 * This symbol, if defined, indicates that the mbtowc routine is available
312 * to covert a multibyte to a wide character.
313 */
36477c24 314#ifdef __DECC
315# define HAS_MBTOWC /*config-skip*/
316#else
317# undef HAS_MBTOWC /*config-skip*/
318#endif
79072805 319
2304df62 320/* HAS_MEMCMP:
321 * This symbol, if defined, indicates that the memcmp routine is available
322 * to compare blocks of memory.
79072805 323 */
2304df62 324#define HAS_MEMCMP /**/
325
326/* HAS_MEMCPY:
79072805 327 * This symbol, if defined, indicates that the memcpy routine is available
2304df62 328 * to copy blocks of memory.
79072805 329 */
2304df62 330#define HAS_MEMCPY /**/
79072805 331
2304df62 332/* HAS_MEMMOVE:
79072805 333 * This symbol, if defined, indicates that the memmove routine is available
2304df62 334 * to copy potentially overlapping blocks of memory. This should be used
335 * only when HAS_SAFE_BCOPY is not defined. If neither is there, roll your
336 * own version.
79072805 337 */
a0d0e21e 338#define HAS_MEMMOVE /**/
79072805 339
2304df62 340/* HAS_MEMSET:
79072805 341 * This symbol, if defined, indicates that the memset routine is available
2304df62 342 * to set blocks of memory.
79072805 343 */
2304df62 344#define HAS_MEMSET /**/
79072805 345
2304df62 346/* HAS_MKDIR:
79072805 347 * This symbol, if defined, indicates that the mkdir routine is available
348 * to create directories. Otherwise you should fork off a new process to
349 * exec /bin/mkdir.
350 */
2304df62 351#define HAS_MKDIR /**/
79072805 352
2304df62 353/* HAS_MSG:
79072805 354 * This symbol, if defined, indicates that the entire msg*(2) library is
2304df62 355 * supported (IPC mechanism based on message queues).
79072805 356 */
a0d0e21e 357#undef HAS_MSG /**/
79072805 358
a0d0e21e 359/* HAS_OPEN3:
360 * This manifest constant lets the C program know that the three
361 * argument form of open(2) is available.
79072805 362 */
a0d0e21e 363#define HAS_OPEN3 /**/
79072805 364
e518068a 365/* HAS_POLL:
366 * This symbol, if defined, indicates that the poll routine is
367 * available to poll active file descriptors.
368 */
369#undef HAS_POLL /**/
370
fc1ce8cc 371/* HAS_PTHREAD_YIELD:
372 * This symbol, if defined, indicates that the pthread_yield routine is
373 * available to yield the execution of the current thread.
09b7f37c 374 * VMS: pthread_yield_np is there, so just set up the alias
fc1ce8cc 375 */
09b7f37c 376#define HAS_PTHREAD_YIELD /**/
377#define pthread_yield pthread_yield_np /*config-skip*/
fc1ce8cc 378
09b7f37c 379/* OLD_PTHREADS_API:
380 * This symbol, if defined, indicates that Perl should
381 * be built to use the old draft POSIX threads API.
fc1ce8cc 382 */
09b7f37c 383#undef OLD_PTHREADS_API /**/
fc1ce8cc 384
a0d0e21e 385/* HAS_READDIR:
386 * This symbol, if defined, indicates that the readdir routine is
387 * available to read directory entries. You may have to include
388 * <dirent.h>. See I_DIRENT.
79072805 389 */
a0d0e21e 390#define HAS_READDIR /**/
79072805 391
a0d0e21e 392/* HAS_SEEKDIR:
393 * This symbol, if defined, indicates that the seekdir routine is
394 * available. You may have to include <dirent.h>. See I_DIRENT.
79072805 395 */
a0d0e21e 396#define HAS_SEEKDIR /**/
79072805 397
a0d0e21e 398/* HAS_TELLDIR:
399 * This symbol, if defined, indicates that the telldir routine is
400 * available. You may have to include <dirent.h>. See I_DIRENT.
79072805 401 */
a0d0e21e 402#define HAS_TELLDIR /**/
79072805 403
a0d0e21e 404/* HAS_REWINDDIR:
405 * This symbol, if defined, indicates that the rewinddir routine is
406 * available. You may have to include <dirent.h>. See I_DIRENT.
79072805 407 */
a0d0e21e 408#define HAS_REWINDDIR /**/
79072805 409
2304df62 410/* HAS_RENAME:
79072805 411 * This symbol, if defined, indicates that the rename routine is available
412 * to rename files. Otherwise you should do the unlink(), link(), unlink()
413 * trick.
414 */
2304df62 415#define HAS_RENAME /**/
79072805 416
2304df62 417/* HAS_RMDIR:
418 * This symbol, if defined, indicates that the rmdir routine is
419 * available to remove directories. Otherwise you should fork off a
420 * new process to exec /bin/rmdir.
79072805 421 */
2304df62 422#define HAS_RMDIR /**/
79072805 423
2304df62 424/* HAS_SEM:
79072805 425 * This symbol, if defined, indicates that the entire sem*(2) library is
426 * supported.
427 */
a0d0e21e 428#undef HAS_SEM /**/
79072805 429
2304df62 430/* HAS_SETEGID:
79072805 431 * This symbol, if defined, indicates that the setegid routine is available
432 * to change the effective gid of the current program.
433 */
a0d0e21e 434#undef HAS_SETEGID /**/
79072805 435
2304df62 436/* HAS_SETEUID:
79072805 437 * This symbol, if defined, indicates that the seteuid routine is available
438 * to change the effective uid of the current program.
439 */
a0d0e21e 440#undef HAS_SETEUID /**/
441
79072805 442
2304df62 443/* HAS_SETPRIORITY:
444 * This symbol, if defined, indicates that the setpriority routine is
79072805 445 * available to set a process's priority.
446 */
a0d0e21e 447#undef HAS_SETPRIORITY /**/
79072805 448
2304df62 449/* HAS_SETREGID:
79072805 450 * This symbol, if defined, indicates that the setregid routine is
2304df62 451 * available to change the real and effective gid of the current
452 * process.
79072805 453 */
2304df62 454/* HAS_SETRESGID:
79072805 455 * This symbol, if defined, indicates that the setresgid routine is
456 * available to change the real, effective and saved gid of the current
2304df62 457 * process.
79072805 458 */
a0d0e21e 459#undef HAS_SETREGID /**/
460#undef HAS_SETRESGID /**/
79072805 461
2304df62 462/* HAS_SETREUID:
79072805 463 * This symbol, if defined, indicates that the setreuid routine is
2304df62 464 * available to change the real and effective uid of the current
465 * process.
79072805 466 */
2304df62 467/* HAS_SETRESUID:
79072805 468 * This symbol, if defined, indicates that the setresuid routine is
469 * available to change the real, effective and saved uid of the current
2304df62 470 * process.
79072805 471 */
a0d0e21e 472#undef HAS_SETREUID /**/
473#undef HAS_SETRESUID /**/
79072805 474
2304df62 475/* HAS_SETRGID:
79072805 476 * This symbol, if defined, indicates that the setrgid routine is available
477 * to change the real gid of the current program.
478 */
a0d0e21e 479#undef HAS_SETRGID /**/
79072805 480
2304df62 481/* HAS_SETRUID:
79072805 482 * This symbol, if defined, indicates that the setruid routine is available
483 * to change the real uid of the current program.
484 */
a0d0e21e 485#undef HAS_SETRUID /**/
79072805 486
2304df62 487/* HAS_SETSID:
488 * This symbol, if defined, indicates that the setsid routine is
489 * available to set the process group ID.
490 */
a0d0e21e 491#undef HAS_SETSID /**/
2304df62 492
493/* HAS_SHM:
79072805 494 * This symbol, if defined, indicates that the entire shm*(2) library is
495 * supported.
496 */
a0d0e21e 497#undef HAS_SHM /**/
79072805 498
a0d0e21e 499/* Shmat_t:
500 * This symbol holds the return type of the shmat() system call.
501 * Usually set to 'void *' or 'char *'.
79072805 502 */
a0d0e21e 503/* HAS_SHMAT_PROTOTYPE:
504 * This symbol, if defined, indicates that the sys/shm.h includes
505 * a prototype for shmat(). Otherwise, it is up to the program to
506 * guess one. Shmat_t shmat _((int, Shmat_t, int)) is a good guess,
507 * but not always right so it should be emitted by the program only
508 * when HAS_SHMAT_PROTOTYPE is not defined to avoid conflicting defs.
79072805 509 */
16d20bd9 510#undef Shmat_t /**/ /* config-skip */
a0d0e21e 511#undef HAS_SHMAT_PROTOTYPE /**/
79072805 512
c07a80fd 513/* HAS_SIGACTION:
514 * This symbol, if defined, indicates that Vr4's sigaction() routine
515 * is available.
516 */
84902520 517#if ((__VMS_VER >= 70000000) && (__DECC_VER >= 50200000)) || (__CRTL_VER >= 70000000)
518#define HAS_SIGACTION /**/
519#else
520#undef HAS_SIGACTION /*config-skip*/
521#endif
c07a80fd 522
2304df62 523/* USE_STAT_BLOCKS:
79072805 524 * This symbol is defined if this system has a stat structure declaring
525 * st_blksize and st_blocks.
526 */
a0d0e21e 527#undef USE_STAT_BLOCKS /**/
79072805 528
16d20bd9 529/* USE_STDIO_PTR:
530 * This symbol is defined if the _ptr and _cnt fields (or similar)
531 * of the stdio FILE structure can be used to access the stdio buffer
532 * for a file handle. If this is defined, then the FILE_ptr(fp)
533 * and FILE_cnt(fp) macros will also be defined and should be used
534 * to access these fields.
535 */
536/* USE_STDIO_BASE:
537 * This symbol is defined if the _base field (or similar) of the
538 * stdio FILE structure can be used to access the stdio buffer for
539 * a file handle. If this is defined, then the FILE_base(fp) macro
540 * will also be defined and should be used to access this field.
541 * Also, the FILE_bufsiz(fp) macro will be defined and should be used
542 * to determine the number of bytes in the buffer. USE_STDIO_BASE
543 * will never be defined unless USE_STDIO_PTR is.
544 */
edc7bc49 545/* STDIO_PTR_LVALUE:
546 * This symbol is defined if the FILE_ptr macro can be used as an
547 * lvalue.
548 */
549/* STDIO_CNT_LVALUE:
550 * This symbol is defined if the FILE_cnt macro can be used as an
551 * lvalue.
e518068a 552 */
edc7bc49 553#ifdef __DECC
554# define USE_STDIO_PTR /*config-skip*/
555# define USE_STDIO_BASE /*config-skip*/
556# define STDIO_PTR_LVALUE /*config-skip*/
557# define STDIO_CNT_LVALUE /*config-skip*/
558#else
559# undef USE_STDIO_PTR /*config-skip*/
560# undef USE_STDIO_BASE /*config-skip*/
561# undef STDIO_PTR_LVALUE /*config-skip*/
562# undef STDIO_CNT_LVALUE /*config-skip*/
563#endif
16d20bd9 564
565/* FILE_ptr:
566 * This macro is used to access the _ptr field (or equivalent) of the
567 * FILE structure pointed to by its argument. This macro will always be
568 * defined if USE_STDIO_PTR is defined.
569 */
570/* FILE_cnt:
571 * This macro is used to access the _cnt field (or equivalent) of the
572 * FILE structure pointed to by its argument. This macro will always be
573 * defined if USE_STDIO_PTR is defined.
574 */
edc7bc49 575#ifdef USE_STDIO_PTR
576# define FILE_ptr(fp) ((*fp)->_ptr)
577# define FILE_cnt(fp) ((*fp)->_cnt)
578#endif
740ce14c 579
16d20bd9 580/* FILE_base:
581 * This macro is used to access the _base field (or equivalent) of the
582 * FILE structure pointed to by its argument. This macro will always be
583 * defined if USE_STDIO_BASE is defined.
79072805 584 */
16d20bd9 585/* FILE_bufsiz:
586 * This macro is used to determine the number of bytes in the I/O
587 * buffer pointed to by _base field (or equivalent) of the FILE
588 * structure pointed to its argument. This macro will always be defined
589 * if USE_STDIO_BASE is defined.
590 */
edc7bc49 591#ifdef USE_STDIO_BASE
592# define FILE_base(fp) ((*fp)->_base)
593# define FILE_bufsiz(fp) ((*fp)->_cnt + (*fp)->_ptr - (*fp)->_base)
594#endif
79072805 595
2304df62 596/* USE_STRUCT_COPY:
79072805 597 * This symbol, if defined, indicates that this C compiler knows how
598 * to copy structures. If undefined, you'll need to use a block copy
599 * routine of some sort instead.
600 */
2304df62 601#define USE_STRUCT_COPY /**/
79072805 602
a0d0e21e 603/* HAS_STRERROR:
604 * This symbol, if defined, indicates that the strerror routine is
605 * available to translate error numbers to strings. See the writeup
606 * of Strerror() in this file before you try to define your own.
607 */
608/* HAS_SYS_ERRLIST:
609 * This symbol, if defined, indicates that the sys_errlist array is
610 * available to translate error numbers to strings. The extern int
611 * sys_nerr gives the size of that table.
612 */
613/* Strerror:
614 * This preprocessor symbol is defined as a macro if strerror() is
615 * not available to translate error numbers to strings but sys_errlist[]
616 * array is there.
617 */
618#define HAS_STRERROR /**/
619#undef HAS_SYS_ERRLIST /**/
8dd63a4d 620#define Strerror(e) strerror((e),vaxc$errno)
a0d0e21e 621
2304df62 622/* HAS_SYMLINK:
79072805 623 * This symbol, if defined, indicates that the symlink routine is available
624 * to create symbolic links.
625 */
a0d0e21e 626#undef HAS_SYMLINK /**/
2304df62 627
628/* HAS_SYSCALL:
629 * This symbol, if defined, indicates that the syscall routine is
630 * available to call arbitrary system calls. If undefined, that's tough.
631 */
a0d0e21e 632#undef HAS_SYSCALL /**/
79072805 633
2304df62 634/* HAS_SYSTEM:
635 * This symbol, if defined, indicates that the system routine is
636 * available to issue a shell command.
79072805 637 */
2304df62 638#define HAS_SYSTEM /**/
79072805 639
85e6fe83 640/* Time_t:
641 * This symbol holds the type returned by time(). It can be long,
642 * or time_t on BSD sites (in which case <sys/types.h> should be
643 * included).
644 */
a0d0e21e 645#define Time_t time_t /* Time type */
79072805 646
2304df62 647/* HAS_TRUNCATE:
79072805 648 * This symbol, if defined, indicates that the truncate routine is
649 * available to truncate files.
650 */
84902520 651#if ((__VMS_VER >= 70000000) && (__DECC_VER >= 50200000)) || (__CRTL_VER >= 70000000)
09b7f37c 652#define HAS_TRUNCATE /*config-skip*/
84902520 653#else
654#undef HAS_TRUNCATE /*config-skip*/
655#endif
79072805 656
2304df62 657
a0d0e21e 658/* HAS_VFORK:
659 * This symbol, if defined, indicates that vfork() exists.
79072805 660 */
a0d0e21e 661#define HAS_VFORK /**/
79072805 662
748a9306 663/* Signal_t:
664 * This symbol's value is either "void" or "int", corresponding to the
665 * appropriate return type of a signal handler. Thus, you can declare
666 * a signal handler using "Signal_t (*handler)()", and define the
667 * handler using "Signal_t handler(sig)".
668 */
669#define Signal_t void /* Signal handler's return type */
670
2304df62 671/* HASVOLATILE:
79072805 672 * This symbol, if defined, indicates that this C compiler knows about
673 * the volatile declaration.
674 */
a0d0e21e 675#define HASVOLATILE /**/
2304df62 676#ifndef HASVOLATILE
a0d0e21e 677#define volatile /* config-skip */
2304df62 678#endif
79072805 679
2304df62 680/* HAS_VPRINTF:
79072805 681 * This symbol, if defined, indicates that the vprintf routine is available
682 * to printf with a pointer to an argument list. If unavailable, you
683 * may need to write your own, probably in terms of _doprnt().
684 */
2304df62 685/* USE_CHAR_VSPRINTF:
79072805 686 * This symbol is defined if this system has vsprintf() returning type
687 * (char*). The trend seems to be to declare it as "int vsprintf()". It
688 * is up to the package author to declare vsprintf correctly based on the
689 * symbol.
690 */
2304df62 691#define HAS_VPRINTF /**/
a0d0e21e 692#undef USE_CHAR_VSPRINTF /**/
79072805 693
2304df62 694/* HAS_WAIT4:
79072805 695 * This symbol, if defined, indicates that wait4() exists.
696 */
84902520 697#if ((__VMS_VER >= 70000000) && (__DECC_VER >= 50200000)) || (__CRTL_VER >= 70000000)
09b7f37c 698#define HAS_WAIT4 /*config-skip*/
84902520 699#else
700#undef HAS_WAIT4 /*config-skip*/
701#endif
79072805 702
2304df62 703/* HAS_WAITPID:
704 * This symbol, if defined, indicates that the waitpid routine is
705 * available to wait for child process.
79072805 706 */
748a9306 707#define HAS_WAITPID /**/
79072805 708
a0d0e21e 709/* HAS_WCSTOMBS:
710 * This symbol, if defined, indicates that the wcstombs routine is
711 * available to convert wide character strings to multibyte strings.
79072805 712 */
36477c24 713#ifdef __DECC
714# define HAS_WCSTOMBS /*config-skip*/
715#else
716# undef HAS_WCSTOMBS /*config-skip*/
717#endif
79072805 718
2304df62 719/* I_DIRENT:
720 * This symbol, if defined, indicates to the C program that it should
721 * include <dirent.h>. Using this symbol also triggers the definition
722 * of the Direntry_t define which ends up being 'struct dirent' or
723 * 'struct direct' depending on the availability of <dirent.h>.
79072805 724 */
2304df62 725/* DIRNAMLEN:
726 * This symbol, if defined, indicates to the C program that the length
727 * of directory entry names is provided by a d_namlen field. Otherwise
728 * you need to do strlen() on the d_name field.
729 */
a0d0e21e 730#undef I_DIRENT /**/
731#define DIRNAMLEN /**/
2304df62 732#define Direntry_t struct dirent
79072805 733
2304df62 734/* I_FCNTL:
79072805 735 * This manifest constant tells the C program to include <fcntl.h>.
736 */
a0d0e21e 737#undef I_FCNTL /**/
79072805 738
2304df62 739/* I_GRP:
79072805 740 * This symbol, if defined, indicates to the C program that it should
2304df62 741 * include <grp.h>.
79072805 742 */
a0d0e21e 743#undef I_GRP /**/
79072805 744
a0d0e21e 745/* I_LIMITS:
746 * This symbol, if defined, indicates to the C program that it should
747 * include <limits.h> to get definition of symbols like WORD_BIT or
748 * LONG_MAX, i.e. machine dependant limitations.
2304df62 749 */
740ce14c 750#define I_LIMITS /**/
2304df62 751
a0d0e21e 752/* I_MEMORY:
79072805 753 * This symbol, if defined, indicates to the C program that it should
a0d0e21e 754 * include <memory.h>.
79072805 755 */
a0d0e21e 756#undef I_MEMORY /**/
757
758/* I_NDBM:
759 * This symbol, if defined, indicates that ndbm.h exists and should
760 * be included.
79072805 761 */
a0d0e21e 762#undef I_NDBM /**/
79072805 763
2304df62 764/* I_STDARG:
765 * This symbol, if defined, indicates that <stdarg.h> exists and should
766 * be included.
79072805 767 */
a0d0e21e 768#define I_STDARG /**/
769
770/* I_PWD:
771 * This symbol, if defined, indicates to the C program that it should
772 * include <pwd.h>.
773 */
774/* PWQUOTA:
775 * This symbol, if defined, indicates to the C program that struct passwd
776 * contains pw_quota.
777 */
778/* PWAGE:
779 * This symbol, if defined, indicates to the C program that struct passwd
780 * contains pw_age.
781 */
782/* PWCHANGE:
783 * This symbol, if defined, indicates to the C program that struct passwd
784 * contains pw_change.
785 */
786/* PWCLASS:
787 * This symbol, if defined, indicates to the C program that struct passwd
788 * contains pw_class.
789 */
790/* PWEXPIRE:
791 * This symbol, if defined, indicates to the C program that struct passwd
792 * contains pw_expire.
793 */
794/* PWCOMMENT:
795 * This symbol, if defined, indicates to the C program that struct passwd
796 * contains pw_comment.
797 */
798#undef I_PWD /**/
799#undef PWQUOTA /**/
800#undef PWAGE /**/
801#undef PWCHANGE /**/
802#undef PWCLASS /**/
803#undef PWEXPIRE /**/
748a9306 804#define PWCOMMENT /**/
79072805 805
2304df62 806/* I_STDDEF:
807 * This symbol, if defined, indicates that <stddef.h> exists and should
79072805 808 * be included.
809 */
2304df62 810#define I_STDDEF /**/
811
a0d0e21e 812/* I_STDLIB:
813* This symbol, if defined, indicates that <stdlib.h> exists and should
814* be included.
815*/
816#define I_STDLIB /**/
817
85e6fe83 818/* I_STRING:
819 * This symbol, if defined, indicates to the C program that it should
820 * include <string.h> (USG systems) instead of <strings.h> (BSD systems).
821 */
822#define I_STRING /**/
823
2304df62 824/* I_SYS_DIR:
825 * This symbol, if defined, indicates to the C program that it should
826 * include <sys/dir.h>.
827 */
a0d0e21e 828#undef I_SYS_DIR /**/
2304df62 829
830/* I_SYS_FILE:
831 * This symbol, if defined, indicates to the C program that it should
832 * include <sys/file.h> to get definition of R_OK and friends.
833 */
a0d0e21e 834#undef I_SYS_FILE /**/
79072805 835
2304df62 836/* I_SYS_IOCTL:
837 * This symbol, if defined, indicates that <sys/ioctl.h> exists and should
838 * be included. Otherwise, include <sgtty.h> or <termio.h>.
79072805 839 */
a0d0e21e 840#undef I_SYS_IOCTL /**/
841
2304df62 842/* I_SYS_NDIR:
843 * This symbol, if defined, indicates to the C program that it should
844 * include <sys/ndir.h>.
79072805 845 */
a0d0e21e 846#undef I_SYS_NDIR /**/
2304df62 847
740ce14c 848/* I_SYS_RESOURCE:
849 * This symbol, if defined, indicates to the C program that it should
850 * include <sys/resource.h>.
851 */
852#undef I_SYS_RESOURCE /**/
853
2304df62 854/* I_SYS_SELECT:
855 * This symbol, if defined, indicates to the C program that it should
856 * include <sys/select.h> in order to get definition of struct timeval.
857 */
a0d0e21e 858#undef I_SYS_SELECT /**/
859
e518068a 860/* I_DBM:
861 * This symbol, if defined, indicates that <dbm.h> exists and should
862 * be included.
863 */
864/* I_RPCSVC_DBM:
865 * This symbol, if defined, indicates that <rpcsvc/dbm.h> exists and
866 * should be included.
867 */
868#undef I_DBM /**/
869#undef I_RPCSVC_DBM /**/
870
740ce14c 871/* I_SFIO:
872 * This symbol, if defined, indicates to the C program that it should
873 * include <sfio.h>.
874 */
875#undef I_SFIO /**/
876
40000a8c 877/* I_SYS_STAT:
878 * This symbol, if defined, indicates to the C program that it should
879 * include <sys/stat.h>.
880 */
881#define I_SYS_STAT /**/
a0d0e21e 882
883/* I_SYS_TIMES:
884 * This symbol, if defined, indicates to the C program that it should
885 * include <sys/times.h>.
886 */
887#undef I_SYS_TIMES /**/
888
40000a8c 889/* I_SYS_TYPES:
890 * This symbol, if defined, indicates to the C program that it should
891 * include <sys/types.h>.
892 */
893#define I_SYS_TYPES /**/
894
e518068a 895/* I_SYS_UN:
896 * This symbol, if defined, indicates to the C program that it should
897 * include <sys/un.h> to get UNIX domain socket definitions.
898 */
899#undef I_SYS_UN /**/
900
740ce14c 901/* I_SYS_WAIT:
902 * This symbol, if defined, indicates to the C program that it should
903 * include <sys/wait.h>.
904 */
905#undef I_SYS_WAIT /**/
906
a0d0e21e 907/* I_TERMIO:
908 * This symbol, if defined, indicates that the program should include
909 * <termio.h> rather than <sgtty.h>. There are also differences in
910 * the ioctl() calls that depend on the value of this symbol.
911 */
912/* I_TERMIOS:
913 * This symbol, if defined, indicates that the program should include
914 * the POSIX termios.h rather than sgtty.h or termio.h.
915 * There are also differences in the ioctl() calls that depend on the
916 * value of this symbol.
917 */
918/* I_SGTTY:
919 * This symbol, if defined, indicates that the program should include
920 * <sgtty.h> rather than <termio.h>. There are also differences in
921 * the ioctl() calls that depend on the value of this symbol.
922 */
923#undef I_TERMIO /**/
924#undef I_SGTTY /**/
925#undef I_TERMIOS /**/
2304df62 926
927/* I_TIME:
928 * This symbol, if defined, indicates to the C program that it should
929 * include <time.h>.
79072805 930 */
2304df62 931/* I_SYS_TIME:
932 * This symbol, if defined, indicates to the C program that it should
933 * include <sys/time.h>.
79072805 934 */
85e6fe83 935/* I_SYS_TIME_KERNEL:
936 * This symbol, if defined, indicates to the C program that it should
937 * include <sys/time.h> with KERNEL defined.
938 */
a0d0e21e 939#define I_TIME /**/
940#undef I_SYS_TIME /**/
941#undef I_SYS_TIME_KERNEL /**/
85e6fe83 942
943/* I_UNISTD:
944 * This symbol, if defined, indicates to the C program that it should
945 * include <unistd.h>.
946 */
a0d0e21e 947#undef I_UNISTD /**/
79072805 948
2304df62 949/* I_UTIME:
79072805 950 * This symbol, if defined, indicates to the C program that it should
2304df62 951 * include <utime.h>.
79072805 952 */
a0d0e21e 953#undef I_UTIME /**/
954
2304df62 955/* I_VARARGS:
79072805 956 * This symbol, if defined, indicates to the C program that it should
2304df62 957 * include <varargs.h>.
79072805 958 */
a0d0e21e 959#undef I_VARARGS /**/
960
961
962/* I_VFORK:
963 * This symbol, if defined, indicates to the C program that it should
964 * include vfork.h.
965 */
966#undef I_VFORK /**/
79072805 967
09b7f37c 968/* Pid_t:
969 * This symbol holds the type used to declare process ids in the kernel.
970 * It can be int, uint, pid_t, etc... It may be necessary to include
971 * <sys/types.h> to get any typedef'ed information.
972 */
973#if defined(__DECC) && defined(__DECC_VER) && (__DECC_VER >= 500000)
974# define Pid_t pid_t /* config-skip */
975#else
976# define Pid_t int /* config-skip */
977#endif
978
a0d0e21e 979/* CAN_PROTOTYPE:
980 * If defined, this macro indicates that the C compiler can handle
981 * function prototypes.
79072805 982 */
a0d0e21e 983/* _:
984 * This macro is used to declare function parameters for folks who want
985 * to make declarations with prototypes using a different style than
986 * the above macros. Use double parentheses. For example:
987 *
988 * int main _((int argc, char *argv[]));
85e6fe83 989 */
a0d0e21e 990#define CAN_PROTOTYPE /**/
991#ifdef CAN_PROTOTYPE
992#define _(args) args /* config-skip */
993#else
994#define _(args) () /* config-skip */
995#endif
85e6fe83 996
2304df62 997/* RANDBITS:
998 * This symbol contains the number of bits of random number the rand()
999 * function produces. Usual values are 15, 16, and 31.
79072805 1000 */
2304df62 1001#define RANDBITS 31 /**/
1002
a0d0e21e 1003
1004/* Select_fd_set_t:
1005 * This symbol holds the type used for the 2nd, 3rd, and 4th
1006 * arguments to select. Usually, this is 'fd_set *', if HAS_FD_SET
1007 * is defined, and 'int *' otherwise. This is only useful if you
1008 * have select(), of course.
79072805 1009 */
84902520 1010#if defined(__DECC) && defined(__DECC_VER) && (__DECC_VER >= 50200000) && defined(DECCRTL_SOCKETS)
1011#define Select_fd_set_t fd_set * /**/
d27fe803 1012#else
84902520 1013#define Select_fd_set_t int * /* config-skip */
d27fe803 1014#endif
2304df62 1015
2304df62 1016/* STDCHAR:
1017 * This symbol is defined to be the type of char used in stdio.h.
1018 * It has the values "unsigned char" or "char".
79072805 1019 */
a0d0e21e 1020#define STDCHAR char /**/
79072805 1021
16d20bd9 1022/* UNLINK_ALL_VERSIONS:
1023 * This symbol, if defined, indicates that the program should arrange
1024 * to remove all versions of a file if unlink() is called.
85e6fe83 1025 */
16d20bd9 1026#undef UNLINK_ALL_VERSIONS /**/
1027
a0d0e21e 1028/* LOC_SED:
1029 * This symbol holds the complete pathname to the sed program.
85e6fe83 1030 */
a0d0e21e 1031#define LOC_SED "_NLA0:" /**/
1032
1033/* BIN:
1034 * This symbol holds the path of the bin directory where the package will
1035 * be installed. Program must be prepared to deal with ~name substitution.
1036 */
2ae324a7 1037/* BIN_EXP:
1038 * This symbol is the filename expanded version of the BIN symbol, for
1039 * programs that do not want to deal with that at run-time.
1040 */
a0d0e21e 1041#define BIN "/perl_root/000000" /**/
2ae324a7 1042#define BIN_EXP "/perl_root/000000" /**/
a0d0e21e 1043
1044/* HAS_ALARM:
1045 * This symbol, if defined, indicates that the alarm routine is
1046 * available.
1047 */
1048#define HAS_ALARM /**/
85e6fe83 1049
e518068a 1050/* HASATTRIBUTE:
1051 * This symbol indicates the C compiler can check for function attributes,
1052 * such as printf formats. This is normally only supported by GNU cc.
1053 */
1054#ifdef __GNUC__
1055# define HASATTRIBUTE /*config-skip*/
1056#else
1057# undef HASATTRIBUTE /*config-skip*/
1058#endif
1059#ifndef HASATTRIBUTE
1060#define __attribute__(_arg_)
1061#endif
1062
2304df62 1063/* CASTI32:
1064 * This symbol is defined if the C compiler can cast negative
1065 * or large floating point numbers to 32-bit ints.
79072805 1066 */
2304df62 1067#define CASTI32 /**/
1068
a0d0e21e 1069/* HAS_CHOWN:
1070 * This symbol, if defined, indicates that the chown routine is
1071 * available.
1072 */
1073#define HAS_CHOWN /**/
1074
1075/* HAS_CHROOT:
1076 * This symbol, if defined, indicates that the chroot routine is
1077 * available.
1078 */
1079#undef HAS_CHROOT /**/
1080
1081/* HAS_CUSERID:
1082 * This symbol, if defined, indicates that the cuserid routine is
1083 * available to get character login names.
1084 */
1085#define HAS_CUSERID /**/
1086
1087/* HAS_DBL_DIG:
1088 * This symbol, if defined, indicates that this system's <float.h>
1089 * or <limits.h> defines the symbol DBL_DIG, which is the number
1090 * of significant digits in a double precision number. If this
1091 * symbol is not defined, a guess of 15 is usually pretty good.
1092 */
1093#define HAS_DBL_DIG /* */
1094
1095/* HAS_DIFFTIME:
1096 * This symbol, if defined, indicates that the difftime routine is
1097 * available.
1098 */
1099#define HAS_DIFFTIME /**/
1100
1101/* HAS_FORK:
1102 * This symbol, if defined, indicates that the fork routine is
1103 * available.
1104 */
1105/* VMS: In vmsish.h, fork is #defined to vfork. This kludge gets around
1106 * some obsolete code in pp.c, which should be fixed in its own right
1107 * sometime. - C. Bailey 26-Aug-1994
1108 */
1109#define HAS_FORK /**/
1110
1111/* HAS_GETLOGIN:
1112 * This symbol, if defined, indicates that the getlogin routine is
1113 * available.
1114 */
c07a80fd 1115#define HAS_GETLOGIN /**/
a0d0e21e 1116
1117/* HAS_GETPPID:
1118 * This symbol, if defined, indicates that the getppid routine is
1119 * available.
1120 */
1121#undef HAS_GETPPID /**/
1122
85e6fe83 1123/* HAS_HTONL:
1124 * This symbol, if defined, indicates that the htonl() routine (and
1125 * friends htons() ntohl() ntohs()) are available to do network
1126 * order byte swapping.
1127 */
1128/* HAS_HTONS:
1129 * This symbol, if defined, indicates that the htons() routine (and
1130 * friends htonl() ntohl() ntohs()) are available to do network
1131 * order byte swapping.
1132 */
1133/* HAS_NTOHL:
1134 * This symbol, if defined, indicates that the ntohl() routine (and
1135 * friends htonl() htons() ntohs()) are available to do network
1136 * order byte swapping.
1137 */
1138/* HAS_NTOHS:
1139 * This symbol, if defined, indicates that the ntohs() routine (and
1140 * friends htonl() htons() ntohl()) are available to do network
1141 * order byte swapping.
1142 */
a0d0e21e 1143#define HAS_HTONL /**/
1144#define HAS_HTONS /**/
1145#define HAS_NTOHL /**/
1146#define HAS_NTOHS /**/
1147
1148/* HAS_MBLEN:
1149 * This symbol, if defined, indicates that the mblen routine is available
1150 * to find the number of bytes in a multibye character.
1151 */
36477c24 1152#ifdef __DECC
1153# define HAS_MBLEN /*config-skip*/
1154#else
1155# undef HAS_MBLEN /*config-skip*/
1156#endif
85e6fe83 1157
a0d0e21e 1158/* HAS_MKTIME:
1159 * This symbol, if defined, indicates that the mktime routine is
1160 * available.
79072805 1161 */
36477c24 1162#ifdef __DECC
1163# define HAS_MKTIME /*config-skip*/
1164#else
1165# undef HAS_MKTIME /*config-skip*/
1166#endif
79072805 1167
a0d0e21e 1168/* HAS_NICE:
1169 * This symbol, if defined, indicates that the nice routine is
1170 * available.
85e6fe83 1171 */
a0d0e21e 1172#define HAS_NICE /**/
85e6fe83 1173
a0d0e21e 1174/* HAS_PAUSE:
1175 * This symbol, if defined, indicates that the pause routine is
1176 * available.
85e6fe83 1177 */
a0d0e21e 1178#define HAS_PAUSE /**/
85e6fe83 1179
a0d0e21e 1180/* HAS_PIPE:
1181 * This symbol, if defined, indicates that the pipe routine is
1182 * available.
85e6fe83 1183 */
a0d0e21e 1184#define HAS_PIPE /**/
85e6fe83 1185
a0d0e21e 1186/* HAS_READLINK:
1187 * This symbol, if defined, indicates that the readlink routine is
1188 * available.
85e6fe83 1189 */
a0d0e21e 1190#undef HAS_READLINK /**/
85e6fe83 1191
a0d0e21e 1192/* HAS_SETLINEBUF:
1193 * This symbol, if defined, indicates that the setlinebuf routine is
1194 * available to change stderr or stdout from block-buffered or unbuffered
1195 * to a line-buffered mode.
85e6fe83 1196 */
a0d0e21e 1197#undef HAS_SETLINEBUF /**/
85e6fe83 1198
a0d0e21e 1199/* HAS_STRCHR:
1200 * This symbol is defined to indicate that the strchr()/strrchr()
1201 * functions are available for string searching. If not, try the
1202 * index()/rindex() pair.
2304df62 1203 */
a0d0e21e 1204/* HAS_INDEX:
1205 * This symbol is defined to indicate that the index()/rindex()
1206 * functions are available for string searching.
1207 */
1208#define HAS_STRCHR /**/
84902520 1209#if ((__VMS_VER >= 70000000) && (__DECC_VER >= 50200000)) || (__CRTL_VER >= 70000000)
09b7f37c 1210#define HAS_INDEX /*config-skip*/
84902520 1211#else
1212#undef HAS_INDEX /*config-skip*/
1213#endif
79072805 1214
a0d0e21e 1215/* HAS_STRCOLL:
1216 * This symbol, if defined, indicates that the strcoll routine is
1217 * available to compare strings using collating information.
85e6fe83 1218 */
36477c24 1219#ifdef __DECC
1220# define HAS_STRCOLL /*config-skip*/
1221#else
1222# undef HAS_STRCOLL /*config-skip*/
1223#endif
85e6fe83 1224
bbce6d69 1225/* HAS_STRTOD:
1226 * This symbol, if defined, indicates that the strtod routine is
71be2cbc 1227 * available to provide better numeric string conversion than atof().
bbce6d69 1228 */
1229#define HAS_STRTOD /**/
1230
1231/* HAS_STRTOL:
71be2cbc 1232 * This symbol, if defined, indicates that the strtol routine is available
1233 * to provide better numeric string conversion than atoi() and friends.
bbce6d69 1234 */
1235#define HAS_STRTOL /**/
1236
1237/* HAS_STRTOUL:
1238 * This symbol, if defined, indicates that the strtoul routine is
71be2cbc 1239 * available to provide conversion of strings to unsigned long.
bbce6d69 1240 */
1241#define HAS_STRTOUL /**/
1242
a0d0e21e 1243/* HAS_STRXFRM:
1244 * This symbol, if defined, indicates that the strxfrm() routine is
1245 * available to compare strings using collating information.
85e6fe83 1246 */
36477c24 1247#ifdef __DECC
1248# define HAS_STRXFRM /*config-skip*/
1249#else
1250# undef HAS_STRXFRM /*config-skip*/
1251#endif
85e6fe83 1252
a0d0e21e 1253/* HAS_TCGETPGRP:
1254 * This symbol, if defined, indicates that the tcgetpgrp routine is
1255 * available to get foreground process group ID.
2304df62 1256 */
a0d0e21e 1257#undef HAS_TCGETPGRP /**/
1258
1259/* HAS_TCSETPGRP:
1260 * This symbol, if defined, indicates that the tcsetpgrp routine is
1261 * available to set foreground process group ID.
2304df62 1262 */
a0d0e21e 1263#undef HAS_TCSETPGRP /**/
1264
1265/* HAS_TIMES:
1266 * This symbol, if defined, indicates that the times() routine exists.
1267 * Note that this became obsolete on some systems (SUNOS), which now
1268 * use getrusage(). It may be necessary to include <sys/times.h>.
2304df62 1269 */
a0d0e21e 1270#define HAS_TIMES /**/
79072805 1271
a0d0e21e 1272/* HAS_TZNAME:
1273 * This symbol, if defined, indicates that the tzname[] array is
1274 * available to access timezone names.
85e6fe83 1275 */
a0d0e21e 1276#undef HAS_TZNAME /**/
85e6fe83 1277
a0d0e21e 1278/* HAS_UMASK:
1279 * This symbol, if defined, indicates that the umask routine is
1280 * available to get the file creation mask.
79072805 1281 */
a0d0e21e 1282#define HAS_UMASK /**/
1283
a0d0e21e 1284/* HAS_WCTOMB:
1285 * This symbol, if defined, indicates that the wctomb routine is available
1286 * to covert a wide character to a multibyte.
1287 */
36477c24 1288#ifdef __DECC
1289# define HAS_WCTOMB /*config-skip*/
1290#else
1291# undef HAS_WCTOMB /*config-skip*/
1292#endif
a0d0e21e 1293
1294/* Fpos_t:
1295 * This symbol holds the type used to declare file positions in libc.
1296 * It can be fpos_t, long, uint, etc... It may be necessary to include
1297 * <sys/types.h> to get any typedef'ed information.
1298 */
1299#define Fpos_t fpos_t /* File position type */
79072805 1300
2304df62 1301/* Gid_t:
1302 * This symbol holds the return type of getgid() and the type of
1303 * argument to setrgid() and related functions. Typically,
1304 * it is the type of group ids in the kernel.
1305 * It can be int, ushort, uid_t, etc... It may be necessary to include
1306 * <sys/types.h> to get any typedef'ed information.
79072805 1307 */
e518068a 1308#if defined(__DECC) && defined(__DECC_VER) && (__DECC_VER >= 500000)
1309# define Gid_t gid_t /* config-skip */
1310#else
1311# define Gid_t unsigned int /* config-skip */
1312#endif
79072805 1313
85e6fe83 1314/* I_DLFCN:
1315 * This symbol, if defined, indicates that <dlfcn.h> exists and should
1316 * be included.
1317 */
a0d0e21e 1318#undef I_DLFCN /**/
85e6fe83 1319
a0d0e21e 1320/* I_FLOAT:
85e6fe83 1321 * This symbol, if defined, indicates to the C program that it should
a0d0e21e 1322 * include <float.h> to get definition of symbols like DBL_MAX or
1323 * DBL_MIN, i.e. machine dependent floating point values.
85e6fe83 1324 */
a0d0e21e 1325#define I_FLOAT /**/
85e6fe83 1326
a0d0e21e 1327/* I_MATH:
1328 * This symbol, if defined, indicates to the C program that it should
1329 * include <math.h>.
85e6fe83 1330 */
a0d0e21e 1331#define I_MATH /**/
85e6fe83 1332
09b7f37c 1333/* DOUBLESIZE:
1334 * This symbol contains the size of a double, so that the C preprocessor
1335 * can make decisions based on it.
1336 */
e518068a 1337/* INTSIZE:
1338 * This symbol contains the size of an int, so that the C preprocessor
1339 * can make decisions based on it.
1340 */
4fdae800 1341/* LONGSIZE:
1342 * This symbol contains the value of sizeof(long) so that the C
1343 * preprocessor can make decisions based on it.
1344 */
1345/* SHORTSIZE:
1346 * This symbol contains the value of sizeof(short) so that the C
1347 * preprocessor can make decisions based on it.
1348 */
09b7f37c 1349/* PTRSIZE:
1350 * This symbol contains the size of a pointer, so that the C preprocessor
1351 * can make decisions based on it. It will be sizeof(void *) if
1352 * the compiler supports (void *); otherwise it will be
1353 * sizeof(char *).
1354 * VMS: Use 32-bit pointers everywhere for now 7-Mar-1998
1355 */
1356#define DOUBLESIZE 8 /**/
e518068a 1357#define INTSIZE 4 /**/
4fdae800 1358#define LONGSIZE 4 /**/
1359#define SHORTSIZE 2 /**/
09b7f37c 1360#define PTRSIZE 4 /**/
748a9306 1361
a0d0e21e 1362/* Off_t:
1363 * This symbol holds the type used to declare offsets in the kernel.
1364 * It can be int, long, off_t, etc... It may be necessary to include
1365 * <sys/types.h> to get any typedef'ed information.
85e6fe83 1366 */
a0d0e21e 1367#define Off_t int /* <offset> type */
e518068a 1368
740ce14c 1369/* I_VALUES:
1370 * This symbol, if defined, indicates to the C program that it should
1371 * include <values.h> to get definition of symbols like MINFLOAT or
1372 * MAXLONG, i.e. machine dependant limitations. Probably, you
1373 * should use <limits.h> instead, if it is available.
1374 */
1375#undef I_VALUES /**/
1376
e518068a 1377/* Free_t:
1378 * This variable contains the return type of free(). It is usually
1379 * void, but occasionally int.
1380 */
a0d0e21e 1381/* Malloc_t:
1382 * This symbol is the type of pointer returned by malloc and realloc.
85e6fe83 1383 */
a0d0e21e 1384#define Malloc_t void * /**/
e518068a 1385#define Free_t void /**/
a0d0e21e 1386
1387/* MYMALLOC:
1388 * This symbol, if defined, indicates that we're using our own malloc.
85e6fe83 1389 */
a0d0e21e 1390#undef MYMALLOC /**/
1391
740ce14c 1392/* SH_PATH:
1393 * This symbol contains the full pathname to the shell used on this
1394 * on this system to execute Bourne shell scripts. Usually, this will be
1395 * /bin/sh, though it's possible that some systems will have /bin/ksh,
1396 * /bin/pdksh, /bin/ash, /bin/bash, or even something such as D:/bin/sh.
1397 */
1398#define SH_PATH "MCR" /**/
1399
e518068a 1400/* SIG_NAME:
1401 * This symbol contains a list of signal names in order. This is intended
1402 * to be used as a static array initialization, like this:
1403 * char *sig_name[] = { SIG_NAME };
1404 * The signals in the list are separated with commas, and each signal
1405 * is surrounded by double quotes. There is no leading SIG in the signal
1406 * name, i.e. SIGQUIT is known as "QUIT". Duplicates are allowed.
1407 * The signal number for sig_name[i] is stored in sig_num[i].
1408 * The last element is 0 to terminate the list with a NULL. This
1409 * corresponds to the 0 at the end of the sig_num list.
1410 * See SIG_NUM and SIG_MAX.
1411 */
84902520 1412#if ((__VMS_VER >= 70000000) && (__DECC_VER >= 50200000)) || (__CRTL_VER >= 70000000)
1413#define SIG_NAME "ZERO","HUP","INT","QUIT","ILL","TRAP","IOT","EMT","FPE",\
1414 "KILL","BUS","SEGV","SYS","PIPE","ALRM","TERM",\
1415 "ABRT","USR1","USR2","SPARE18","SPARE19","CHLD","CONT",\
1416 "STOP","TSTP","TTIN","TTOU","DEBUG","SPARE27","SPARE28",\
1417 "SPARE29","SPARE30","SPARE31","SPARE32","RTMIN","RTMAX",0 /**/
1418#else
e518068a 1419#define SIG_NAME "ZERO","HUP","INT","QUIT","ILL","TRAP","IOT","EMT","FPE",\
1420 "KILL","BUS","SEGV","SYS","PIPE","ALRM","TERM",\
84902520 1421 "ABRT","USR1","USR2",0 /*config-skip*/
1422#endif
e518068a 1423
1424/* SIG_NUM:
1425 * This symbol contains a list of signal number, in the same order as the
1426 * SIG_NAME list. It is suitable for static array initialization, as in:
1427 * int sig_num[] = { SIG_NUM };
1428 * The signals in the list are separated with commas, and the indices
1429 * within that list and the SIG_NAME list match, so it's easy to compute
1430 * the signal name from a number or vice versa at the price of a small
1431 * dynamic linear lookup. Duplicates are allowed, so you can't assume
1432 * sig_num[i] == i. Instead, the signal number corresponding to
1433 * sig_name[i] is sig_number[i].
1434 * The last element is 0, corresponding to the 0 at the end of
1435 * the sig_name list.
1436 */
84902520 1437#if ((__VMS_VER >= 70000000) && (__DECC_VER >= 50200000)) || (__CRTL_VER >= 70000000)
1438#define SIG_NUM 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,6,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,64,0 /**/
1439#else
1440#define SIG_NUM 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,6,16,17,0 /*config-skip*/
1441#endif
e518068a 1442
a0d0e21e 1443/* Mode_t:
1444 * This symbol holds the type used to declare file modes
1445 * for systems calls. It is usually mode_t, but may be
1446 * int or unsigned short. It may be necessary to include <sys/types.h>
1447 * to get any typedef'ed information.
85e6fe83 1448 */
a0d0e21e 1449#define Mode_t unsigned int /* file mode parameter for system calls*/
1450
1451/* SSize_t:
1452 * This symbol holds the type used by functions that return
1453 * a count of bytes or an error condition. It must be a signed type.
1454 * It is usually ssize_t, but may be long or int, etc.
1455 * It may be necessary to include <sys/types.h> or <unistd.h>
1456 * to get any typedef'ed information.
1457 * We will pick a type such that sizeof(SSize_t) == sizeof(Size_t).
85e6fe83 1458 */
a0d0e21e 1459#define SSize_t int /* signed count of bytes */
1460
e518068a 1461/* VAL_O_NONBLOCK:
1462 * This symbol is to be used during open() or fcntl(F_SETFL) to turn on
1463 * non-blocking I/O for the file descriptor. Note that there is no way
1464 * back, i.e. you cannot turn it blocking again this way. If you wish to
1465 * alternatively switch between blocking and non-blocking, use the
1466 * ioctl(FIOSNBIO) call instead, but that is not supported by all devices.
1467 */
1468/* VAL_EAGAIN:
1469 * This symbol holds the errno error code set by read() when no data was
1470 * present on the non-blocking file descriptor.
1471 */
1472/* RD_NODATA:
1473 * This symbol holds the return code from read() when no data is present
1474 * on the non-blocking file descriptor. Be careful! If EOF_NONBLOCK is
1475 * not defined, then you can't distinguish between no data and EOF by
1476 * issuing a read(). You'll have to find another way to tell for sure!
1477 */
1478/* EOF_NONBLOCK:
1479 * This symbol, if defined, indicates to the C program that a read() on
1480 * a non-blocking file descriptor will return 0 on EOF, and not the value
1481 * held in RD_NODATA (-1 usually, in that case!).
1482 */
8dd63a4d 1483#undef VAL_O_NONBLOCK
1484#undef VAL_EAGAIN
1485#undef RD_NODATA
e518068a 1486#undef EOF_NONBLOCK
1487
740ce14c 1488/* PRIVLIB:
a0d0e21e 1489 * This symbol contains the name of the private library for this package.
1490 * The library is private in the sense that it needn't be in anyone's
1491 * execution path, but it should be accessible by the world. The program
1492 * should be prepared to do ~ expansion.
85e6fe83 1493 */
740ce14c 1494/* PRIVLIB_EXP:
1495 * This symbol contains the ~name expanded version of PRIVLIB, to be used
1496 * in programs that are not prepared to deal with ~ expansion at run-time.
1497 */
fed7345c 1498#define PRIVLIB_EXP "/perl_root/lib" /**/
740ce14c 1499#define PRIVLIB PRIVLIB_EXP /*config-skip*/
a0d0e21e 1500
740ce14c 1501/* SITELIB:
1502 * This symbol contains the name of the private library for this package.
1503 * The library is private in the sense that it needn't be in anyone's
1504 * execution path, but it should be accessible by the world. The program
1505 * should be prepared to do ~ expansion.
1506 * The standard distribution will put nothing in this directory.
1507 * Individual sites may place their own extensions and modules in
1508 * this directory.
1509 */
e518068a 1510/* SITELIB_EXP:
1511 * This symbol contains the ~name expanded version of SITELIB, to be used
1512 * in programs that are not prepared to deal with ~ expansion at run-time.
1513 */
482b294c 1514#define SITELIB_EXP "/perl_root/lib/site_perl" /**/
740ce14c 1515#define SITELIB SITELIB_EXP /*config-skip*/
e518068a 1516
740ce14c 1517/* SITEARCH:
1518 * This symbol contains the name of the private library for this package.
1519 * The library is private in the sense that it needn't be in anyone's
1520 * execution path, but it should be accessible by the world. The program
1521 * should be prepared to do ~ expansion.
1522 * The standard distribution will put nothing in this directory.
1523 * Individual sites may place their own extensions and modules in
1524 * this directory.
1525 */
e518068a 1526/* SITEARCH_EXP:
1527 * This symbol contains the ~name expanded version of SITEARCH, to be used
1528 * in programs that are not prepared to deal with ~ expansion at run-time.
1529 */
30fb25ec 1530/* ==> NOTE <==
1531 * This value is automatically updated by FndVers.Com
1532 * when Perl is built. Please do not change it by hand; make
1533 * any changes to FndVers.Com instead.
1534 */
1535#define SITEARCH_EXP "/perl_root/lib/site_perl/VMS_VAX" /**/
740ce14c 1536#define SITEARCH SITEARCH_EXP /*config-skip*/
e518068a 1537
a0d0e21e 1538/* Size_t:
1539 * This symbol holds the type used to declare length parameters
1540 * for string functions. It is usually size_t, but may be
1541 * unsigned long, int, etc. It may be necessary to include
1542 * <sys/types.h> to get any typedef'ed information.
85e6fe83 1543 */
a0d0e21e 1544#define Size_t size_t /* length paramater for string functions */
1545
1546/* Uid_t:
1547 * This symbol holds the type used to declare user ids in the kernel.
1548 * It can be int, ushort, uid_t, etc... It may be necessary to include
1549 * <sys/types.h> to get any typedef'ed information.
85e6fe83 1550 */
b94f085b 1551#if defined(__DECC) && defined(__DECC_VER) && (__DECC_VER >= 500000)
1552# define Uid_t uid_t /* config-skip */
1553#else
1554# define Uid_t unsigned int /* config-skip */
1555#endif
85e6fe83 1556
a0d0e21e 1557/* I_SYS_PARAM:
85e6fe83 1558 * This symbol, if defined, indicates to the C program that it should
a0d0e21e 1559 * include <sys/param.h>.
85e6fe83 1560 */
a0d0e21e 1561#undef I_SYS_PARAM
85e6fe83 1562
a0d0e21e 1563/* VOID_CLOSEDIR:
1564 * This symbol, if defined, indicates that the closedir() routine
1565 * does not return a value.
79072805 1566 */
a0d0e21e 1567#define VOID_CLOSEDIR /**/
79072805 1568
a0d0e21e 1569/* HAS_DLERROR:
1570 * This symbol, if defined, indicates that the dlerror routine is
1571 * available.
1572*/
1573#undef HAS_DLERROR /**/
1574
1575/* DLSYM_NEEDS_UNDERSCORE:
1576 * This symbol, if defined, indicates that we need to prepend an
1577 * underscore to the symbol name before calling dlsym(). This only
1578 * makes sense if you *have* dlsym, which we will presume is the
1579 * case if you're using dl_dlopen.xs.
85e6fe83 1580 */
a0d0e21e 1581#undef DLSYM_NEEDS_UNDERSCORE /* */
85e6fe83 1582
a0d0e21e 1583/* SETUID_SCRIPTS_ARE_SECURE_NOW:
1584 * This symbol, if defined, indicates that setuid scripts are secure.
79072805 1585 */
a0d0e21e 1586/* DOSUID:
1587 * This symbol, if defined, indicates that the C program should
1588 * check the script that it is executing for setuid/setgid bits, and
1589 * attempt to emulate setuid/setgid on systems that have disabled
1590 * setuid #! scripts because the kernel can't do it securely.
1591 * It is up to the package designer to make sure that this emulation
1592 * is done securely. Among other things, it should do an fstat on
1593 * the script it just opened to make sure it really is a setuid/setgid
1594 * script, it should make sure the arguments passed correspond exactly
1595 * to the argument on the #! line, and it should not trust any
1596 * subprocesses to which it must pass the filename rather than the
1597 * file descriptor of the script to be executed.
1598 */
1599#undef SETUID_SCRIPTS_ARE_SECURE_NOW /**/
1600#undef DOSUID /**/
79072805 1601
71be2cbc 1602/* HAS_INET_ATON:
1603 * This symbol, if defined, indicates to the C program that the
1604 * inet_aton() function is available to parse IP address "dotted-quad"
1605 * strings.
1606 * VMS: SocketShr doesn't support this, so we let the Socket extension
1607 * roll its own.
1608 */
1609#undef HAS_INET_ATON /**/
1610
09b7f37c 1611/* HAS_GNULIBC:
1612 * This symbol, if defined, indicates to the C program that
1613 * the GNU C library is being used.
1614 */
1615#undef HAS_GNULIBC /**/
1616
a0d0e21e 1617/* HAS_ISASCII:
1618 * This manifest constant lets the C program know that the
1619 * isascii is available.
1620 */
1621#define HAS_ISASCII /**/
85e6fe83 1622
36477c24 1623/* HAS_SETLOCALE:
1624 * This symbol, if defined, indicates that the setlocale routine is
1625 * available to handle locale-specific ctype implementations.
1626 */
1627/* I_LOCALE:
1628 * This symbol, if defined, indicates to the C program that it should
1629 * include <locale.h>.
1630 */
a0d0e21e 1631/* HAS_LOCALECONV:
1632 * This symbol, if defined, indicates that the localeconv routine is
1633 * available for numeric and monetary formatting conventions.
1634 */
36477c24 1635#ifdef __DECC
1636# define I_LOCALE /*config-skip*/
1637# define HAS_SETLOCALE /*config-skip*/
1638# define HAS_LOCALECONV /*config-skip*/
1639#else
1640# undef I_LOCALE /*config-skip*/
1641# undef HAS_SETLOCALE /*config-skip*/
1642# undef HAS_LOCALECONV /*config-skip*/
1643#endif
2304df62 1644
a0d0e21e 1645/* HAS_MKFIFO:
1646 * This symbol, if defined, indicates that the mkfifo routine is
1647 * available.
1648 */
1649#undef HAS_MKFIFO /**/
2304df62 1650
a0d0e21e 1651/* HAS_PATHCONF:
1652 * This symbol, if defined, indicates that pathconf() is available
1653 * to determine file-system related limits and options associated
1654 * with a given filename.
1655 */
1656/* HAS_FPATHCONF:
1657 * This symbol, if defined, indicates that pathconf() is available
1658 * to determine file-system related limits and options associated
1659 * with a given open file descriptor.
1660 */
84902520 1661#if ((__VMS_VER >= 70000000) && (__DECC_VER >= 50200000)) || (__CRTL_VER >= 70000000)
09b7f37c 1662#define HAS_PATHCONF /*config-skip*/
1663#define HAS_FPATHCONF /*config-skip*/
84902520 1664#else
1665#undef HAS_PATHCONF /*config-skip*/
1666#undef HAS_FPATHCONF /*config-skip*/
1667#endif
85e6fe83 1668
a0d0e21e 1669/* HAS_SAFE_BCOPY:
1670 * This symbol, if defined, indicates that the bcopy routine is available
1671 * to copy potentially overlapping memory blocks. Otherwise you should
1672 * probably use memmove() or memcpy(). If neither is defined, roll your
1673 * own version.
1674 */
1675#undef HAS_SAFE_BCOPY /**/
85e6fe83 1676
a0d0e21e 1677/* HAS_SAFE_MEMCPY:
1678 * This symbol, if defined, indicates that the memcpy routine is available
1679 * to copy potentially overlapping memory blocks. Otherwise you should
1680 * probably use memmove() or memcpy(). If neither is defined, roll your
1681 * own version.
1682 */
1683#define HAS_SAFE_MEMCPY /**/
85e6fe83 1684
36477c24 1685/* HAS_SANE_MEMCMP:
71be2cbc 1686 * This symbol, if defined, indicates that the memcmp routine is available
1687 * and can be used to compare relative magnitudes of chars with their high
1688 * bits set. If it is not defined, roll your own version.
36477c24 1689 */
1690#define HAS_SANE_MEMCMP /**/
1691
a0d0e21e 1692/* HAS_SETPGRP:
1693 * This symbol, if defined, indicates that the setpgrp routine is
1694 * available to set the current process group.
1695 */
edc7bc49 1696/* USE_BSD_SETPGRP:
1697 * This symbol, if defined, indicates that setpgrp needs two
1698 * arguments whereas USG one needs none. See also HAS_SETPGID
1699 * for a POSIX interface.
1700 */
a0d0e21e 1701#undef HAS_SETPGRP /**/
edc7bc49 1702#undef USE_BSD_SETPGRP /**/
85e6fe83 1703
edc7bc49 1704/* HAS_SETPGID:
1705 * This symbol, if defined, indicates that the setpgid routine is
1706 * available to set process group ID.
1707 */
1708#undef HAS_SETPGID /**/
1709
1710/* HAS_SETPGRP2:
1711 * This symbol, if defined, indicates that the setpgrp2() (as in DG/UX)
1712 * routine is available to set the current process group.
1713 */
1714#undef HAS_SETPGRP2 /**/
1715
a0d0e21e 1716/* HAS_SYSCONF:
1717 * This symbol, if defined, indicates that sysconf() is available
1718 * to determine system related limits and options.
1719 */
84902520 1720#if ((__VMS_VER >= 70000000) && (__DECC_VER >= 50200000)) || (__CRTL_VER >= 70000000)
09b7f37c 1721#define HAS_SYSCONF /*config-skip*/
84902520 1722#else
1723#undef HAS_SYSCONF /*config-skip*/
1724#endif
85e6fe83 1725
e518068a 1726/* Gconvert:
1727 * This preprocessor macro is defined to convert a floating point
1728 * number to a string without a trailing decimal point. This
1729 * emulates the behavior of sprintf("%g"), but is sometimes much more
1730 * efficient. If gconvert() is not available, but gcvt() drops the
1731 * trailing decimal point, then gcvt() is used. If all else fails,
1732 * a macro using sprintf("%g") is used. Arguments for the Gconvert
1733 * macro are: value, number of digits, whether trailing zeros should
1734 * be retained, and the output buffer.
1735 * Possible values are:
1736 * d_Gconvert='gconvert((x),(n),(t),(b))'
1737 * d_Gconvert='gcvt((x),(n),(b))'
1738 * d_Gconvert='sprintf((b),"%.*g",(n),(x))'
1739 * The last two assume trailing zeros should not be kept.
1740 */
1741#define Gconvert(x,n,t,b) my_gconvert(x,n,t,b)
1742
edc7bc49 1743/* HAS_GETPGID:
1744 * This symbol, if defined, indicates to the C program that
1745 * the getpgid(pid) function is available to get the
1746 * process group id.
1747 */
1748#undef HAS_GETPGID /**/
1749
1750/* HAS_GETPGRP:
1751 * This symbol, if defined, indicates that the getpgrp routine is
1752 * available to get the current process group.
1753 */
1754/* USE_BSD_GETPGRP:
1755 * This symbol, if defined, indicates that getpgrp needs one
1756 * arguments whereas USG one needs none.
1757 */
1758#undef HAS_GETPGRP /**/
1759#undef USE_BSD_GETPGRP /**/
1760
1761/* HAS_GETPGRP2:
1762 * This symbol, if defined, indicates that the getpgrp2() (as in DG/UX)
1763 * routine is available to get the current process group.
1764 */
1765#undef HAS_GETPGRP2 /**/
1766
740ce14c 1767/* USE_SFIO:
1768 * This symbol, if defined, indicates that sfio should
1769 * be used.
1770 */
1771#undef USE_SFIO /**/
1772
fc1ce8cc 1773/* PTHREADS_CREATED_JOINABLE:
1774 * This symbol, if defined, indicates that pthreads are created
1775 * in the joinable (aka undetached) state.
1776 */
1777#define PTHREADS_CREATED_JOINABLE /**/
1778
b94f085b 1779/* Sigjmp_buf:
1780 * This is the buffer type to be used with Sigsetjmp and Siglongjmp.
1781 */
1782/* Sigsetjmp:
1783 * This macro is used in the same way as sigsetjmp(), but will invoke
1784 * traditional setjmp() if sigsetjmp isn't available.
1785 */
1786/* Siglongjmp:
1787 * This macro is used in the same way as siglongjmp(), but will invoke
1788 * traditional longjmp() if siglongjmp isn't available.
1789 */
84902520 1790#if ((__VMS_VER >= 70000000) && (__DECC_VER >= 50200000)) || (__CRTL_VER >= 70000000)
09b7f37c 1791#define HAS_SIGSETJMP /*config-skip*/
84902520 1792#else
1793#undef HAS_SIGSETJMP /*config-skip*/
1794#endif
b94f085b 1795#ifdef HAS_SIGSETJMP
1796#define Sigjmp_buf sigjmp_buf /* config-skip */
1797#define Sigsetjmp(buf,save_mask) sigsetjmp(buf,save_mask) /* config-skip */
1798#define Siglongjmp(buf,retval) siglongjmp(buf,retval) /* config-skip */
1799#else
1800#define Sigjmp_buf jmp_buf /* config-skip */
1801#define Sigsetjmp(buf,save_mask) setjmp(buf) /* config-skip */
1802#define Siglongjmp(buf,retval) longjmp(buf,retval) /* config-skip */
1803#endif
1804
a0d0e21e 1805/* USE_DYNAMIC_LOADING:
1806 * This symbol, if defined, indicates that dynamic loading of
1807 * some sort is available.
1808 */
1809#define USE_DYNAMIC_LOADING /**/
2304df62 1810
c07a80fd 1811/* STARTPERL:
1812 * This variable contains the string to put in front of a perl
1813 * script to make sure (one hopes) that it runs with perl and not
1814 * some shell.
1815 */
1816#define STARTPERL "" /**/
1817
8dd63a4d 1818/* Groups_t:
1819 * This symbol holds the type used for the second argument to
5cd24f17 1820 * [gs]etgroups(). Usually, this is the same of gidtype, but
8dd63a4d 1821 * sometimes it isn't. It can be int, ushort, uid_t, etc...
1822 * It may be necessary to include <sys/types.h> to get any
1823 * typedef'ed information. This is only required if you have
5cd24f17 1824 * getgroups() or setgroups.
8dd63a4d 1825 */
5cd24f17 1826#if defined(HAS_GETGROUPS) || defined(HAS_SETGROUPS)
1827#define Groups_t unsigned int /* config-skip */
8dd63a4d 1828#endif
1829
1830/* DB_Prefix_t:
1831 * This symbol contains the type of the prefix structure element
1832 * in the <db.h> header file. In older versions of DB, it was
1833 * int, while in newer ones it is u_int32_t.
1834 */
1835/* DB_Hash_t:
1836 * This symbol contains the type of the prefix structure element
1837 * in the <db.h> header file. In older versions of DB, it was
1838 * int, while in newer ones it is size_t.
1839 */
1840#undef DB_Hash_t /**/
1841#undef DB_Prefix_t /**/
1842
740ce14c 1843/* USE_PERLIO:
1844 * This symbol, if defined, indicates that the PerlIO abstraction should
1845 * be used throughout. If not defined, stdio should be
1846 * used in a fully backward compatible manner.
8dd63a4d 1847 */
740ce14c 1848#undef USE_PERLIO /**/
8dd63a4d 1849
e518068a 1850/* VOIDFLAGS:
1851 * This symbol indicates how much support of the void type is given by this
1852 * compiler. What various bits mean:
1853 *
1854 * 1 = supports declaration of void
1855 * 2 = supports arrays of pointers to functions returning void
1856 * 4 = supports comparisons between pointers to void functions and
1857 * addresses of void functions
1858 * 8 = suports declaration of generic void pointers
1859 *
1860 * The package designer should define VOIDUSED to indicate the requirements
1861 * of the package. This can be done either by #defining VOIDUSED before
1862 * including config.h, or by defining defvoidused in Myinit.U. If the
1863 * latter approach is taken, only those flags will be tested. If the
1864 * level of void support necessary is not present, defines void to int.
1865 */
1866#ifndef VOIDUSED
1867#define VOIDUSED 15
1868#endif
1869#define VOIDFLAGS 15
1870#if (VOIDFLAGS & VOIDUSED) != VOIDUSED
1871#define void int /* is void to be avoided? */ /* config-skip */
1872#define M_VOID /* Xenix strikes again */ /* config-skip */
1873#endif
1874
a0d0e21e 1875#ifdef VMS_DO_SOCKETS
1876/* HAS_SOCKET:
1877 * This symbol, if defined, indicates that the BSD socket interface is
1878 * supported.
1879 */
1880/* HAS_SOCKETPAIR:
1881 * This symbol, if defined, indicates that the BSD socketpair() call is
1882 * supported.
1883 */
1884#define HAS_SOCKET /**/ /* config-skip */
1885#undef HAS_SOCKETPAIR /**/ /* config-skip */
85e6fe83 1886
a0d0e21e 1887/* HAS_GETHOSTENT:
1888 * This symbol, if defined, indicates that the gethostent routine is
1889 * available to lookup host names in some data base or other.
1890 */
1891#define HAS_GETHOSTENT /**/ /* config-skip */
2304df62 1892
51e0df5c 1893/* HAS_GETHOSTBYADDR:
1894 * This symbol, if defined, indicates that the gethostbyaddr routine is
09b7f37c 1895 * available to lookup host names by their IP addresses.
51e0df5c 1896 */
09b7f37c 1897#define HAS_GETHOSTBYADDR /**/ /* config-skip */
51e0df5c 1898
1899/* Netdb_host_t:
1900 * This symbol holds the type used for the 1st argument
1901 * to gethostbyaddr().
1902 */
09b7f37c 1903#define Netdb_host_t char * /**/ /* config-skip */
51e0df5c 1904
1905/* Netdb_hlen_t:
1906 * This symbol holds the type used for the 2nd argument
1907 * to gethostbyaddr().
1908 */
09b7f37c 1909#define Netdb_hlen_t int /**/ /* config-skip */
51e0df5c 1910
59f0d4a5 1911/* HAS_GETPROTOBYNAME:
1912 * This symbol, if defined, indicates that the getprotobyname()
1913 * routine is available to look up protocols by their name.
1914 */
1915/* HAS_GETPROTOBYNUMBER:
1916 * This symbol, if defined, indicates that the getprotobynumber()
1917 * routine is available to look up protocols by their number.
1918 */
1919#define HAS_GETPROTOBYNAME /**/
1920#define HAS_GETPROTOBYNUMBER /**/
1921
51e0df5c 1922/* HAS_GETHOSTBYNAME:
1923 * This symbol, if defined, indicates that the gethostbyname routine is
1924 * available to lookup hosts by their DNS names.
1925 */
09b7f37c 1926#define HAS_GETHOSTBYNAME /*config-skip*/
51e0df5c 1927
1928/* Netdb_name_t:
1929 * This symbol holds the type used for the 1st argument
1930 * to gethostbyname(), the 1st argument to getnetbyname(),
1931 * the 1st argument to getprotobyname(), the 1st argument to
1932 * getservbyname(), the 2nd argument to getservbyname(),
1933 * and the 2nd argument to getservbyport().
1934 */
09b7f37c 1935#define Netdb_name_t char *
51e0df5c 1936
09b7f37c 1937#ifdef DECCRTL_SOCKETS
1938/* HAS_GETNETBYADDR:
51e0df5c 1939 * This symbol, if defined, indicates that the getnetbyaddr routine is
1940 * available to lookup networks by their IP addresses.
1941 */
09b7f37c 1942#define HAS_GETNETBYADDR /**/ /* config-skip */
51e0df5c 1943
1944/* Netdb_net_t:
1945 * This symbol holds the type used for the 1st argument
1946 * to getnetbyaddr().
1947 */
09b7f37c 1948#define Netdb_net_t long /**/ /* config-skip */
51e0df5c 1949
09b7f37c 1950/* HAS_GETNETBYNAME:
1951 * This symbol, if defined, indicates that the getnetbyname routine is
1952 * available to lookup networks by their names.
fc1ce8cc 1953 */
09b7f37c 1954#define HAS_GETNETBYNAME /*config-skip*/
1955#else
1956#undef HAS_GETNETBYADDR /*config-skip*/
1957#undef HAS_GETNETBYNAME /*config-skip*/
1958#endif
fc1ce8cc 1959
09b7f37c 1960/* HAS_GETPROTOBYNAME:
1961 * This symbol, if defined, indicates that the getprotobyname routine is
1962 * available to lookup protocols by their names.
fc1ce8cc 1963 */
09b7f37c 1964/* HAS_GETPROTOBYNUMBER:
1965 * This symbol, if defined, indicates that the getprotobynumber()
1966 * routine is available to look up protocols by their number.
fc1ce8cc 1967 */
09b7f37c 1968#define HAS_GETPROTOBYNAME /*config-skip*/
1969#define HAS_GETPROTOBYNUMBER /*config-skip*/
fc1ce8cc 1970
09b7f37c 1971/* HAS_GETSERVBYNAME:
1972 * This symbol, if defined, indicates that the getservbyname()
1973 * routine is available to look up services by their name.
fc1ce8cc 1974 */
09b7f37c 1975/* HAS_GETSERVBYPORT:
1976 * This symbol, if defined, indicates that the getservbyport()
1977 * routine is available to look up services by their port.
1978 */
1979#define HAS_GETSERVBYNAME /*config-skip*/
1980#define HAS_GETSERVBYPORT /*config-skip*/
fc1ce8cc 1981
09b7f37c 1982/* HAS_SETHOSTENT:
1983 * This symbol, if defined, indicates that the sethostent() routine is
1984 * available.
fc1ce8cc 1985 */
09b7f37c 1986#define HAS_SETHOSTENT /*config-skip*/
fc1ce8cc 1987
a0d0e21e 1988/* VMS: In general, TCP/IP header files should be included from
1989 * sockadapt.h, instead of here, in order to keep the TCP/IP code
1990 * together as much as possible.
1991 */
1992/* I_NETINET_IN:
1993 * This symbol, if defined, indicates to the C program that it should
1994 * include <netinet/in.h>. Otherwise, you may try <sys/in.h>.
1995 */
1996#undef I_NETINET_IN /**/ /* config-skip */
2304df62 1997
fc1ce8cc 1998/* I_NETDB:
1999 * This symbol, if defined, indicates that <netdb.h> exists and
2000 * should be included.
2001 */
2002#undef I_NETDB /**/ /* config-skip */
2003
a0d0e21e 2004/* I_NET_ERRNO:
2005 * This symbol, if defined, indicates that <net/errno.h> exists and
2006 * should be included.
2007*/
2008#undef I_NET_ERRNO /**/ /* config-skip */
85e6fe83 2009
e518068a 2010/* HAS_SELECT:
2011 * This symbol, if defined, indicates that the select routine is
2012 * available to select active file descriptors. If the timeout field
2013 * is used, <sys/time.h> may need to be included.
2014 */
2015#define HAS_SELECT /**/ /* config-skip */
2016
a0d0e21e 2017#else /* VMS_DO_SOCKETS */
2018
09b7f37c 2019#undef HAS_SOCKET /*config-skip*/
2020#undef HAS_SOCKETPAIR /*config-skip*/
2021#undef HAS_GETHOSTENT /*config-skip*/
2022#undef HAS_SETHOSTENT /*config-skip*/
2023#undef I_NETINET_IN /*config-skip*/
2024#undef I_NETDB /*config-skip*/
2025#undef I_NET_ERRNO /*config-skip*/
2026#undef HAS_SELECT /*config-skip*/
2027#undef HAS_GETHOSTBYADDR /*config-skip*/
2028#undef HAS_GETNETBYADDR /*config-skip*/
2029#undef HAS_GETHOSTBYNAME /*config-skip*/
2030#undef HAS_GETNETBYNAME /*config-skip*/
2031#undef HAS_GETPROTOBYNAME /*config-skip*/
2032#undef HAS_GETPROTOBYNUMBER /*config-skip*/
2033#undef HAS_GETSERVBYNAME /*config-skip*/
2034#undef HAS_GETSERVBYPORT /*config-skip*/
a0d0e21e 2035
2036#endif /* !VMS_DO_SOCKETS */
79072805 2037
2038#endif