Re: Why does guile put -lgc into the linker flags?

Nala Ginrut <[email protected]>
Newsgroups gmane.lisp.guile.devel
Message-ID <CAPjoZocLYHSOOe2NK6bHmzd5pQH3iFVvkC4D0tc7Hydvrma1BA@mail.gmail.com>
Hello,

I think the issue is that the libguile.h file does not help downstream
packages isolate themselves from libgc completely. There are many static
functions related to bdwgc in gc-inline.h, which will be combined with
downstream code as a whole to compile, similar to using gc directly in your
code.

Best regards


On Sat, Oct 5, 2024, 21:08 Tomas Volf <[email protected]> wrote:

>
> Hello,
>
> this might be obvious to some, but I am curious why guile puts -lgc to
> the linker flags:
>
> --8<---------------cut here---------------start------------->8---
> $ guile-config link
> -L/gnu/store/mfkz7fvlfpv3ppwbkv0imb19nrf95akf-guile-3.0.9/lib
> -L/gnu/store/pr73chdirm3jc2j7npc6hqzmcwjs7l8m-libgc-8.2.4/lib -lguile-3.0
> -lgc -lpthread -ldl
> --8<---------------cut here---------------end--------------->8---
>
> Why is it necessary?  My guile extension interacts only with the
> libguile, no?  Even the GC-related functions are called via their scm_
> interface, I am never directly interacting with the Boehm GC.  I even
> thought that the fact that Boehm GC is used is an implementation detail,
> not an ABI thing.
>
> I would have thought that just libguile linking with the libgc is
> enough, but I am far from expert in this area.  So I would appreciate if
> someone could enlighten me.
>
> (I am not sure about the -lpthread and -ldl neither, but the -lgc is the
> one that caused me some problems, so I am asking about that one.)
>
> Thanks and have a nice day,
> Tomas
>
> PS: So once we switch to whippet, all extensions will need to be rebuilt
> due to linking against -lgc, which will no longer be Guile's dependency?
> So I guess .so version bump will be used for that?
>
> --
> There are only two hard things in Computer Science:
> cache invalidation, naming things and off-by-one errors.
>
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.