]> git.ipfire.org Git - thirdparty/libnftnl.git/commitdiff
Add Requires.private field to libnftnl.pc
authorThomas Petazzoni <thomas.petazzoni@bootlin.com>
Fri, 5 Jul 2019 08:34:19 +0000 (11:34 +0300)
committerPablo Neira Ayuso <pablo@netfilter.org>
Fri, 5 Jul 2019 18:27:45 +0000 (20:27 +0200)
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.

[baruch: use Requires.private; update commit log]

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
Signed-off-by: Baruch Siach <baruch@tkos.co.il>
Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
libnftnl.pc.in

index fd5cc6ac5ca49bb4fd2de9867b188ea461612ed8..ef94d749dd8651b36950f68d7f13a1974391b4ce 100644 (file)
@@ -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}