[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Multi-arch header conflict and pkg-config



On 2017-10-23 12:41 +0000, Hugh McMaster wrote:
> Hi all,
> 
> I'm attempting to resolve a multi-arch conflict with a header file in a package
> I'm working on.
> 
> The header was previously installed with other headers in /usr/include/<package>.
> Due to the conflict, I've modified debian/rules to:
> 1. Override dh_auto_install,
> 2. Create a directory in debian/tmp/usr/include/<triplet>/<package>
>     using mkdir -p; and
> 3. Move the conflicting header to the newly created directory using mv.

OK, that sounds sensible, presuming that the header _should_ be arch-dependent.

The alternative is to fix up the header so it's no longer arch-dependent.

> While these steps resolve the conflict, allowing the package to become
> M-A: same, test programs no longer find the header in the triple include path.
> 
> pkg-config --cflags also just outputs -I/usr/include/<package>.
>
> Does pkgconfig support multiple paths like this?

It does, you just output a list; but of 135 .pc files in my
/usr/lib/x86_64-linux-gnu/pkgconfig only 7 (all core python packages)
need to do this.

This is because the debian toolchain puts both 
/usr/include, and /usr/include/${DEB_HOST_MULTIARCH} on the system search path so a 
#include <package/header.h> should find header.h in both
/usr/include/package/ and /usr/include/${DEB_HOST_MULTIARCH}/package/

or at least I think that's how it's expected to work.

So very few packages should need to explicitly list both of those, if
using a debian toolchain.

How exactly are you testing this?

> If so, how do I modify the pkg-config file to handle multiple /usr/include paths?

by putting
Cflags: -I${includedir}/package -I${includedir}/${DEB_HOST_MULTIARCH}/package
in your .pc file. (and making sure that ${DEB_HOST_MULTIARCH} gets substituted.

But I'd check whether you really need to do that first.

Wookey
-- 
Principal hats:  Linaro, Debian, Wookware, ARM
http://wookware.org/

Attachment: signature.asc
Description: Digital signature


Reply to: