[gnutls-devel] Automatic library initialization
Tim Ruehsen
tim.ruehsen at gmx.de
Mon Nov 16 16:54:18 CET 2015
On Monday 16 November 2015 16:23:31 Nikos Mavrogiannopoulos wrote:
> On Mon, Nov 16, 2015 at 3:17 PM, Nikos Mavrogiannopoulos
>
> <nmav at gnutls.org> wrote:
> >>> > IMO, you should revert your decision and should not automatic
> >>> > initialize.
> >>> > For someone who badly needs that (beyond my imagination right now), a
> >>> > ./configure flag and GNUTLS_NO_EXPLICIT_INIT should do it. Maybe it
> >>> > should be
> >>> > GNUTLS_AUTOMATIC_INIT, defaulting to 0.
> >>>
> >>> That is too late now as it would be an ABI break. However a configure
> >>> flag is certainly an easy thing to be added, but it would only solve
> >>> your problem if you target some specific systems. What is the use case
> >>> you are trying to address?
> >>
> >> A ./configure flag would be enough. I'll ask the Debian maintainer(s) to
> >> apply such a flag. As long as there are no packages/projects that *rely*
> >> on automatic init, there should be no problem. If there are, these
> >> packages should be fixed.
> >
> > That is hardly a solution. An API is not distribution specific, and if
> > the gnutls' API doesn't require gnutls_global_init(), that should be
> > for any distribution including debian. We need to find something
> > better to prevent the constructor being run for specific applications
>
> Something like the following. Have each program not wishing to use
> global initialization to define a symbol which overrides a weak one
> from gnutls. In practice that would mean setting:
> GNUTLS_SKIP_GLOBAL_INIT
>
> in some global section in your program. That can also be easily
> backported in 3.3.x and you can check for that feature with an ifdef.
> Would that be acceptable?
Brilliant idea. I'll use it for my projects... but other projects won't
benefit immediately (they first have to know).
Regards, Tim
More information about the Gnutls-devel
mailing list