diff options
-rw-r--r-- | src/bin/pgbench/Makefile | 2 | ||||
-rw-r--r-- | src/bin/pgbench/meson.build | 1 | ||||
-rw-r--r-- | src/bin/pgbench/pgbench.c | 4 | ||||
-rw-r--r-- | src/fe_utils/Makefile | 4 | ||||
-rw-r--r-- | src/fe_utils/meson.build | 1 | ||||
-rw-r--r-- | src/fe_utils/parallel_slot.c | 4 | ||||
-rw-r--r-- | src/tools/msvc/Mkvcbuild.pm | 27 |
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'); |