From a994127b0361e2bc3ff59919176ec5f81faa426e Mon Sep 17 00:00:00 2001 From: Justin Pryzby Date: Fri, 30 Sep 2022 13:39:43 -0500 Subject: [PATCH 2/8] meson: other fixes for cygwin XXX: what about HAVE_BUGGY_STRTOF ? See: 20221021034040.GT16921@telsasoft.com --- meson.build | 8 ++++++-- src/port/meson.build | 4 ++++ src/test/regress/meson.build | 2 +- 3 files changed, 11 insertions(+), 3 deletions(-) diff --git a/meson.build b/meson.build index ce2f223a409..ed24370672a 100644 --- a/meson.build +++ b/meson.build @@ -211,6 +211,10 @@ if host_system == 'aix' elif host_system == 'cygwin' cppflags += '-D_GNU_SOURCE' + dlsuffix = '.dll' + mod_link_args_fmt = ['@0@'] + mod_link_with_name = 'lib@0@.exe.a' + mod_link_with_dir = 'libdir' elif host_system == 'darwin' dlsuffix = '.dylib' @@ -2301,8 +2305,8 @@ gnugetopt_dep = cc.find_library('gnugetopt', required: false) # (i.e., allow '-' as a flag character), so use our version on those platforms # - We want to use system's getopt_long() only if the system provides struct # option -always_replace_getopt = host_system in ['windows', 'openbsd', 'solaris'] -always_replace_getopt_long = host_system == 'windows' or not cdata.has('HAVE_STRUCT_OPTION') +always_replace_getopt = host_system in ['windows', 'cygwin', 'openbsd', 'solaris'] +always_replace_getopt_long = host_system in ['windows', 'cygwin'] or not cdata.has('HAVE_STRUCT_OPTION') # Required on BSDs execinfo_dep = cc.find_library('execinfo', required: false) diff --git a/src/port/meson.build b/src/port/meson.build index c2222696f1b..0ba83cc7930 100644 --- a/src/port/meson.build +++ b/src/port/meson.build @@ -40,6 +40,10 @@ if host_system == 'windows' 'win32setlocale.c', 'win32stat.c', ) +elif host_system == 'cygwin' + pgport_sources += files( + 'dirmod.c', + ) endif if cc.get_id() == 'msvc' diff --git a/src/test/regress/meson.build b/src/test/regress/meson.build index 3dcfc11278f..6ec3c77af53 100644 --- a/src/test/regress/meson.build +++ b/src/test/regress/meson.build @@ -10,7 +10,7 @@ regress_sources = pg_regress_c + files( # patterns like ".*-.*-mingw.*". We probably can do better, but for now just # replace 'gcc' with 'mingw' on windows. host_tuple_cc = cc.get_id() -if host_system == 'windows' and host_tuple_cc == 'gcc' +if host_system in ['windows', 'cygwin'] and host_tuple_cc == 'gcc' host_tuple_cc = 'mingw' endif host_tuple = '@0@-@1@-@2@'.format(host_cpu, host_system, host_tuple_cc) -- 2.25.1