On 20.06.24 16:34, Noah Misch wrote:
> 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".
Ok, fix pushed.