Re: [sigc] Linking dynamically with SigC++ (now rather: License)



Am Freitag, den 07.07.2006, 09:27 +0200 schrieb Ulrich Eckhardt:
> On Thursday 06 July 2006 18:20, Aristid Breitkreuz wrote:
> > If I understand it correctly, the exception must be bullet-proof (of
> > course ;-) ) and in difference to the LGPL allow the following
> > use-cases:
> >      1. Using all the template stuff (generally code in headers with
> >         more than 10 lines per functional unit) in libsigc++ from
> >         application / library code.
> 
> Right. This permission was already given but is not explicitly stated in the 
> distributed license.

This is the point.

> 
> >      2. Linking libsigc++ statically, at least on Windows or other
> >         technically restricted platforms (I dislike Windows-DLLs).
> 
> Nope. Even on a theoretical platform where you can't link dynamically (MS 
> Windows isn't one) you could still ship at least compiled objectfiles to 
> allow the user to relink their code with a changed libsigC++. The fact that 
> you dislike win32 DLLs and that they are inferior to Unix shared objects in 
> some aspects doesn't affect the users' freedoms.

What changes are you thinking about?

> 
> You also asked in a different mail why libsigC++ has any non-header parts at 
> all, and the reason is because it can. There are some background bookkeeping 
> things that are the exact same for every part of it and as such they can be 
> compiled into a shared library so it doesn't take up RAM and cachelines in 
> every program that uses libsigC++. Of course, creating a completely 
> header-only libsigC++ would be possible, but that would be like enforcing 
> static linking and might even lead to code bloat on not-so-smart 
> compilers/linkers.

So if a user really wants to link completely statically, he can, at
least with the currently proposed exception mechanism (or even
without?). He just has to copy all code into headers, maybe make it
templates or split into functions of less than 10 lines of length and
done he is.

What is the point in allowing any user to replace versions of the
libsigc++? (This is no rhetoric question.) This is already hardly
possible right now because the header parts of the library already are
quite major. Please don't take me wrong, I understand if you want to
protect some freedoms, I just dare ask why - if I think the taken
measures impose disadvantages.

On most platforms the generated code bloat cannot even be thought of
being relevant. All template stuff is already in the headers and the
shared library (libsigc++-2.0.so.0.0.0) is only 24 kilobytes here.

> 
> Uli

Aristid




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