<html>
<head>
<base href="https://bugs.freedesktop.org/" />
</head>
<body>
<p>
<div>
<b><a class="bz_bug_link
bz_status_REOPENED "
title="REOPENED - udev.pc should go to libdir/pkgconfig not datadir/pkgconfig"
href="https://bugs.freedesktop.org/show_bug.cgi?id=89769#c8">Comment # 8</a>
on <a class="bz_bug_link
bz_status_REOPENED "
title="REOPENED - udev.pc should go to libdir/pkgconfig not datadir/pkgconfig"
href="https://bugs.freedesktop.org/show_bug.cgi?id=89769">bug 89769</a>
from <span class="vcard"><a class="email" href="mailto:Marc-Antoine@Perennou.com" title="Marc-Antoine Perennou <Marc-Antoine@Perennou.com>"> <span class="fn">Marc-Antoine Perennou</span></a>
</span></b>
<pre>(In reply to Kay Sievers from <a href="show_bug.cgi?id=89769#c7">comment #7</a>)
<span class="quote">>
> This is all wrong. $libexedir is NOT arch specific. But none of the wrong
> things here really matter.
>
> What matters is that systemd.pc and udev.pc are GENERIC files,
> not arch-dependent.
>
> The SECONDARY arch needs to find the GENERIC file, but it will not look
> into the PRIMARY arch's $libdir.
>
> These files just do not belong into $libdir, it is not what they are provided
> for and it will just not work as intended.
>
> Also, that systemd.pc carries $libdir as a variable to point out the
> PRIMARY arch, is no indication that this file should live in $libdir,
> quite the opposite is the case.</span >
This file in itself is not arch-specific, sure, as it's only a text file.
Its contents though is arch-specific.
Just picture it this way:
I have a multiarch system (and by multiarch I do not mean multilib, but a
system which can cross-compile to random archs)
My principal arch is x86_64, and I use my multiarch system to build arm
binaries.
systemd.pc and udev.pc built for x86_64 will contain paths to my x86_64 libdir.
The libraries contained into this lib are arch-dependents. When I build
something which needs udev for x86_64, it will look for pkg-config files in my
x86_64 libdir.
Now let's say I want to cross-compile the same software for arm. If systemd
installs its udev.pc in $datadir and pkg-config reads that, it will try to link
the arm binary to the x86_64 libs. If systemd however does the right things and
installs it into the arch-specific libdir, the compilation for arm will get the
right pkg-config files for the arm libdir.
Any pkg-config file containing paths to arch-sepcific stuff such as libraries
should go into an arch-specific directory.</pre>
</div>
</p>
<hr>
<span>You are receiving this mail because:</span>
<ul>
<li>You are the QA Contact for the bug.</li>
<li>You are the assignee for the bug.</li>
</ul>
</body>
</html>