Commit Graph

6 Commits

Author SHA1 Message Date
Artem Savkov 08f550f914 tools bpf_jit_disasm: Fix compilation error with new binutils
Bugzilla: https://bugzilla.redhat.com/2137876

commit 96ed066054abf11c7d3e106e3011a51f3f1227a3
Author: Andres Freund <andres@anarazel.de>
Date:   Sun Jul 31 18:38:31 2022 -0700

    tools bpf_jit_disasm: Fix compilation error with new binutils
    
    binutils changed the signature of init_disassemble_info(), which now causes
    compilation to fail for tools/bpf/bpf_jit_disasm.c, e.g. on debian
    unstable.
    
    Relevant binutils commit:
    
      https://sourceware.org/git/?p=binutils-gdb.git;a=commit;h=60a3da00bd5407f07
    
    Wire up the feature test and switch to init_disassemble_info_compat(),
    which were introduced in prior commits, fixing the compilation failure.
    
    I verified that bpf_jit_disasm can still disassemble bpf programs, both
    with the old and new dis-asm.h API. With old binutils there's no change in
    output before/after this patch. When comparing the output from old
    binutils (2.35) to new bintuils with the patch (upstream snapshot) there
    are a few output differences, but they are unrelated to this patch. An
    example hunk is:
    
         f4:	mov    %r14,%rsi
         f7:	mov    %r15,%rdx
         fa:	mov    $0x2a,%ecx
      -  ff:	callq  0xffffffffea8c4988
      +  ff:	call   0xffffffffea8c4988
        104:	test   %rax,%rax
        107:	jge    0x0000000000000110
        109:	xor    %eax,%eax
      - 10b:	jmpq   0x0000000000000073
      + 10b:	jmp    0x0000000000000073
        110:	cmp    $0x16,%rax
    
    However, I had to use an older kernel to generate the bpf_jit_enabled =
    2 output, as that has been broken since 5.18 / 1022a5498f6f745c ("bpf,
    x86_64: Use bpf_jit_binary_pack_alloc").
    
      https://lore.kernel.org/20220703030210.pmjft7qc2eajzi6c@alap3.anarazel.de
    
    Signed-off-by: Andres Freund <andres@anarazel.de>
    Acked-by: Quentin Monnet <quentin@isovalent.com>
    Cc: Alexei Starovoitov <ast@kernel.org>
    Cc: Ben Hutchings <benh@debian.org>
    Cc: Daniel Borkmann <daniel@iogearbox.net>
    Cc: Jiri Olsa <jolsa@kernel.org>
    Cc: Quentin Monnet <quentin@isovalent.com>
    Cc: Sedat Dilek <sedat.dilek@gmail.com>
    Cc: bpf@vger.kernel.org
    Link: http://lore.kernel.org/lkml/20220622181918.ykrs5rsnmx3og4sv@alap3.anarazel.de
    Link: https://lore.kernel.org/r/20220801013834.156015-6-andres@anarazel.de
    Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>

Signed-off-by: Artem Savkov <asavkov@redhat.com>
2023-01-05 15:46:45 +01:00
Thomas Gleixner a7d7a39274 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 232
Based on 1 normalized pattern(s):

  licensed under the gnu general public license version 2 0 gplv2

extracted by the scancode license scanner the SPDX license identifier

  GPL-2.0-only

has been chosen to replace the boilerplate/reference in 3 file(s).

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Reviewed-by: Armijn Hemel <armijn@tjaldur.nl>
Reviewed-by: Alexios Zavras <alexios.zavras@intel.com>
Reviewed-by: Allison Randal <allison@lohutok.net>
Reviewed-by: Enrico Weigelt <info@metux.net>
Cc: linux-spdx@vger.kernel.org
Link: https://lkml.kernel.org/r/20190602204653.630925848@linutronix.de
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2019-06-19 17:09:06 +02:00
Dan Carpenter b223e3b4e0 tools/bpf_jit_disasm: silence a static checker warning
There is a static checker warning that "proglen" has an upper bound but
no lower bound.  The allocation will just fail harmlessly so it's not a
big deal.

Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
2018-01-18 22:15:37 +01:00
Roman Gushchin fb982666e3 tools/bpftool: fix bpftool build with bintutils >= 2.9
Bpftool build is broken with binutils version 2.29 and later.
The cause is commit 003ca0fd2286 ("Refactor disassembler selection")
in the binutils repo, which changed the disassembler() function
signature.

Fix this by adding a new "feature" to the tools/build/features
infrastructure and make it responsible for decision which
disassembler() function signature to use.

Signed-off-by: Roman Gushchin <guro@fb.com>
Cc: Jakub Kicinski <jakub.kicinski@netronome.com>
Cc: Alexei Starovoitov <ast@kernel.org>
Cc: Daniel Borkmann <daniel@iogearbox.net>
Acked-by: Jakub Kicinski <jakub.kicinski@netronome.com>
Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
2017-12-30 01:07:36 +01:00
Prashant Bhole cdc89c9198 tools: bpf: handle long path in jit disasm
Use PATH_MAX instead of hardcoded array size 256

Signed-off-by: Prashant Bhole <bhole_prashant_q7@lab.ntt.co.jp>
Signed-off-by: David S. Miller <davem@davemloft.net>
2017-11-02 20:25:27 +09:00
Jakub Kicinski a92bb546cf tools: rename tools/net directory to tools/bpf
We currently only have BPF tools in the tools/net directory.
We are about to add more BPF tools there, not necessarily
networking related, rename the directory and related Makefile
targets to bpf.

Suggested-by: Daniel Borkmann <daniel@iogearbox.net>
Signed-off-by: Jakub Kicinski <jakub.kicinski@netronome.com>
Reviewed-by: Simon Horman <simon.horman@netronome.com>
Acked-by: Daniel Borkmann <daniel@iogearbox.net>
Acked-by: Alexei Starovoitov <ast@kernel.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
2017-10-04 21:45:05 -07:00