RE: Can't compile PG 17 (master) from git under Msys2 autoconf

From: "Regina Obe" <lr(at)pcorp(dot)us>
To: "'Alvaro Herrera'" <alvherre(at)alvh(dot)no-ip(dot)org>
Cc: "'Postgres hackers'" <pgsql-hackers(at)lists(dot)postgresql(dot)org>
Subject: RE: Can't compile PG 17 (master) from git under Msys2 autoconf
Date: 2024-04-05 02:36:04
Message-ID: 000401da8702$01eaf270$05c0d750$@pcorp.us
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

> > Hi Regina,
> >
> > On 2024-Mar-27, Regina Obe wrote:
> >
> > > The error is
> > >
> > > rm -f '../../src/include/storage/lwlocknames.h'
> > > cp -pR ../../backend/storage/lmgr/lwlocknames.h
> > > '../../src/include/storage/lwlocknames.h'
> > > cp: cannot stat '../../backend/storage/lmgr/lwlocknames.h': No such
> > > file or directory
> > > make[1]: *** [Makefile:143: ../../src/include/storage/lwlocknames.h]
> > > Error 1
> > > make[1]: Leaving directory '/projects/postgresql/postgresql-
> > git/src/backend'
> > > make: *** [../../src/Makefile.global:382: submake-generated-headers]
> > > Error 2
> >
> > Hmm, I changed these rules again in commit da952b415f44, maybe your
> > problem is with that one? I wonder if changing the references to
> > ../include/storage/lwlocklist.h to
> > $(topdir)/src/include/storage/lwlocklist.h
> > (and similar things in
> > src/backend/storage/lmgr/Makefile) would fix it.
> >
> > Do you run configure in the source directory or a separate build one?
> >
> > --
> > Álvaro Herrera Breisgau, Deutschland —
> > https://www.EnterpriseDB.com/
> > "If it is not right, do not do it.
> > If it is not true, do not say it." (Marcus Aurelius, Meditations)
>
> I tried the change
> > ../include/storage/lwlocklist.h to
> > $(top_builddir)/src/include/storage/lwlocklist.h
>
> I assume you meant that instead of $(topdir)
>
> But nah that made no difference. Your change was already in my patched
> version so isn't causing any issues.

I think I got something not too far off from what's there now that works under my msys2 setup again. This is partly using your idea of using $(top_builddir) to qualify the path but in the LN_S section that is causing me grief.
This seems to work okay building in tree and out of tree.
By changing these lines in src/backend/Makefile

$(top_builddir)/src/include/storage/lwlocknames.h: storage/lmgr/lwlocknames.h
rm -f '$@'
- $(LN_S) ../../backend/$< '$@'
+ $(LN_S) $(top_builddir)/src/backend/$< '$@'

$(top_builddir)/src/include/utils/wait_event_types.h: utils/activity/wait_event_types.h
rm -f '$@'
- $(LN_S) ../../backend/$< '$@'
+ $(LN_S) $(top_builddir)/src/backend/$< '$@'

I've also attached as a patch.

Thanks,
Regina

Attachment Content-Type Size
v1-0001-FIX-autoconf-build-under-Msys2-Mingw64.patch application/octet-stream 1.1 KB

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Michael Paquier 2024-04-05 02:37:56 Re: IPC::Run::time[r|out] vs our TAP tests
Previous Message Tom Lane 2024-04-05 02:31:24 Re: IPC::Run::time[r|out] vs our TAP tests