[syslog-ng] Compiling & Using syslog-ng 1.9.10 on Solaris 10

Balazs Scheidler bazsi at balabit.hu
Mon May 1 14:40:13 CEST 2006


On Wed, 2006-04-26 at 10:06 +0200, Philippe JOYEZ wrote:
> Hello all,
> 
> I've finally succedeed in compiling syslog-ng on my new Solaris 10 box
> using the following tasks:
> 
> Modifications src/Makefile (Add -lrt)
> 75c75
> < LIBS = -lpthread -lnsl -lsocket -ldoor  -ll -L/usr/local/lib
> -lglib-2.0 -lintl   -L/usr/local/lib -levtlog  
> ---
> > LIBS = -lpthread -lrt -lnsl -lsocket -ldoor  -ll -L/usr/local/lib
> -lglib-2.0 -lintl   -L/usr/local/lib -levtlog  

Fixed in the patch below.

> 
> Modification src/filter.c (Adding macros):
> 
> /* Define G_LIKELY() and G_UNLIKELY() so that they are available when
>  * using GLib 1.2 as well. These allow optimization by static branch
>  * prediction with GCC. */
> #ifndef G_LIKELY
>   #define G_LIKELY(x)     (__builtin_expect(x, 1))
>   #define G_UNLIKELY(x)   (__builtin_expect(x, 0))
> #endif /* !G_LIKELY */

I don't understand this one, syslog-ng relies on GLib 2.0 heavily and I
doubt it would build with glib 1.2

What is the exact version that you were using?

>  
> But when I start syslog-ng, I have the following error message:
> 
> Apr 26 09:50:55 sewerrat syslog-ng[752]: syslog-ng starting up;
> version='1.9.10' 
> Apr 26 09:50:55 sewerrat syslog-ng[752]: Insufficient buffer space for
> retrieving STREAMS log message; res='ffffffff' 

This is caused by the multi-read patches, also added a fix for this.

And now here's the just committed patch (available in tomorrow's
snapshot):

--- orig/configure.in
+++ mod/configure.in
@@ -126,6 +126,7 @@ fi
 dnl Checks for library functions.
 AC_CHECK_LIB(door, door_create)
 AC_CHECK_LIB(socket, socket)
+AC_CHECK_LIB(rt, nanosleep)
 AC_CHECK_LIB(nsl, gethostbyname)
 AC_CHECK_LIB(regex, regexec)



--- orig/src/afstreams.c
+++ mod/src/afstreams.c
@@ -134,7 +134,7 @@ afstreams_sd_init(LogPipe *s, GlobalConf
           close(fd);
           return FALSE;
         }
-      self->reader = log_reader_new(streams_read_new(fd), LR_LOCAL, s, &self->reader_options);
+      self->reader = log_reader_new(streams_read_new(fd), LR_LOCAL | LR_NOMREAD, s, &self->reader_options);
       log_pipe_append(self->reader, s);

       if (self->door_filename)





-- 
Bazsi



More information about the syslog-ng mailing list