On Wed, Mar 31 2021, Junio C Hamano wrote: > Ævar Arnfjörð Bjarmason <avarab@xxxxxxxxx> writes: > >>> So I would understand if there are two orthogonal knobs >>> >>> - the order of preference (e.g. hardlink > symlink > copy) >>> - which ones are allowed (e.g. "no symlinks please") >>> >>> but I cannot quite imagine how a system without any fallback would >>> be useful. >> >> Because with explicit knobs I'd like to tell it what to do and not have >> it auto-guess. > > So how would I explicitly tell "I want hardlinks for everything > else, but use cp when going between /usr/bin and /usr/libexec" > (because /usr/bin and /usr/libexec is not on the same filesystem > on this particular box---I'll tell you to use hardlink everywhere > on another box of mine where they reside on the same filesystem)? Just as you would now: make NO_CROSS_DIRECTORY_HARDLINKS=Y install That'll get you hardlinks within bin/ and libexec, but copies between them, and no symlinks. The behavior change in this series is if your "ln" errors out we'll no longer silently plow ahead and e.g. not hardlink *within* bin and libexec in that case. > Your argument or analogy with openssl does not make much sense to me > in this case. The point is the Makefile shouldn't be second-guessing explicit requests. That's what defaults are for.