diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/include/pg_config.h.win32 | 736 | ||||
-rw-r--r-- | src/include/pg_config_ext.h.win32 | 7 | ||||
-rw-r--r-- | src/tools/msvc/Solution.pm | 542 | ||||
-rwxr-xr-x | src/tools/version_stamp.pl | 7 |
4 files changed, 433 insertions, 859 deletions
diff --git a/src/include/pg_config.h.win32 b/src/include/pg_config.h.win32 deleted file mode 100644 index 808f5abcdb1..00000000000 --- a/src/include/pg_config.h.win32 +++ /dev/null @@ -1,736 +0,0 @@ -/* src/include/pg_config.h. Generated by configure. */ -/* src/include/pg_config.h.in. Generated from configure.in by autoheader. */ - -/* This file is generated from MingW ./configure, and with the following - * changes to be valid for Visual C++ (and compatible): - * - * HAVE_CBRT, HAVE_FUNCNAME_FUNC, HAVE_GETOPT, HAVE_GETOPT_H, HAVE_INTTYPES_H, - * HAVE_GETOPT_LONG, HAVE_LOCALE_T, HAVE_RINT, HAVE_STRINGS_H, HAVE_STRTOLL, - * HAVE_STRTOULL, HAVE_STRUCT_OPTION, ENABLE_THREAD_SAFETY, - * inline, USE_SSE42_CRC32C_WITH_RUNTIME_CHECK - */ - -/* Define to the type of arg 1 of 'accept' */ -#define ACCEPT_TYPE_ARG1 unsigned int - -/* Define to the type of arg 2 of 'accept' */ -#define ACCEPT_TYPE_ARG2 struct sockaddr * - -/* Define to the type of arg 3 of 'accept' */ -#define ACCEPT_TYPE_ARG3 int - -/* Define to the return type of 'accept' */ -#define ACCEPT_TYPE_RETURN unsigned int PASCAL - -/* The normal alignment of `double', in bytes. */ -#define ALIGNOF_DOUBLE 8 - -/* The normal alignment of `int', in bytes. */ -#define ALIGNOF_INT 4 - -/* The normal alignment of `long', in bytes. */ -#define ALIGNOF_LONG 4 - -/* The normal alignment of `long long int', in bytes. */ -#define ALIGNOF_LONG_LONG_INT 8 - -/* The normal alignment of `PG_INT128_TYPE', in bytes. */ -#undef ALIGNOF_PG_INT128_TYPE - -/* The normal alignment of `short', in bytes. */ -#define ALIGNOF_SHORT 2 - -/* Define to the default TCP port number on which the server listens and to - which clients will try to connect. This can be overridden at run-time, but - it's convenient if your clients have the right default compiled in. - (--with-pgport=PORTNUM) */ -#define DEF_PGPORT 5432 - -/* Define to the default TCP port number as a string constant. */ -#define DEF_PGPORT_STR "5432" - -/* Define to 1 if you want National Language Support. (--enable-nls) */ -/* #undef ENABLE_NLS */ - -/* Define to 1 to build client libraries as thread-safe code. - (--enable-thread-safety) */ -#define ENABLE_THREAD_SAFETY 1 - -/* Define to nothing if C supports flexible array members, and to 1 if it does - not. That way, with a declaration like `struct s { int n; double - d[FLEXIBLE_ARRAY_MEMBER]; };', the struct hack can be used with pre-C99 - compilers. When computing the size of such an object, don't use 'sizeof - (struct s)' as it overestimates the size. Use 'offsetof (struct s, d)' - instead. Don't use 'offsetof (struct s, d[0])', as this doesn't work with - MSVC and with C++ compilers. */ -#define FLEXIBLE_ARRAY_MEMBER - -/* Define to 1 if gettimeofday() takes only 1 argument. */ -/* #undef GETTIMEOFDAY_1ARG */ - -#ifdef GETTIMEOFDAY_1ARG -# define gettimeofday(a,b) gettimeofday(a) -#endif - -/* Define to 1 if you have the `ASN1_STRING_get0_data' function. */ -/* #undef HAVE_ASN1_STRING_GET0_DATA */ - -/* Define to 1 if you want to use atomics if available. */ -#define HAVE_ATOMICS 1 - -/* Define to 1 if you have the `BIO_get_data' function. */ -/* #undef HAVE_BIO_GET_DATA */ - -/* Define to 1 if you have the `BIO_meth_new' function. */ -/* #undef HAVE_BIO_METH_NEW */ - -/* Define to 1 if you have the `cbrt' function. */ -//#define HAVE_CBRT 1 - -/* Define to 1 if you have the `class' function. */ -/* #undef HAVE_CLASS */ - -/* Define to 1 if you have the `clock_gettime' function. */ -/* #undef HAVE_CLOCK_GETTIME */ - -/* Define to 1 if your compiler handles computed gotos. */ -/* #undef HAVE_COMPUTED_GOTO */ - -/* Define to 1 if you have the declaration of `fdatasync', and to 0 if you - don't. */ -#define HAVE_DECL_FDATASYNC 0 - -/* Define to 1 if you have the declaration of `F_FULLFSYNC', and to 0 if you - don't. */ -#define HAVE_DECL_F_FULLFSYNC 0 - -/* Define to 1 if you have the declaration of - `LLVMCreateGDBRegistrationListener', and to 0 if you don't. */ -#undef HAVE_DECL_LLVMCREATEGDBREGISTRATIONLISTENER - -/* Define to 1 if you have the declaration of - `LLVMCreatePerfJITEventListener', and to 0 if you don't. */ -#undef HAVE_DECL_LLVMCREATEPERFJITEVENTLISTENER - -/* Define to 1 if you have the declaration of `LLVMGetHostCPUFeatures', and to - 0 if you don't. */ -#define HAVE_DECL_LLVMGETHOSTCPUFEATURES 0 - -/* Define to 1 if you have the declaration of `LLVMGetHostCPUName', and to 0 - if you don't. */ -#define HAVE_DECL_LLVMGETHOSTCPUNAME 0 - -/* Define to 1 if you have the declaration of `LLVMOrcGetSymbolAddressIn', and - to 0 if you don't. */ -#define HAVE_DECL_LLVMORCGETSYMBOLADDRESSIN 0 - -/* Define to 1 if you have the declaration of `RTLD_GLOBAL', and to 0 if you - don't. */ -#define HAVE_DECL_RTLD_GLOBAL 0 - -/* Define to 1 if you have the declaration of `RTLD_NOW', and to 0 if you - don't. */ -#define HAVE_DECL_RTLD_NOW 0 - -/* Define to 1 if you have the declaration of `strnlen', and to 0 if you - don't. */ -#define HAVE_DECL_STRNLEN 1 - -/* Define to 1 if you have the declaration of `strtoll', and to 0 if you - don't. */ -#define HAVE_DECL_STRTOLL 1 - -/* Define to 1 if you have the declaration of `strtoull', and to 0 if you - don't. */ -#define HAVE_DECL_STRTOULL 1 - -/* Define to 1 if you have the `dlopen' function. */ -/* #undef HAVE_DLOPEN */ - -/* Define to 1 if you have the <editline/history.h> header file. */ -/* #undef HAVE_EDITLINE_HISTORY_H */ - -/* Define to 1 if you have the <editline/readline.h> header file. */ -/* #undef HAVE_EDITLINE_READLINE_H */ - -/* Define to 1 if you have the `explicit_bzero' function. */ -/* #undef HAVE_EXPLICIT_BZERO */ - -/* Define to 1 if you have the `fdatasync' function. */ -/* #undef HAVE_FDATASYNC */ - -/* Define to 1 if you have the `fpclass' function. */ -/* #undef HAVE_FPCLASS */ - -/* Define to 1 if you have the `fp_class' function. */ -/* #undef HAVE_FP_CLASS */ - -/* Define to 1 if you have the `fp_class_d' function. */ -/* #undef HAVE_FP_CLASS_D */ - -/* Define to 1 if you have the <fp_class.h> header file. */ -/* #undef HAVE_FP_CLASS_H */ - -/* Define to 1 if fseeko (and presumably ftello) exists and is declared. */ -#define HAVE_FSEEKO 1 - -/* Define to 1 if your compiler understands __func__. */ -//#define HAVE_FUNCNAME__FUNC 1 - -/* Define to 1 if your compiler understands __FUNCTION__. */ -#define HAVE_FUNCNAME__FUNCTION 1 - -/* Define to 1 if you have the `getaddrinfo' function. */ -/* #undef HAVE_GETADDRINFO */ - -/* Define to 1 if you have the `gethostbyname_r' function. */ -/* #undef HAVE_GETHOSTBYNAME_R */ - -/* Define to 1 if you have the `getopt' function. */ -//#define HAVE_GETOPT 1 - -/* Define to 1 if you have the <getopt.h> header file. */ -//#define HAVE_GETOPT_H 1 - -/* Define to 1 if you have the `getopt_long' function. */ -//#define HAVE_GETOPT_LONG 1 - -/* Define to 1 if you have the `getpeereid' function. */ -/* #undef HAVE_GETPEEREID */ - -/* Define to 1 if you have the `getpwuid_r' function. */ -/* #undef HAVE_GETPWUID_R */ - -/* Define to 1 if you have the `getrusage' function. */ -/* #undef HAVE_GETRUSAGE */ - -/* Define to 1 if you have the <history.h> header file. */ -/* #undef HAVE_HISTORY_H */ - -/* Define to 1 if you have the <ieeefp.h> header file. */ -/* #undef HAVE_IEEEFP_H */ - -/* Define to 1 if you have the `inet_aton' function. */ -/* #undef HAVE_INET_ATON */ - -/* Define to 1 if the system has the type `int64'. */ -/* #undef HAVE_INT64 */ - -/* Define to 1 if the system has the type `int8'. */ -/* #undef HAVE_INT8 */ - -/* Define to 1 if you have the <inttypes.h> header file. */ -//#define HAVE_INTTYPES_H 1 - -/* Define to 1 if you have the global variable 'int timezone'. */ -#define HAVE_INT_TIMEZONE 1 - -/* Define to 1 if you have support for IPv6. */ -#define HAVE_IPV6 1 - -/* Define to 1 if you have isinf(). */ -#define HAVE_ISINF 1 - -/* Define to 1 if you have the <langinfo.h> header file. */ -/* #undef HAVE_LANGINFO_H */ - -/* Define to 1 if you have the <ldap.h> header file. */ -/* #undef HAVE_LDAP_H */ - -/* Define to 1 if you have the `ldap_initialize' function. */ -/* #undef HAVE_LDAP_INITIALIZE */ - -/* Define to 1 if you have the `crypto' library (-lcrypto). */ -/* #undef HAVE_LIBCRYPTO */ - -/* Define to 1 if you have the `ldap' library (-lldap). */ -/* #undef HAVE_LIBLDAP */ - -/* Define to 1 if you have the `pam' library (-lpam). */ -/* #undef HAVE_LIBPAM */ - -/* Define if you have a function readline library */ -/* #undef HAVE_LIBREADLINE */ - -/* Define to 1 if you have the `ssl' library (-lssl). */ -/* #undef HAVE_LIBSSL */ - -/* Define to 1 if you have the `wldap32' library (-lwldap32). */ -/* #undef HAVE_LIBWLDAP32 */ - -/* Define to 1 if you have the `z' library (-lz). */ -/* #undef HAVE_LIBZ */ - -/* Define to 1 if the system has the type `locale_t'. */ -#define HAVE_LOCALE_T 1 - -/* Define to 1 if `long int' works and is 64 bits. */ -/* #undef HAVE_LONG_INT_64 */ - -/* Define to 1 if `long long int' works and is 64 bits. */ -#define HAVE_LONG_LONG_INT_64 1 - -/* Define to 1 if you have the `mbstowcs_l' function. */ -#define HAVE_MBSTOWCS_L 1 - -/* Define to 1 if you have the `memmove' function. */ -#define HAVE_MEMMOVE 1 - -/* Define to 1 if you have the <memory.h> header file. */ -#define HAVE_MEMORY_H 1 - -/* Define to 1 if you have the `memset_s' function. */ -/* #undef HAVE_MEMSET_S */ - -/* Define to 1 if the system has the type `MINIDUMP_TYPE'. */ -#define HAVE_MINIDUMP_TYPE 1 - -/* Define to 1 if you have the `mkdtemp' function. */ -/* #undef HAVE_MKDTEMP */ - -/* Define to 1 if you have the <netinet/tcp.h> header file. */ -/* #undef HAVE_NETINET_TCP_H */ - -/* Define to 1 if you have the `OPENSSL_init_ssl' function. */ -/* #undef HAVE_OPENSSL_INIT_SSL */ - -/* Define to 1 if you have the <pam/pam_appl.h> header file. */ -/* #undef HAVE_PAM_PAM_APPL_H */ - -/* Define to 1 if you have the `poll' function. */ -/* #undef HAVE_POLL */ - -/* Define to 1 if you have the <poll.h> header file. */ -/* #undef HAVE_POLL_H */ - -/* Define to 1 if you have the `posix_fallocate' function. */ -/* #undef HAVE_POSIX_FALLOCATE */ - -/* Define to 1 if you have the `ppoll' function. */ -/* #undef HAVE_PPOLL */ - -/* Define to 1 if you have the `pread' function. */ -/* #undef HAVE_PREAD */ - -/* Define to 1 if you have the `pstat' function. */ -/* #undef HAVE_PSTAT */ - -/* Define to 1 if the PS_STRINGS thing exists. */ -/* #undef HAVE_PS_STRINGS */ - -/* Define to 1 if you have the `pwrite' function. */ -/* #undef HAVE_PWRITE */ - -/* Define to 1 if you have the `random' function. */ -/* #undef HAVE_RANDOM */ - -/* Define to 1 if you have the <readline.h> header file. */ -/* #undef HAVE_READLINE_H */ - -/* Define to 1 if you have the <readline/history.h> header file. */ -/* #undef HAVE_READLINE_HISTORY_H */ - -/* Define to 1 if you have the <readline/readline.h> header file. */ -/* #undef HAVE_READLINE_READLINE_H */ - -/* Define to 1 if you have the `readlink' function. */ -/* #undef HAVE_READLINK */ - -/* Define to 1 if you have the `rint' function. */ -#define HAVE_RINT 1 - -/* Define to 1 if you have the global variable - 'rl_completion_append_character'. */ -/* #undef HAVE_RL_COMPLETION_APPEND_CHARACTER */ - -/* Define to 1 if you have the `rl_completion_matches' function. */ -/* #undef HAVE_RL_COMPLETION_MATCHES */ - -/* Define to 1 if you have the `rl_filename_completion_function' function. */ -/* #undef HAVE_RL_FILENAME_COMPLETION_FUNCTION */ - -/* Define to 1 if you have the <security/pam_appl.h> header file. */ -/* #undef HAVE_SECURITY_PAM_APPL_H */ - -/* Define to 1 if you have the `setproctitle' function. */ -/* #undef HAVE_SETPROCTITLE */ - -/* Define to 1 if you have the `setsid' function. */ -/* #undef HAVE_SETSID */ - -/* Define to 1 if you have spinlocks. */ -#define HAVE_SPINLOCKS 1 - -/* Define to 1 if you have the `srandom' function. */ -/* #undef HAVE_SRANDOM */ - -/* Define to 1 if stdbool.h conforms to C99. */ -#define HAVE_STDBOOL_H 1 - -/* Define to 1 if you have the <stdint.h> header file. */ -/* #undef HAVE_STDINT_H */ - -/* Define to 1 if you have the <stdlib.h> header file. */ -#define HAVE_STDLIB_H 1 - -/* Define to 1 if you have the `strchrnul' function. */ -/* #undef HAVE_STRCHRNUL */ - -/* Define to 1 if you have the `strerror_r' function. */ -/* #undef HAVE_STRERROR_R */ - -/* Define to 1 if you have the <strings.h> header file. */ -/*#define HAVE_STRINGS_H 1 */ - -/* Define to 1 if you have the <string.h> header file. */ -#define HAVE_STRING_H 1 - -/* Define to 1 if you have the `strnlen' function. */ -#define HAVE_STRNLEN 1 - -/* Define to 1 if you have the `strsignal' function. */ -/* #undef HAVE_STRSIGNAL */ - -/* Define to 1 if you have the `strtof' function. */ -#define HAVE_STRTOF 1 - -/* Define to 1 if you have the `strtoll' function. */ -#ifdef HAVE_LONG_LONG_INT_64 -#define HAVE_STRTOLL 1 -#endif - -/* Define to 1 if you have the `strtoull' function. */ -#ifdef HAVE_LONG_LONG_INT_64 -#define HAVE_STRTOULL 1 -#endif - -/* Define to 1 if the system has the type `struct addrinfo'. */ -#define HAVE_STRUCT_ADDRINFO 1 - -/* Define to 1 if the system has the type `struct cmsgcred'. */ -/* #undef HAVE_STRUCT_CMSGCRED */ - -/* Define to 1 if the system has the type `struct option'. */ -//#define HAVE_STRUCT_OPTION 1 - -/* Define to 1 if `sa_len' is a member of `struct sockaddr'. */ -/* #undef HAVE_STRUCT_SOCKADDR_SA_LEN */ - -/* Define to 1 if the system has the type `struct sockaddr_storage'. */ -#define HAVE_STRUCT_SOCKADDR_STORAGE 1 - -/* Define to 1 if `ss_family' is a member of `struct sockaddr_storage'. */ -#define HAVE_STRUCT_SOCKADDR_STORAGE_SS_FAMILY 1 - -/* Define to 1 if `ss_len' is a member of `struct sockaddr_storage'. */ -/* #undef HAVE_STRUCT_SOCKADDR_STORAGE_SS_LEN */ - -/* Define to 1 if `__ss_family' is a member of `struct sockaddr_storage'. */ -/* #undef HAVE_STRUCT_SOCKADDR_STORAGE___SS_FAMILY */ - -/* Define to 1 if `__ss_len' is a member of `struct sockaddr_storage'. */ -/* #undef HAVE_STRUCT_SOCKADDR_STORAGE___SS_LEN */ - -/* Define to 1 if `tm_zone' is a member of `struct tm'. */ -/* #undef HAVE_STRUCT_TM_TM_ZONE */ - -/* Define to 1 if you have the `symlink' function. */ -#define HAVE_SYMLINK 1 - -/* Define to 1 if you have the `sync_file_range' function. */ -/* #undef HAVE_SYNC_FILE_RANGE */ - -/* Define to 1 if you have the syslog interface. */ -/* #undef HAVE_SYSLOG */ - -/* Define to 1 if you have the <sys/ipc.h> header file. */ -/* #undef HAVE_SYS_IPC_H */ - -/* Define to 1 if you have the <sys/prctl.h> header file. */ -/* #undef HAVE_SYS_PRCTL_H */ - -/* Define to 1 if you have the <sys/pstat.h> header file. */ -/* #undef HAVE_SYS_PSTAT_H */ - -/* Define to 1 if you have the <sys/select.h> header file. */ -/* #undef HAVE_SYS_SELECT_H */ - -/* Define to 1 if you have the <sys/sem.h> header file. */ -/* #undef HAVE_SYS_SEM_H */ - -/* Define to 1 if you have the <sys/shm.h> header file. */ -/* #undef HAVE_SYS_SHM_H */ - -/* Define to 1 if you have the <sys/stat.h> header file. */ -#define HAVE_SYS_STAT_H 1 - -/* Define to 1 if you have the <sys/types.h> header file. */ -#define HAVE_SYS_TYPES_H 1 - -/* Define to 1 if you have the <sys/ucred.h> header file. */ -/* #undef HAVE_SYS_UCRED_H */ - -/* Define to 1 if you have the <sys/un.h> header file. */ -/* #undef HAVE_SYS_UN_H */ - -/* Define to 1 if you have the <termios.h> header file. */ -/* #undef HAVE_TERMIOS_H */ - -/* Define to 1 if your compiler understands `typeof' or something similar. */ -/* #undef HAVE_TYPEOF */ - -/* Define to 1 if the system has the type `uint64'. */ -/* #undef HAVE_UINT64 */ - -/* Define to 1 if the system has the type `uint8'. */ -/* #undef HAVE_UINT8 */ - -/* Define to 1 if the system has the type `union semun'. */ -/* #undef HAVE_UNION_SEMUN */ - -/* Define to 1 if you have the <unistd.h> header file. */ -#define HAVE_UNISTD_H 1 - -/* Define to 1 if you have unix sockets. */ -/* #undef HAVE_UNIX_SOCKETS */ - -/* Define to 1 if you have the `unsetenv' function. */ -/* #undef HAVE_UNSETENV */ - -/* Define to 1 if you have the `uselocale' function. */ -/* #undef HAVE_USELOCALE */ - -/* Define to 1 if you have the `utime' function. */ -#define HAVE_UTIME 1 - -/* Define to 1 if you have the `utimes' function. */ -/* #undef HAVE_UTIMES */ - -/* Define to 1 if you have the <utime.h> header file. */ -#define HAVE_UTIME_H 1 - -/* Define to 1 if you have the <wchar.h> header file. */ -#define HAVE_WCHAR_H 1 - -/* Define to 1 if you have the `wcstombs_l' function. */ -#define HAVE_WCSTOMBS_L 1 - -/* Define to 1 if you have the <wctype.h> header file. */ -#define HAVE_WCTYPE_H 1 - -/* Define to 1 if you have the <winldap.h> header file. */ -/* #undef HAVE_WINLDAP_H */ - -/* Define to 1 if you have the `X509_get_signature_nid' function. */ -#define HAVE_X509_GET_SIGNATURE_NID 1 - -/* Define to 1 if the assembler supports X86_64's POPCNTQ instruction. */ -/* #undef HAVE_X86_64_POPCNTQ */ - -/* Define to 1 if the system has the type `_Bool'. */ -/* #undef HAVE__BOOL */ - -/* Define to 1 if your compiler understands __builtin_bswap16. */ -/* #undef HAVE__BUILTIN_BSWAP16 */ - -/* Define to 1 if your compiler understands __builtin_bswap32. */ -/* #undef HAVE__BUILTIN_BSWAP32 */ - -/* Define to 1 if your compiler understands __builtin_bswap64. */ -/* #undef HAVE__BUILTIN_BSWAP64 */ - -/* Define to 1 if your compiler understands __builtin_clz. */ -/* #undef HAVE__BUILTIN_CLZ */ - -/* Define to 1 if your compiler understands __builtin_constant_p. */ -/* #undef HAVE__BUILTIN_CONSTANT_P */ - -/* Define to 1 if your compiler understands __builtin_ctz. */ -/* #undef HAVE__BUILTIN_CTZ */ - -/* Define to 1 if your compiler understands __builtin_$op_overflow. */ -/* #undef HAVE__BUILTIN_OP_OVERFLOW */ - -/* Define to 1 if your compiler understands __builtin_popcount. */ -/* #undef HAVE__BUILTIN_POPCOUNT */ - -/* Define to 1 if your compiler understands __builtin_types_compatible_p. */ -/* #undef HAVE__BUILTIN_TYPES_COMPATIBLE_P */ - -/* Define to 1 if your compiler understands __builtin_unreachable. */ -/* #undef HAVE__BUILTIN_UNREACHABLE */ - -/* Define to 1 if you have the `_configthreadlocale' function. */ -#define HAVE__CONFIGTHREADLOCALE 1 - -/* Define to 1 if you have __cpuid. */ -#define HAVE__CPUID 1 - -/* Define to 1 if you have __get_cpuid. */ -#undef HAVE__GET_CPUID - -/* Define to 1 if your compiler understands _Static_assert. */ -/* #undef HAVE__STATIC_ASSERT */ - -/* Define to the appropriate printf length modifier for 64-bit ints. */ -#define INT64_MODIFIER "ll" - -/* Define to 1 if `locale_t' requires <xlocale.h>. */ -/* #undef LOCALE_T_IN_XLOCALE */ - -/* Define as the maximum alignment requirement of any C data type. */ -#define MAXIMUM_ALIGNOF 8 - -/* Define bytes to use libc memset(). */ -#define MEMSET_LOOP_LIMIT 1024 - -/* Define to the address where bug reports for this package should be sent. */ -#define PACKAGE_BUGREPORT "pgsql-bugs@lists.postgresql.org" - -/* Define to the full name of this package. */ -#define PACKAGE_NAME "PostgreSQL" - -/* Define to the full name and version of this package. */ -#define PACKAGE_STRING "PostgreSQL 13devel" - -/* Define to the one symbol short name of this package. */ -#define PACKAGE_TARNAME "postgresql" - -/* Define to the version of this package. */ -#define PACKAGE_VERSION "13devel" - -/* Define to the name of a signed 128-bit integer type. */ -#undef PG_INT128_TYPE - -/* Define to the name of a signed 64-bit integer type. */ -#define PG_INT64_TYPE long long int - -/* Define to the name of the default PostgreSQL service principal in Kerberos - (GSSAPI). (--with-krb-srvnam=NAME) */ -#define PG_KRB_SRVNAM "postgres" - -/* Define to 1 to use <stdbool.h> to define type bool. */ -#define PG_USE_STDBOOL 1 - -/* PostgreSQL version as a string */ -#define PG_VERSION "13devel" - -/* PostgreSQL version as a number */ -#define PG_VERSION_NUM 130000 - -/* A string containing the version number, platform, and C compiler */ -#define PG_VERSION_STR "Uninitialized version string (win32)" - -/* The size of `bool', as computed by sizeof. */ -#define SIZEOF_BOOL 1 - -/* The size of `long', as computed by sizeof. */ -#define SIZEOF_LONG 4 - -/* The size of `size_t', as computed by sizeof. */ -#ifndef _WIN64 -#define SIZEOF_SIZE_T 4 -#else -#define SIZEOF_SIZE_T 8 -#endif - -/* The size of `void *', as computed by sizeof. */ -#ifndef _WIN64 -#define SIZEOF_VOID_P 4 -#else -#define SIZEOF_VOID_P 8 -#endif - -/* Define to 1 if you have the ANSI C header files. */ -#define STDC_HEADERS 1 - -/* Define to 1 if strerror_r() returns int. */ -/* #undef STRERROR_R_INT */ - -/* Define to 1 to build with assertion checks. (--enable-cassert) */ -/* #undef USE_ASSERT_CHECKING */ - -/* Define to 1 to build with Bonjour support. (--with-bonjour) */ -/* #undef USE_BONJOUR */ - -/* Define to 1 to build with BSD Authentication support. (--with-bsd-auth) */ -/* #undef USE_BSD_AUTH */ - -/* Define to use /dev/urandom for random number generation */ -/* #undef USE_DEV_URANDOM */ - -/* Define to 1 to build with LDAP support. (--with-ldap) */ -/* #undef USE_LDAP */ - -/* Define to 1 to build with LLVM based JIT support. (--with-llvm) */ -/* #undef USE_LLVM */ - -/* Define to select named POSIX semaphores. */ -/* #undef USE_NAMED_POSIX_SEMAPHORES */ - -/* Define to build with OpenSSL support. (--with-openssl) */ -/* #undef USE_OPENSSL */ - -/* Define to use OpenSSL for random number generation */ -/* #undef USE_OPENSSL_RANDOM */ - -/* Define to 1 to build with PAM support. (--with-pam) */ -/* #undef USE_PAM */ - -/* Define to 1 to use software CRC-32C implementation (slicing-by-8). */ -/* #undef USE_SLICING_BY_8_CRC32C */ - -/* Define to 1 use Intel SSE 4.2 CRC instructions. */ -/* #undef USE_SSE42_CRC32C */ - -/* Define to 1 to use Intel SSE 4.2 CRC instructions with a runtime check. */ -#define USE_SSE42_CRC32C_WITH_RUNTIME_CHECK - -/* Define to select SysV-style semaphores. */ -/* #undef USE_SYSV_SEMAPHORES */ - -/* Define to select SysV-style shared memory. */ -#define USE_SYSV_SHARED_MEMORY 1 - -/* Define to select unnamed POSIX semaphores. */ -/* #undef USE_UNNAMED_POSIX_SEMAPHORES */ - -/* Define to use native Windows API for random number generation */ -#define USE_WIN32_RANDOM 1 - -/* Define to select Win32-style semaphores. */ -#define USE_WIN32_SEMAPHORES 1 - -/* Define to 1 if `wcstombs_l' requires <xlocale.h>. */ -/* #undef WCSTOMBS_L_IN_XLOCALE */ - -/* Number of bits in a file offset, on hosts where this is settable. */ -/* #undef _FILE_OFFSET_BITS */ - -/* Define to 1 to make fseeko visible on some hosts (e.g. glibc 2.2). */ -/* #undef _LARGEFILE_SOURCE */ - -/* Define for large files, on AIX-style hosts. */ -/* #undef _LARGE_FILES */ - -/* Define to `__inline__' or `__inline' if that's what the C compiler - calls it, or to nothing if 'inline' is not supported under any name. */ -#ifndef __cplusplus -#define inline __inline -#endif - -/* Define to keyword to use for C99 restrict support, or to nothing if not - supported */ -/* Works for C and C++ in Visual Studio 2008 and upwards */ -#define pg_restrict __restrict - -/* Define to the equivalent of the C99 'restrict' keyword, or to - nothing if this is not supported. Do not define if restrict is - supported directly. */ -/* not defined, because it'd conflict with __declspec(restrict) */ - -/* Define to empty if the C compiler does not understand signed types. */ -/* #undef signed */ - -/* Define to how the compiler spells `typeof'. */ -/* #undef typeof */ diff --git a/src/include/pg_config_ext.h.win32 b/src/include/pg_config_ext.h.win32 deleted file mode 100644 index 65bbb5d80d4..00000000000 --- a/src/include/pg_config_ext.h.win32 +++ /dev/null @@ -1,7 +0,0 @@ -/* - * src/include/pg_config_ext.h.win32. This is generated manually, not by - * autoheader, since we want to limit which symbols get defined here. - */ - -/* Define to the name of a signed 64-bit integer type. */ -#define PG_INT64_TYPE long long int diff --git a/src/tools/msvc/Solution.pm b/src/tools/msvc/Solution.pm index 94cc4b950ef..909bded5920 100644 --- a/src/tools/msvc/Solution.pm +++ b/src/tools/msvc/Solution.pm @@ -20,7 +20,6 @@ sub _new projects => {}, options => $options, numver => '', - strver => '', VisualStudioVersion => undef, MinimumVisualStudioVersion => undef, vcver => undef, @@ -140,16 +139,22 @@ sub GenerateFiles { my $self = shift; my $bits = $self->{platform} eq 'Win32' ? 32 : 64; + my $package_name; + my $package_version; + my $package_bugreport; # Parse configure.in to get version numbers open(my $c, '<', "configure.in") || confess("Could not open configure.in for reading\n"); while (<$c>) { - if (/^AC_INIT\(\[PostgreSQL\], \[([^\]]+)\]/) + if (/^AC_INIT\(\[([^\]]+)\], \[([^\]]+)\], \[([^\]]+)\]/) { - $self->{strver} = $1; - if ($self->{strver} !~ /^(\d+)(?:\.(\d+))?/) + $package_name = $1; + $package_version = $2; + $package_bugreport = $3; + + if ($package_version !~ /^(\d+)(?:\.(\d+))?/) { confess "Bad format of version: $self->{strver}\n"; } @@ -159,7 +164,10 @@ sub GenerateFiles } close($c); confess "Unable to parse configure.in for all variables!" - if ($self->{strver} eq '' || $self->{numver} eq ''); + if ( $package_name eq '' + || $package_version eq '' + || $self->{numver} eq '' + || $package_bugreport eq ''); if (IsNewer("src/include/pg_config_os.h", "src/include/port/win32.h")) { @@ -167,100 +175,369 @@ sub GenerateFiles copyFile("src/include/port/win32.h", "src/include/pg_config_os.h"); } - if (IsNewer("src/include/pg_config.h", "src/include/pg_config.h.win32")) + print "Generating configuration headers...\n"; + my $extraver = $self->{options}->{extraver}; + $extraver = '' unless defined $extraver; + my $port = $self->{options}->{"--with-pgport"} || 5432; + + # Every symbol in pg_config.h.in must be accounted for here. Set + # to undef if the symbol should not be defined. + my %define = ( + ACCEPT_TYPE_ARG1 => 'unsigned int', + ACCEPT_TYPE_ARG2 => 'struct sockaddr *', + ACCEPT_TYPE_ARG3 => 'int', + ACCEPT_TYPE_RETURN => 'unsigned int PASCAL', + ALIGNOF_DOUBLE => 8, + ALIGNOF_INT => 4, + ALIGNOF_LONG => 4, + ALIGNOF_LONG_LONG_INT => 8, + ALIGNOF_PG_INT128_TYPE => undef, + ALIGNOF_SHORT => 2, + AC_APPLE_UNIVERSAL_BUILD => undef, + BLCKSZ => 1024 * $self->{options}->{blocksize}, + DEF_PGPORT => $port, + DEF_PGPORT_STR => qq{"$port"}, + ENABLE_GSS => $self->{options}->{gss} ? 1 : undef, + ENABLE_NLS => $self->{options}->{nls} ? 1 : undef, + ENABLE_THREAD_SAFETY => 1, + FLEXIBLE_ARRAY_MEMBER => '/**/', + GETTIMEOFDAY_1ARG => undef, + HAVE_APPEND_HISTORY => undef, + HAVE_ASN1_STRING_GET0_DATA => undef, + HAVE_ATOMICS => 1, + HAVE_ATOMIC_H => undef, + HAVE_BACKTRACE_SYMBOLS => undef, + HAVE_BIO_GET_DATA => undef, + HAVE_BIO_METH_NEW => undef, + HAVE_CBRT => undef, + HAVE_CLASS => undef, + HAVE_CLOCK_GETTIME => undef, + HAVE_COMPUTED_GOTO => undef, + HAVE_COPYFILE => undef, + HAVE_COPYFILE_H => undef, + HAVE_CRTDEFS_H => undef, + HAVE_CRYPTO_LOCK => undef, + HAVE_DECL_FDATASYNC => 0, + HAVE_DECL_F_FULLFSYNC => 0, + HAVE_DECL_LLVMCREATEGDBREGISTRATIONLISTENER => undef, + HAVE_DECL_LLVMCREATEPERFJITEVENTLISTENER => undef, + HAVE_DECL_LLVMGETHOSTCPUNAME => 0, + HAVE_DECL_LLVMGETHOSTCPUFEATURES => 0, + HAVE_DECL_LLVMORCGETSYMBOLADDRESSIN => 0, + HAVE_DECL_POSIX_FADVISE => undef, + HAVE_DECL_RTLD_GLOBAL => 0, + HAVE_DECL_RTLD_NOW => 0, + HAVE_DECL_STRLCAT => undef, + HAVE_DECL_STRLCPY => undef, + HAVE_DECL_STRNLEN => 1, + HAVE_DECL_STRTOLL => 1, + HAVE_DECL_STRTOULL => 1, + HAVE_DLOPEN => undef, + HAVE_EDITLINE_HISTORY_H => undef, + HAVE_EDITLINE_READLINE_H => undef, + HAVE_EXECINFO_H => undef, + HAVE_EXPLICIT_BZERO => undef, + HAVE_FDATASYNC => undef, + HAVE_FLS => undef, + HAVE_FPCLASS => undef, + HAVE_FP_CLASS => undef, + HAVE_FP_CLASS_D => undef, + HAVE_FP_CLASS_H => undef, + HAVE_FSEEKO => 1, + HAVE_FUNCNAME__FUNC => undef, + HAVE_FUNCNAME__FUNCTION => 1, + HAVE_GCC__ATOMIC_INT32_CAS => undef, + HAVE_GCC__ATOMIC_INT64_CAS => undef, + HAVE_GCC__SYNC_CHAR_TAS => undef, + HAVE_GCC__SYNC_INT32_CAS => undef, + HAVE_GCC__SYNC_INT32_TAS => undef, + HAVE_GCC__SYNC_INT64_CAS => undef, + HAVE_GETADDRINFO => undef, + HAVE_GETHOSTBYNAME_R => undef, + HAVE_GETIFADDRS => undef, + HAVE_GETOPT => undef, + HAVE_GETOPT_H => undef, + HAVE_GETOPT_LONG => undef, + HAVE_GETPEEREID => undef, + HAVE_GETPEERUCRED => undef, + HAVE_GETPWUID_R => undef, + HAVE_GETRLIMIT => undef, + HAVE_GETRUSAGE => undef, + HAVE_GETTIMEOFDAY => undef, + HAVE_GSSAPI_GSSAPI_H => undef, + HAVE_GSSAPI_H => undef, + HAVE_HISTORY_H => undef, + HAVE_HISTORY_TRUNCATE_FILE => undef, + HAVE_IEEEFP_H => undef, + HAVE_IFADDRS_H => undef, + HAVE_INET_ATON => undef, + HAVE_INT_TIMEZONE => 1, + HAVE_INT64 => undef, + HAVE_INT8 => undef, + HAVE_INTPTR_T => undef, + HAVE_INTTYPES_H => undef, + HAVE_INT_OPTERR => undef, + HAVE_INT_OPTRESET => undef, + HAVE_IPV6 => 1, + HAVE_ISINF => 1, + HAVE_I_CONSTRAINT__BUILTIN_CONSTANT_P => undef, + HAVE_LANGINFO_H => undef, + HAVE_LDAP_H => undef, + HAVE_LDAP_INITIALIZE => undef, + HAVE_LIBCRYPTO => undef, + HAVE_LIBLDAP => undef, + HAVE_LIBLDAP_R => undef, + HAVE_LIBM => undef, + HAVE_LIBPAM => undef, + HAVE_LIBREADLINE => undef, + HAVE_LIBSELINUX => undef, + HAVE_LIBSSL => undef, + HAVE_LIBWLDAP32 => undef, + HAVE_LIBXML2 => undef, + HAVE_LIBXSLT => undef, + HAVE_LIBZ => $self->{options}->{zlib} ? 1 : undef, + HAVE_LOCALE_T => 1, + HAVE_LONG_INT_64 => undef, + HAVE_LONG_LONG_INT_64 => 1, + HAVE_MBARRIER_H => undef, + HAVE_MBSTOWCS_L => 1, + HAVE_MEMMOVE => 1, + HAVE_MEMORY_H => 1, + HAVE_MEMSET_S => undef, + HAVE_MINIDUMP_TYPE => 1, + HAVE_MKDTEMP => undef, + HAVE_NETINET_TCP_H => undef, + HAVE_NET_IF_H => undef, + HAVE_OPENSSL_INIT_SSL => undef, + HAVE_OSSP_UUID_H => undef, + HAVE_PAM_PAM_APPL_H => undef, + HAVE_POLL => undef, + HAVE_POLL_H => undef, + HAVE_POSIX_FADVISE => undef, + HAVE_POSIX_FALLOCATE => undef, + HAVE_PPC_LWARX_MUTEX_HINT => undef, + HAVE_PPOLL => undef, + HAVE_PREAD => undef, + HAVE_PSTAT => undef, + HAVE_PS_STRINGS => undef, + HAVE_PTHREAD => undef, + HAVE_PTHREAD_IS_THREADED_NP => undef, + HAVE_PTHREAD_PRIO_INHERIT => undef, + HAVE_PWRITE => undef, + HAVE_RANDOM => undef, + HAVE_READLINE_H => undef, + HAVE_READLINE_HISTORY_H => undef, + HAVE_READLINE_READLINE_H => undef, + HAVE_READLINK => undef, + HAVE_RINT => 1, + HAVE_RL_COMPLETION_APPEND_CHARACTER => undef, + HAVE_RL_COMPLETION_MATCHES => undef, + HAVE_RL_FILENAME_COMPLETION_FUNCTION => undef, + HAVE_RL_RESET_SCREEN_SIZE => undef, + HAVE_SECURITY_PAM_APPL_H => undef, + HAVE_SETPROCTITLE => undef, + HAVE_SETPROCTITLE_FAST => undef, + HAVE_SETSID => undef, + HAVE_SHM_OPEN => undef, + HAVE_SPINLOCKS => 1, + HAVE_SRANDOM => undef, + HAVE_STDBOOL_H => 1, + HAVE_STDINT_H => undef, + HAVE_STDLIB_H => 1, + HAVE_STRCHRNUL => undef, + HAVE_STRERROR_R => undef, + HAVE_STRINGS_H => undef, + HAVE_STRING_H => 1, + HAVE_STRLCAT => undef, + HAVE_STRLCPY => undef, + HAVE_STRNLEN => 1, + HAVE_STRSIGNAL => undef, + HAVE_STRTOF => 1, + HAVE_STRTOLL => 1, + HAVE_STRTOQ => undef, + HAVE_STRTOULL => 1, + HAVE_STRTOUQ => undef, + HAVE_STRUCT_ADDRINFO => 1, + HAVE_STRUCT_CMSGCRED => undef, + HAVE_STRUCT_OPTION => undef, + HAVE_STRUCT_SOCKADDR_SA_LEN => undef, + HAVE_STRUCT_SOCKADDR_STORAGE => 1, + HAVE_STRUCT_SOCKADDR_STORAGE_SS_FAMILY => 1, + HAVE_STRUCT_SOCKADDR_STORAGE_SS_LEN => undef, + HAVE_STRUCT_SOCKADDR_STORAGE___SS_FAMILY => undef, + HAVE_STRUCT_SOCKADDR_STORAGE___SS_LEN => undef, + HAVE_STRUCT_TM_TM_ZONE => undef, + HAVE_SYNC_FILE_RANGE => undef, + HAVE_SYMLINK => 1, + HAVE_SYSLOG => undef, + HAVE_SYS_EPOLL_H => undef, + HAVE_SYS_IPC_H => undef, + HAVE_SYS_PRCTL_H => undef, + HAVE_SYS_PROCCTL_H => undef, + HAVE_SYS_PSTAT_H => undef, + HAVE_SYS_RESOURCE_H => undef, + HAVE_SYS_SELECT_H => undef, + HAVE_SYS_SEM_H => undef, + HAVE_SYS_SHM_H => undef, + HAVE_SYS_SOCKIO_H => undef, + HAVE_SYS_STAT_H => 1, + HAVE_SYS_TAS_H => undef, + HAVE_SYS_TYPES_H => 1, + HAVE_SYS_UCRED_H => undef, + HAVE_SYS_UN_H => undef, + HAVE_TERMIOS_H => undef, + HAVE_TYPEOF => undef, + HAVE_UCRED_H => undef, + HAVE_UINT64 => undef, + HAVE_UINT8 => undef, + HAVE_UINTPTR_T => undef, + HAVE_UNION_SEMUN => undef, + HAVE_UNISTD_H => 1, + HAVE_UNIX_SOCKETS => undef, + HAVE_UNSETENV => undef, + HAVE_USELOCALE => undef, + HAVE_UTIME => 1, + HAVE_UTIMES => undef, + HAVE_UTIME_H => 1, + HAVE_UUID_BSD => undef, + HAVE_UUID_E2FS => undef, + HAVE_UUID_OSSP => undef, + HAVE_UUID_H => undef, + HAVE_UUID_UUID_H => undef, + HAVE_WINLDAP_H => undef, + HAVE_WCHAR_H => 1, + HAVE_WCSTOMBS_L => 1, + HAVE_WCTYPE_H => 1, + HAVE_X509_GET_SIGNATURE_NID => 1, + HAVE_X86_64_POPCNTQ => undef, + HAVE__BOOL => undef, + HAVE__BUILTIN_BSWAP16 => undef, + HAVE__BUILTIN_BSWAP32 => undef, + HAVE__BUILTIN_BSWAP64 => undef, + HAVE__BUILTIN_CLZ => undef, + HAVE__BUILTIN_CONSTANT_P => undef, + HAVE__BUILTIN_CTZ => undef, + HAVE__BUILTIN_OP_OVERFLOW => undef, + HAVE__BUILTIN_POPCOUNT => undef, + HAVE__BUILTIN_TYPES_COMPATIBLE_P => undef, + HAVE__BUILTIN_UNREACHABLE => undef, + HAVE__CONFIGTHREADLOCALE => 1, + HAVE__CPUID => 1, + HAVE__GET_CPUID => undef, + HAVE__STATIC_ASSERT => undef, + HAVE___STRTOLL => undef, + HAVE___STRTOULL => undef, + INT64_MODIFIER => qq{"ll"}, + LOCALE_T_IN_XLOCALE => undef, + MAXIMUM_ALIGNOF => 8, + MEMSET_LOOP_LIMIT => 1024, + PACKAGE_BUGREPORT => qq{"$package_bugreport"}, + PACKAGE_NAME => qq{"$package_name"}, + PACKAGE_STRING => qq{"$package_name $package_version"}, + PACKAGE_TARNAME => lc qq{"$package_name"}, + PACKAGE_URL => undef, + PACKAGE_VERSION => qq{"$package_version"}, + PG_INT128_TYPE => undef, + PG_INT64_TYPE => 'long long int', + PG_KRB_SRVNAM => qq{"postgres"}, + PG_MAJORVERSION => qq{"$self->{majorver}"}, + PG_PRINTF_ATTRIBUTE => undef, + PG_USE_STDBOOL => 1, + PG_VERSION => qq{"$package_version$extraver"}, + PG_VERSION_NUM => $self->{numver}, + PG_VERSION_STR => + qq{"PostgreSQL $package_version$extraver, compiled by Visual C++ build " CppAsString2(_MSC_VER) ", $bits-bit"}, + PROFILE_PID_DIR => undef, + PTHREAD_CREATE_JOINABLE => undef, + RELSEG_SIZE => (1024 / $self->{options}->{blocksize}) * + $self->{options}->{segsize} * 1024, + SIZEOF_BOOL => 1, + SIZEOF_LONG => 4, + SIZEOF_OFF_T => undef, + SIZEOF_SIZE_T => $bits / 8, + SIZEOF_VOID_P => $bits / 8, + STDC_HEADERS => 1, + STRERROR_R_INT => undef, + USE_ARMV8_CRC32C => undef, + USE_ARMV8_CRC32C_WITH_RUNTIME_CHECK => undef, + USE_ASSERT_CHECKING => $self->{options}->{asserts} ? 1 : undef, + USE_BONJOUR => undef, + USE_BSD_AUTH => undef, + USE_DEV_URANDOM => undef, + USE_ICU => $self->{options}->{icu} ? 1 : undef, + USE_LIBXML => undef, + USE_LIBXSLT => undef, + USE_LDAP => $self->{options}->{ldap} ? 1 : undef, + USE_LLVM => undef, + USE_NAMED_POSIX_SEMAPHORES => undef, + USE_OPENSSL => undef, + USE_OPENSSL_RANDOM => undef, + USE_PAM => undef, + USE_SLICING_BY_8_CRC32C => undef, + USE_SSE42_CRC32C => undef, + USE_SSE42_CRC32C_WITH_RUNTIME_CHECK => 1, + USE_SYSTEMD => undef, + USE_SYSV_SEMAPHORES => undef, + USE_SYSV_SHARED_MEMORY => undef, + USE_UNNAMED_POSIX_SEMAPHORES => undef, + USE_WIN32_RANDOM => 1, + USE_WIN32_SEMAPHORES => 1, + USE_WIN32_SHARED_MEMORY => 1, + WCSTOMBS_L_IN_XLOCALE => undef, + WORDS_BIGENDIAN => undef, + XLOG_BLCKSZ => 1024 * $self->{options}->{wal_blocksize}, + _FILE_OFFSET_BITS => undef, + _LARGEFILE_SOURCE => undef, + _LARGE_FILES => undef, + inline => '__inline', + intptr_t => undef, + pg_restrict => '__restrict', + # not defined, because it'd conflict with __declspec(restrict) + restrict => undef, + signed => undef, + typeof => undef, + uintptr_t => undef,); + + if ($self->{options}->{uuid}) { - print "Generating pg_config.h...\n"; - open(my $i, '<', "src/include/pg_config.h.win32") - || confess "Could not open pg_config.h.win32\n"; - open(my $o, '>', "src/include/pg_config.h") - || confess "Could not write to pg_config.h\n"; - my $extraver = $self->{options}->{extraver}; - $extraver = '' unless defined $extraver; - while (<$i>) - { - s{PG_VERSION "[^"]+"}{PG_VERSION "$self->{strver}$extraver"}; - s{PG_VERSION_NUM \d+}{PG_VERSION_NUM $self->{numver}}; - s{PG_VERSION_STR "[^"]+"}{PG_VERSION_STR "PostgreSQL $self->{strver}$extraver, compiled by Visual C++ build " CppAsString2(_MSC_VER) ", $bits-bit"}; - print $o $_; - } - print $o "#define PG_MAJORVERSION \"$self->{majorver}\"\n"; - print $o "/* defines added by config steps */\n"; - print $o "#ifndef IGNORE_CONFIGURED_SETTINGS\n"; - print $o "#define USE_ASSERT_CHECKING 1\n" - if ($self->{options}->{asserts}); - print $o "#define USE_LDAP 1\n" if ($self->{options}->{ldap}); - print $o "#define HAVE_LIBZ 1\n" if ($self->{options}->{zlib}); - print $o "#define ENABLE_NLS 1\n" if ($self->{options}->{nls}); - - print $o "#define BLCKSZ ", 1024 * $self->{options}->{blocksize}, - "\n"; - print $o "#define RELSEG_SIZE ", - (1024 / $self->{options}->{blocksize}) * - $self->{options}->{segsize} * 1024, "\n"; - print $o "#define XLOG_BLCKSZ ", - 1024 * $self->{options}->{wal_blocksize}, "\n"; - - if ($self->{options}->{uuid}) - { - print $o "#define HAVE_UUID_OSSP\n"; - print $o "#define HAVE_UUID_H\n"; - } - if ($self->{options}->{xml}) - { - print $o "#define HAVE_LIBXML2\n"; - print $o "#define USE_LIBXML\n"; - } - if ($self->{options}->{xslt}) - { - print $o "#define HAVE_LIBXSLT\n"; - print $o "#define USE_LIBXSLT\n"; - } - if ($self->{options}->{gss}) - { - print $o "#define ENABLE_GSS 1\n"; - } - if ($self->{options}->{openssl}) - { - print $o "#define USE_OPENSSL 1\n"; + $define{HAVE_UUID_OSSP} = 1; + $define{HAVE_UUID_H} = 1; + } + if ($self->{options}->{xml}) + { + $define{HAVE_LIBXML2} = 1; + $define{USE_LIBXML} = 1; + } + if ($self->{options}->{xslt}) + { + $define{HAVE_LIBXSLT} = 1; + $define{USE_LIBXSLT} = 1; + } + if ($self->{options}->{openssl}) + { + $define{USE_OPENSSL} = 1; - my ($digit1, $digit2, $digit3) = $self->GetOpenSSLVersion(); + my ($digit1, $digit2, $digit3) = $self->GetOpenSSLVersion(); - # More symbols are needed with OpenSSL 1.1.0 and above. - if ($digit1 >= '1' && $digit2 >= '1' && $digit3 >= '0') - { - print $o "#define HAVE_ASN1_STRING_GET0_DATA 1\n"; - print $o "#define HAVE_BIO_GET_DATA 1\n"; - print $o "#define HAVE_BIO_METH_NEW 1\n"; - print $o "#define HAVE_OPENSSL_INIT_SSL 1\n"; - } - } - if ($self->{options}->{icu}) - { - print $o "#define USE_ICU 1\n"; - } - if (my $port = $self->{options}->{"--with-pgport"}) + # More symbols are needed with OpenSSL 1.1.0 and above. + if ($digit1 >= '1' && $digit2 >= '1' && $digit3 >= '0') { - print $o "#undef DEF_PGPORT\n"; - print $o "#undef DEF_PGPORT_STR\n"; - print $o "#define DEF_PGPORT $port\n"; - print $o "#define DEF_PGPORT_STR \"$port\"\n"; + $define{HAVE_ASN1_STRING_GET0_DATA} = 1; + $define{HAVE_BIO_GET_DATA} = 1; + $define{HAVE_BIO_METH_NEW} = 1; + $define{HAVE_OPENSSL_INIT_SSL} = 1; } - print $o "#define VAL_CONFIGURE \"" - . $self->GetFakeConfigure() . "\"\n"; - print $o "#endif /* IGNORE_CONFIGURED_SETTINGS */\n"; - close($o); - close($i); } - if (IsNewer( - "src/include/pg_config_ext.h", - "src/include/pg_config_ext.h.win32")) - { - print "Copying pg_config_ext.h...\n"; - copyFile( - "src/include/pg_config_ext.h.win32", - "src/include/pg_config_ext.h"); - } + $self->GenerateConfigHeader('src/include/pg_config.h', \%define, 1); + $self->GenerateConfigHeader('src/include/pg_config_ext.h', \%define, 0); + $self->GenerateConfigHeader('src/interfaces/ecpg/include/ecpg_config.h', \%define, 0); + + open(my $f, '>>', 'src/include/pg_config.h') + || confess "Could not write to src/include/pg_config.h\n"; + print $f "\n"; + print $f "#define VAL_CONFIGURE \"" . $self->GetFakeConfigure() . "\"\n"; + close($f); $self->GenerateDefFile( "src/interfaces/libpq/libpqdll.def", @@ -475,22 +752,6 @@ sub GenerateFiles chdir('../../../..'); } - if (IsNewer( - 'src/interfaces/ecpg/include/ecpg_config.h', - 'src/interfaces/ecpg/include/ecpg_config.h.in')) - { - print "Generating ecpg_config.h...\n"; - open(my $o, '>', 'src/interfaces/ecpg/include/ecpg_config.h') - || confess "Could not open ecpg_config.h"; - print $o <<EOF; -#define HAVE_LONG_LONG_INT 1 -#define HAVE_LONG_LONG_INT_64 1 -#define PG_USE_STDBOOL 1 -#define ENABLE_THREAD_SAFETY 1 -EOF - close($o); - } - unless (-f "src/port/pg_config_paths.h") { print "Generating pg_config_paths.h...\n"; @@ -581,13 +842,76 @@ EOF open(my $o, '>', "doc/src/sgml/version.sgml") || croak "Could not write to version.sgml\n"; print $o <<EOF; -<!ENTITY version "$self->{strver}"> +<!ENTITY version "$package_version"> <!ENTITY majorversion "$self->{majorver}"> EOF close($o); return; } +# Read lines from input file and substitute symbols using the same +# logic that config.status uses. There should be one call of this for +# each AC_CONFIG_HEADERS call in configure.in. +# +# If the "required" argument is true, we also keep track which of our +# defines have been found and error out if any are left unused at the +# end. That way we avoid accumulating defines in this file that are +# no longer used by configure. +sub GenerateConfigHeader +{ + my ($self, $config_header, $defines, $required) = @_; + my %defines_copy = %$defines; + + my $config_header_in = $config_header . '.in'; + + if (IsNewer($config_header, $config_header_in) || + IsNewer($config_header, __FILE__)) + { + open(my $i, '<', $config_header_in) + || confess "Could not open $config_header_in\n"; + open(my $o, '>', $config_header) + || confess "Could not write to $config_header\n"; + + print $o + "/* $config_header. Generated from $config_header_in by src/tools/msvc/Solution.pm. */\n"; + + while (<$i>) + { + if (m/^#(\s*)undef\s+(\w+)/) + { + my $ws = $1; + my $macro = $2; + if (exists $defines->{$macro}) + { + if (defined $defines->{$macro}) + { + print $o "#${ws}define $macro ", $defines->{$macro}, "\n"; + } + else + { + print $o "/* #${ws}undef $macro */\n"; + } + delete $defines_copy{$macro}; + } + else + { + croak "undefined symbol: $macro at $config_header line $."; + } + } + else + { + print $o $_; + } + } + close($o); + close($i); + } + if ($required && scalar(keys %defines_copy) > 0) + { + croak "unused defines: " . join(' ', keys %defines_copy); + } +} + sub GenerateDefFile { my ($self, $deffile, $txtfile, $libname) = @_; diff --git a/src/tools/version_stamp.pl b/src/tools/version_stamp.pl index 10ddc79d49d..508985497f2 100755 --- a/src/tools/version_stamp.pl +++ b/src/tools/version_stamp.pl @@ -102,13 +102,6 @@ sed_file("configure.in", "-e 's/AC_INIT(\\[PostgreSQL\\], \\[[0-9a-z.]*\\]/AC_INIT([PostgreSQL], [$fullversion]/'" ); -sed_file("src/include/pg_config.h.win32", - "-e 's/#define PACKAGE_STRING \"PostgreSQL .*\"/#define PACKAGE_STRING \"PostgreSQL $fullversion\"/' " - . "-e 's/#define PACKAGE_VERSION \".*\"/#define PACKAGE_VERSION \"$fullversion\"/' " - . "-e 's/#define PG_VERSION \".*\"/#define PG_VERSION \"$fullversion\"/' " - . "-e 's/#define PG_VERSION_NUM .*/#define PG_VERSION_NUM $padnumericversion/'" -); - sed_file("src/interfaces/libpq/libpq.rc.in", "-e 's/FILEVERSION [0-9]*,[0-9]*,[0-9]*,0/FILEVERSION $majorversion,0,$numericminor,0/' " . "-e 's/PRODUCTVERSION [0-9]*,[0-9]*,[0-9]*,0/PRODUCTVERSION $majorversion,0,$numericminor,0/' " |