[Libguestfs] [hivex PATCH 7/8] build: link hivex statically into C programs compiled against build dir

Laszlo Ersek lersek at redhat.com
Thu Sep 9 10:39:23 UTC 2021


On 09/08/21 17:48, Richard W.M. Jones wrote:
> On Wed, Sep 08, 2021 at 03:27:57PM +0200, Laszlo Ersek wrote:
>> This static-only linking allows the libguestfs daemon ("guestfsd") to
>> launch in the appliance, without unresolved hivex symbols, when libguestfs
>> is built against the hivex build dir. (Libguestfs's automatic *package*
>> collection for the appliance, based on the shared library requirements of
>> "guestfsd", cannot cover hivex when hivex is provided by a local build
>> directory.)
>>
>> Linking hivex statically into *host-side* C programs that are compiled
>> against the hivex build dir is only a small penalty.
>>
>> Signed-off-by: Laszlo Ersek <lersek at redhat.com>
>> ---
>>  lib/local/hivex.pc.in | 2 +-
>>  1 file changed, 1 insertion(+), 1 deletion(-)
>>
>> diff --git a/lib/local/hivex.pc.in b/lib/local/hivex.pc.in
>> index d899cb01a282..6f0b5bb44237 100644
>> --- a/lib/local/hivex.pc.in
>> +++ b/lib/local/hivex.pc.in
>> @@ -32,4 +32,4 @@ Version: @VERSION@
>>  Description: Read and write Windows Registry Hive files.
>>  Requires:
>>  Cflags: -I${includedir}
>> -Libs: -L${libdir} -lhivex
>> +Libs: -L${libdir} -l:libhivex.a
>
> Worth a comment here in the .pc.in file?  I was previously not aware
> this magic was possible.

How about squashing this:

> diff --git a/lib/local/hivex.pc.in b/lib/local/hivex.pc.in
> index 6f0b5bb44237..941638939fa3 100644
> --- a/lib/local/hivex.pc.in
> +++ b/lib/local/hivex.pc.in
> @@ -32,4 +32,8 @@ Version: @VERSION@
>  Description: Read and write Windows Registry Hive files.
>  Requires:
>  Cflags: -I${includedir}
> +# The colon notation forces an exact filename search when linking; here
> +# effectively disabling shared library lookup. (Refer to "--library" in ld(1).)
> +# Statically linking hivex matters mainly for "guestfsd", which runs in the
> +# appliance.
>  Libs: -L${libdir} -l:libhivex.a

Thanks!
Laszlo




More information about the Libguestfs mailing list