[v2] bpf: btf: Always output invariant hit in pahole DWARF to BTF transform
diff mbox series

Message ID 20200122000110.GA310073@chrisdown.name
State Accepted
Commit 2a67a6ccb01f21b854715d86ff6432a18b97adb3
Headers show
Series
  • [v2] bpf: btf: Always output invariant hit in pahole DWARF to BTF transform
Related show

Commit Message

Chris Down Jan. 22, 2020, 12:01 a.m. UTC
When trying to compile with CONFIG_DEBUG_INFO_BTF enabled, I got this
error:

    % make -s
    Failed to generate BTF for vmlinux
    Try to disable CONFIG_DEBUG_INFO_BTF
    make[3]: *** [vmlinux] Error 1

Compiling again without -s shows the true error (that pahole is
missing), but since this is fatal, we should show the error
unconditionally on stderr as well, not silence it using the `info`
function. With this patch:

    % make -s
    BTF: .tmp_vmlinux.btf: pahole (pahole) is not available
    Failed to generate BTF for vmlinux
    Try to disable CONFIG_DEBUG_INFO_BTF
    make[3]: *** [vmlinux] Error 1

Signed-off-by: Chris Down <chris@chrisdown.name>
Cc: Stanislav Fomichev <sdf@google.com>
Cc: Andrii Nakryiko <andriin@fb.com>
Cc: John Fastabend <john.fastabend@gmail.com>
Cc: linux-kernel@vger.kernel.org
Cc: netdev@vger.kernel.org
Cc: bpf@vger.kernel.org
Cc: kernel-team@fb.com
---
 scripts/link-vmlinux.sh | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

Comments

Andrii Nakryiko Jan. 22, 2020, 12:05 a.m. UTC | #1
On Tue, Jan 21, 2020 at 4:01 PM Chris Down <chris@chrisdown.name> wrote:
>
> When trying to compile with CONFIG_DEBUG_INFO_BTF enabled, I got this
> error:
>
>     % make -s
>     Failed to generate BTF for vmlinux
>     Try to disable CONFIG_DEBUG_INFO_BTF
>     make[3]: *** [vmlinux] Error 1
>
> Compiling again without -s shows the true error (that pahole is
> missing), but since this is fatal, we should show the error
> unconditionally on stderr as well, not silence it using the `info`
> function. With this patch:
>
>     % make -s
>     BTF: .tmp_vmlinux.btf: pahole (pahole) is not available
>     Failed to generate BTF for vmlinux
>     Try to disable CONFIG_DEBUG_INFO_BTF
>     make[3]: *** [vmlinux] Error 1
>
> Signed-off-by: Chris Down <chris@chrisdown.name>
> Cc: Stanislav Fomichev <sdf@google.com>
> Cc: Andrii Nakryiko <andriin@fb.com>
> Cc: John Fastabend <john.fastabend@gmail.com>
> Cc: linux-kernel@vger.kernel.org
> Cc: netdev@vger.kernel.org
> Cc: bpf@vger.kernel.org
> Cc: kernel-team@fb.com
> ---
>  scripts/link-vmlinux.sh | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
>

Looks great, thanks!

Acked-by: Andrii Nakryiko <andriin@fb.com>

> diff --git a/scripts/link-vmlinux.sh b/scripts/link-vmlinux.sh
> index c287ad9b3a67..bbe9be2bf5ff 100755
> --- a/scripts/link-vmlinux.sh
> +++ b/scripts/link-vmlinux.sh
> @@ -108,13 +108,13 @@ gen_btf()
>         local bin_arch
>
>         if ! [ -x "$(command -v ${PAHOLE})" ]; then
> -               info "BTF" "${1}: pahole (${PAHOLE}) is not available"
> +               echo >&2 "BTF: ${1}: pahole (${PAHOLE}) is not available"
>                 return 1
>         fi
>
>         pahole_ver=$(${PAHOLE} --version | sed -E 's/v([0-9]+)\.([0-9]+)/\1\2/')
>         if [ "${pahole_ver}" -lt "113" ]; then
> -               info "BTF" "${1}: pahole version $(${PAHOLE} --version) is too old, need at least v1.13"
> +               echo >&2 "BTF: ${1}: pahole version $(${PAHOLE} --version) is too old, need at least v1.13"
>                 return 1
>         fi
>
> --
> 2.25.0
>
Daniel Borkmann Jan. 22, 2020, 5:24 p.m. UTC | #2
On 1/22/20 1:01 AM, Chris Down wrote:
> When trying to compile with CONFIG_DEBUG_INFO_BTF enabled, I got this
> error:
> 
>      % make -s
>      Failed to generate BTF for vmlinux
>      Try to disable CONFIG_DEBUG_INFO_BTF
>      make[3]: *** [vmlinux] Error 1
> 
> Compiling again without -s shows the true error (that pahole is
> missing), but since this is fatal, we should show the error
> unconditionally on stderr as well, not silence it using the `info`
> function. With this patch:
> 
>      % make -s
>      BTF: .tmp_vmlinux.btf: pahole (pahole) is not available
>      Failed to generate BTF for vmlinux
>      Try to disable CONFIG_DEBUG_INFO_BTF
>      make[3]: *** [vmlinux] Error 1
> 
> Signed-off-by: Chris Down <chris@chrisdown.name>
> Cc: Stanislav Fomichev <sdf@google.com>
> Cc: Andrii Nakryiko <andriin@fb.com>
> Cc: John Fastabend <john.fastabend@gmail.com>
> Cc: linux-kernel@vger.kernel.org
> Cc: netdev@vger.kernel.org
> Cc: bpf@vger.kernel.org
> Cc: kernel-team@fb.com

Applied, thanks!

Patch
diff mbox series

diff --git a/scripts/link-vmlinux.sh b/scripts/link-vmlinux.sh
index c287ad9b3a67..bbe9be2bf5ff 100755
--- a/scripts/link-vmlinux.sh
+++ b/scripts/link-vmlinux.sh
@@ -108,13 +108,13 @@  gen_btf()
 	local bin_arch
 
 	if ! [ -x "$(command -v ${PAHOLE})" ]; then
-		info "BTF" "${1}: pahole (${PAHOLE}) is not available"
+		echo >&2 "BTF: ${1}: pahole (${PAHOLE}) is not available"
 		return 1
 	fi
 
 	pahole_ver=$(${PAHOLE} --version | sed -E 's/v([0-9]+)\.([0-9]+)/\1\2/')
 	if [ "${pahole_ver}" -lt "113" ]; then
-		info "BTF" "${1}: pahole version $(${PAHOLE} --version) is too old, need at least v1.13"
+		echo >&2 "BTF: ${1}: pahole version $(${PAHOLE} --version) is too old, need at least v1.13"
 		return 1
 	fi