aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/include/c.h6
-rw-r--r--src/include/pg_config.h.in8
-rw-r--r--src/include/pg_config_manual.h13
-rw-r--r--src/tools/msvc/Solution.pm15
-rw-r--r--src/tools/msvc/config_default.pl3
5 files changed, 19 insertions, 26 deletions
diff --git a/src/include/c.h b/src/include/c.h
index 802a731267f..00e41ac546a 100644
--- a/src/include/c.h
+++ b/src/include/c.h
@@ -491,6 +491,12 @@ typedef signed int Offset;
typedef float float4;
typedef double float8;
+#ifdef USE_FLOAT8_BYVAL
+#define FLOAT8PASSBYVAL true
+#else
+#define FLOAT8PASSBYVAL false
+#endif
+
/*
* Oid, RegProcedure, TransactionId, SubTransactionId, MultiXactId,
* CommandId
diff --git a/src/include/pg_config.h.in b/src/include/pg_config.h.in
index 6f8549bc03b..c208dcdfc71 100644
--- a/src/include/pg_config.h.in
+++ b/src/include/pg_config.h.in
@@ -70,10 +70,6 @@
MSVC and with C++ compilers. */
#undef FLEXIBLE_ARRAY_MEMBER
-/* float8, int8, and related values are passed by value if 'true', by
- reference if 'false' */
-#undef FLOAT8PASSBYVAL
-
/* Define to 1 if gettimeofday() takes only 1 argument. */
#undef GETTIMEOFDAY_1ARG
@@ -898,10 +894,6 @@
/* Define to use /dev/urandom for random number generation */
#undef USE_DEV_URANDOM
-/* Define to 1 if you want float8, int8, etc values to be passed by value.
- (--enable-float8-byval) */
-#undef USE_FLOAT8_BYVAL
-
/* Define to build with ICU support. (--with-icu) */
#undef USE_ICU
diff --git a/src/include/pg_config_manual.h b/src/include/pg_config_manual.h
index 743401cb969..61b667d1663 100644
--- a/src/include/pg_config_manual.h
+++ b/src/include/pg_config_manual.h
@@ -57,6 +57,19 @@
#define PARTITION_MAX_KEYS 32
/*
+ * Decide whether built-in 8-byte types, including float8, int8, and
+ * timestamp, are passed by value. This is on by default if sizeof(Datum) >=
+ * 8 (that is, on 64-bit platforms). If sizeof(Datum) < 8 (32-bit platforms),
+ * this must be off. We keep this here as an option so that it is easy to
+ * test the pass-by-reference code paths on 64-bit platforms.
+ *
+ * Changing this requires an initdb.
+ */
+#if SIZEOF_VOID_P >= 8
+#define USE_FLOAT8_BYVAL 1
+#endif
+
+/*
* When we don't have native spinlocks, we use semaphores to simulate them.
* Decreasing this value reduces consumption of OS resources; increasing it
* may improve performance, but supplying a real spinlock implementation is
diff --git a/src/tools/msvc/Solution.pm b/src/tools/msvc/Solution.pm
index e4ea62e80ba..5f72530c72b 100644
--- a/src/tools/msvc/Solution.pm
+++ b/src/tools/msvc/Solution.pm
@@ -29,12 +29,7 @@ sub _new
bless($self, $classname);
$self->DeterminePlatform();
- my $bits = $self->{platform} eq 'Win32' ? 32 : 64;
- $options->{float8byval} = ($bits == 64)
- unless exists $options->{float8byval};
- die "float8byval not permitted on 32 bit platforms"
- if $options->{float8byval} && $bits == 32;
if ($options->{xslt} && !$options->{xml})
{
die "XSLT requires XML\n";
@@ -207,16 +202,6 @@ sub GenerateFiles
print $o "#define XLOG_BLCKSZ ",
1024 * $self->{options}->{wal_blocksize}, "\n";
- if ($self->{options}->{float8byval})
- {
- print $o "#define USE_FLOAT8_BYVAL 1\n";
- print $o "#define FLOAT8PASSBYVAL true\n";
- }
- else
- {
- print $o "#define FLOAT8PASSBYVAL false\n";
- }
-
if ($self->{options}->{uuid})
{
print $o "#define HAVE_UUID_OSSP\n";
diff --git a/src/tools/msvc/config_default.pl b/src/tools/msvc/config_default.pl
index 62188c78e78..2ef2cfc4e99 100644
--- a/src/tools/msvc/config_default.pl
+++ b/src/tools/msvc/config_default.pl
@@ -5,9 +5,6 @@ use warnings;
our $config = {
asserts => 0, # --enable-cassert
- # float8byval=> $platformbits == 64, # --disable-float8-byval,
- # off by default on 32 bit platforms, on by default on 64 bit platforms
-
# blocksize => 8, # --with-blocksize, 8kB by default
# wal_blocksize => 8, # --with-wal-blocksize, 8kB by default
ldap => 1, # --with-ldap