Thread

  1. Re: [PATCH] O_CLOEXEC not honored on Windows - handle inheritance chain

    Thomas Munro <thomas.munro@gmail.com> — 2025-12-22T21:38:31Z

    On Mon, Dec 22, 2025 at 1:24 PM Thomas Munro <thomas.munro@gmail.com> wrote:
    > On Mon, Dec 22, 2025 at 11:48 AM Tom Lane <tgl@sss.pgh.pa.us> wrote:
    > > fairywren's still not happy, though only in the v16 branch:
    > >
    > > Could not determine contrib module type for test_cloexec
    > >  at build.pl line 54.
    > >
    > > This evidently is because the old MSVC build system doesn't
    > > recognize
    > >
    > > PROGRAM += test_cloexec
    > > OBJS += $(WIN32RES) test_cloexec.o
    > >
    > > Is there a reason for using += not just = here?  We could certainly
    > > modify Mkvcbuild.pm to parse this if we need to, but it looks more
    > > like a gratuitous difference from everyplace else than a useful
    > > behavior.
    >
    > Yeah.  Will drop the + signs.  I've also written a patch to enable a
    > separate "Windows - Server 2022, VS 2019 - Mkvcbuild.pm" CI task
    > alongside the Meson one in the REL_16_STABLE branch.  I had run the
    > affected branches through CI, but of course 16 switched to Meson so it
    > wasn't testing the third build system... without that, this is just
    > too painful.  I need to step away for a couple of hours, but more in a
    > bit...
    
    That revealed another problem: Mkvcbuild.pm didn't add -lpgport.  It
    looks out for the pattern PG_LIBS_INTERNAL = $(libpq_pgport), so
    that's an easy way to fix that -- is there a better way?  I couldn't
    figure out how to tell it that we need libpqport but not libpq.
    Here's a CI run of these patches on top of REL_16_STABLE, showing the
    new Mkvcbuild.pm task passing:
    
    https://cirrus-ci.com/build/5900754273173504