diff options
| author | Andres Freund | 2022-10-06 20:03:31 +0000 |
|---|---|---|
| committer | Andres Freund | 2022-10-06 20:09:57 +0000 |
| commit | 4289263cf263ba36e474728f4a02ceb086903f81 (patch) | |
| tree | 0b6dab2c62d382af076630d08764f8d48ff48e08 /src/bin/pgbench | |
| parent | 0fa41648d77f04d5ad3ed69ff3e3903bd1abf121 (diff) | |
windows: Adjust FD_SETSIZE via commandline define
When using precompiled headers, we cannot pre-define macros for the system
headers from within .c files, as headers are already processed before
the #define in the C file is reached. But we can pre-define using
-DFD_SETSIZE, as long as that's also used when building the precompiled header.
A few files #define FD_SETSIZE 1024 on windows, as the default is only 64. I
am hesitant to change FD_SETSIZE globally on windows, due to
src/backend/port/win32/socket.c using it to size on-stack arrays. Instead add
-DFD_SETSIZE=1024 when building the specific targets needing it.
We likely should move away from using select() in those places, but that's a
larger change.
Reviewed-by: Thomas Munro <thomas.munro@gmail.com>
Reviewed-by: Peter Eisentraut <peter.eisentraut@enterprisedb.com>
Reviewed-by: Justin Pryzby <pryzby@telsasoft.com>
Reviewed-by: Tom Lane <tgl@sss.pgh.pa.us>
Discussion: https://postgr.es/m/20221005190829.lda7ttalh4mzrvf4@awork3.anarazel.de
Discussion: https://postgr.es/m/CA+hUKG+50eOUbN++ocDc0Qnp9Pvmou23DSXu=ZA6fepOcftKqA@mail.gmail.com
Discussion: https://postgr.es/m/20190826054000.GE7005%40paquier.xyz
Diffstat (limited to 'src/bin/pgbench')
| -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 |
3 files changed, 5 insertions, 2 deletions
diff --git a/src/bin/pgbench/Makefile b/src/bin/pgbench/Makefile index 6647c9fe97..68b6eb0376 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 a32eb51fe0..3cc393d17e 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 33f2836e35..b208d74767 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" |
