<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<meta name="Generator" content="Microsoft Exchange Server">
<!-- converted from rtf -->
<style><!-- .EmailQuote { margin-left: 1pt; padding-left: 4pt; border-left: #800000 2px solid; } --></style>
</head>
<body>
<font face="Calibri, sans-serif" size="2">
<div>Apologies upfront for the length, but this addresses two different problems.</div>
<div> </div>
<div> </div>
<div>Environment: Solaris 10 x64 U10, fully patched (i.e. pretty much "new").</div>
<div>Currently operating (successfully) with 3.0.5, compiled on that platform, and distributed to a number of other Solaris 10 x64 targets.</div>
<div> </div>
<div>Problem: Trying to "make the leap" to 3.3.2, and get current, but that version seems to have numerous Solaris compatibility issues. Just trying to understand the status of Solaris support.</div>
<div> </div>
<div> </div>
<div> </div>
<div>Problem #1</div>
<div>Latest packaging no longer works with Solaris-based "make".</div>
<div> </div>
<div>After a clean configure (output here):</div>
<div>syslog-ng Open Source Edition 3.3.2 configured</div>
<div> Compiler options:</div>
<div> compiler : gcc -std=gnu99</div>
<div> compiler options : -g -O2 -Wall -pthread -D_REENTRANT -D_PTHREADS -I/usr/local/include/glib-2.0 -I/usr/local/lib/glib-2.0/include -I/usr/local/include/eventlog -I/usr/local/ssl/include -DLIBNET_LIL_ENDIAN -I$(top_srcdir)/lib/ivykis/lib/include
-I$(top_builddir)/lib/ivykis/lib/include -I$(top_srcdir)/lib/ivykis/modules/include -D_GNU_SOURCE -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64</div>
<div> linker flags : -R/usr/local/lib -lpthread</div>
<div> prefix : /usr/local</div>
<div> linking mode : dynamic</div>
<div> __thread keyword : yes</div>
<div> Submodules:</div>
<div> ivykis : internal</div>
<div> libmongo-client : internal</div>
<div> Features:</div>
<div> Debug symbols : no</div>
<div> GCC profiling : no</div>
<div> Memtrace : no</div>
<div> IPV6 support : yes</div>
<div> spoof-source support : yes</div>
<div> tcp-wrapper support : no</div>
<div> Linux capability support : no</div>
<div> PCRE support : no</div>
<div> Env wrapper support : no</div>
<div> systemd support : no (unit dir: none)</div>
<div> Modules:</div>
<div> Module search path : /usr/local/lib/syslog-ng</div>
<div> Default module list : affile,afprog,afsocket,afuser,basicfuncs,csvparser,dbparser,syslogformat,afstreams</div>
<div> Sun STREAMS support (module): yes</div>
<div> SSL support (module) : yes</div>
<div> SQL support (module) : no</div>
<div> PACCT module (EXPERIMENTAL) : no</div>
<div> MongoDB destination (module): yes</div>
<div> JSON support (module) : no (using no)</div>
<div> </div>
<div> </div>
<div>..... a simple "make" attempt now immediately results in this:</div>
<div># make</div>
<div>make all-recursive</div>
<div>Making all in lib</div>
<div>make: Fatal error in reader: Makefile, line 991: Unexpected end of line seen</div>
<div>Current working directory /var/opt/packages/syslog-ng-3.3.2/lib</div>
<div>*** Error code 1</div>
<div>The following command caused the error:</div>
<div>fail= failcom='exit 1'; \</div>
<div>for f in x $MAKEFLAGS; do \</div>
<div> case $f in \</div>
<div> *=* | --[!k]*);; \</div>
<div> *k*) failcom='fail=yes';; \</div>
<div> esac; \</div>
<div>done; \</div>
<div>dot_seen=no; \</div>
<div>target=`echo all-recursive | sed s/-recursive//`; \</div>
<div>list='lib modules syslog-ng scripts tests doc contrib scl debian tgz2build build'; for subdir in $list; do \</div>
<div> echo "Making $target in $subdir"; \</div>
<div> if test "$subdir" = "."; then \</div>
<div> dot_seen=yes; \</div>
<div> local_target="$target-am"; \</div>
<div> else \</div>
<div> local_target="$target"; \</div>
<div> fi; \</div>
<div> (CDPATH="${ZSH_VERSION+.}:" && cd $subdir && make $local_target) \</div>
<div> || eval $failcom; \</div>
<div>done; \</div>
<div>if test "$dot_seen" = "no"; then \</div>
<div> make "$target-am" || exit 1; \</div>
<div>fi; test -z "$fail"</div>
<div>make: Fatal error: Command failed for target `all-recursive'</div>
<div>Current working directory /var/opt/packages/syslog-ng-3.3.2</div>
<div>*** Error code 1</div>
<div>make: Fatal error: Command failed for target `all'</div>
<div> </div>
<div> </div>
<div>Not being a developer, per se, I spent time in Google-land, the general result that I find is:</div>
<div>"These are caused because Solaris "make" doesn't accept the ‘GNU multi-line Makefile format’. Use gmake instead."</div>
<div>But there are obviously folks who also say that this can be fixed by "correcting" the problems in the Makefiles (so that would seem to be a preferable alternative).</div>
<div> </div>
<div> </div>
<div>Problem #2</div>
<div>Can no longer perform successful compilations, due to this error:</div>
<div>ld: fatal: relocation error: R_386_GOTOFF</div>
<div> </div>
<div>Same configure output as previously shown, followed by gmake (to get around the first problem).</div>
<div> </div>
<div>Numerous modules compile successfully, but then this happens:</div>
<div>gcc -DHAVE_CONFIG_H -I. -I../.. -D_GNU_SOURCE -I../../lib/include -I../../lib/include -I../../modules/include -Wall -g -O2 -D_REENTRANT -D_POSIX_C_SOURCE=199506L -D_POSIX_PTHREAD_SEMANTICS -D_XPG4_2 -MT iv_event_test.o -MD -MP -MF .deps/iv_event_test.Tpo
-c -o iv_event_test.o iv_event_test.c</div>
<div>mv -f .deps/iv_event_test.Tpo .deps/iv_event_test.Po</div>
<div>/bin/bash ../../libtool --tag=CC --mode=link gcc -Wall -g -O2 -D_REENTRANT -D_POSIX_C_SOURCE=199506L -D_POSIX_PTHREAD_SEMANTICS -D_XPG4_2 -R/usr/local/lib -o iv_event_test iv_event_test.o ../../lib/libivykis.la ../libivykis-modules.la -lrt -lpthread
-lsocket</div>
<div>libtool: link: gcc -Wall -g -O2 -D_REENTRANT -D_POSIX_C_SOURCE=199506L -D_POSIX_PTHREAD_SEMANTICS -D_XPG4_2 -o iv_event_test iv_event_test.o ../../lib/.libs/libivykis.a ../.libs/libivykis-modules.a /var/opt/packages/syslog-ng-3.3.2/lib/ivykis/lib/.libs/libivykis.a
-lrt -lpthread -lsocket -R/usr/local/lib</div>
<div>ld: fatal: relocation error: R_386_GOTOFF: file ../.libs/libivykis-modules.a(iv_event.o): symbol __tls: relocation illegal for TLS symbol</div>
<div>ld: fatal: relocation error: R_386_GOTOFF: file ../.libs/libivykis-modules.a(iv_event.o): symbol __tls: relocation illegal for TLS symbol</div>
<div>ld: fatal: relocation error: R_386_GOTOFF: file ../.libs/libivykis-modules.a(iv_event.o): symbol __tls: relocation illegal for TLS symbol</div>
<div>ld: fatal: relocation error: R_386_GOTOFF: file ../.libs/libivykis-modules.a(iv_event.o): symbol __tls: relocation illegal for TLS symbol</div>
<div>collect2: ld returned 1 exit status</div>
<div>gmake[7]: *** [iv_event_test] Error 1</div>
<div>gmake[7]: Leaving directory `/var/opt/packages/syslog-ng-3.3.2/lib/ivykis/modules/test'</div>
<div>gmake[6]: *** [all-recursive] Error 1</div>
<div>gmake[6]: Leaving directory `/var/opt/packages/syslog-ng-3.3.2/lib/ivykis/modules'</div>
<div>gmake[5]: *** [all-recursive] Error 1</div>
<div>gmake[5]: Leaving directory `/var/opt/packages/syslog-ng-3.3.2/lib/ivykis'</div>
<div>gmake[4]: *** [all] Error 2</div>
<div>gmake[4]: Leaving directory `/var/opt/packages/syslog-ng-3.3.2/lib/ivykis'</div>
<div>gmake[3]: *** [all-recursive] Error 1</div>
<div>gmake[3]: Leaving directory `/var/opt/packages/syslog-ng-3.3.2/lib'</div>
<div>gmake[2]: *** [all] Error 2</div>
<div>gmake[2]: Leaving directory `/var/opt/packages/syslog-ng-3.3.2/lib'</div>
<div>gmake[1]: *** [all-recursive] Error 1</div>
<div>gmake[1]: Leaving directory `/var/opt/packages/syslog-ng-3.3.2'</div>
<div>gmake: *** [all] Error 2</div>
<div> </div>
<div> </div>
<div>Again, adopting the "Google is my friend" approach, this appears to be an issue with "Solaris not supporting Visibility". (<a href="http://www.ilkda.com/compile/Build_Problems.htm">http://www.ilkda.com/compile/Build_Problems.htm</a>)</div>
<div>Most of the sites where I see this being discussed, with other (various) source components, I also see the developers subsequently modifying their environment to "adjust for" the Visibility issue in Solaris.</div>
<div> </div>
<div>So, again, not being a C developer myself, I guess I'm wondering whether I'm just doing something wrong with 3.3.2 (i.e. something that I need to do different from my 3.0.5 compilation), or whether this is truly just a "Solaris thing" that has not been
accounted for in the current code base?</div>
<div> </div>
<div>Sorry for not being better at sorting this out myself. Any and all help/guidance would certainly be appreciated. GLAD to do some sort of testing here, if that will help.</div>
<div> </div>
<div> </div>
<div>Also, just for reference, here is the full "configure" output from the 3.0.5 build, that compiles clean, and works just fine:</div>
<div>checking pkg-config is at least version 0.9.0... yes</div>
<div>checking for a BSD-compatible install... ./install-sh -c</div>
<div>checking whether build environment is sane... yes</div>
<div>checking for a thread-safe mkdir -p... ./install-sh -c -d</div>
<div>checking for gawk... no</div>
<div>checking for mawk... no</div>
<div>checking for nawk... nawk</div>
<div>checking whether make sets $(MAKE)... yes</div>
<div>checking for gcc... gcc</div>
<div>checking for C compiler default output file name... a.out</div>
<div>checking whether the C compiler works... yes</div>
<div>checking whether we are cross compiling... no</div>
<div>checking for suffix of executables...</div>
<div>checking for suffix of object files... o</div>
<div>checking whether we are using the GNU C compiler... yes</div>
<div>checking whether gcc accepts -g... yes</div>
<div>checking for gcc option to accept ISO C89... none needed</div>
<div>checking for style of include used by make... GNU</div>
<div>checking dependency style of gcc... gcc3</div>
<div>checking for gcc... (cached) gcc</div>
<div>checking whether we are using the GNU C compiler... (cached) yes</div>
<div>checking whether gcc accepts -g... (cached) yes</div>
<div>checking for gcc option to accept ISO C89... (cached) none needed</div>
<div>checking dependency style of gcc... (cached) gcc3</div>
<div>checking for bison... bison -y</div>
<div>checking for flex... flex</div>
<div>checking lex output file root... lex.yy</div>
<div>checking lex library... -lfl</div>
<div>checking whether yytext is a pointer... yes</div>
<div>checking whether make sets $(MAKE)... (cached) yes</div>
<div>checking for ranlib... ranlib</div>
<div>checking for special C compiler options needed for large files... no</div>
<div>checking for _FILE_OFFSET_BITS value needed for large files... 64</div>
<div>checking how to enable static linking for certain libraries... GNU or Solaris</div>
<div>checking how to run the C preprocessor... gcc -E</div>
<div>checking for grep that handles long lines and -e... /usr/sfw/bin/ggrep</div>
<div>checking for egrep... /usr/sfw/bin/ggrep -E</div>
<div>checking for ANSI C header files... yes</div>
<div>checking for sys/types.h... yes</div>
<div>checking for sys/stat.h... yes</div>
<div>checking for stdlib.h... yes</div>
<div>checking for string.h... yes</div>
<div>checking for memory.h... yes</div>
<div>checking for strings.h... yes</div>
<div>checking for inttypes.h... yes</div>
<div>checking for stdint.h... yes</div>
<div>checking for unistd.h... yes</div>
<div>checking dmalloc.h usability... no</div>
<div>checking dmalloc.h presence... no</div>
<div>checking for dmalloc.h... no</div>
<div>checking for strings.h... (cached) yes</div>
<div>checking getopt.h usability... yes</div>
<div>checking getopt.h presence... yes</div>
<div>checking for getopt.h... yes</div>
<div>checking stropts.h usability... yes</div>
<div>checking stropts.h presence... yes</div>
<div>checking for stropts.h... yes</div>
<div>checking sys/strlog.h usability... yes</div>
<div>checking sys/strlog.h presence... yes</div>
<div>checking for sys/strlog.h... yes</div>
<div>checking door.h usability... yes</div>
<div>checking door.h presence... yes</div>
<div>checking for door.h... yes</div>
<div>checking sys/capability.h usability... no</div>
<div>checking sys/capability.h presence... no</div>
<div>checking for sys/capability.h... no</div>
<div>checking sys/prctl.h usability... no</div>
<div>checking sys/prctl.h presence... no</div>
<div>checking for sys/prctl.h... no</div>
<div>checking tcpd.h usability... yes</div>
<div>checking tcpd.h presence... yes</div>
<div>checking for tcpd.h... yes</div>
<div>checking whether struct tm is in sys/time.h or time.h... time.h</div>
<div>checking for struct tm.tm_gmtoff... no</div>
<div>checking for I_CONSLOG... yes</div>
<div>checking for O_LARGEFILE... yes</div>
<div>checking for struct sockaddr_storage... yes</div>
<div>checking for struct sockaddr_in6... yes</div>
<div>checking for PR_SET_KEEPCAPS... no</div>
<div>checking for door_create in -ldoor... yes</div>
<div>checking for socket in -lsocket... yes</div>
<div>checking for nanosleep in -lrt... yes</div>
<div>checking for gethostbyname in -lnsl... yes</div>
<div>checking for regexec in -lregex... no</div>
<div>checking for res_init in -lresolv... yes</div>
<div>checking for cap_set_proc in -lcap... no</div>
<div>checking for PCRE... no</div>
<div>configure: WARNING: Cannot find pcre version >= 7.3. pcre support disabled.</div>
<div>checking for strdup... yes</div>
<div>checking for strtol... yes</div>
<div>checking for strtoll... yes</div>
<div>checking for strtoimax... yes</div>
<div>checking for inet_aton... no</div>
<div>checking for inet_ntoa... no</div>
<div>checking for getopt_long... yes</div>
<div>checking for getaddrinfo... no</div>
<div>checking for getutent... yes</div>
<div>checking for pread... yes</div>
<div>checking for pwrite... yes</div>
<div>checking for strcasestr... no</div>
<div>checking for TCP wrapper library... -lwrap</div>
<div>checking for OPENSSL... yes</div>
<div>checking for dlsym in -ldl... yes</div>
<div>checking for inflate in -lz... yes</div>
<div>checking for dlsym in -ldl... (cached) yes</div>
<div>checking for LIBDBI... no</div>
<div>checking for dbi_initialize in -ldbi... no</div>
<div>checking pthread.h usability... yes</div>
<div>checking pthread.h presence... yes</div>
<div>checking for pthread.h... yes</div>
<div>checking for pthread_create in -lpthread... yes</div>
<div>checking for LIBNET... stty: : No such device or address</div>
<div>stty: : No such device or address</div>
<div>yes</div>
<div>checking whether to enable Sun STREAMS support... yes</div>
<div>checking whether to enable Sun door support... yes</div>
<div>checking whether to enable IPv6 support... yes</div>
<div>checking whether to enable SQL support... no</div>
<div>checking whether to enable Linux capability support... no</div>
<div>checking whether to enable PCRE support... no</div>
<div>checking pkg-config is at least version 0.14... yes</div>
<div>checking for GLIB - version >= 2.10.1... yes (version 2.13.5)</div>
<div>checking for EVTLOG... yes</div>
<div>checking for LIBNET... stty: : No such device or address</div>
<div>stty: : No such device or address</div>
<div>yes</div>
<div>checking for static GLib libraries... yes</div>
<div>checking sanity checking Glib headers... yes</div>
<div>configure: creating ./config.status</div>
<div>config.status: creating dist.conf</div>
<div>config.status: creating Makefile</div>
<div>config.status: creating syslog-ng.spec</div>
<div>config.status: creating src/Makefile</div>
<div>config.status: creating doc/Makefile</div>
<div>config.status: creating doc/docvars.xml</div>
<div>config.status: creating contrib/Makefile</div>
<div>config.status: creating tests/Makefile</div>
<div>config.status: creating debian/Makefile</div>
<div>config.status: creating tgz2build/Makefile</div>
<div>config.status: creating tests/unit/Makefile</div>
<div>config.status: creating tests/functional/Makefile</div>
<div>config.status: creating tests/loggen/Makefile</div>
<div>config.status: creating config.h</div>
<div>config.status: executing depfiles commands</div>
<div> </div>
<div>syslog-ng Open Source Edition 3.0.5 configured</div>
<div> Compiler options:</div>
<div> compiler : gcc</div>
<div> compiler options : -g -O2 -Wall -I/usr/local/include/glib-2.0 -I/u</div>
<div>sr/local/lib/glib-2.0/include -I/usr/local/include/eventlog -I/usr/local/ssl</div>
<div>/include -DLIBNET_LIL_ENDIAN -D_GNU_SOURCE -D_LARGEFILE_SOURCE -D_FILE_OFFSET</div>
<div>_BITS=64</div>
<div> linker flags : -R/usr/local/lib -lpthread</div>
<div> prefix : /usr/local</div>
<div> linking mode : dynamic</div>
<div> Features:</div>
<div> Sun STREAMS support : yes</div>
<div> Sun Door support : yes</div>
<div> Debug symbols : no</div>
<div> GCC profiling : no</div>
<div> Memtrace : no</div>
<div> IPV6 support : yes</div>
<div> spoof-source support : yes</div>
<div> tcp-wrapper support : no</div>
<div> SSL support : yes</div>
<div> SQL support : no</div>
<div> Linux capability support : no</div>
<div> PCRE support : no</div>
<div> Env wrapper support : no</div>
<div> </div>
<div> </div>
</font>
</body>
</html>
<pre>
This e-mail may contain confidential and/or privileged information. If you are
not the intended recipient (or have received this e-mail in error) please
notify the sender immediately and destroy this e-mail. Any unauthorized
copying, disclosure or distribution of the material in this e-mail is strictly
forbidden.