diff mbox series

[bpf-next,v2] tools/runqslower: Fix LDFLAGS and add LDLIBS support

Message ID 20240723003045.2273499-1-tony.ambardar@gmail.com (mailing list archive)
State Accepted
Commit 3929c8dca3b1a2490289870a7cc5f4d576ad48ec
Delegated to: BPF
Headers show
Series [bpf-next,v2] tools/runqslower: Fix LDFLAGS and add LDLIBS support | expand

Checks

Context Check Description
bpf/vmtest-bpf-next-PR success PR summary
netdev/series_format success Single patches do not need cover letters
netdev/tree_selection success Clearly marked for bpf-next
netdev/ynl success Generated files up to date; no warnings/errors; no diff in generated;
netdev/fixes_present success Fixes tag not required for -next series
netdev/header_inline success No static functions without inline keyword in header files
netdev/build_32bit success Errors and warnings before: 661 this patch: 661
netdev/build_tools success Errors and warnings before: 0 this patch: 0
netdev/cc_maintainers success CCed 15 of 15 maintainers
netdev/build_clang success Errors and warnings before: 663 this patch: 663
netdev/verify_signedoff success Signed-off-by tag matches author and committer
netdev/deprecated_api success None detected
netdev/check_selftest success No net selftest shell script
netdev/verify_fixes success Fixes tag looks correct
netdev/build_allmodconfig_warn success Errors and warnings before: 667 this patch: 667
netdev/checkpatch success total: 0 errors, 0 warnings, 0 checks, 15 lines checked
netdev/build_clang_rust success No Rust files in patch. Skipping build
netdev/kdoc success Errors and warnings before: 0 this patch: 0
netdev/source_inline success Was 0 now: 0
bpf/vmtest-bpf-next-VM_Test-4 success Logs for aarch64-gcc / build / build for aarch64 with gcc
bpf/vmtest-bpf-next-VM_Test-6 success Logs for aarch64-gcc / test (test_maps, false, 360) / test_maps on aarch64 with gcc
bpf/vmtest-bpf-next-VM_Test-9 success Logs for aarch64-gcc / test (test_verifier, false, 360) / test_verifier on aarch64 with gcc
bpf/vmtest-bpf-next-VM_Test-11 success Logs for s390x-gcc / build / build for s390x with gcc
bpf/vmtest-bpf-next-VM_Test-12 success Logs for s390x-gcc / build-release
bpf/vmtest-bpf-next-VM_Test-16 success Logs for s390x-gcc / test (test_verifier, false, 360) / test_verifier on s390x with gcc
bpf/vmtest-bpf-next-VM_Test-17 success Logs for s390x-gcc / veristat
bpf/vmtest-bpf-next-VM_Test-20 success Logs for x86_64-gcc / build-release
bpf/vmtest-bpf-next-VM_Test-19 success Logs for x86_64-gcc / build / build for x86_64 with gcc
bpf/vmtest-bpf-next-VM_Test-18 success Logs for set-matrix
bpf/vmtest-bpf-next-VM_Test-28 success Logs for x86_64-llvm-17 / build / build for x86_64 with llvm-17
bpf/vmtest-bpf-next-VM_Test-29 success Logs for x86_64-llvm-17 / build-release / build for x86_64 with llvm-17-O2
bpf/vmtest-bpf-next-VM_Test-36 success Logs for x86_64-llvm-18 / build-release / build for x86_64 with llvm-18-O2
bpf/vmtest-bpf-next-VM_Test-34 success Logs for x86_64-llvm-17 / veristat
bpf/vmtest-bpf-next-VM_Test-35 success Logs for x86_64-llvm-18 / build / build for x86_64 with llvm-18
bpf/vmtest-bpf-next-VM_Test-42 success Logs for x86_64-llvm-18 / veristat
bpf/vmtest-bpf-next-VM_Test-13 success Logs for s390x-gcc / test (test_maps, false, 360) / test_maps on s390x with gcc
bpf/vmtest-bpf-next-VM_Test-15 success Logs for s390x-gcc / test (test_progs_no_alu32, false, 360) / test_progs_no_alu32 on s390x with gcc
bpf/vmtest-bpf-next-VM_Test-21 success Logs for x86_64-gcc / test (test_maps, false, 360) / test_maps on x86_64 with gcc
bpf/vmtest-bpf-next-VM_Test-22 success Logs for x86_64-gcc / test (test_progs, false, 360) / test_progs on x86_64 with gcc
bpf/vmtest-bpf-next-VM_Test-23 success Logs for x86_64-gcc / test (test_progs_no_alu32, false, 360) / test_progs_no_alu32 on x86_64 with gcc
bpf/vmtest-bpf-next-VM_Test-26 success Logs for x86_64-gcc / test (test_verifier, false, 360) / test_verifier on x86_64 with gcc
bpf/vmtest-bpf-next-VM_Test-25 success Logs for x86_64-gcc / test (test_progs_parallel, true, 30) / test_progs_parallel on x86_64 with gcc
bpf/vmtest-bpf-next-VM_Test-24 success Logs for x86_64-gcc / test (test_progs_no_alu32_parallel, true, 30) / test_progs_no_alu32_parallel on x86_64 with gcc
bpf/vmtest-bpf-next-VM_Test-27 success Logs for x86_64-gcc / veristat / veristat on x86_64 with gcc
bpf/vmtest-bpf-next-VM_Test-31 success Logs for x86_64-llvm-17 / test (test_progs, false, 360) / test_progs on x86_64 with llvm-17
bpf/vmtest-bpf-next-VM_Test-30 success Logs for x86_64-llvm-17 / test (test_maps, false, 360) / test_maps on x86_64 with llvm-17
bpf/vmtest-bpf-next-VM_Test-32 success Logs for x86_64-llvm-17 / test (test_progs_no_alu32, false, 360) / test_progs_no_alu32 on x86_64 with llvm-17
bpf/vmtest-bpf-next-VM_Test-33 success Logs for x86_64-llvm-17 / test (test_verifier, false, 360) / test_verifier on x86_64 with llvm-17
bpf/vmtest-bpf-next-VM_Test-37 success Logs for x86_64-llvm-18 / test (test_maps, false, 360) / test_maps on x86_64 with llvm-18
bpf/vmtest-bpf-next-VM_Test-41 success Logs for x86_64-llvm-18 / test (test_verifier, false, 360) / test_verifier on x86_64 with llvm-18
bpf/vmtest-bpf-next-VM_Test-14 success Logs for s390x-gcc / test (test_progs, false, 360) / test_progs on s390x with gcc
bpf/vmtest-bpf-next-VM_Test-38 success Logs for x86_64-llvm-18 / test (test_progs, false, 360) / test_progs on x86_64 with llvm-18
bpf/vmtest-bpf-next-VM_Test-40 success Logs for x86_64-llvm-18 / test (test_progs_no_alu32, false, 360) / test_progs_no_alu32 on x86_64 with llvm-18
bpf/vmtest-bpf-next-VM_Test-39 success Logs for x86_64-llvm-18 / test (test_progs_cpuv4, false, 360) / test_progs_cpuv4 on x86_64 with llvm-18
bpf/vmtest-bpf-next-VM_Test-2 success Logs for Unittests
bpf/vmtest-bpf-next-VM_Test-1 success Logs for ShellCheck
bpf/vmtest-bpf-next-VM_Test-3 success Logs for Validate matrix.py
bpf/vmtest-bpf-next-VM_Test-0 success Logs for Lint
bpf/vmtest-bpf-next-VM_Test-8 success Logs for set-matrix
bpf/vmtest-bpf-next-VM_Test-7 success Logs for s390x-gcc / build-release
bpf/vmtest-bpf-next-VM_Test-10 success Logs for x86_64-gcc / build-release
bpf/vmtest-bpf-next-VM_Test-5 success Logs for aarch64-gcc / build-release

