[syslog-ng] Make throws link errors over glib2 when compiling syslog-ng 3.0.1

Balazs Scheidler bazsi at balabit.hu
Wed Jan 14 12:52:34 CET 2009


On Wed, 2009-01-14 at 08:51 +0100, Joost De Cock wrote:
> Hello all,
> 
> I know that the issue of rewriting syslog messages is a recurring debate 
> here on the list :-) but I'm trying to get 3.0.1 up and running as we 
> need to strip out some info to protect the privacy of our users (there, 
> good cause flag set).
> 
> I'm having a go under Cygwin and configure runs fine, but make dies on 
> me in a flurry of messages (see below).
> I'm not much of a devhead, but these seem to be glib2 issue to me. Yet 
> I'm a but stumped on how to beat some sense into it, and any pointer 
> would be hugely appreciated.
> 
> Thanks in advance,
> Joost
> 
> 
> tail of configure output:
> 
> syslog-ng Open Source Edition 3.0.1 configured
>  Compiler options:
>   compiler                    : gcc
>   compiler options            : -g -O2 -Wall  -I/usr/include/glib-2.0 
> -I/usr/lib
> /glib-2.0/include   -I/usr/include/eventlog       -D_GNU_SOURCE 
> -D_LARGEFILE_SOU
> RCE -D_FILE_OFFSET_BITS=64
>   linker flags                :
>   prefix                      : /usr/local
>  Features:
>   Sun STREAMS support         : no
>   Sun Door support            : no
>   Debug symbols               : no
>   GCC profiling               : no
>   Memtrace                    : no
>   IPV6 support                : no
>   spoof-source support        : no
>   tcp-wrapper support         : no
>   SSL support                 : yes
>   SQL support                 : no
>   Linux capability support    : no
>   PCRE support                : no
>   Env wrapper support         : no
> 
> 
> the part where make goes of the rails:
> 
> gcc  -g -O2 -Wall   -o syslog-ng.exe  main.o libsyslog-ng.a    
> -Wl,-Bstatic -lfl
>  -lglib-2.0 -lintl -liconv   -levtlog   -lssl -lcrypto        
> -Wl,-Bdynamic  -ld
> l

hmm.. syslog-ng decides to be threaded/non-threaded based on the
--enable-sql setting (e.g. if SQL destinations are enabled, syslog-ng
becomes threaded).

As it seems your glib is missing threading related symbols:
__imp__g_thread_use_default_impl, however syslog-ng should not be
threaded at all.

hmm...hmm.. the above variable is defined inside glib and not in gthread, 
and still the linking phase does not find it.

Maybe it is a consequence of this error message:

/usr/lib/gcc/i686-pc-cygwin/3.4.4/../../../libcrypto.a(cryptlib.o):cryptlib.c:(.
text+0x260): multiple definition of `_DllMain at 12'
/usr/lib/gcc/i686-pc-cygwin/3.4.4/../../../libglib-2.0.a(gutils.o):gutils.c:(.te
xt+0x2c0): first defined here

and this causes glib to be dropped from the link. can you attempt configure syslog-ng
using --enable-dynamic-linking ? Checking out the glib source, glib does not seem
to be prepared to be used in static linking, but I may be wrong here.

-- 
Bazsi



More information about the syslog-ng mailing list