[syslog-ng] Solaris 10 support(?) in latest versions (e.g. 3.3.2)

Marvin Nipper Marvin.Nipper at stream.com
Tue Nov 15 20:54:26 CET 2011


See below, tagged with my name.

-----Original Message-----
From: syslog-ng-bounces at lists.balabit.hu [mailto:syslog-ng-bounces at lists.balabit.hu] On Behalf Of Balazs Scheidler
Sent: Tuesday, November 15, 2011 12:12 PM
To: Syslog-ng users' and developers' mailing list
Subject: Re: [syslog-ng] Solaris 10 support(?) in latest versions (e.g. 3.3.2)

[Marvin Nipper] ---Purging content, due to email size----


There's a bundled library in syslog-ng code, ivykis. The error happens
when linking one of the test programs for ivykis. I'm not sure why that
happens, it does link for us properly, but maybe because we use a
different compiler (as described by Folti).

However TLS (=Thread Local Storage) is not a mandatory compiler feature,
both syslog-ng and ivykis can operate without it, the issue is that the
configure script detects that your compiler/linker is supposed to
support it.

Check out syslog-ng-3.3.2/config.log and
syslog-ng-3.3.2/lib/ivykis/config.log, and look for "__thread" in the
logs,
[Marvin Nipper] FYI, neither of these has any instance of this string.


 alternatively check config.h for both directories and check if
  * syslog-ng/config.h: HAVE_THREAD_KEYWORD  is defined
[Marvin Nipper] Yes: #define HAVE_THREAD_KEYWORD 1

  * syslog-ng/lib/ivykis/config.h: HAVE_TLS is defined.
[Marvin Nipper] Yes: #define HAVE_TLS 1



It'll probably be defined. You can retry compilation by changing the
config.h files and undef those and recompile.

The only question is why it gets detected and not work at the end. This
test is used for both:


AC_LINK_IFELSE([AC_LANG_PROGRAM(
[[#include <pthread.h>
__thread int a;
]],
[a=0;])],
[ac_cv_have_tls=yes; AC_DEFINE_UNQUOTED(HAVE_THREAD_KEYWORD, 1, "Whether Transport Layer Security is supported by the system")])
[Marvin Nipper] making an assumption about the syntax of this test, my pthread.h (in /usr/include) has no instance of ac_cv_have_tls.



I'm not sure if we can actually reliably detect if TLS is available. It
could make sense to make it a configure parameter after all. (which I'm
usually against...).

syslog-ng does support Solaris (the PE staff regularly compiles & tests
it under Solaris 8, 9, 10; sparc, i386, amd64), however it is not just
Solaris, gcc/binutils/etc are all part of the picture.

Keeping a "good" build environment on these platforms is not always
easy. 
[Marvin Nipper] "Annoyingly", I "blew away" the previous version of my Dev server, which was a patched up version of Solaris 10 U4, and replaced it with a "brand spanking new" U10 deployment (as previously mentioned).  My primary reason for doing that was that I'd HOPED, in the MANY years between the U4 and U10 versions, that maybe Sun(Oracle) has actually "done something useful", and brought their GCC components up to something beyond 3.4.3.  Of course, I was horribly disappointed to find out that the development components in their sfw deployment, were still just as "ancient" as before.

I had also (at that same time) looked into the GNU instructions for building a current version of GCC, but there are a TON of dependencies (and it looked "messy", which is probably an understatement).  I really didn't have time to mess with it, when I checked it out, and I also figured that I probably only had a 50/50 chance of producing something that would work properly (based on all of the dependent components).  I DID just check out that jblopen.com blog, from Pal's email, and that seems like a FAR EASIER set of instructions for producing a newer version of GCC.  I'll try to set aside some time, at some point in the not-too-distant future, to see if I can build a better compiler.

Obviously, if you see anything from my input above, that would allow this to compile properly on the "stock version" of Solaris 10 (U10), that would also be helpful.  I WILL try messing with the "config" header files, to see if I can use that for now, and again, if you need me to test anything, I'm glad to do that as well.

!!!!!!!!!!! THANKS to everyone who responded so quickly !!!!!!!!!!!!!
M.



The use of __thread is completely optional in the codebase itself.

-- 
Bazsi


______________________________________________________________________________
Member info: https://lists.balabit.hu/mailman/listinfo/syslog-ng
Documentation: http://www.balabit.com/support/documentation/?product=syslog-ng
FAQ: http://www.balabit.com/wiki/syslog-ng-faq



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.



More information about the syslog-ng mailing list