Commit Message

Tony Ambardar July 23, 2024, 12:30 a.m. UTC
Actually use previously defined LDFLAGS during build and add support for
LDLIBS to link extra standalone libraries e.g. 'argp' which is not provided
by musl libc.

Fixes: 585bf4640ebe ("tools: runqslower: Add EXTRA_CFLAGS and EXTRA_LDFLAGS support")
Signed-off-by: Tony Ambardar <tony.ambardar@gmail.com>
---
v1-v2:
 - add missing CC for Ilya

---
 tools/bpf/runqslower/Makefile | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

Comments

bot+bpf-ci@kernel.org July 23, 2024, 12:34 a.m. UTC | #1
Dear patch submitter,

CI has tested the following submission:
Status:     SUCCESS
Name:       [bpf-next,v2] tools/runqslower: Fix LDFLAGS and add LDLIBS support
Patchwork:  https://patchwork.kernel.org/project/netdevbpf/list/?series=873093&state=*
Matrix:     https://github.com/kernel-patches/bpf/actions/runs/10047138493

No further action is necessary on your part.


Please note: this email is coming from an unmonitored mailbox. If you have
questions or feedback, please reach out to the Meta Kernel CI team at
kernel-ci@meta.com.
bot+bpf-ci@kernel.org July 23, 2024, 1:40 a.m. UTC | #2
Dear patch submitter,

