[syslog-ng] ld.so.1 problem during upgrade to 3.1.2

Matthew Hall mhall at mhcomputing.net
Fri Jan 7 20:35:01 CET 2011


On Fri, Jan 07, 2011 at 10:01:30AM -0500, Zeek Anow wrote:
> I just upgraded to syslog-ng Solaris 10 on a Sun server. When I went to test
> my syslog-ng.conf file I am getting the following error:
> 
> ld.so.1: syslog-ng: fatal: relocation error: file
> /.alt.Solaris10/usr/local/sbin/syslog-ng: symbol g_malloc_n: referenced
> symbol not found
> 
> It looks as though something is missing from a library or maybe a path is
> not set correctly. Here are the packages I installed:
> 
> libiconv-1.13.1-sol10-sparc-local
> glib-2.25.13-sol10-sparc-local
> libintl-3.4.0-sol10-sparc-local
> libgcc-3.4.6-sol10-sparc-local
> pcre-8.10-sol10-sparc-local
> eventlog-0.2.12-sol10-sparc-local
> libpcap-1.1.1-sol10-sparc-local
> tcpdump-4.1.1-sol10-sparc-local
> syslogng-3.1.2-sol10-sparc-local
> 
> I had originally installed gcc-3.4.6-sol10-sparc-local too, but then
> uninstalled all packages and then reinstalled everything except
> gcc-3.4.6-sol10-sparc-local. The instructions says one or the other.
> 
> Anyone have any ideas on how to fix this?
> 
> Thanks

When I ran into these issues I had a fiew different causes, but I was 
using Linux, however these could apply in either case.

1) libdbi's build breaks your CFLAGS and this caused it to generate a 
corrupt output .so file
2) PKG_CONFIG_PATH was not right
3) some ./configure options related to libraries were not right

The g_* symbols are usually in glib, so start your investigation there.

Validating that the content of config.log makes sense is good.

Make sure there are no other copies of libs sitting around, this hit me 
because my company compiles to a prefix and the linker got some screwed 
up old system libs in place of the prefix libs.

Have a look at the symbols in the libs with nm, test the link with ldd, 
watch execution with truss / dtrace / dtruss / etc.

HTH,
Matthew.


More information about the syslog-ng mailing list