On Mon, Nov 6, 2023 at 5:24 PM Bruce Richardson <bruce.richard...@intel.com> wrote: > > On Mon, Nov 06, 2023 at 05:03:10PM +0100, David Marchand wrote: > > On Mon, Nov 6, 2023 at 5:12 AM Srikanth Yalavarthi > > <syalavar...@marvell.com> wrote: > > > > > > In order to avoid linking with Libs.private, libarchive is not added to > > > ext_deps during the meson setup stage. > > > > > > Since libarchive is not added to ext_deps, cross-compilation or native > > > compilation with libarchive installed in non-standard location fails > > > with errors related to "cannot find -larchive" or "archive.h: No such > > > file or directory". In order to fix the build failures, user is > > > required to define the 'c_args' and 'c_link_args' with '-I<includedir>' > > > and '-L<libdir>'. > > > > > > This patch adds libarchive to ext_deps and further would not require > > > setting c_args and c_link_args externally. > > > > > > Fixes: 40edb9c0d36b ("eal: handle compressed firmware") Cc: > > > sta...@dpdk.org > > > > > > Signed-off-by: Srikanth Yalavarthi <syalavar...@marvell.com> > > > > This breaks static compilation of applications. This can be reproduced > > with test-meson-builds.sh and in GHA (which was not linking examples > > statically, I added a patch in my github repo): > > https://github.com/david-marchand/dpdk/actions/runs/6772879600/job/18406442129#step:19:19572 > > > The libarchive-dev Ubuntu package does not install all its needed > dependencies for static linking. The errors can be resolved by manually > installing the 3 missing -dev packages.
Same with fedora. > > It's less than ideal, but to my mind, DPDK is behaving correctly with this > fix - it is marking that it requires libarchive as a dependency. The fact > that the libarchive.pc file lists static libraries that aren't installed is > outside of our control. The previous implementation hacked around this by > just passing -larchive in all cases, rather than using pkg-config > information. This then caused other issues that the patch submitter hit. Ok, I'll see how to workaround this on my side. -- David Marchand