octave-maintainers
[Top][All Lists]
Advanced

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

Re: DEFUN_DLD link rule


From: Michael Goffioul
Subject: Re: DEFUN_DLD link rule
Date: Fri, 30 Aug 2013 14:40:57 -0400

On Fri, Aug 30, 2013 at 2:35 PM, John W. Eaton <address@hidden> wrote:
On 08/29/2013 11:33 PM, Michael Goffioul wrote:

It's related, but not exactly the same. Under Windows, you only need to
link against libraries you directly use in your code. You don't need to
link against the dependencies of those libraries if you don't use
symbols from those deps directly. I understand
that --enable-link-all-dependencies includes all dependencies, but this
is theoretically not needed under Windows.

I may have misunderstood the requirements when I added the
--enable-link-all-dependencies option.

IIRC, I really only had problems with libgnu.la <http://libgnu.la>. I'm
not sure --enable-link-all-dependencies would add it to the libs when
linking liboctinterp, or the oct-files. Because MSVC does not support
auto-exporting symbols, I had to add libgnu.la <http://libgnu.la>
manually in libinterp/Makefile.am, src/Makefile.am
and libinterp/dldfcn/config-module.awk.

Maybe I'm missing something, but I thought that libgnu.la is used as
a libtool convienience library for liboctave.la, so that all the
object files for that library are included in the liboctave shared
library and there is no separate libgnu shared library.  So I don't
understand why it would be necessary to link directly to libgnu.la at
all.  Why should libgnu.la be different from the other convenience
libraries that are used to construct the liboctave shared library?

Because gnulib provides many replacement functions under Windows, which are being picked up by other libraries (liboctinterp and dldfcn) through the overridden headers provided by gnulib.

So even if you initially only wanted it to be used by liboctave, it's actually being used for other components as well, especially on non POSIX-compliant systems, where many replacement functions are being used.

Michael.


reply via email to

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