[MacPorts] #19577: syslog-ng 2.1.4 needs explicit globals.o to create executable
MacPorts
noreply at macports.org
Fri May 8 11:45:37 PDT 2009
#19577: syslog-ng 2.1.4 needs explicit globals.o to create executable
-----------------------------------+----------------------------------------
Reporter: denis.laplante@… | Owner: macports-tickets@…
Type: defect | Status: new
Priority: Normal | Milestone:
Component: ports | Version: 1.7.1
Keywords: xCode | Port: syslog-ng
-----------------------------------+----------------------------------------
I have a workaround for what seems like a xCode bug.
syslog-ng version 2.1.4 fails in compilation with MacPorts; specifically
"ld" while creating executable fails to load "globals.o" from libsyslog-
ng.a.
Error message:
> /usr/bin/gcc-4.0 -O2 -Wall -L/opt/local/lib -o syslog-ng main.o
libsyslog-ng.a \
> -lresolv -lfl -L/opt/local/lib -lglib-2.0 -lintl -liconv
-L/opt/local/lib \
> -levtlog -lnet -lwrap
> Undefined symbols:
> "_configuration", referenced from:
> _configuration$non_lazy_ptr in libsyslog-ng.a(cfg.o)
> _configuration$non_lazy_ptr in libsyslog-ng.a(cfg-grammar.o)
> ld: symbol(s) not found
The workaround is to append "globals.o" to command "gcc ... -o syslog-ng
... -lwrap".
I tried (no success) appending libsyslog-ng.a , and upgrading Apple xCode
compilation package from 3.1.1 to 3.1.2
The object file is in fact present in the archive and contains
"_configuration".
> $ nm libsyslog-ng.a
> libsyslog-ng.a(misc.o):
> [...]
> libsyslog-ng.a(cfg.o):
> [...] U _configuration
> [...]
> libsyslog-ng.a(cfg-grammar.o):
> [...] U _configuration
> [...]
> libsyslog-ng.a(globals.o):
> 00000004 D _allow_severity
> 00000004 C _configuration
> 00000000 D _deny_severity
> 00000004 C _server_mode
One red herring was the error message
> ranlib: file: libsyslog-ng.a(afsql.o) has no symbols
Deleting afsql.o from libsyslog-ng.a and re-running ranlib (no errors) did
not help.
Editing Makefile to remove afsql.o did not help.
I've attached patch-Makefile.in.diff to explicitly add globals.o, which
fixes this weird problem.
Another problem I had after installing the binary produced with explicit
"globals.o": the "file" source driver goes into a tight loop instead of
sleeping between read attempts.
See bugzilla.balabit.com ticket 43.
I have attached patch-src-logreader.c.diff for convenience, since version
2.1.5 does not yet appear on download site.
Solaris had no trouble with
libsyslog-ng.a, even though it also uses ranlib.
--
Ticket URL: <http://trac.macports.org/ticket/19577>
MacPorts <http://www.macports.org/>
Ports system for Mac OS
More information about the macports-tickets
mailing list