summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTom Lane <tgl@sss.pgh.pa.us>2018-02-27 16:46:52 -0500
committerTom Lane <tgl@sss.pgh.pa.us>2018-02-27 16:46:52 -0500
commit49f9014c8c1e6401eabfad9d1bf30a7c0b4ff2fb (patch)
treef37bc84c6136c6aa92c13d4ef6c9661ced4023da
parent5cedaeca261bfa330981e9e9abc7fb01b5a246cb (diff)
Fix up ecpg's configuration so it handles "long long int" in MSVC builds.
Although configure-based builds correctly define HAVE_LONG_LONG_INT when appropriate (in both pg_config.h and ecpg_config.h), builds using the MSVC scripts failed to do so. This currently has no impact on the backend, since it uses that symbol nowhere; but it does prevent ecpg from supporting "long long int". Fix that. Also, adjust Solution.pm so that in the constructed ecpg_config.h file, the "#if (_MSC_VER > 1200)" covers only the LONG_LONG_INT-related #defines, not the whole file. AFAICS this was a thinko on somebody's part: ENABLE_THREAD_SAFETY should always be defined in Windows builds, and in branches using USE_INTEGER_DATETIMES, the setting of that shouldn't depend on the compiler version either. If I'm wrong, I imagine the buildfarm will say so. Per bug #15080 from Jonathan Allen; issue diagnosed by Michael Meskes and Andrew Gierth. Back-patch to all supported branches. Discussion: https://postgr.es/m/151935568942.1461.14623890240535309745@wrigleys.postgresql.org
-rw-r--r--src/include/pg_config.h.win325
-rw-r--r--src/tools/msvc/Solution.pm3
2 files changed, 7 insertions, 1 deletions
diff --git a/src/include/pg_config.h.win32 b/src/include/pg_config.h.win32
index cad4715b7bf..121d7758aa8 100644
--- a/src/include/pg_config.h.win32
+++ b/src/include/pg_config.h.win32
@@ -226,6 +226,11 @@
/* Define to 1 if `long int' works and is 64 bits. */
/* #undef HAVE_LONG_INT_64 */
+/* Define to 1 if the system has the type `long long int'. */
+#if (_MSC_VER > 1200)
+#define HAVE_LONG_LONG_INT 1
+#endif
+
/* Define to 1 if `long long int' works and is 64 bits. */
#if (_MSC_VER > 1200)
#define HAVE_LONG_LONG_INT_64 1
diff --git a/src/tools/msvc/Solution.pm b/src/tools/msvc/Solution.pm
index 58f87bc1b4a..c95b49747c9 100644
--- a/src/tools/msvc/Solution.pm
+++ b/src/tools/msvc/Solution.pm
@@ -397,12 +397,13 @@ s{PG_VERSION_STR "[^"]+"}{__STRINGIFY(x) #x\n#define __STRINGIFY2(z) __STRINGIFY
|| confess "Could not open ecpg_config.h";
print O <<EOF;
#if (_MSC_VER > 1200)
+#define HAVE_LONG_LONG_INT 1
#define HAVE_LONG_LONG_INT_64 1
+#endif
#define ENABLE_THREAD_SAFETY 1
EOF
print O "#define USE_INTEGER_DATETIMES 1\n"
if ($self->{options}->{integer_datetimes});
- print O "#endif\n";
close(O);
}