On Fri, Jul 05, 2019 at 11:34:19AM +0300, Baruch Siach wrote: > 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. Applied, thanks.