[PATCH libnftnl v2] Add Requires.private field to libnftnl.pc

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



From: Thomas Petazzoni <thomas.petazzoni@xxxxxxxxxxx>

Static linking userspace programs such as nftables against libnftnl
currently doesn't work out of the box, because libnftnl is linked
against libmnl, but this isn't expressed in libnftnl pkg-config
file:

  CCLD   nft
[...]/bfin-buildroot-uclinux-uclibc/sysroot/usr/lib/libnftnl.a(table.o): In function `_nft_table_nlmsg_parse':
table.c:(.text+0x480): undefined reference to `_mnl_attr_parse'
table.c:(.text+0x492): undefined reference to `_mnl_attr_get_str'
table.c:(.text+0x4a8): undefined reference to `_mnl_attr_get_u32'
table.c:(.text+0x4ca): undefined reference to `_mnl_attr_get_u32'
[...]

The Libs.private field is specifically designed for such usage:

>From pkg-config documentation:

  Requires.private:

    A list of packages required by this package. The difference from
    Requires is that the packages listed under Requires.private are not
    taken into account when a flag list is computed for dynamically
    linked executable (i.e., when --static was not specified). In the
    situation where each .pc file corresponds to a library,
    Requires.private shall be used exclusively to specify the
    dependencies between the libraries.

Therefore, this patch adds a reference to libmnl in the Requires.private
field of libnftnl pkg-config file.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@xxxxxxxxxxx>
[baruch: use Requires.private; update commit log]
Signed-off-by: Baruch Siach <baruch@xxxxxxxxxx>
---
v2:
  Use Requires.private (Jan Engelhardt)
---
 libnftnl.pc.in | 1 +
 1 file changed, 1 insertion(+)

diff --git a/libnftnl.pc.in b/libnftnl.pc.in
index fd5cc6ac5ca4..ef94d749dd86 100644
--- a/libnftnl.pc.in
+++ b/libnftnl.pc.in
@@ -10,6 +10,7 @@ Description: Netfilter nf_tables infrastructure library
 URL: http://netfilter.org/projects/libnftnl/
 Version: @VERSION@
 Requires:
+Requires.private: libmnl
 Conflicts:
 Libs: -L${libdir} -lnftnl
 Cflags: -I${includedir}
-- 
2.20.1




[Index of Archives]     [Netfitler Users]     [Berkeley Packet Filter]     [LARTC]     [Bugtraq]     [Yosemite Forum]

  Powered by Linux