Message ID | 20200509073915.860588-1-masahiroy@kernel.org (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | bpfilter: check if $(CC) can static link in Kconfig | expand |
On Sat, May 9, 2020 at 12:40 AM Masahiro Yamada <masahiroy@kernel.org> wrote: > > On Fedora, linking static libraries requires the glibc-static RPM > package, which is not part of the glibc-devel package. > > CONFIG_CC_CAN_LINK does not check the capability of static linking, > so you can enable CONFIG_BPFILTER_UMH, then fail to build. > > HOSTLD net/bpfilter/bpfilter_umh > /usr/bin/ld: cannot find -lc > collect2: error: ld returned 1 exit status > > Add CONFIG_CC_CAN_LINK_STATIC, and make CONFIG_BPFILTER_UMH depend > on it. > > Reported-by: Valdis Kletnieks <valdis.kletnieks@vt.edu> > Signed-off-by: Masahiro Yamada <masahiroy@kernel.org> Thanks! Acked-by: Alexei Starovoitov <ast@kernel.org>
On Sun, May 10, 2020 at 10:04 AM Alexei Starovoitov <alexei.starovoitov@gmail.com> wrote: > > On Sat, May 9, 2020 at 12:40 AM Masahiro Yamada <masahiroy@kernel.org> wrote: > > > > On Fedora, linking static libraries requires the glibc-static RPM > > package, which is not part of the glibc-devel package. > > > > CONFIG_CC_CAN_LINK does not check the capability of static linking, > > so you can enable CONFIG_BPFILTER_UMH, then fail to build. > > > > HOSTLD net/bpfilter/bpfilter_umh > > /usr/bin/ld: cannot find -lc > > collect2: error: ld returned 1 exit status > > > > Add CONFIG_CC_CAN_LINK_STATIC, and make CONFIG_BPFILTER_UMH depend > > on it. > > > > Reported-by: Valdis Kletnieks <valdis.kletnieks@vt.edu> > > Signed-off-by: Masahiro Yamada <masahiroy@kernel.org> > > Thanks! > Acked-by: Alexei Starovoitov <ast@kernel.org> Applied to linux-kbuild with Alexei's Ack.
diff --git a/init/Kconfig b/init/Kconfig index 57562a8e2761..d0ff16e93794 100644 --- a/init/Kconfig +++ b/init/Kconfig @@ -49,6 +49,11 @@ config CC_CAN_LINK default $(success,$(srctree)/scripts/cc-can-link.sh $(CC) $(m64-flag)) if 64BIT default $(success,$(srctree)/scripts/cc-can-link.sh $(CC) $(m32-flag)) +config CC_CAN_LINK_STATIC + bool + default $(success,$(srctree)/scripts/cc-can-link.sh $(CC) -static $(m64-flag)) if 64BIT + default $(success,$(srctree)/scripts/cc-can-link.sh $(CC) -static $(m32-flag)) + config CC_HAS_ASM_GOTO def_bool $(success,$(srctree)/scripts/gcc-goto.sh $(CC)) diff --git a/net/bpfilter/Kconfig b/net/bpfilter/Kconfig index fed9290e3b41..045144d4a42c 100644 --- a/net/bpfilter/Kconfig +++ b/net/bpfilter/Kconfig @@ -9,7 +9,7 @@ menuconfig BPFILTER if BPFILTER config BPFILTER_UMH tristate "bpfilter kernel module with user mode helper" - depends on CC_CAN_LINK + depends on CC_CAN_LINK_STATIC default m help This builds bpfilter kernel module with embedded user mode helper
On Fedora, linking static libraries requires the glibc-static RPM package, which is not part of the glibc-devel package. CONFIG_CC_CAN_LINK does not check the capability of static linking, so you can enable CONFIG_BPFILTER_UMH, then fail to build. HOSTLD net/bpfilter/bpfilter_umh /usr/bin/ld: cannot find -lc collect2: error: ld returned 1 exit status Add CONFIG_CC_CAN_LINK_STATIC, and make CONFIG_BPFILTER_UMH depend on it. Reported-by: Valdis Kletnieks <valdis.kletnieks@vt.edu> Signed-off-by: Masahiro Yamada <masahiroy@kernel.org> --- I will insert this after https://patchwork.kernel.org/patch/11515997/ init/Kconfig | 5 +++++ net/bpfilter/Kconfig | 2 +- 2 files changed, 6 insertions(+), 1 deletion(-)