> > I think it ends up doing a copy thus the copy error in my log failures
> > which don't exist anywhere in the Makefil
> >
> > cp -pR ../../backend/storage/lmgr/lwlocknames.h
> >
> > Sorry for not checking on a linux system. I was thinking I should have done
> that first.
>
> Ah yeah, that's per configure:
>
> if ln -s conf$$.file conf$$ 2>/dev/null; then
> as_ln_s='ln -s'
> # ... but there are two gotchas:
> # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail.
> # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable.
> # In both cases, we have to default to `cp -pR'.
> ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe ||
> as_ln_s='cp -pR'
>
> I guess we need to patch the rule so that the LN_S is called so that it'd resolve
> correctly in both cases. I guess the easy option is to go back to the original
> recipe and update the comment to indicate that we do it to placate Msys2.
> Here it is with the old comment:
>
> -# The point of the prereqdir incantation in some of the rules below is to
> -# force the symlink to use an absolute path rather than a relative path.
> -# For headers which are generated by make distprep, the actual header
> within
> -# src/backend will be in the source tree, while the symlink in src/include
> -# will be in the build tree, so a simple ../.. reference won't work.
> -# For headers generated during regular builds, we prefer a relative symlink.
>
> $(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 $<)" .
>
>
> Maybe it's possible to make this simpler, as it looks overly baroque, and we
> don't really need absolute paths anyway -- we just need the path resolved at
> the right time.
>
> --
> Álvaro Herrera Breisgau, Deutschland —
> https://www.EnterpriseDB.com/
Yah I was thinking it was removed cause
no one could figure out why it was so complicated and decided to make it more readable.