CI has tested the following submission:
Status:     FAILURE
Name:       [bpf-next,v2] tools/runqslower: Fix LDFLAGS and add LDLIBS support
Patchwork:  https://patchwork.kernel.org/project/netdevbpf/list/?series=873093&state=*
Matrix:     https://github.com/kernel-patches/bpf/actions/runs/10050688717

Failed jobs:
test_progs_no_alu32-aarch64-gcc: https://github.com/kernel-patches/bpf/actions/runs/10050688717/job/27779227454
test_progs_no_alu32-s390x-gcc: https://github.com/kernel-patches/bpf/actions/runs/10050688717/job/27779289243
test_progs_no_alu32-x86_64-gcc: https://github.com/kernel-patches/bpf/actions/runs/10050688717/job/27779279451
test_progs_no_alu32-x86_64-llvm-17: https://github.com/kernel-patches/bpf/actions/runs/10050688717/job/27779281639
test_progs_no_alu32-x86_64-llvm-18: https://github.com/kernel-patches/bpf/actions/runs/10050688717/job/27779287211

First test_progs failure (test_progs_no_alu32-aarch64-gcc):
#134 libbpf_get_fd_by_id_opts
libbpf: prog 'check_access': BPF program load failed: Invalid argument
libbpf: prog 'check_access': -- BEGIN PROG LOAD LOG --
0: R1=ctx() R10=fp0
; int BPF_PROG(check_access, struct bpf_map *map, fmode_t fmode) @ test_libbpf_get_fd_by_id_opts.c:27
0: (b7) r0 = 0                        ; R0_w=0
1: (79) r2 = *(u64 *)(r1 +0)
func 'bpf_lsm_bpf_map' arg0 has btf_id 2072 type STRUCT 'bpf_map'
2: R1=ctx() R2_w=trusted_ptr_bpf_map()
; if (map != (struct bpf_map *)&data_input) @ test_libbpf_get_fd_by_id_opts.c:29
2: (18) r3 = 0xffff0000c4be4600       ; R3_w=map_ptr(map=data_input,ks=4,vs=4)
4: (5d) if r2 != r3 goto pc+4         ; R2_w=trusted_ptr_bpf_map() R3_w=map_ptr(map=data_input,ks=4,vs=4)
; int BPF_PROG(check_access, struct bpf_map *map, fmode_t fmode) @ test_libbpf_get_fd_by_id_opts.c:27
5: (79) r0 = *(u64 *)(r1 +8)          ; R0_w=scalar() R1=ctx()
; if (fmode & FMODE_WRITE) @ test_libbpf_get_fd_by_id_opts.c:32
6: (67) r0 <<= 62                     ; R0_w=scalar(smax=0x4000000000000000,umax=0xc000000000000000,smin32=0,smax32=umax32=0,var_off=(0x0; 0xc000000000000000))
7: (c7) r0 s>>= 63                    ; R0_w=scalar(smin=smin32=-1,smax=smax32=0)
;  @ test_libbpf_get_fd_by_id_opts.c:0
8: (57) r0 &= -13                     ; R0_w=scalar(smax=0x7ffffffffffffff3,umax=0xfffffffffffffff3,smax32=0x7ffffff3,umax32=0xfffffff3,var_off=(0x0; 0xfffffffffffffff3))
; int BPF_PROG(check_access, struct bpf_map *map, fmode_t fmode) @ test_libbpf_get_fd_by_id_opts.c:27
9: (95) exit
At program exit the register R0 has smax=9223372036854775795 should have been in [-4095, 0]
processed 9 insns (limit 1000000) max_states_per_insn 0 total_states 0 peak_states 0 mark_read 0
-- END PROG LOAD LOG --
libbpf: prog 'check_access': failed to load: -22
libbpf: failed to load object 'test_libbpf_get_fd_by_id_opts'
libbpf: failed to load BPF skeleton 'test_libbpf_get_fd_by_id_opts': -22
test_libbpf_get_fd_by_id_opts:FAIL:test_libbpf_get_fd_by_id_opts__open_and_load unexpected error: -22


Please note: this email is coming from an unmonitored mailbox. If you have
questions or feedback, please reach out to the Meta Kernel CI team at
kernel-ci@meta.com.
bot+bpf-ci@kernel.org July 23, 2024, 2:45 a.m. UTC | #3
Dear patch submitter,

CI has tested the following submission:
Status:     SUCCESS
Name:       [bpf-next,v2] tools/runqslower: Fix LDFLAGS and add LDLIBS support
Patchwork:  https://patchwork.kernel.org/project/netdevbpf/list/?series=873093&state=*
Matrix:     https://github.com/kernel-patches/bpf/actions/runs/10051523767

No further action is necessary on your part.


Please note: this email is coming from an unmonitored mailbox. If you have
questions or feedback, please reach out to the Meta Kernel CI team at
kernel-ci@meta.com.
Ilya Leoshkevich July 23, 2024, 7:56 a.m. UTC | #4
On Mon, 2024-07-22 at 17:30 -0700, Tony Ambardar wrote:
> Actually use previously defined LDFLAGS during build and add support
> for
> LDLIBS to link extra standalone libraries e.g. 'argp' which is not
> provided
> by musl libc.
> 
> Fixes: 585bf4640ebe ("tools: runqslower: Add EXTRA_CFLAGS and
> EXTRA_LDFLAGS support")
> Signed-off-by: Tony Ambardar <tony.ambardar@gmail.com>
> ---
> v1-v2:
>  - add missing CC for Ilya
> 
> ---
>  tools/bpf/runqslower/Makefile | 3 ++-
>  1 file changed, 2 insertions(+), 1 deletion(-)
> 
> diff --git a/tools/bpf/runqslower/Makefile
> b/tools/bpf/runqslower/Makefile
> index d8288936c912..c4f1f1735af6 100644
> --- a/tools/bpf/runqslower/Makefile
> +++ b/tools/bpf/runqslower/Makefile
> @@ -15,6 +15,7 @@ INCLUDES := -I$(OUTPUT) -I$(BPF_INCLUDE) -
> I$(abspath ../../include/uapi)
>  CFLAGS := -g -Wall $(CLANG_CROSS_FLAGS)
>  CFLAGS += $(EXTRA_CFLAGS)
>  LDFLAGS += $(EXTRA_LDFLAGS)
> +LDLIBS += -lelf -lz
>  
>  # Try to detect best kernel BTF source
>  KERNEL_REL := $(shell uname -r)
> @@ -51,7 +52,7 @@ clean:
>  libbpf_hdrs: $(BPFOBJ)
>  
>  $(OUTPUT)/runqslower: $(OUTPUT)/runqslower.o $(BPFOBJ)
> -	$(QUIET_LINK)$(CC) $(CFLAGS) $^ -lelf -lz -o $@
> +	$(QUIET_LINK)$(CC) $(CFLAGS) $(LDFLAGS) $^ $(LDLIBS) -o $@
>  
>  $(OUTPUT)/runqslower.o: runqslower.h
> $(OUTPUT)/runqslower.skel.h	      \
>  			$(OUTPUT)/runqslower.bpf.o | libbpf_hdrs

Looks reasonable to me, but I don't quite get what exactly did
585bf4640ebe break? In any case:

Acked-by: Ilya Leoshkevich <iii@linux.ibm.com>
Tony Ambardar July 23, 2024, 8:58 a.m. UTC | #5
On Tue, Jul 23, 2024 at 09:56:56AM +0200, Ilya Leoshkevich wrote:
> On Mon, 2024-07-22 at 17:30 -0700, Tony Ambardar wrote:
> > Actually use previously defined LDFLAGS during build and add support
> > for
> > LDLIBS to link extra standalone libraries e.g. 'argp' which is not
> > provided
> > by musl libc.
> > 
> > Fixes: 585bf4640ebe ("tools: runqslower: Add EXTRA_CFLAGS and
> > EXTRA_LDFLAGS support")
> > Signed-off-by: Tony Ambardar <tony.ambardar@gmail.com>
> > ---
> > v1-v2:
> >  - add missing CC for Ilya
> > 
> > ---
> >  tools/bpf/runqslower/Makefile | 3 ++-
> >  1 file changed, 2 insertions(+), 1 deletion(-)
> > 
> > diff --git a/tools/bpf/runqslower/Makefile
> > b/tools/bpf/runqslower/Makefile
> > index d8288936c912..c4f1f1735af6 100644
> > --- a/tools/bpf/runqslower/Makefile
> > +++ b/tools/bpf/runqslower/Makefile
> > @@ -15,6 +15,7 @@ INCLUDES := -I$(OUTPUT) -I$(BPF_INCLUDE) -
> > I$(abspath ../../include/uapi)
> >  CFLAGS := -g -Wall $(CLANG_CROSS_FLAGS)
> >  CFLAGS += $(EXTRA_CFLAGS)
> >  LDFLAGS += $(EXTRA_LDFLAGS)
> > +LDLIBS += -lelf -lz
> >  
> >  # Try to detect best kernel BTF source
> >  KERNEL_REL := $(shell uname -r)
> > @@ -51,7 +52,7 @@ clean:
> >  libbpf_hdrs: $(BPFOBJ)
> >  
> >  $(OUTPUT)/runqslower: $(OUTPUT)/runqslower.o $(BPFOBJ)
> > -	$(QUIET_LINK)$(CC) $(CFLAGS) $^ -lelf -lz -o $@
> > +	$(QUIET_LINK)$(CC) $(CFLAGS) $(LDFLAGS) $^ $(LDLIBS) -o $@
> >  
> >  $(OUTPUT)/runqslower.o: runqslower.h
> > $(OUTPUT)/runqslower.skel.h	      \
> >  			$(OUTPUT)/runqslower.bpf.o | libbpf_hdrs
> 
> Looks reasonable to me, but I don't quite get what exactly did
> 585bf4640ebe break? In any case:
> 
> Acked-by: Ilya Leoshkevich <iii@linux.ibm.com>

I believe 585bf4640ebe added the LDFLAGS definition above but then didn't
include it in the runqslower target's compile command. I only happened to
notice while adding LDLIBS.

Thanks for looking at this.
Ilya Leoshkevich July 23, 2024, 9:57 a.m. UTC | #6
On Tue, 2024-07-23 at 01:58 -0700, Tony Ambardar wrote:
> On Tue, Jul 23, 2024 at 09:56:56AM +0200, Ilya Leoshkevich wrote:
> > On Mon, 2024-07-22 at 17:30 -0700, Tony Ambardar wrote:
> > > Actually use previously defined LDFLAGS during build and add
> > > support
> > > for
> > > LDLIBS to link extra standalone libraries e.g. 'argp' which is
> > > not
> > > provided
> > > by musl libc.
> > > 
> > > Fixes: 585bf4640ebe ("tools: runqslower: Add EXTRA_CFLAGS and
> > > EXTRA_LDFLAGS support")
> > > Signed-off-by: Tony Ambardar <tony.ambardar@gmail.com>
> > > ---
> > > v1-v2:
> > >  - add missing CC for Ilya
> > > 
> > > ---
> > >  tools/bpf/runqslower/Makefile | 3 ++-
> > >  1 file changed, 2 insertions(+), 1 deletion(-)
> > > 
> > > diff --git a/tools/bpf/runqslower/Makefile
> > > b/tools/bpf/runqslower/Makefile
> > > index d8288936c912..c4f1f1735af6 100644
> > > --- a/tools/bpf/runqslower/Makefile
> > > +++ b/tools/bpf/runqslower/Makefile
> > > @@ -15,6 +15,7 @@ INCLUDES := -I$(OUTPUT) -I$(BPF_INCLUDE) -
> > > I$(abspath ../../include/uapi)
> > >  CFLAGS := -g -Wall $(CLANG_CROSS_FLAGS)
> > >  CFLAGS += $(EXTRA_CFLAGS)
> > >  LDFLAGS += $(EXTRA_LDFLAGS)
> > > +LDLIBS += -lelf -lz
> > >  
> > >  # Try to detect best kernel BTF source
> > >  KERNEL_REL := $(shell uname -r)
> > > @@ -51,7 +52,7 @@ clean:
> > >  libbpf_hdrs: $(BPFOBJ)
> > >  
> > >  $(OUTPUT)/runqslower: $(OUTPUT)/runqslower.o $(BPFOBJ)
> > > -	$(QUIET_LINK)$(CC) $(CFLAGS) $^ -lelf -lz -o $@
> > > +	$(QUIET_LINK)$(CC) $(CFLAGS) $(LDFLAGS) $^ $(LDLIBS) -o
> > > $@
> > >  
> > >  $(OUTPUT)/runqslower.o: runqslower.h
> > > $(OUTPUT)/runqslower.skel.h	      \
> > >  			$(OUTPUT)/runqslower.bpf.o | libbpf_hdrs
> > 
> > Looks reasonable to me, but I don't quite get what exactly did
> > 585bf4640ebe break? In any case:
> > 
> > Acked-by: Ilya Leoshkevich <iii@linux.ibm.com>
> 
> I believe 585bf4640ebe added the LDFLAGS definition above but then
> didn't
> include it in the runqslower target's compile command. I only
> happened to
> notice while adding LDLIBS.
> 
> Thanks for looking at this.

Ah, I see. Perhaps what I was passing in CFLAGS was already enough for
my use case, so I didn't notice back then. Thanks for the explanation.
patchwork-bot+netdevbpf@kernel.org July 23, 2024, 8:30 p.m. UTC | #7
Hello:

This patch was applied to bpf/bpf-next.git (master)
by Andrii Nakryiko <andrii@kernel.org>:

On Mon, 22 Jul 2024 17:30:45 -0700 you wrote:
> Actually use previously defined LDFLAGS during build and add support for
> LDLIBS to link extra standalone libraries e.g. 'argp' which is not provided
> by musl libc.
> 
> Fixes: 585bf4640ebe ("tools: runqslower: Add EXTRA_CFLAGS and EXTRA_LDFLAGS support")
> Signed-off-by: Tony Ambardar <tony.ambardar@gmail.com>
> 
> [...]

Here is the summary with links:
  - [bpf-next,v2] tools/runqslower: Fix LDFLAGS and add LDLIBS support
    https://git.kernel.org/bpf/bpf-next/c/3929c8dca3b1

You are awesome, thank you!
diff mbox series

Patch

diff --git a/tools/bpf/runqslower/Makefile b/tools/bpf/runqslower/Makefile
index d8288936c912..c4f1f1735af6 100644
--- a/tools/bpf/runqslower/Makefile
+++ b/tools/bpf/runqslower/Makefile
@@ -15,6 +15,7 @@  INCLUDES := -I$(OUTPUT) -I$(BPF_INCLUDE) -I$(abspath ../../include/uapi)
 CFLAGS := -g -Wall $(CLANG_CROSS_FLAGS)
 CFLAGS += $(EXTRA_CFLAGS)
 LDFLAGS += $(EXTRA_LDFLAGS)
+LDLIBS += -lelf -lz
 
 # Try to detect best kernel BTF source
 KERNEL_REL := $(shell uname -r)
@@ -51,7 +52,7 @@  clean:
 libbpf_hdrs: $(BPFOBJ)
 
 $(OUTPUT)/runqslower: $(OUTPUT)/runqslower.o $(BPFOBJ)
-	$(QUIET_LINK)$(CC) $(CFLAGS) $^ -lelf -lz -o $@
+	$(QUIET_LINK)$(CC) $(CFLAGS) $(LDFLAGS) $^ $(LDLIBS) -o $@
 
 $(OUTPUT)/runqslower.o: runqslower.h $(OUTPUT)/runqslower.skel.h	      \
 			$(OUTPUT)/runqslower.bpf.o | libbpf_hdrs