]> granicus.if.org Git - postgresql/blob - src/include/pg_config.h.in
Simplify the socket handling code by supplying a replacement getaddrinfo()
[postgresql] / src / include / pg_config.h.in
1 /*
2  * PostgreSQL configuration-settings file.
3  *
4  * pg_config.h.in is processed by configure to produce pg_config.h.
5  *
6  * If you want to modify any of the tweakable settings in Part 2
7  * of this file, you can do it in pg_config.h.in before running configure,
8  * or in pg_config.h afterwards.  Of course, if you edit pg_config.h, then your
9  * changes will be overwritten the next time you run configure.
10  *
11  * $Id: pg_config.h.in,v 1.42 2003/03/29 11:31:51 petere Exp $
12  */
13
14 #ifndef PG_CONFIG_H
15 #define PG_CONFIG_H
16
17
18 /*
19  *------------------------------------------------------------------------
20  * Part 1: feature symbols and limits that are set by configure based on
21  * user-supplied switches.  This is first so that stuff in Part 2 can
22  * depend on these values.
23  *
24  * Beware of "fixing" configure-time mistakes by editing these values,
25  * since configure may have inserted the settings in other files as well
26  * as here.  Best to rerun configure if you forgot --enable-integer-datetimes
27  * or whatever.
28  *------------------------------------------------------------------------
29  */
30
31 /* The version number is actually hard-coded into configure.in */
32 #undef PG_VERSION
33 /* A canonical string containing the version number, platform, and C compiler */
34 #undef PG_VERSION_STR
35
36 /* Set to 1 if you want 64-bit integer timestamp and interval support (--enable-integer-datetimes) */
37 #undef USE_INTEGER_DATETIMES
38
39 /* Set to 1 if you want single-byte recode (--enable-recode) */
40 #undef CYR_RECODE
41
42 /* Set to 1 if you want ASSERT checking (--enable-cassert) */
43 #undef USE_ASSERT_CHECKING
44
45 /* Define to build with Kerberos 4 support (--with-krb4[=DIR]) */
46 #undef KRB4
47
48 /* Define to build with Kerberos 5 support (--with-krb5[=DIR]) */
49 #undef KRB5
50
51 /* Kerberos name of the Postgres service principal (--with-krb-srvnam=NAME) */
52 #undef PG_KRB_SRVNAM
53
54 /* Define to build with (Open)SSL support (--with-openssl[=DIR]) */
55 #undef USE_SSL
56
57 /* Define to build with PAM Support */
58 #undef USE_PAM
59
60 /* 
61  * DEF_PGPORT is the TCP port number on which the Postmaster listens and
62  * which clients will try to connect to.  This is just a default value;
63  * it can be overridden at postmaster or client startup.  It's awfully
64  * convenient if your clients have the right default compiled in, though.
65  * (--with-pgport=PORTNUM)
66  */ 
67 #undef DEF_PGPORT
68 /* ... and once more as a string constant instead */
69 #undef DEF_PGPORT_STR
70
71 /*
72  * Default soft limit on number of backend server processes per postmaster;
73  * this is just the default setting for the postmaster's -N switch.
74  * (--with-maxbackends=N)
75  */
76 #undef DEF_MAXBACKENDS
77
78 /* --enable-nls */
79 #undef ENABLE_NLS
80
81 /* location of locale files */
82 #undef LOCALEDIR
83
84
85 /*
86  *------------------------------------------------------------------------
87  * Part 2: feature symbols and limits that are user-configurable, but
88  * only by editing this file ... there's no configure support for them.
89  *
90  * Editing this file and doing a full rebuild (and an initdb if noted)
91  * should be sufficient to change any of these.
92  *------------------------------------------------------------------------
93  */
94
95 /*
96  * Default number of buffers in shared buffer pool (each of size BLCKSZ).
97  * This is just the default setting for the postmaster's -B switch.
98  * Perhaps it ought to be configurable from a configure switch.
99  * NOTE: default setting corresponds to the minimum number of buffers
100  * that postmaster.c will allow for the default MaxBackends value.
101  */
102 #define DEF_NBUFFERS (DEF_MAXBACKENDS > 8 ? DEF_MAXBACKENDS * 2 : 16)
103
104 /*
105  * Size of a disk block --- this also limits the size of a tuple.
106  * You can set it bigger if you need bigger tuples (although TOAST
107  * should reduce the need to have large tuples, since fields can now
108  * be spread across multiple tuples).
109  *
110  * BLCKSZ must be a power of 2.
111  * The maximum possible value of BLCKSZ is currently 2^15 (32768).
112  * This is determined by the 15-bit widths of the lp_off and lp_len
113  * fields in ItemIdData (see include/storage/itemid.h).
114  *
115  * CAUTION: changing BLCKSZ requires an initdb.
116  */
117 #define BLCKSZ  8192
118
119 /*
120  * RELSEG_SIZE is the maximum number of blocks allowed in one disk file.
121  * Thus, the maximum size of a single file is RELSEG_SIZE * BLCKSZ;
122  * relations bigger than that are divided into multiple files.
123  *
124  * CAUTION: RELSEG_SIZE * BLCKSZ must be less than your OS' limit on file
125  * size.  This is typically 2Gb or 4Gb in a 32-bit operating system.  By
126  * default, we make the limit 1Gb to avoid any possible integer-overflow
127  * problems within the OS.  A limit smaller than necessary only means we
128  * divide a large relation into more chunks than necessary, so it seems
129  * best to err in the direction of a small limit.  (Besides, a power-of-2
130  * value saves a few cycles in md.c.)
131  *
132  * CAUTION: changing RELSEG_SIZE requires an initdb.
133  */
134 #define RELSEG_SIZE     (0x40000000 / BLCKSZ)
135
136 /*
137  * Maximum number of columns in an index and maximum number of arguments
138  * to a function. They must be the same value.
139  *
140  * The minimum value is 8 (index creation uses 8-argument functions).
141  * There is no specific upper limit, although large values will waste
142  * system-table space and processing time.
143  *
144  * CAUTION: changing these requires an initdb.
145  *
146  * BTW: if you need to call dynamically-loaded old-style C functions that
147  * have more than 16 arguments, you will also need to add cases to the
148  * switch statement in fmgr_oldstyle() in src/backend/utils/fmgr/fmgr.c.
149  * But consider converting such functions to new-style instead...
150  */
151 #define INDEX_MAX_KEYS          32
152 #define FUNC_MAX_ARGS           INDEX_MAX_KEYS
153
154 /*
155  * Define this to make libpgtcl's "pg_result -assign" command process C-style
156  * backslash sequences in returned tuple data and convert Postgres array
157  * attributes into Tcl lists.  CAUTION: this conversion is *wrong* unless
158  * you install the routines in contrib/string/string_io to make the backend
159  * produce C-style backslash sequences in the first place.
160  */
161 /* #define TCL_ARRAYS */
162
163 /*
164  * User locks are handled totally on the application side as long term
165  * cooperative locks which extend beyond the normal transaction boundaries.
166  * Their purpose is to indicate to an application that someone is `working'
167  * on an item.  Define this flag to enable user locks.  You will need the
168  * loadable module user-locks.c to use this feature.
169  */
170 #define USER_LOCKS
171
172 /*
173  * Define this if you want psql to _always_ ask for a username and a password
174  * for password authentication.
175  */
176 /* #define PSQL_ALWAYS_GET_PASSWORDS */
177
178 /*
179  * Define this if you want to allow the lo_import and lo_export SQL functions
180  * to be executed by ordinary users.  By default these functions are only
181  * available to the Postgres superuser.  CAUTION: these functions are
182  * SECURITY HOLES since they can read and write any file that the Postgres
183  * backend has permission to access.  If you turn this on, don't say we
184  * didn't warn you.
185  */
186 /* #define ALLOW_DANGEROUS_LO_FUNCTIONS */
187
188 /*
189  * MAXPGPATH: standard size of a pathname buffer in Postgres (hence,
190  * maximum usable pathname length is one less).
191  *
192  * We'd use a standard system header symbol for this, if there weren't
193  * so many to choose from: MAXPATHLEN, _POSIX_PATH_MAX, MAX_PATH, PATH_MAX
194  * are all defined by different "standards", and often have different
195  * values on the same platform!  So we just punt and use a reasonably
196  * generous setting here.
197  */
198 #define MAXPGPATH               1024
199
200 /*
201  * DEFAULT_MAX_EXPR_DEPTH: default value of max_expr_depth SET variable.
202  */
203 #define DEFAULT_MAX_EXPR_DEPTH  10000
204
205 /*
206  * PG_SOMAXCONN: maximum accept-queue length limit passed to listen(2).
207  * You'd think we should use SOMAXCONN from <sys/socket.h>, but on many
208  * systems that symbol is much smaller than the kernel's actual limit.
209  * In any case, this symbol need be twiddled only if you have a kernel
210  * that refuses large limit values, rather than silently reducing the
211  * value to what it can handle (which is what most if not all Unixen do).
212  */
213 #define PG_SOMAXCONN    10000
214
215 /*
216  * You can try changing this if you have a machine with bytes of another
217  * size, but no guarantee...
218  */
219 #define BITS_PER_BYTE           8
220
221 /*
222  * Define this if your operating system supports AF_UNIX family sockets.
223  */
224 #if !defined(__QNX__) && !defined(__BEOS__)
225 # define HAVE_UNIX_SOCKETS 1
226 #endif
227
228 /*
229  * This is the default directory in which AF_UNIX socket files are placed.
230  * Caution: changing this risks breaking your existing client applications,
231  * which are likely to continue to look in the old directory.  But if you
232  * just hate the idea of sockets in /tmp, here's where to twiddle it.
233  * You can also override this at runtime with the postmaster's -k switch.
234  */
235 #define DEFAULT_PGSOCKET_DIR  "/tmp"
236
237
238 /*
239  *------------------------------------------------------------------------
240  * These hand-configurable symbols are for enabling debugging code,
241  * not for controlling user-visible features or resource limits.
242  *------------------------------------------------------------------------
243  */
244
245 /* Define this to cause pfree()'d memory to be cleared immediately,
246  * to facilitate catching bugs that refer to already-freed values.
247  * XXX For 7.1 development, define this automatically if --enable-cassert.
248  * In the long term it probably doesn't need to be on by default.
249  */
250 #ifdef USE_ASSERT_CHECKING
251 #define CLOBBER_FREED_MEMORY
252 #endif
253
254 /* Define this to check memory allocation errors (scribbling on more
255  * bytes than were allocated).
256  * XXX For 7.1 development, define this automatically if --enable-cassert.
257  * In the long term it probably doesn't need to be on by default.
258  */
259 #ifdef USE_ASSERT_CHECKING 
260 #define MEMORY_CONTEXT_CHECKING
261 #endif
262
263 /* Define this to force all parse and plan trees to be passed through
264  * copyObject(), to facilitate catching errors and omissions in copyObject().
265  */
266 /* #define COPY_PARSE_PLAN_TREES */
267
268 /* Enable debugging print statements for lock-related operations. */
269 /* #define LOCK_DEBUG */
270
271 /*
272  * Other debug #defines (documentation, anyone?)
273  */
274 /* #define IPORTAL_DEBUG  */
275 /* #define HEAPDEBUGALL  */
276 /* #define ISTRATDEBUG  */
277 /* #define ACLDEBUG */
278 /* #define RTDEBUG */
279 /* #define GISTDEBUG */
280
281 /*
282  * defining unsafe floats will make float4 and float8 ops faster
283  * by suppressing overflow/underflow checks.
284  */
285 /* #define UNSAFE_FLOATS */
286
287
288 /*
289  *------------------------------------------------------------------------
290  * Part 3: system configuration information that is auto-detected by
291  * configure.  In theory you shouldn't have to touch any of this stuff
292  * by hand.  In the real world, configure might get it wrong...
293  *------------------------------------------------------------------------
294  */
295
296 /* Define const as empty if your compiler doesn't grok const. */
297 #undef const
298
299 /* Define as your compiler's spelling of "inline", or empty if no inline. */
300 #undef inline
301
302 /* Define as empty if the C compiler doesn't understand "signed". */
303 #undef signed
304
305 /* Define as empty if the C compiler doesn't understand "volatile". */
306 #undef volatile
307
308 /* Define to 1 to make fseeko visible on some hosts. */
309 #undef _LARGEFILE_SOURCE
310
311 /* Define for large files, on AIX-style hosts. */
312 #undef _LARGE_FILES
313
314 /* Number of bits in a file offset, on hosts where this is settable. */
315 #undef _FILE_OFFSET_BITS
316
317 /* Define to 1 if fseeko (and presumably ftello) exists and is declared. */
318 #undef HAVE_FSEEKO
319
320 /* Define if your cpp understands the ANSI stringizing operators in macros */
321 #undef HAVE_STRINGIZE
322
323 /* Set to 1 if you have <crypt.h> */
324 #undef HAVE_CRYPT_H
325
326 /* Set to 1 if you have <dld.h> */
327 #undef HAVE_DLD_H
328
329 /* Set to 1 if you have <endian.h> */
330 #undef HAVE_ENDIAN_H
331
332 /* Set to 1 if you have <fp_class.h> */
333 #undef HAVE_FP_CLASS_H
334
335 /* Set to 1 if you have <getopt.h> */
336 #undef HAVE_GETOPT_H
337
338 /* Set to 1 if you have <history.h> */
339 #undef HAVE_HISTORY_H
340
341 /* Set to 1 if you have <ieeefp.h> */
342 #undef HAVE_IEEEFP_H
343
344 /* Set to 1 if you have <poll.h> */
345 #undef HAVE_POLL_H
346
347 /* Set to 1 if you have <sys/poll.h> */
348 #undef HAVE_SYS_POLL_H
349
350 /* Set to 1 if you have <netinet/tcp.h> */
351 #undef HAVE_NETINET_TCP_H
352
353 /* Set to 1 if you have <pam/pam_appl.h> */
354 #undef HAVE_PAM_PAM_APPL_H
355
356 /* Set to 1 if you have <readline.h> */
357 #undef HAVE_READLINE_H
358
359 /* Set to 1 if you have <readline/history.h> */
360 #undef HAVE_READLINE_HISTORY_H
361
362 /* Set to 1 if you have <readline/readline.h> */
363 #undef HAVE_READLINE_READLINE_H
364
365 /* Set to 1 if you have <editline/history.h> */
366 #undef HAVE_EDITLINE_HISTORY_H
367
368 /* Set to 1 if you have <editline/readline.h> */
369 #undef HAVE_EDITLINE_READLINE_H
370
371 /* Set to 1 if you have <security/pam_appl.h> */
372 #undef HAVE_SECURITY_PAM_APPL_H
373
374 /* Set to 1 if you have <sys/ipc.h> */
375 #undef HAVE_SYS_IPC_H
376
377 /* Set to 1 if  you have <sys/select.h> */
378 #undef HAVE_SYS_SELECT_H
379
380 /* Set to 1 if you have <sys/un.h> */
381 #undef HAVE_SYS_UN_H
382
383 /* Set to 1 if you have <sys/sem.h> */
384 #undef HAVE_SYS_SEM_H
385
386 /* Set to 1 if you have <sys/shm.h> */
387 #undef HAVE_SYS_SHM_H
388
389 /* Set to 1 if you have support for IPv6 */
390 #undef HAVE_IPV6
391
392 /* Set to 1 if you have <kernel/OS.h> */
393 #undef HAVE_KERNEL_OS_H
394
395 /* Set to 1 if you have <SupportDefs.h> */
396 #undef HAVE_SUPPORTDEFS_H
397
398 /* Set to 1 if you have <kernel/image.h> */
399 #undef HAVE_KERNEL_IMAGE_H
400
401 /* Set to 1 if you have <termios.h> */
402 #undef HAVE_TERMIOS_H
403
404 /* Set to 1 if you have <utime.h> */
405 #undef HAVE_UTIME_H
406
407 /* Set to 1 if you have <sys/pstat.h> */
408 #undef HAVE_SYS_PSTAT_H
409
410 /* Define to 1 if you have strings.h */
411 #undef HAVE_STRINGS_H
412
413 /* Define if you have the setproctitle function.  */
414 #undef HAVE_SETPROCTITLE
415
416 /* Define if you have the pstat function. */
417 #undef HAVE_PSTAT
418
419 /* Define if the PS_STRINGS thing exists. */
420 #undef HAVE_PS_STRINGS
421
422 /* Define if you have the stricmp function.  */
423 #undef HAVE_STRICMP
424
425 /* Set to 1 if you have <pwd.h> */
426 #undef HAVE_PWD_H
427
428 /* Set to 1 if you have gettimeofday(a) instead of gettimeofday(a,b) */
429 #undef GETTIMEOFDAY_1ARG
430
431 #ifdef GETTIMEOFDAY_1ARG
432 # define gettimeofday(a,b) gettimeofday(a)
433 #endif
434
435 /* Set to 1 if you have snprintf() in the C library */
436 #undef HAVE_SNPRINTF
437
438 /* Set to 1 if your standard system headers declare snprintf() */
439 #undef HAVE_DECL_SNPRINTF
440
441 /* Set to 1 if you have vsnprintf() in the C library */
442 #undef HAVE_VSNPRINTF
443
444 /* Set to 1 if your standard system headers declare vsnprintf() */
445 #undef HAVE_DECL_VSNPRINTF
446
447 /* Set to 1 if you have strerror() */
448 #undef HAVE_STRERROR
449
450 /* Set to 1 if you have isinf() */
451 #undef HAVE_ISINF
452
453 /*
454  *      These are all related to port/isinf.c 
455  */
456 #undef HAVE_FPCLASS
457 #undef HAVE_FP_CLASS
458 #undef HAVE_FP_CLASS_H
459 #undef HAVE_FP_CLASS_D
460 #undef HAVE_CLASS
461
462 /* Set to 1 if you have getaddrinfo() */
463 #undef HAVE_GETADDRINFO
464
465 /* Set to 1 if you have gethostname() */
466 #undef HAVE_GETHOSTNAME
467
468 /* Set to 1 if struct tm has a tm_zone member */
469 #undef HAVE_TM_ZONE
470
471 /* Set to 1 if you have int timezone.
472  * NOTE: if both tm_zone and a global timezone variable exist,
473  * using the tm_zone field should probably be preferred,
474  * since global variables are inherently not thread-safe.
475  */
476 #undef HAVE_INT_TIMEZONE
477
478 /* Set to 1 if you have cbrt() */
479 #undef HAVE_CBRT
480
481 /* Set to 1 if you have inet_aton() */
482 #undef HAVE_INET_ATON
483
484 /* Set to 1 if you have fcvt() */
485 #undef HAVE_FCVT
486
487 /* Set to 1 if you have rint() */
488 #undef HAVE_RINT 
489
490 /* Set to 1 if you have finite() */
491 #undef HAVE_FINITE
492
493 /* Set to 1 if you have memmove() */
494 #undef HAVE_MEMMOVE
495
496 /* Set to 1 if you have sigsetjmp() */
497 #undef HAVE_SIGSETJMP
498
499 /* Set to 1 if you have sysconf() */
500 #undef HAVE_SYSCONF
501
502 /* Set to 1 if you have getrusage() */
503 #undef HAVE_GETRUSAGE
504
505 /* Set to 1 if you have waitpid() */
506 #undef HAVE_WAITPID
507
508 /* Set to 1 if you have setsid() */
509 #undef HAVE_SETSID
510
511 /* Set to 1 if you have sigprocmask() */
512 #undef HAVE_SIGPROCMASK
513
514 /* Set to 1 if you have sigprocmask() */
515 #undef HAVE_STRCASECMP
516
517 /* Set to 1 if you have strtol() */
518 #undef HAVE_STRTOL
519
520 /* Set to 1 if you have strtoul() */
521 #undef HAVE_STRTOUL
522
523 /* Set to 1 if you have strdup() */
524 #undef HAVE_STRDUP
525
526 /* Set to 1 if you have random() */
527 #undef HAVE_RANDOM
528
529 /* Set to 1 if you have srandom() */
530 #undef HAVE_SRANDOM
531
532 /* The random() function is expected to yield values 0 .. MAX_RANDOM_VALUE */
533 /* Currently, all known implementations yield 0..2^31-1, so we just hardwire
534  * this constant.  We could do a configure test if it proves to be necessary.
535  * CAUTION: Think not to replace this with RAND_MAX.  RAND_MAX defines the
536  * maximum value of the older rand() function, which is often different from
537  * --- and considerably inferior to --- random().
538  */
539 #define MAX_RANDOM_VALUE  (0x7FFFFFFF)
540
541 /* Define if you have dlopen() */
542 #undef HAVE_DLOPEN
543
544 /* Define if you have fdatasync() */
545 #undef HAVE_FDATASYNC
546
547 /* Define if you have utime() */
548 #undef HAVE_UTIME
549
550 /* Define if you have utimes() */
551 #undef HAVE_UTIMES
552
553 /* Define if the standard header unistd.h declares fdatasync() */
554 #undef HAVE_DECL_FDATASYNC
555
556 /* Set to 1 if you have libz.a */
557 #undef HAVE_LIBZ
558
559 /* Set to 1 if you have libreadline.a */
560 #undef HAVE_LIBREADLINE
561
562 /* Set to 1 if your libreadline defines rl_completion_append_character */
563 #undef HAVE_RL_COMPLETION_APPEND_CHARACTER
564
565 /* Set to 1 if you have rl_completion_matches */
566 #undef HAVE_RL_COMPLETION_MATCHES
567
568 /* Set to 1 if you have rl_filename_completion_function */
569 #undef HAVE_RL_FILENAME_COMPLETION_FUNCTION
570
571 /* Set to 1 if you have replace_history_entry */
572 #undef HAVE_REPLACE_HISTORY_ENTRY
573
574 /* Set to 1 if you have getopt_long() (GNU long options) */
575 #undef HAVE_GETOPT_LONG
576
577 /* Set to 1 if you have union semun */
578 #undef HAVE_UNION_SEMUN
579
580 /* Set to 1 if you have struct cmsgcred */
581 #undef HAVE_STRUCT_CMSGCRED
582
583 /* Set to 1 if you have struct fcred */
584 #undef HAVE_STRUCT_FCRED
585
586 /* Set to 1 if you have struct sockcred */
587 #undef HAVE_STRUCT_SOCKCRED
588
589 /* Set to 1 if you have struct sockaddr_un */
590 #undef HAVE_STRUCT_SOCKADDR_UN
591
592 /* Set to 1 if you have krb5_ticket.enc_part2 */
593 #undef HAVE_KRB5_TICKET_ENC_PART2
594
595 /* Set to 1 if you have krb5_ticket.client */
596 #undef HAVE_KRB5_TICKET_CLIENT
597
598 /* Set to 1 if you have krb5_error.text.data */
599 #undef HAVE_KRB5_ERROR_TEXT_DATA
600
601 /* Set to 1 if you have krb5_ticket.e_data */
602 #undef HAVE_KRB5_ERROR_E_DATA
603
604 /* Set to 1 if type "long int" works and is 64 bits */
605 #undef HAVE_LONG_INT_64
606
607 /* Set to 1 if type "long long int" works and is 64 bits */
608 #undef HAVE_LONG_LONG_INT_64
609
610 /* Set to 1 if type "long long int" constants should be suffixed by LL */
611 #undef HAVE_LL_CONSTANTS
612
613 /* Define this as the appropriate snprintf format for 64-bit ints, if any */
614 #undef INT64_FORMAT
615
616 /*
617  * We need a #define symbol for sizeof(Datum) for use in some #if tests.
618  */
619 #undef SIZEOF_DATUM
620
621 /*
622  * These must be defined as the alignment requirement (NOT the size) of
623  * each of the basic C data types (except char, which we assume has align 1).
624  * MAXIMUM_ALIGNOF is the largest alignment requirement for any C data type.
625  * ALIGNOF_LONG_LONG_INT need only be defined if HAVE_LONG_LONG_INT_64 is.
626  */
627 #undef ALIGNOF_SHORT
628 #undef ALIGNOF_INT
629 #undef ALIGNOF_LONG
630 #undef ALIGNOF_LONG_LONG_INT
631 #undef ALIGNOF_DOUBLE
632 #undef MAXIMUM_ALIGNOF
633
634 /* Define as the type of the 3rd argument to accept() */
635 #undef ACCEPT_TYPE_ARG3
636
637 /* Define if POSIX signal interface is available */
638 #undef HAVE_POSIX_SIGNALS
639
640 /* Define if you have the optreset variable */
641 #undef HAVE_INT_OPTRESET
642
643 /* Define if you have strtoll() */
644 #undef HAVE_STRTOLL
645
646 /* Define if you have strtoq() */
647 #undef HAVE_STRTOQ
648
649 /* Define if you have strtoull() */
650 #undef HAVE_STRTOULL
651
652 /* Define if you have strtouq() */
653 #undef HAVE_STRTOUQ
654
655 /* Define if you have atexit() */
656 #undef HAVE_ATEXIT
657
658 /* Define if you have on_exit() */
659 #undef HAVE_ON_EXIT
660
661 /* Define if you have syslog() */
662 #undef HAVE_SYSLOG
663
664 /* Define if you have poll() */
665 #undef HAVE_POLL
666
667 /* Define if the corresponding types are defined in standard headers */
668 #undef HAVE_INT8
669 #undef HAVE_UINT8
670 #undef HAVE_INT64
671 #undef HAVE_UINT64
672 #undef HAVE_SIG_ATOMIC_T
673
674 /* Define exactly one of these symbols to select semaphore implementation */
675 #undef USE_NAMED_POSIX_SEMAPHORES
676 #undef USE_UNNAMED_POSIX_SEMAPHORES
677 #undef USE_SYSV_SEMAPHORES
678
679 /* Define exactly one of these symbols to select shared-mem implementation */
680 #undef USE_SYSV_SHARED_MEMORY
681
682
683 /*
684  *------------------------------------------------------------------------
685  * Part 4: pull in system-specific declarations.
686  *
687  * This is still configure's responsibility, because it picks where
688  * the "pg_config_os.h" symlink points...
689  *------------------------------------------------------------------------
690  */
691
692 /*
693  * Pull in OS-specific declarations (using link created by configure)
694  */
695
696 #include "pg_config_os.h"
697
698
699 /*
700  *------------------------------------------------------------------------
701  * Part 5: provide default declarations for various things that should be
702  * provided by the system headers or the port-specific pg_config_os.h file,
703  * but sometimes aren't.
704  *
705  * This must be last so that pg_config_os.h can override the defaults.
706  * In particular, we must not pull in any system header files until we
707  * have read pg_config_os.h (largefile support tends to break otherwise).
708  *------------------------------------------------------------------------
709  */
710
711 #ifndef DLLIMPORT
712 #define DLLIMPORT                               /* no special DLL markers on most ports */
713 #endif
714
715 /*
716  * The following is used as the arg list for signal handlers.  Any ports
717  * that take something other than an int argument should override this in
718  * their pg_config_os.h file.  Note that variable names are required
719  * because it is used in both the prototypes as well as the definitions.
720  * Note also the long name.  We expect that this won't collide with
721  * other names causing compiler warnings.
722  */ 
723
724 #ifndef SIGNAL_ARGS
725 #define SIGNAL_ARGS  int postgres_signal_arg
726 #endif
727
728 /*
729  * Default "extern" declarations or macro substitutes for library routines.
730  * When necessary, these routines are provided by files in src/port/.
731  */
732 #ifndef HAVE_FSEEKO
733 #define fseeko(a, b, c) fseek((a), (b), (c))
734 #define ftello(a) ftell((a))
735 #endif
736
737 #ifndef HAVE_ISINF
738 extern int isinf(double x);
739 #endif
740
741 #ifndef HAVE_GETHOSTNAME
742 extern int gethostname(char *name, int namelen);
743 #endif
744
745 #ifndef HAVE_INET_ATON
746 # include <sys/types.h>
747 # include <netinet/in.h>
748 # include <arpa/inet.h>
749 extern int inet_aton(const char *cp, struct in_addr * addr);
750 #endif
751
752 /*
753  * When there is no sigsetjmp, its functionality is provided by plain
754  * setjmp. Incidentally, nothing provides setjmp's functionality in
755  * that case.
756  */
757 #ifndef HAVE_SIGSETJMP
758 # define sigjmp_buf jmp_buf
759 # define sigsetjmp(x,y) setjmp(x)
760 # define siglongjmp longjmp
761 #endif
762
763 #ifndef HAVE_STRCASECMP
764 extern int strcasecmp(char *s1, char *s2);
765 #endif
766
767 #ifndef HAVE_STRDUP
768 extern char *strdup(char const *);
769 #endif
770
771 #ifndef HAVE_RANDOM
772 extern long random(void);
773 #endif
774
775 #ifndef HAVE_SRANDOM
776 extern void srandom(unsigned int seed);
777 #endif
778
779 #if defined(HAVE_FDATASYNC) && !HAVE_DECL_FDATASYNC
780 extern int fdatasync(int fildes);
781 #endif
782
783 /* If strtoq() exists, rename it to the more standard strtoll() */
784 #if defined(HAVE_LONG_LONG_INT_64) && !defined(HAVE_STRTOLL) && defined(HAVE_STRTOQ)
785 # define strtoll strtoq
786 # define HAVE_STRTOLL 1
787 #endif
788
789 /* If strtouq() exists, rename it to the more standard strtoull() */
790 #if defined(HAVE_LONG_LONG_INT_64) && !defined(HAVE_STRTOULL) && defined(HAVE_STRTOUQ)
791 # define strtoull strtouq
792 # define HAVE_STRTOULL 1
793 #endif
794
795
796 #endif /* PG_CONFIG_H */