All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jiri Olsa <jolsa@kernel.org>
To: stable@vger.kernel.org
Cc: "Andrii Nakryiko" <andrii@kernel.org>,
	bpf@vger.kernel.org, "Arnaldo Carvalho de Melo" <acme@kernel.org>,
	"Daniel Borkmann" <daniel@iogearbox.net>,
	"Martin Rodriguez Reboredo" <yakoyoku@gmail.com>,
	"Javier Martinez Canillas" <javierm@redhat.com>,
	"Ilya Leoshkevich" <iii@linux.ibm.com>,
	"Nathan Chancellor" <nathan@kernel.org>,
	"Philip Müller" <philm@manjaro.org>
Subject: [PATCH stable 5.10 4/5] kbuild: Unify options for BTF generation for vmlinux and modules
Date: Wed, 19 Oct 2022 10:56:03 +0200	[thread overview]
Message-ID: <20221019085604.1017583-5-jolsa@kernel.org> (raw)
In-Reply-To: <20221019085604.1017583-1-jolsa@kernel.org>

From: Jiri Olsa <jolsa@redhat.com>

commit 9741e07ece7c247dd65e1aa01e16b683f01c05a8 upstream.

[skipped --btf_gen_floats option in pahole-flags.sh, skipped
Makefile.modfinal change, because there's no BTF kmod support,
squashing in 'exit 0' change from merge commit fc02cb2b37fe]

Using new PAHOLE_FLAGS variable to pass extra arguments to
pahole for both vmlinux and modules BTF data generation.

Adding new scripts/pahole-flags.sh script that detect and
prints pahole options.

[ fixed issues found by kernel test robot ]

Signed-off-by: Jiri Olsa <jolsa@kernel.org>
Signed-off-by: Andrii Nakryiko <andrii@kernel.org>
Acked-by: Andrii Nakryiko <andrii@kernel.org>
Link: https://lore.kernel.org/bpf/20211029125729.70002-1-jolsa@kernel.org
---
 Makefile                |  3 +++
 scripts/link-vmlinux.sh |  8 +-------
 scripts/pahole-flags.sh | 17 +++++++++++++++++
 3 files changed, 21 insertions(+), 7 deletions(-)
 create mode 100755 scripts/pahole-flags.sh

diff --git a/Makefile b/Makefile
index b824bdb0457c..fc8f1a1c0d98 100644
--- a/Makefile
+++ b/Makefile
@@ -465,6 +465,8 @@ LZ4		= lz4c
 XZ		= xz
 ZSTD		= zstd
 
+PAHOLE_FLAGS	= $(shell PAHOLE=$(PAHOLE) $(srctree)/scripts/pahole-flags.sh)
+
 CHECKFLAGS     := -D__linux__ -Dlinux -D__STDC__ -Dunix -D__unix__ \
 		  -Wbitwise -Wno-return-void -Wno-unknown-attribute $(CF)
 NOSTDINC_FLAGS :=
@@ -518,6 +520,7 @@ export KBUILD_CFLAGS CFLAGS_KERNEL CFLAGS_MODULE
 export KBUILD_AFLAGS AFLAGS_KERNEL AFLAGS_MODULE
 export KBUILD_AFLAGS_MODULE KBUILD_CFLAGS_MODULE KBUILD_LDFLAGS_MODULE
 export KBUILD_AFLAGS_KERNEL KBUILD_CFLAGS_KERNEL
+export PAHOLE_FLAGS
 
 # Files to ignore in find ... statements
 
