libnftnl/libnftnl.pc.in
Thomas Petazzoni 78709f7b55 Add Requires.private field to libnftnl.pc
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>
2019-07-05 20:27:45 +02:00

17 lines
342 B
PkgConfig

# libnftnl pkg-config file
prefix=@prefix@
exec_prefix=@exec_prefix@
libdir=@libdir@
includedir=@includedir@
Name: libnftnl
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}