Hi,
On 2022-02-03 17:25:51 -0500, Andrew Dunstan wrote:
> OK, I have all the pieces working and I know what I need to do to adapt
> fairywren. The patch you provided is not necessary any more.
Cool. Are you going to post that?
> (I think your TMPDIR spec is missing a /build/)
I think I went back/forth between in-tree/out-of-tree build...
> The recipe worked (mutatis mutandis) for the mingw64 toolchain as well
> as for the ucrt64 toolchain. Is there a reason to prefer ucrt64?
There's a lot of oddities in the mingw64 target, due to targetting the much
older C runtime library (lots of bugs, missing functionality). MSVC targets
UCRT by default for quite a few years by now. Targetting msvcrt is basically
on its way out from what I understand.
> I think the next steps are:
>
> * do those two reverts
> * adjust fairywren
> * get rid of perl2host
>
> At that stage jacana will no longer be able to run TAP tests. I can do
> one of these:
I guess because its install is too old?
> * disable the TAP tests on jacana
> * migrate jacana to msys2
> * kiss jacana goodbye.
Having a non-server mingw animal seems like it could be useful (I think that's
just Jacana), even if server / client versions of windows have grown
closer. So I think an update to msys2 makes the most sense?
> > To make tests in "in-tree" builds work, a bit more hackery would be
> > needed. The problem is that windows chooses binaries from the current working
> > directory *before* PATH. That's a problem for things like initdb.exe or
> > pg_ctl.exe that want to find postgres.exe, as that only works with the program
> > in their proper location, rather than CWD.
> Yeah, we should do something about that. For example, we could possibly
> use the new install_path option of PostgreSQL::Test::Cluster::new() so
> it would find these in the right location.
It'd be easy enough to adjust the central invocations of initdb. I think the
bigger problem is that there's plenty calls to initdb, pg_ctl "directly" in
the respective test scripts.
> However, I don't need it as my animals all use vpath builds.
I think it'd be fine to just error out in non-vpath builds on msvc. The
search-for-binaries behaviour is just too weird.
Greetings,
Andres Freund