Hi Alan/Cajus
Just to let you know that Cajus' set of patches below was more or less
exactly what I ended up doing to get it to work.
When I Googled there was an implication that casting to void should
work, but clearly it didn't. I'm afraid that I don't know what Cajus
means "when rising compat level to 9" though.
Cajus would it make sense for you to raise the Jira for Alan as you've
got all the info to hand?
At the moment I've got a more pressing issue - I've managed to get
"make" to complete (I tried both ./configure --disable-warnings and
actually fixing the return values, both worked) but I'm really
struggling with "make install" see my post "Qpid 0.12 make install fails
:-("
I'm getting some advice on trying the debian package approach,, which I
might do at some point, but I'd really like to be able to build from
source especially as I want to start contributing patches to the C++
broker (I've mainly focussed on Java stuff to date).
I'm bombing out with.
/bin/bash ../libtool --mode=install /usr/bin/install -c cluster.la
watchdog.la acl.la xml.la replicating_listener.la
replication_exchange.la '/usr/local/lib/qpid/daemon'
libtool: install: warning: relinking `cluster.la'
libtool: install: (cd /home/fadams/java/qpid-0.12/cpp/src; /bin/bash
/home/fadams/java/qpid-0.12/cpp/libtool --tag CXX --mode=relink g++
-Werror -pedantic -Wall -Wextra -Wno-shadow -Wpointer-arith -Wcast-qual
-Wcast-align -Wno-long-long -Wvolatile-register-var -Winvalid-pch
-Wno-system-headers -Woverloaded-virtual
-DQPID_LIBEXEC_DIR=\"/usr/local/libexec/qpid\"
-DBOOST_FILESYSTEM_VERSION=2 -fno-strict-aliasing -g -O2 -no-undefined
-module -avoid-version -L/usr/lib/openais -L/usr/lib64/openais
-L/usr/lib/corosync -L/usr/lib64/corosync -o cluster.la -rpath
/usr/local/lib/qpid/daemon qpid/cluster/cluster_la-Quorum_cman.lo
qpid/cluster/cluster_la-Cluster.lo
qpid/cluster/cluster_la-ClusterTimer.lo
qpid/cluster/cluster_la-Decoder.lo qpid/cluster/cluster_la-ClusterMap.lo
qpid/cluster/cluster_la-ClusterPlugin.lo
qpid/cluster/cluster_la-Connection.lo
qpid/cluster/cluster_la-ConnectionCodec.lo
qpid/cluster/cluster_la-Cpg.lo qpid/cluster/cluster_la-UpdateClient.lo
qpid/cluster/cluster_la-RetractClient.lo
qpid/cluster/cluster_la-ErrorCheck.lo qpid/cluster/cluster_la-Event.lo
qpid/cluster/cluster_la-EventFrame.lo
qpid/cluster/cluster_la-ExpiryPolicy.lo
qpid/cluster/cluster_la-FailoverExchange.lo
qpid/cluster/cluster_la-UpdateExchange.lo
qpid/cluster/cluster_la-Multicaster.lo
qpid/cluster/cluster_la-OutputInterceptor.lo
qpid/cluster/cluster_la-PollerDispatch.lo
qpid/cluster/cluster_la-InitialStatusMap.lo
qpid/cluster/cluster_la-MemberSet.lo
qpid/cluster/cluster_la-SecureConnectionFactory.lo
qpid/cluster/cluster_la-StoreStatus.lo
qpid/cluster/cluster_la-UpdateDataExchange.lo -lcpg -lcman
libqpidbroker.la libqpidclient.la )
libtool: relink: g++ -shared -nostdlib
/usr/lib/gcc/x86_64-linux-gnu/4.4.1/../../../../lib/crti.o
/usr/lib/gcc/x86_64-linux-gnu/4.4.1/crtbeginS.o
qpid/cluster/.libs/cluster_la-Quorum_cman.o
qpid/cluster/.libs/cluster_la-Cluster.o
qpid/cluster/.libs/cluster_la-ClusterTimer.o
qpid/cluster/.libs/cluster_la-Decoder.o
qpid/cluster/.libs/cluster_la-ClusterMap.o
qpid/cluster/.libs/cluster_la-ClusterPlugin.o
qpid/cluster/.libs/cluster_la-Connection.o
qpid/cluster/.libs/cluster_la-ConnectionCodec.o
qpid/cluster/.libs/cluster_la-Cpg.o
qpid/cluster/.libs/cluster_la-UpdateClient.o
qpid/cluster/.libs/cluster_la-RetractClient.o
qpid/cluster/.libs/cluster_la-ErrorCheck.o
qpid/cluster/.libs/cluster_la-Event.o
qpid/cluster/.libs/cluster_la-EventFrame.o
qpid/cluster/.libs/cluster_la-ExpiryPolicy.o
qpid/cluster/.libs/cluster_la-FailoverExchange.o
qpid/cluster/.libs/cluster_la-UpdateExchange.o
qpid/cluster/.libs/cluster_la-Multicaster.o
qpid/cluster/.libs/cluster_la-OutputInterceptor.o
qpid/cluster/.libs/cluster_la-PollerDispatch.o
qpid/cluster/.libs/cluster_la-InitialStatusMap.o
qpid/cluster/.libs/cluster_la-MemberSet.o
qpid/cluster/.libs/cluster_la-SecureConnectionFactory.o
qpid/cluster/.libs/cluster_la-StoreStatus.o
qpid/cluster/.libs/cluster_la-UpdateDataExchange.o -L/usr/lib/openais
-L/usr/lib64/openais -L/usr/lib/corosync -L/usr/lib64/corosync -lcpg
-lcman -L/usr/local/lib -lqpidbroker -lqpidclient
-L/usr/lib/gcc/x86_64-linux-gnu/4.4.1
-L/usr/lib/gcc/x86_64-linux-gnu/4.4.1/../../../../lib -L/lib/../lib
-L/usr/lib/../lib -L/usr/lib/gcc/x86_64-linux-gnu/4.4.1/../../..
-lstdc++ -lm -lc -lgcc_s /usr/lib/gcc/x86_64-linux-gnu/4.4.1/crtendS.o
/usr/lib/gcc/x86_64-linux-gnu/4.4.1/../../../../lib/crtn.o
-Wl,-soname -Wl,cluster.so -o .libs/cluster.so
/usr/bin/ld: cannot find -lqpidbroker
collect2: ld returned 1 exit status
libtool: install: error: relink `cluster.la' with the above command
before installing it
make[3]: *** [install-dmoduleexecLTLIBRARIES] Error 1
make[3]: Leaving directory `/home/fadams/java/qpid-0.12/cpp/src'
make[2]: *** [install-am] Error 2
make[2]: Leaving directory `/home/fadams/java/qpid-0.12/cpp/src'
make[1]: *** [install-recursive] Error 1
make[1]: Leaving directory `/home/fadams/java/qpid-0.12/cpp/src'
make: *** [install-recursive] Error 1
At a guess it's a dependency issue. I'm "assuming" that perhaps this
needs to have had the qpidbroker relinked and installed before the
relinking of cluster.la but I know very little about the automake stuff
so I wouldn't know where to begin in order to figure out how to get
qpidbroker relinked before cluster.la
I'd really appreciate any help you can offer. I'm getting a bit
desparate. I'm tempted to revert back to my 0.10 build, but that would
be admitting defeat.
Cheers,
Frase
Cajus Pollmeier wrote:
For the Debian packaging, I only get these problems when rising compat
level to 9. I've opened a bug on the debian side, because I think that
casting to void is more than OK in this case.
In the moment I use this patch to work around it:
https://github.com/cajus/qpid-cpp-debian/blob/master/debian/patches/fix-unused.patch
HTH,
Cajus
Am 28.11.2011 16:04, schrieb Alan Conway:
On 11/27/2011 06:14 AM, Fraser Adams wrote:
OK so I fixed that one by doing:
ssize_t unused; // Prevents ignoring return value of ‘ssize_t
write..’, declared
with attribute warn_unused_result
unused = ::write.......
in Daemon.cpp
but it cropped up again in LockFile.cpp
I noticed
cc1plus: warnings being treated as errors
qpid/sys/posix/LockFile.cpp: In destructor
‘qpid::sys::LockFile::~LockFile()’:
qpid/sys/posix/LockFile.cpp:61: error: ignoring return value of ‘int
lockf(int,
int, __off_t)’, declared with attribute warn_unused_result
So clearly it's bombing out due to warnings rather than "real
errors". arguably
a good thing but.......
Seems like there may be some issues with the code base, but surely
someone else
would have seen similar. Any reason why make on my box is treating
warnings as
errors whereas that's (I assume) not happening with whoever packaged
the distro.
You may be using a different compiler, even a different version of
the same compiler can introduce errors like these. At one point I
thought we fixed all of those but some may be re-introduced. Can you
try this patch and see if it fixes the LogFile issue? If so open a
JIRA assigned to me and attach whatever patches you need to get it
working. I'll commit them.
---------------------------------------------------------------------
Apache Qpid - AMQP Messaging Implementation
Project: http://qpid.apache.org
Use/Interact: mailto:[email protected]
---------------------------------------------------------------------
Apache Qpid - AMQP Messaging Implementation
Project: http://qpid.apache.org
Use/Interact: mailto:[email protected]