[gnutls-devel] Guile bindings for GnuTLS don't build as shared library on MinGW

Ludovic Courtès ludo at gnu.org
Thu Dec 11 19:12:21 CET 2014

Eli Zaretskii <eliz at gnu.org> skribis:

>> From: ludo at gnu.org (Ludovic Courtès)
>> Cc: gnutls-devel at lists.gnutls.org
>> Date: Wed, 10 Dec 2014 18:45:39 +0100
>> >   /bin/sh ../../libtool  --tag=CC   --mode=compile gcc -DHAVE_CONFIG_H -I. -I../..  -I../../lib/includes  -I../../lib/includes     -I../../extra/includes  -I../..  -I. -Id:/usr/include -Wno-strict-prototypes  -I../../gl -I../../gl -Id:/usr/include/guile/2.0 -Id:/usr/include   -O2 -g3 -MT guile_gnutls_v_2_la-utils.lo -MD -MP -MF .deps/guile_gnutls_v_2_la-utils.Tpo -c -o guile_gnutls_v_2_la-utils.lo `test -f 'utils.c' || echo './'`utils.c
>> >   libtool: compile:  gcc -DHAVE_CONFIG_H -I. -I../.. -I../../lib/includes -I../../lib/includes -I../../extra/includes -I../.. -I. -Id:/usr/include -Wno-strict-prototypes -I../../gl -I../../gl -Id:/usr/include/guile/2.0 -Id:/usr/include -O2 -g3 -MT guile_gnutls_v_2_la-utils.lo -MD -MP -MF .deps/guile_gnutls_v_2_la-utils.Tpo -c utils.c  -DDLL_EXPORT -DPIC -o .libs/guile_gnutls_v_2_la-utils.o
>> So it builds both the static and the PIC version.
> Not sure I follow you here.  The above is just one command, and it
> builds only the static version.

Oh right, I misinterpreted that.

> The -DPIC is ignored on Windows, right?

Dunno, is it?

>> The command line lacks -no-undefined compared to the other one you
>> posted, which may be the explanation.  Could you try:
>>   make clean -C guile
>>   make -C guile LDFLAGS=-no-undefined
>> ?
> Yes, it solves the problem, thanks.

OK.  I’ve added it in 4ab5ad2.

> Now, as long as I have your attention: having succeeded in building
> the Guile extensions, I've run the related tests, and saw these two
> problems:
>   . anonymous-auth.scm, session-record-port.scm, x509-auth.scm, and
>     openpgp-auth.scm tests all fail because they use primitive-fork,
>     which isn't supported on Windows.  Is there any chance these tests
>     could be rewritten to not use that API?

I don’t see how that could be done.

>   . openpgp-keyring.scm fails because it doesn't open
>     openpgp-keyring.gpg, a binary file, in binary mode.  Here's the
>     patch to fix that:

Commit df80177 does something similar, but that works with older Guile

Nikos: could you cherry-pick those to the active branches?  Or is there
a document describing the active branches and what can or cannot go on
them?  That would allow me to do it by myself.

Thanks Eli for your feedback,

More information about the Gnutls-devel mailing list