[syslog-ng] linking changes

Balazs Scheidler bazsi at balabit.hu
Wed Mar 2 13:55:20 CET 2011


On Wed, 2011-03-02 at 13:07 +0100, Corinna Vinschen wrote:
> On Mar  2 12:52, Corinna Vinschen wrote:
> > On Mar  2 10:47, Balazs Scheidler wrote:
> > > well, something along the lines of
> > > 
> > > --enable-static --disable-shared
> > > 
> > > and some libtool magic to get all .a files linked into the syslog-ng
> > > binary with -Wl,--whole-archive
> > > 
> > > This doesn't need PIC compilation (as the .a files will be linked into
> > > the main executable) and can be done even for embedded libraries.
> > > 
> > > plugin loading would work on platforms where the .so files can use
> > > symbols from the executable:
> > >   * this is the case on Linux
> > >   * this is definitely not the case on AIX
> > >   * on cygwin, if my guess is right, this will not work, so there all
> > > syslog-ng plugins must be linked in statically too.
> > > 
> > > The alternative is to introduce ivykis as a separate package on cygwin.
> > > Would that be a doable alternative?
> > 
> > We only allow packages in the distro for which we have a an active
> > maintainer.  If you're willing to package and maintain ivykis for
> > Cygwin, or if you have somebody who's willing to do so, then that
> > would be a doable solution, yes.
> > 
> > I gave ivykis a quick whirl, but it doesn't build on Cygwin because
> > Cygwin has no support for pthread_spinlocks so far.
> 
> Unfortunately ivykis uses pthread_spinlocks unconditionally, even though
> they are marked as optional in POSIX-1.2004 and only moved to the Base
> in POSIX-1.2008.

Yes, they are needed because pthread_mutex is not async signal safe.
We've also ran into this issue (on our set of ancient UNIX systems), but
because syslog-ng is only using statically registered signal handlers
(e.g. once at program startup), it's not a real issue, so we simply
removed the locking that protected against parallel signal handler
execution & registration.

-- 
Bazsi



More information about the syslog-ng mailing list