guile-user
[Top][All Lists]
Advanced

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

Re: guile-2.0.pc misses a few dependency libraries


From: Mark H Weaver
Subject: Re: guile-2.0.pc misses a few dependency libraries
Date: Mon, 30 Jan 2012 12:02:29 -0500
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/24.0.92 (gnu/linux)

address@hidden (Ludovic Courtès) writes:

> Eli Zaretskii <address@hidden> skribis:
>
>> When statically linking programs against libguile-2.0.a, I get
>> unresolved externals.  This is on MS-Windows, but I don't think this
>> is related to the problem.
>>
>> I finally traced that to the contents of guile-2.0.pc file:
>>
>>   Libs: -L${libdir} -lguile-2.0 -Ld:/usr/lib -lgc  
>>   Libs.private: d:/usr/lib/libgmp.dll.a -Ld:/usr/lib
>> d:/usr/lib/libltdl.dll.a -Ld:/usr/lib -lffi -lregex -lcrypt -lws2_32
>> -lm
>>
>> However, libguile-2.0.la shows more dependency libraries:
>>
>>   dependency_libs=' -lgc -lffi -lunistring -liconv -lregex -lintl
>> -liconv -lgmp -ltdl -lregex -lintl -lwsock32 -lole32 -luuid
>> -lmsvcp60 -lcrypt -lws2_32'
>>
>> As you see, quite a few libraries are missing from guile-2.0.pc, and
>> also a several libraries need to appear more than once in the link
>> command line.
>
> Commit 58f86505d658359508732c8f187bc37d010074d0 (see below) should solve
> most of that, but not all, since I don’t know where -lole32, and -lregex
> come from, for example.

It seems to me that adding a fixed list of indirect dependencies to
guile-2.0.pc.in is the wrong approach, because the indirect dependencies
may depend on the platform, as well as the specific versions/variants of
any of the direct or indirect dependencies.

How do other programs that use 'pkg-config' deal with this issue?
Are they all broken in this way?

If we really need the full list of indirect dependencies, maybe we
should somehow extract it from the generated .la file?

    Thanks,
      Mark


> commit 58f86505d658359508732c8f187bc37d010074d0 (HEAD, 
> refs/remotes/origin/stable-2.0, refs/heads/stable-2.0)
> Author: Ludovic Courtès <address@hidden>
> Date:   Mon Jan 30 00:17:34 2012 +0100
>
>     Augment `Libs.private' with for non-GNU platforms.
>     
>     Reported by Eli Zaretskii <address@hidden>.
>     
>     * meta/guile-2.0.pc.in (Libs.private): Add all the optional libraries
>       that may be pulled via Gnulib on non-GNU platforms.
>
>       Modified meta/guile-2.0.pc.in
> diff --git a/meta/guile-2.0.pc.in b/meta/guile-2.0.pc.in
> index ecca778..1bda734 100644
> --- a/meta/guile-2.0.pc.in
> +++ b/meta/guile-2.0.pc.in
> @@ -15,5 +15,8 @@ Name: GNU Guile
>  Description: GNU's Ubiquitous Intelligent Language for Extension
>  Version: @GUILE_VERSION@
>  Libs: -L${libdir} address@hidden@ @BDW_GC_LIBS@
> -Libs.private: @LIB_CLOCK_GETTIME@ @LIBGMP@ @LIBLTDL@ @LIBFFI_LIBS@ 
> @GUILE_LIBS@
> +Libs.private: @LIB_CLOCK_GETTIME@ @LIBGMP@ @LIBLTDL@ @LIBFFI_LIBS@   \
> +  @LIBUNISTRING@ @GUILE_LIBS@ @LIBICONV@ @LIBINTL@ @LIBSOCKET@               
> \
> +  @SERVENT_LIB@ @HOSTENT_LIB@ @GETADDRINFO_LIB@ @INET_NTOP_LIB@              
> \
> +  @INET_PTON_LIB@
>  Cflags: -I${pkgincludedir}/@GUILE_EFFECTIVE_VERSION@ @GUILE_CFLAGS@ 
> @BDW_GC_CFLAGS@



reply via email to

[Prev in Thread] Current Thread [Next in Thread]