diff --git a/scripts/link-vmlinux.sh b/scripts/link-vmlinux.sh
index bbb22be4c8f1..acd07a70a2f4 100755
--- a/scripts/link-vmlinux.sh
+++ b/scripts/link-vmlinux.sh
@@ -146,7 +146,6 @@ vmlinux_link()
 gen_btf()
 {
 	local pahole_ver
-	local extra_paholeopt=
 
 	if ! [ -x "$(command -v ${PAHOLE})" ]; then
 		echo >&2 "BTF: ${1}: pahole (${PAHOLE}) is not available"
@@ -161,13 +160,8 @@ gen_btf()
 
 	vmlinux_link ${1}
 
-	if [ "${pahole_ver}" -ge "118" ] && [ "${pahole_ver}" -le "121" ]; then
-		# pahole 1.18 through 1.21 can't handle zero-sized per-CPU vars
-		extra_paholeopt="${extra_paholeopt} --skip_encoding_btf_vars"
-	fi
-
 	info "BTF" ${2}
-	LLVM_OBJCOPY="${OBJCOPY}" ${PAHOLE} -J ${extra_paholeopt} ${1}
+	LLVM_OBJCOPY="${OBJCOPY}" ${PAHOLE} -J ${PAHOLE_FLAGS} ${1}
 
 	# Create ${2} which contains just .BTF section but no symbols. Add
 	# SHF_ALLOC because .BTF will be part of the vmlinux image. --strip-all
diff --git a/scripts/pahole-flags.sh b/scripts/pahole-flags.sh
new file mode 100755
index 000000000000..27445cb72974
--- /dev/null
+++ b/scripts/pahole-flags.sh
@@ -0,0 +1,17 @@
+#!/bin/sh
+# SPDX-License-Identifier: GPL-2.0
+
+extra_paholeopt=
+
+if ! [ -x "$(command -v ${PAHOLE})" ]; then
+	exit 0
+fi
+
+pahole_ver=$(${PAHOLE} --version | sed -E 's/v([0-9]+)\.([0-9]+)/\1\2/')
+
+if [ "${pahole_ver}" -ge "118" ] && [ "${pahole_ver}" -le "121" ]; then
+	# pahole 1.18 through 1.21 can't handle zero-sized per-CPU vars
+	extra_paholeopt="${extra_paholeopt} --skip_encoding_btf_vars"
+fi
+
+echo ${extra_paholeopt}
-- 
2.37.3


  parent reply	other threads:[~2022-10-19  9:05 UTC|newest]

Thread overview: 18+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-10-19  8:55 [PATCH stable 5.10 0/5] kbuild: Fix compilation for latest pahole release Jiri Olsa
2022-10-19  8:56 ` [PATCH stable 5.10 1/5] bpf: Generate BTF_KIND_FLOAT when linking vmlinux Jiri Olsa
2022-10-19  8:56 ` [PATCH stable 5.10 2/5] kbuild: Quote OBJCOPY var to avoid a pahole call break the build Jiri Olsa
2022-10-19 10:28   ` Greg KH
2022-10-19 11:18     ` Jiri Olsa
2022-10-19  8:56 ` [PATCH stable 5.10 3/5] kbuild: skip per-CPU BTF generation for pahole v1.18-v1.21 Jiri Olsa
2022-10-19  8:56 ` Jiri Olsa [this message]
2022-10-19  8:56 ` [PATCH stable 5.10 5/5] kbuild: Add skip_encoding_btf_enum64 option to pahole Jiri Olsa
2022-10-20  1:13   ` kernel test robot
2022-10-20  1:35     ` Slade Watkins
2022-10-20  1:35       ` Slade Watkins
2022-10-20  5:10       ` Greg KH
2022-10-20  5:10         ` Greg KH
2022-10-20  7:22         ` Jiri Olsa
2022-10-20  7:22           ` Jiri Olsa
2022-10-19 14:55 ` [PATCH stable 5.10 0/5] kbuild: Fix compilation for latest pahole release Greg KH
2022-10-19 15:30   ` Jiri Olsa
2022-10-26 16:44 ` Greg KH

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=20221019085604.1017583-5-jolsa@kernel.org \
    --to=jolsa@kernel.org \
    --cc=acme@kernel.org \
    --cc=andrii@kernel.org \
    --cc=bpf@vger.kernel.org \
    --cc=daniel@iogearbox.net \
    --cc=iii@linux.ibm.com \
    --cc=javierm@redhat.com \
    --cc=nathan@kernel.org \
    --cc=philm@manjaro.org \
    --cc=stable@vger.kernel.org \
    --cc=yakoyoku@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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.