kbuild: Fix build target deb-pkg: ln: failed to create hard link
authorThayne Harbaugh <thayne@mastodonlabs.com>
Sun, 16 Jun 2024 05:34:54 +0000 (23:34 -0600)
committerMasahiro Yamada <masahiroy@kernel.org>
Tue, 25 Jun 2024 15:18:57 +0000 (00:18 +0900)
The make deb-pkg target calls debian-orig which attempts to either
hard link the source .tar to the build-output location or copy the
source .tar to the build-output location.  The test to determine
whether to ln or cp is incorrectly expanded by Make and consequently
always attempts to ln the source .tar.  This fix corrects the escaping
of '$' so that the test is expanded by the shell rather than by Make
and appropriately selects between ln and cp.

Fixes: b44aa8c96e9e ("kbuild: deb-pkg: make .orig tarball a hard link if possible")
Signed-off-by: Thayne Harbaugh <thayne@mastodonlabs.com>
Signed-off-by: Masahiro Yamada <masahiroy@kernel.org>
scripts/Makefile.package

index 38653f3e81088906177b72f22994e57a6cd98068..bf016af8bf8ada197f8d7594adb46380a27e900c 100644 (file)
@@ -103,7 +103,7 @@ debian-orig: private version = $(shell dpkg-parsechangelog -S Version | sed 's/-
 debian-orig: private orig-name = $(source)_$(version).orig.tar$(debian-orig-suffix)
 debian-orig: mkdebian-opts = --need-source
 debian-orig: linux.tar$(debian-orig-suffix) debian
-       $(Q)if [ "$(df  --output=target .. 2>/dev/null)" = "$(df --output=target $< 2>/dev/null)" ]; then \
+       $(Q)if [ "$$(df  --output=target .. 2>/dev/null)" = "$$(df --output=target $< 2>/dev/null)" ]; then \
                ln -f $< ../$(orig-name); \
        else \
                cp $< ../$(orig-name); \