On Thu, Jun 20, 2024 at 09:29:45AM +0200, Peter Eisentraut wrote:
> On 16.06.24 21:34, Noah Misch wrote:
> > On Thu, Oct 05, 2023 at 05:46:46PM +0200, Peter Eisentraut wrote:
> > > --- a/src/backend/Makefile
> > > +++ b/src/backend/Makefile
> >
> > > $(top_builddir)/src/include/storage/lwlocknames.h: storage/lmgr/lwlocknames.h
> > > - prereqdir=`cd '$(dir $<)' >/dev/null && pwd` && \
> > > - cd '$(dir $@)' && rm -f $(notdir $@) && \
> > > - $(LN_S) "$$prereqdir/$(notdir $<)" .
> > > + rm -f '$@'
> > > + $(LN_S) ../../backend/$< '$@'
> > > $(top_builddir)/src/include/utils/wait_event_types.h: utils/activity/wait_event_types.h
> > > - prereqdir=`cd '$(dir $<)' >/dev/null && pwd` && \
> > > - cd '$(dir $@)' && rm -f $(notdir $@) && \
> > > - $(LN_S) "$$prereqdir/$(notdir $<)" .
> > > + rm -f '$@'
> > > + $(LN_S) ../../backend/$< '$@'
> >
> > These broke the
> > https://www.postgresql.org/docs/17/installation-platform-notes.html#INSTALLATION-NOTES-MINGW
> > build, where LN_S='cp -pR'. On other platforms, "make LN_S='cp -pR'"
> > reproduces this. Reverting the above lines fixes things. The buildfarm has
> > no coverage for that build scenario (fairywren uses Meson).
>
> Is it just these two instances?
Yes.
> Commit 721856ff24b contains a few more hunks that change something about
> LN_S. Are those ok?
I'm guessing "make LN_S='cp -pR'" didn't have a problem with those because
they have "." as the second argument. "cp -pR ../foo ." is compatible with
"ln -s ../foo ." in that both are interpreting "../bar" relative to the same
directory. Not so for "cp -pR ../foo bar/baz" vs. "ln -s ../foo bar/baz".