Skip to content

Commit 51057fe

Browse files
committed
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
1 parent e98a4de commit 51057fe

File tree

2 files changed

+7
-1
lines changed

2 files changed

+7
-1
lines changed

src/include/pg_config.h.win32

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -236,6 +236,11 @@
236236
/* Define to 1 if `long int' works and is 64 bits. */
237237
/* #undef HAVE_LONG_INT_64 */
238238

239+
/* Define to 1 if the system has the type `long long int'. */
240+
#if (_MSC_VER > 1200)
241+
#define HAVE_LONG_LONG_INT 1
242+
#endif
243+
239244
/* Define to 1 if `long long int' works and is 64 bits. */
240245
#if (_MSC_VER > 1200)
241246
#define HAVE_LONG_LONG_INT_64 1

src/tools/msvc/Solution.pm

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -424,10 +424,11 @@ s{PG_VERSION_STR "[^"]+"}{PG_VERSION_STR "PostgreSQL $self->{strver}$extraver, c
424424
|| confess "Could not open ecpg_config.h";
425425
print $o <<EOF;
426426
#if (_MSC_VER > 1200)
427+
#define HAVE_LONG_LONG_INT 1
427428
#define HAVE_LONG_LONG_INT_64 1
429+
#endif
428430
#define ENABLE_THREAD_SAFETY 1
429431
EOF
430-
print $o "#endif\n";
431432
close($o);
432433
}
433434

0 commit comments

Comments
 (0)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy