[syslog-ng] linking changes

Corinna Vinschen vinschen at redhat.com
Wed Mar 2 09:57:32 CET 2011


On Mar  1 19:23, Balazs Scheidler wrote:
> On Thu, 2011-02-24 at 10:59 +0100, Corinna Vinschen wrote:
> > On Feb 24 10:31, Balazs Scheidler wrote:
> > > ivykis is not so simple, syslog-ng core depends on that heavily. ivykis
> > > is compiled as a static library (with -fPIC) and then linked into
> > > libsyslog-ng.so
> > > 
> > > The staticlib is just a convenience library, however I'd like that to be
> > > created by the ivykis configure/automake stuff, and would like to avoid
> > > having to rewrite the build system for ivykis. Also, I wouldn't want to
> > > install ivykis (as a shared object) from the syslog-ng tree, as I could
> > > perhaps break people's setup if ivykis becomes more widely available.
> > > (e.g. installed on the system).
> > > 
> > > Do you perhaps have an idea how to solve that differently?
> > 
> > If you don't provide a shared ivykis lib, building libsyslog-ng.so on
> > Cygwin will break.  Assuming ivykis builds on Cygwin, which nobody
> > tested yet either...
> > 
> > Off the top my head I can see two ways around the shared/static problem.
> > 
> > - Add the ivykis source files to libsyslog_ng_la_SOURCES.
> > 
> > - Don't link libsyslog-ng.so against ivykis at all.  Instead,
> >   build ivykis as a module which gets installed into /usr/lib/syslog-ng
> >   and use dlopen/dlsym to call its functions.
> 
> Hmm... I've attempted to create a completely static syslog-ng binary
> today, and although I've some doubts that I could do that for all the
> platforms that syslog-ng supports, it might work for a couple of them. 
> 
> So the general idea is:
>   * everything gets linked into the main syslog-ng binary and
> libsyslog-ng.so/libivykis.so is not used.
>   * even some of the selected modules can be linked in, which is a
> performance win
> 
> The issue with that is that the final link probably can't be performed
> by libtool, I've just manually edited the command line that it emitted.
> 
> I guess this can be a good solution for cygwin too, and will probably
> not be available for all platforms.

Thanks for the info.  I'm curious how this will work.


Corinna

-- 
Corinna Vinschen
Cygwin Project Co-Leader
Red Hat


More information about the syslog-ng mailing list