On Thu, Jul 04, 2019 at 09:39:32AM +0100, Luca Boccassi wrote: > On Wed, 2019-07-03 at 17:40 +0100, Bruce Richardson wrote: > > With Debian and Ubuntu, the default installation path for the 64-bit > > libraries is set to e.g. /usr/local/lib/x86_64-linux-gnu/, compared > > to > > /usr/local/lib64 on Fedora and Redhat distributions. This causes > > issues > > when using "pkg-config --define-prefix" since pkg-config assumes the > > prefix > > to be the grandparent of where the .pc file is. On Ubuntu we then get > > the > > cflags include path as being "/path/to/install- > > root/usr/local/lib/include" > > i.e. with an extra "lib" in the path. > > > > This issue only applies for test installs on Ubuntu and similar > > distros, > > and is not a problem for regular installs since the --define-prefix > > parameter would not be passed to pkg-config in those cases. > > > > The workaround for this in our test build script is to explicitly > > make > > "lib" the "libdir" setting for the install, overriding the distro- > > provided > > default. > > > > Fixes: 7f80a2102bbb ("devtools: test pkg-config file") > > > > Signed-off-by: Bruce Richardson < > > bruce.richard...@intel.com > > > > > --- > > devtools/test-meson-builds.sh | 4 +++- > > 1 file changed, 3 insertions(+), 1 deletion(-) > > > > diff --git a/devtools/test-meson-builds.sh b/devtools/test-meson- > > builds.sh > > index 57d1af47e..7efc590fe 100755 > > --- a/devtools/test-meson-builds.sh > > +++ b/devtools/test-meson-builds.sh > > @@ -76,12 +76,14 @@ for c in gcc clang ; do > > done > > > > # test compilation with minimal x86 instruction set > > +# set the install path for libraries to "lib" explicitly to prevent > > problems > > +# with pkg-config prefixes if installed in "lib/x86_64-linux-gnu" > > later. > > default_machine='nehalem' > > ok=$(cc -march=$default_machine -E - < /dev/null > /dev/null 2>&1 || > > echo false) > > if [ "$ok" = "false" ] ; then > > default_machine='corei7' > > fi > > -build build-x86-default -Dmachine=$default_machine $use_shared > > +build build-x86-default -Dlibdir=lib -Dmachine=$default_machine > > $use_shared > > > > # enable cross compilation if gcc cross-compiler is found > > c=aarch64-linux-gnu-gcc > > I have sent a patch upstream to pkg-config to fix the issue, as it > should really support the multiarch layout: > > https://gitlab.freedesktop.org/pkg-config/pkg-config/merge_requests/4
Thanks, Luca, good to have that fixed at source. Either way the fix in DPDK for our testing is harmless and ensures things pass generally. /Bruce