Hello again. Just reusing this thread to update the status of the solaris port:

I've committed a set of patches attached to the JIRA QPID-1198:

1.- syslog-feature-test.patch. Provide a feature-wise detection of problematic syslog categories in qpid::log::Options. The checked categories are LOG_AUTHPRIV and LOG_FTP, unexisting in Solaris.

2.- acl.patch. To take into account that the ACL API is included as part of libc in Solaris, and provided as libacl in Linux.

3.- ecfpoller-refactoring.patch. Refactoring to honour the refactoring Andrew made in rev 680395. The ugly Sun CC private inheritance workaround is no longer needed!

4.- localaddrs.patch. Changes as suggested by Steve (many thanks!) to provide system dependent local address calculations.

After this, and a pair of minor changes I've sent to Andrew, regarding previously committed changes, there's only one little glitch avoiding a clean solaris build. I'm asking for your advise with this issue:

I need to explicitly provide a -lboost_system to link qpidd. I don't know if it's related with some solaris linker bug or feature, but even when I provide a LD_LIBRARY_PATH with the boost libraries location, it seems unable to find it. This is what the linker dumps out when no -lboost_system is provided:

CC -g -m64 -I/opt/dslap/contrib/include -mt -mt -o .libs/qpidd qpidd.o -L/opt/dslap/contrib/lib -L/usr/lib/openais -L/usr/lib64/openais ./.libs/libqpidbroker.so /export/home/devel/ws/DSLAP/qpid/trunk/qpid/cpp/src/.libs/libqpidcommon.so ./.libs/libqpidcommon.so -lboost_program_options -lboost_filesystem -luuid -library=stlport4 -R/opt/dslap/contrib/lib ld: warning: file ./.libs/libqpidcommon.so: linked to /export/home/devel/ws/DSLAP/qpid/trunk/qpid/cpp/src/.libs/libqpidcommon.so: attempted multiple inclusion of file
Undefined                       first referenced
symbol                             in file
const boost::system::error_category&boost::system::get_posix_category() qpidd.o (symbol belongs to implicit dependency /opt/dslap/contrib/lib/libboost_system.so) const boost::system::error_category&boost::system::get_system_category() qpidd.o (symbol belongs to implicit dependency /opt/dslap/contrib/lib/libboost_system.so)
ld: fatal: Symbol referencing errors. No output written to .libs/qpidd


Annoying, because it knows where the library is! The only woraround I found was to explicitly provide it as a linker argument, with -lboost_system. Perhaps the problem could be that the library is used directly from qpidd.cpp source code, and not indirectly through libboost_filesystem?

Any idea?

Regards.

Manuel.

Reply via email to