From de6e4c9d60e74ffb527f22ee4376d0bb2d3266e4 Mon Sep 17 00:00:00 2001
From: Magnus Hagander <magnus@hagander.net>
Date: Mon, 21 Apr 2008 10:01:32 +0000
Subject: [PATCH] Make float4byval and float8byval configurable on MSVC.

---
 src/tools/msvc/Solution.pm | 18 +++++++++++++++++-
 src/tools/msvc/config.pl   |  2 ++
 2 files changed, 19 insertions(+), 1 deletion(-)

diff --git a/src/tools/msvc/Solution.pm b/src/tools/msvc/Solution.pm
index c0ccb96cc51..e8134f544f9 100644
--- a/src/tools/msvc/Solution.pm
+++ b/src/tools/msvc/Solution.pm
@@ -3,7 +3,7 @@ package Solution;
 #
 # Package that encapsulates a Visual C++ solution file generation
 #
-# $PostgreSQL: pgsql/src/tools/msvc/Solution.pm,v 1.38 2008/04/15 12:16:51 adunstan Exp $
+# $PostgreSQL: pgsql/src/tools/msvc/Solution.pm,v 1.39 2008/04/21 10:01:32 mha Exp $
 #
 use Carp;
 use strict;
@@ -25,6 +25,8 @@ sub new
 	# integer_datetimes is now the default
 	$options->{integer_datetimes} = 1 
 		unless exists $options->{integer_datetimes};
+    $options->{float4byval} = 1
+        unless exists $options->{float4byval};
     if ($options->{xml})
     {
         if (!($options->{xslt} && $options->{iconv}))
@@ -115,6 +117,20 @@ s{PG_VERSION_STR "[^"]+"}{__STRINGIFY(x) #x\n#define __STRINGIFY2(z) __STRINGIFY
         print O "#define HAVE_LIBZ 1\n" if ($self->{options}->{zlib});
         print O "#define USE_SSL 1\n" if ($self->{options}->{openssl});
         print O "#define ENABLE_NLS 1\n" if ($self->{options}->{nls});
+        
+        unless ($self->{options}->{float4byval}) 
+        {
+            # float4byval is the default, so undefine
+            print O "#undef USE_FLOAT4_BYVAL\n";
+            print O "#undef FLOAT4PASSBYVAL\n";
+            print O "#define FLOAT4PASSBYVAL false\n";
+        }
+        if ($self->{options}->{float8byval})
+        {
+            print O "#define USE_FLOAT8_BYVAL\n";
+            print O "#undef FLOAT8PASSBYVAL\n";
+            print O "#define FLOAT8PASSBYVAL true\n";
+        }
 
         if ($self->{options}->{uuid})
         {
diff --git a/src/tools/msvc/config.pl b/src/tools/msvc/config.pl
index 64869563da6..bebb9a7c494 100644
--- a/src/tools/msvc/config.pl
+++ b/src/tools/msvc/config.pl
@@ -5,6 +5,8 @@ use warnings;
 our $config = {
     asserts=>0,			# --enable-cassert
     # integer_datetimes=>1,   # --enable-integer-datetimes - on is now default
+    # float4byval=>1,         # --disable-float4-byval, on by default
+    # float8byval=>0,         # --disable-float8-byval, off by default
     nls=>undef,				# --enable-nls=<path>
     tcl=>'c:\tcl',		# --with-tls=<path>
     perl=>'c:\perl', 			# --with-perl
-- 
GitLab