From: Nicolas Schier <nicolas@fjasle.eu>
To: Masahiro Yamada <masahiroy@kernel.org>
Cc: linux-kbuild@vger.kernel.org, linux-kernel@vger.kernel.org,
Christophe Leroy <christophe.leroy@csgroup.eu>,
Michael Ellerman <mpe@ellerman.id.au>,
Nathan Chancellor <nathan@kernel.org>,
Nicholas Piggin <npiggin@gmail.com>,
Nick Desaulniers <ndesaulniers@google.com>,
linuxppc-dev@lists.ozlabs.org
Subject: Re: [PATCH] kbuild: single-quote the format string of printf
Date: Tue, 29 Aug 2023 14:00:44 +0200 [thread overview]
Message-ID: <ZO3d7DrfKfsDXqa5@bergen.fjasle.eu> (raw)
In-Reply-To: <20230829113531.4004730-1-masahiroy@kernel.org>
[-- Attachment #1: Type: text/plain, Size: 4691 bytes --]
On Tue 29 Aug 2023 20:35:31 GMT, Masahiro Yamada wrote:
> Use single-quotes to avoid escape sequences (\\n).
>
> Signed-off-by: Masahiro Yamada <masahiroy@kernel.org>
> ---
Is this really necessary? Testing w/ GNU Make 4.3, bash 5.2.15 or
dash 0.5.12-6 and a stupid Makefile snippet I cannot see any difference
between these three:
print:
@printf "hello med single-backslash and double quotes\n"
@printf 'hello med single-backslash and single quotes\n'
@printf "hello med double-backslash and double quotes\\n"
Only double-backslash+n in single-quotes does not work, for obvious
reasons.
Is this some compatibility to older make versions or other shells?
Iff it is, we should have several cases that are actually broken right
now:
$ git grep -Hrne 'printf.*".*\\n' '**/Makefile*' '**/Kbuild*'
arch/mips/Makefile:480: printf " %-24s - Build generic kernel for $(call describe_generic_defconfig,$(cfg))\n" $(cfg);)
arch/mips/Makefile:486: printf " %-24s - Build $($(cfg)-y)\n" $(cfg);)
samples/bpf/Makefile:238:HDR_PROBE := $(shell printf "$(pound)include <linux/types.h>\n struct list_head { int a; }; int main() { return 0; }" | \
samples/hid/Makefile:76:HDR_PROBE := $(shell printf "$(pound)include <linux/types.h>\n struct list_head { int a; }; int main() { return 0; }" | \
scripts/Makefile.compiler:41: printf "%b\n" "$(1)" | $(CC) -Werror $(CLANG_FLAGS) $(KBUILD_AFLAGS) -c -x assembler-with-cpp -o "$$TMP" -,$(2),$(3))
scripts/Makefile.lib:437:printf "%08x\n" $$dec_size | \
scripts/Makefile.modfinal:43: printf "Skipping BTF generation for %s due to unavailability of vmlinux\n" $@ 1>&2; \
scripts/Makefile.modfinal:45: printf "Skipping BTF generation for %s because it's a Rust module\n" $@ 1>&2; \
security/tomoyo/Makefile:11: printf '\t"";\n';) \
tools/testing/selftests/Makefile:263: [ ! -d $(INSTALL_PATH)/$$TARGET ] && printf "Skipping non-existent dir: $$TARGET\n" && continue; \
tools/testing/selftests/Makefile:264: printf "Emit Tests for $$TARGET\n"; \
tools/testing/selftests/nolibc/Makefile:136: if (s+f > 0) printf(" See all results in %s\n", ARGV[1]); else print; }' \
tools/testing/selftests/nolibc/Makefile:155: if (s+f > 0) printf(" See all results in %s\n", ARGV[1]); else print; }' \
tools/testing/selftests/nolibc/Makefile:163: if (s+f > 0) printf(" See all results in %s\n", ARGV[1]); else print; }' \
tools/testing/selftests/wireguard/qemu/Makefile:335: printf 'CONFIG_NR_CPUS=$(NR_CPUS)\nCONFIG_INITRAMFS_SOURCE="$(BUILD_PATH)/init-cpio-spec.txt"\n' >> $(KERNEL_BUILD_PATH)/minimal.config
I assume, that changing '\\n' occurrences in all Makefiles to '\n'
should be enough; but only a cosmetic change. Or did I miss some
point?
Kind regards,
Nicolas
>
> Makefile | 8 ++++----
> arch/powerpc/Makefile | 2 +-
> 2 files changed, 5 insertions(+), 5 deletions(-)
>
> diff --git a/Makefile b/Makefile
> index 87a9eef3fb4b..d09600f7a036 100644
> --- a/Makefile
> +++ b/Makefile
> @@ -1643,12 +1643,12 @@ help:
> @echo ''
> @$(if $(boards), \
> $(foreach b, $(boards), \
> - printf " %-27s - Build for %s\\n" $(b) $(subst _defconfig,,$(b));) \
> + printf ' %-27s - Build for %s\n' $(b) $(subst _defconfig,,$(b));) \
> echo '')
> @$(if $(board-dirs), \
> $(foreach b, $(board-dirs), \
> - printf " %-16s - Show %s-specific targets\\n" help-$(b) $(b);) \
> - printf " %-16s - Show all of the above\\n" help-boards; \
> + printf ' %-16s - Show %s-specific targets\n' help-$(b) $(b);) \
> + printf ' %-16s - Show all of the above\n' help-boards; \
> echo '')
>
> @echo ' make V=n [targets] 1: verbose build'
> @@ -1684,7 +1684,7 @@ $(help-board-dirs): help-%:
> @echo 'Architecture specific targets ($(SRCARCH) $*):'
> @$(if $(boards-per-dir), \
> $(foreach b, $(boards-per-dir), \
> - printf " %-24s - Build for %s\\n" $*/$(b) $(subst _defconfig,,$(b));) \
> + printf ' %-24s - Build for %s\n' $*/$(b) $(subst _defconfig,,$(b));) \
> echo '')
>
>
> diff --git a/arch/powerpc/Makefile b/arch/powerpc/Makefile
> index dac7ca153886..f49ac05eae20 100644
> --- a/arch/powerpc/Makefile
> +++ b/arch/powerpc/Makefile
> @@ -353,7 +353,7 @@ define archhelp
> echo ' (minus the .dts extension).'
> echo
> $(foreach cfg,$(generated_configs),
> - printf " %-27s - Build for %s\\n" $(cfg) $(subst _defconfig,,$(cfg));)
> + printf ' %-27s - Build for %s\n' $(cfg) $(subst _defconfig,,$(cfg));)
> endef
>
> PHONY += install
> --
> 2.39.2
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]
next prev parent reply other threads:[~2023-08-29 12:02 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-08-29 11:35 [PATCH] kbuild: single-quote the format string of printf Masahiro Yamada
2023-08-29 12:00 ` Nicolas Schier [this message]
2023-08-30 11:33 ` Masahiro Yamada
2023-08-30 13:00 ` David Laight
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=ZO3d7DrfKfsDXqa5@bergen.fjasle.eu \
--to=nicolas@fjasle.eu \
--cc=christophe.leroy@csgroup.eu \
--cc=linux-kbuild@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linuxppc-dev@lists.ozlabs.org \
--cc=masahiroy@kernel.org \
--cc=mpe@ellerman.id.au \
--cc=nathan@kernel.org \
--cc=ndesaulniers@google.com \
--cc=npiggin@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox