Users of the xdp_sample_user infra should be explicitly linked
with the standard math library (`-lm`). Otherwise, the following
happens:
/usr/bin/ld: xdp_sample_user.c:(.text+0x59fc): undefined reference to `ceil'
/usr/bin/ld: xdp_sample_user.c:(.text+0x5a0d): undefined reference to `ceil'
/usr/bin/ld: xdp_sample_user.c:(.text+0x5adc): undefined reference to `floor'
/usr/bin/ld: xdp_sample_user.c:(.text+0x5b01): undefined reference to `ceil'
/usr/bin/ld: xdp_sample_user.c:(.text+0x5c1e): undefined reference to `floor'
/usr/bin/ld: xdp_sample_user.c:(.text+0x5c43): undefined reference to `ceil
[...]
That happened previously, so there's a block of linkage flags in the
Makefile. xdp_router_ipv4 has been transferred to this infra quite
recently, but hasn't been added to it. Fix.
Fixes: 85bf1f51691c ("samples: bpf: Convert xdp_router_ipv4 to XDP samples helper")
Signed-off-by: Alexander Lobakin <[email protected]>
---
samples/bpf/Makefile | 1 +
1 file changed, 1 insertion(+)
diff --git a/samples/bpf/Makefile b/samples/bpf/Makefile
index b4fa0e69aa14..342a41a10356 100644
--- a/samples/bpf/Makefile
+++ b/samples/bpf/Makefile
@@ -219,6 +219,7 @@ TPROGLDLIBS_xdp_redirect += -lm
TPROGLDLIBS_xdp_redirect_cpu += -lm
TPROGLDLIBS_xdp_redirect_map += -lm
TPROGLDLIBS_xdp_redirect_map_multi += -lm
+TPROGLDLIBS_xdp_router_ipv4 += -lm
TPROGLDLIBS_tracex4 += -lrt
TPROGLDLIBS_trace_output += -lrt
TPROGLDLIBS_map_perf_test += -lrt
--
2.35.1
On Mon, Apr 4, 2022 at 4:57 AM Alexander Lobakin
<[email protected]> wrote:
>
> Users of the xdp_sample_user infra should be explicitly linked
> with the standard math library (`-lm`). Otherwise, the following
> happens:
>
> /usr/bin/ld: xdp_sample_user.c:(.text+0x59fc): undefined reference to `ceil'
> /usr/bin/ld: xdp_sample_user.c:(.text+0x5a0d): undefined reference to `ceil'
> /usr/bin/ld: xdp_sample_user.c:(.text+0x5adc): undefined reference to `floor'
> /usr/bin/ld: xdp_sample_user.c:(.text+0x5b01): undefined reference to `ceil'
> /usr/bin/ld: xdp_sample_user.c:(.text+0x5c1e): undefined reference to `floor'
> /usr/bin/ld: xdp_sample_user.c:(.text+0x5c43): undefined reference to `ceil
> [...]
I actually don't get these, but applied to bpf-next anyway.
>
> That happened previously, so there's a block of linkage flags in the
> Makefile. xdp_router_ipv4 has been transferred to this infra quite
> recently, but hasn't been added to it. Fix.
>
> Fixes: 85bf1f51691c ("samples: bpf: Convert xdp_router_ipv4 to XDP samples helper")
> Signed-off-by: Alexander Lobakin <[email protected]>
> ---
> samples/bpf/Makefile | 1 +
> 1 file changed, 1 insertion(+)
>
> diff --git a/samples/bpf/Makefile b/samples/bpf/Makefile
> index b4fa0e69aa14..342a41a10356 100644
> --- a/samples/bpf/Makefile
> +++ b/samples/bpf/Makefile
> @@ -219,6 +219,7 @@ TPROGLDLIBS_xdp_redirect += -lm
> TPROGLDLIBS_xdp_redirect_cpu += -lm
> TPROGLDLIBS_xdp_redirect_map += -lm
> TPROGLDLIBS_xdp_redirect_map_multi += -lm
> +TPROGLDLIBS_xdp_router_ipv4 += -lm
> TPROGLDLIBS_tracex4 += -lrt
> TPROGLDLIBS_trace_output += -lrt
> TPROGLDLIBS_map_perf_test += -lrt
> --
> 2.35.1
>
Hello:
This patch was applied to bpf/bpf-next.git (master)
by Andrii Nakryiko <[email protected]>:
On Mon, 4 Apr 2022 13:54:51 +0200 you wrote:
> Users of the xdp_sample_user infra should be explicitly linked
> with the standard math library (`-lm`). Otherwise, the following
> happens:
>
> /usr/bin/ld: xdp_sample_user.c:(.text+0x59fc): undefined reference to `ceil'
> /usr/bin/ld: xdp_sample_user.c:(.text+0x5a0d): undefined reference to `ceil'
> /usr/bin/ld: xdp_sample_user.c:(.text+0x5adc): undefined reference to `floor'
> /usr/bin/ld: xdp_sample_user.c:(.text+0x5b01): undefined reference to `ceil'
> /usr/bin/ld: xdp_sample_user.c:(.text+0x5c1e): undefined reference to `floor'
> /usr/bin/ld: xdp_sample_user.c:(.text+0x5c43): undefined reference to `ceil
> [...]
>
> [...]
Here is the summary with links:
- [bpf-next] samples: bpf: fix linking xdp_router_ipv4 after migration
https://git.kernel.org/bpf/bpf-next/c/fc843ccd8e4c
You are awesome, thank you!
--
Deet-doot-dot, I am a bot.
https://korg.docs.kernel.org/patchwork/pwbot.html
From: Andrii Nakryiko <[email protected]>
Date: Mon, 4 Apr 2022 14:45:43 -0700
> On Mon, Apr 4, 2022 at 4:57 AM Alexander Lobakin
> <[email protected]> wrote:
> >
> > Users of the xdp_sample_user infra should be explicitly linked
> > with the standard math library (`-lm`). Otherwise, the following
> > happens:
> >
> > /usr/bin/ld: xdp_sample_user.c:(.text+0x59fc): undefined reference to `ceil'
> > /usr/bin/ld: xdp_sample_user.c:(.text+0x5a0d): undefined reference to `ceil'
> > /usr/bin/ld: xdp_sample_user.c:(.text+0x5adc): undefined reference to `floor'
> > /usr/bin/ld: xdp_sample_user.c:(.text+0x5b01): undefined reference to `ceil'
> > /usr/bin/ld: xdp_sample_user.c:(.text+0x5c1e): undefined reference to `floor'
> > /usr/bin/ld: xdp_sample_user.c:(.text+0x5c43): undefined reference to `ceil
> > [...]
>
> I actually don't get these, but applied to bpf-next anyway.
Depends on the compiler/linker I guess. They appear on `make LLVM=1`
on my setup.
Thanks!
>
> >
> > That happened previously, so there's a block of linkage flags in the
> > Makefile. xdp_router_ipv4 has been transferred to this infra quite
> > recently, but hasn't been added to it. Fix.
> >
> > Fixes: 85bf1f51691c ("samples: bpf: Convert xdp_router_ipv4 to XDP samples helper")
> > Signed-off-by: Alexander Lobakin <[email protected]>
> > ---
> > samples/bpf/Makefile | 1 +
> > 1 file changed, 1 insertion(+)
> >
> > diff --git a/samples/bpf/Makefile b/samples/bpf/Makefile
> > index b4fa0e69aa14..342a41a10356 100644
> > --- a/samples/bpf/Makefile
> > +++ b/samples/bpf/Makefile
> > @@ -219,6 +219,7 @@ TPROGLDLIBS_xdp_redirect += -lm
> > TPROGLDLIBS_xdp_redirect_cpu += -lm
> > TPROGLDLIBS_xdp_redirect_map += -lm
> > TPROGLDLIBS_xdp_redirect_map_multi += -lm
> > +TPROGLDLIBS_xdp_router_ipv4 += -lm
> > TPROGLDLIBS_tracex4 += -lrt
> > TPROGLDLIBS_trace_output += -lrt
> > TPROGLDLIBS_map_perf_test += -lrt
> > --
> > 2.35.1
Al