aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/bin/pgbench/Makefile2
-rw-r--r--src/bin/pgbench/meson.build1
-rw-r--r--src/bin/pgbench/pgbench.c4
-rw-r--r--src/fe_utils/Makefile4
-rw-r--r--src/fe_utils/meson.build1
-rw-r--r--src/fe_utils/parallel_slot.c4
-rw-r--r--src/tools/msvc/Mkvcbuild.pm27
7 files changed, 31 insertions, 12 deletions
diff --git a/src/bin/pgbench/Makefile b/src/bin/pgbench/Makefile
index 6647c9fe97d..68b6eb0376e 100644
--- a/src/bin/pgbench/Makefile
+++ b/src/bin/pgbench/Makefile
@@ -18,6 +18,8 @@ LDFLAGS_INTERNAL += -L$(top_builddir)/src/fe_utils -lpgfeutils $(libpq_pgport)
ifneq ($(PORTNAME), win32)
override CFLAGS += $(PTHREAD_CFLAGS)
+else
+override CPPFLAGS += -DFD_SETSIZE=1024
endif
LIBS += $(PTHREAD_LIBS)
diff --git a/src/bin/pgbench/meson.build b/src/bin/pgbench/meson.build
index a32eb51fe07..3cc393d17ea 100644
--- a/src/bin/pgbench/meson.build
+++ b/src/bin/pgbench/meson.build
@@ -27,6 +27,7 @@ pgbench = executable('pgbench',
pgbench_sources,
dependencies: [frontend_code, libpq, thread_dep],
include_directories: include_directories('.'),
+ c_args: host_system == 'windows' ? ['-DFD_SETSIZE=1024'] : [],
kwargs: default_bin_args,
)
bin_targets += pgbench
diff --git a/src/bin/pgbench/pgbench.c b/src/bin/pgbench/pgbench.c
index 33f2836e357..b208d74767f 100644
--- a/src/bin/pgbench/pgbench.c
+++ b/src/bin/pgbench/pgbench.c
@@ -27,8 +27,8 @@
*
*/
-#ifdef WIN32
-#define FD_SETSIZE 1024 /* must set before winsock2.h is included */
+#if defined(WIN32) && FD_SETSIZE < 1024
+#error FD_SETSIZE needs to have been increased
#endif
#include "postgres_fe.h"
diff --git a/src/fe_utils/Makefile b/src/fe_utils/Makefile
index 44bc7a1215d..72966769a52 100644
--- a/src/fe_utils/Makefile
+++ b/src/fe_utils/Makefile
@@ -34,6 +34,10 @@ OBJS = \
simple_list.o \
string_utils.o
+ifeq ($(PORTNAME), win32)
+override CPPFLAGS += -DFD_SETSIZE=1024
+endif
+
all: libpgfeutils.a
libpgfeutils.a: $(OBJS)
diff --git a/src/fe_utils/meson.build b/src/fe_utils/meson.build
index b6bf8e1ca21..3e226c260ac 100644
--- a/src/fe_utils/meson.build
+++ b/src/fe_utils/meson.build
@@ -24,6 +24,7 @@ fe_utils_sources += psqlscan
fe_utils = static_library('libpgfeutils',
fe_utils_sources + generated_headers,
include_directories: [postgres_inc, libpq_inc],
+ c_args: host_system == 'windows' ? ['-DFD_SETSIZE=1024'] : [],
dependencies: frontend_common_code,
kwargs: default_lib_args,
)
diff --git a/src/fe_utils/parallel_slot.c b/src/fe_utils/parallel_slot.c
index 2be2903c9c6..767256757f2 100644
--- a/src/fe_utils/parallel_slot.c
+++ b/src/fe_utils/parallel_slot.c
@@ -12,8 +12,8 @@
*-------------------------------------------------------------------------
*/
-#ifdef WIN32
-#define FD_SETSIZE 1024 /* must set before winsock2.h is included */
+#if defined(WIN32) && FD_SETSIZE < 1024
+#error FD_SETSIZE needs to have been increased
#endif
#include "postgres_fe.h"
diff --git a/src/tools/msvc/Mkvcbuild.pm b/src/tools/msvc/Mkvcbuild.pm
index ddb4f25eb12..83a3e404254 100644
--- a/src/tools/msvc/Mkvcbuild.pm
+++ b/src/tools/msvc/Mkvcbuild.pm
@@ -35,6 +35,7 @@ my $libpq;
my @unlink_on_exit;
# Set of variables for modules in contrib/ and src/test/modules/
+my $contrib_defines = {};
my @contrib_uselibpq = ();
my @contrib_uselibpgport = ();
my @contrib_uselibpgcommon = ();
@@ -52,6 +53,7 @@ my @contrib_excludes = (
'unsafe_tests');
# Set of variables for frontend modules
+my $frontend_defines = { 'pgbench' => 'FD_SETSIZE=1024' };
my @frontend_uselibpq =
('pg_amcheck', 'pg_ctl', 'pg_upgrade', 'pgbench', 'psql', 'initdb');
my @frontend_uselibpgport = (
@@ -175,6 +177,7 @@ sub mkvcbuild
$libpgfeutils = $solution->AddProject('libpgfeutils', 'lib', 'misc');
$libpgfeutils->AddDefine('FRONTEND');
+ $libpgfeutils->AddDefine('FD_SETSIZE=1024');
$libpgfeutils->AddIncludeDir('src/interfaces/libpq');
$libpgfeutils->AddFiles('src/fe_utils', @pgfeutilsfiles);
@@ -1120,10 +1123,10 @@ sub AdjustContribProj
{
my $proj = shift;
AdjustModule(
- $proj, \@contrib_uselibpq,
- \@contrib_uselibpgport, \@contrib_uselibpgcommon,
- $contrib_extralibs, $contrib_extrasource,
- $contrib_extraincludes);
+ $proj, $contrib_defines,
+ \@contrib_uselibpq, \@contrib_uselibpgport,
+ \@contrib_uselibpgcommon, $contrib_extralibs,
+ $contrib_extrasource, $contrib_extraincludes);
return;
}
@@ -1131,16 +1134,17 @@ sub AdjustFrontendProj
{
my $proj = shift;
AdjustModule(
- $proj, \@frontend_uselibpq,
- \@frontend_uselibpgport, \@frontend_uselibpgcommon,
- $frontend_extralibs, $frontend_extrasource,
- $frontend_extraincludes);
+ $proj, $frontend_defines,
+ \@frontend_uselibpq, \@frontend_uselibpgport,
+ \@frontend_uselibpgcommon, $frontend_extralibs,
+ $frontend_extrasource, $frontend_extraincludes);
return;
}
sub AdjustModule
{
my $proj = shift;
+ my $module_defines = shift;
my $module_uselibpq = shift;
my $module_uselibpgport = shift;
my $module_uselibpgcommon = shift;
@@ -1149,6 +1153,13 @@ sub AdjustModule
my $module_extraincludes = shift;
my $n = $proj->{name};
+ if ($module_defines->{$n})
+ {
+ foreach my $d ($module_defines->{$n})
+ {
+ $proj->AddDefine($d);
+ }
+ }
if (grep { /^$n$/ } @{$module_uselibpq})
{
$proj->AddIncludeDir('src\interfaces\libpq');