qpid-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Chuck Rolke <cro...@redhat.com>
Subject Re: Compiling qpid on aix 7.1 with xlc 13.1.0
Date Tue, 23 Dec 2014 20:18:34 GMT
Hi Chris,

If the problem is with explicit instantiations of InlineVector as 
suggested by the stackoverflow article you can try this patch. 
It declares to the compiler that InlineVector<> is going to be 
used with the exact types in the template class statement(s).


-----cut-----
diff --git a/qpid/cpp/src/qpid/framing/FrameSet.h b/qpid/cpp/src/qpid/framing/FrameSet.h
index e234864..c210fed 100644
--- a/qpid/cpp/src/qpid/framing/FrameSet.h
+++ b/qpid/cpp/src/qpid/framing/FrameSet.h
@@ -30,6 +30,8 @@
 #include "qpid/CommonImportExport.h"
 
 namespace qpid {
+template class qpid::InlineVector<qpid::framing::AMQFrame, 4>;
+
 namespace framing {
 
 /**
diff --git a/qpid/cpp/src/qpid/framing/SequenceNumberSet.h b/qpid/cpp/src/qpid/framing/SequenceNumberSet.h
index c8356c8..f21e830 100644
--- a/qpid/cpp/src/qpid/framing/SequenceNumberSet.h
+++ b/qpid/cpp/src/qpid/framing/SequenceNumberSet.h
@@ -30,6 +30,8 @@
 #include "qpid/CommonImportExport.h"
 
 namespace qpid {
+template class qpid::InlineVector<qpid::framing::SequenceNumber, 2>;
+
 namespace framing {
 
 class SequenceNumberSet : public InlineVector<SequenceNumber, 2>
diff --git a/qpid/cpp/src/qpid/framing/SequenceSet.h b/qpid/cpp/src/qpid/framing/SequenceSet.h
index 827c899..410745b 100644
--- a/qpid/cpp/src/qpid/framing/SequenceSet.h
+++ b/qpid/cpp/src/qpid/framing/SequenceSet.h
@@ -26,6 +26,9 @@
 #include "qpid/CommonImportExport.h"
 
 namespace qpid {
+template class qpid::InlineVector<qpid::RangeSet<qpid::framing::SequenceNumber>,
3>;
+
+
 namespace framing {
 class Buffer;
 
-----cut-----


----- Original Message -----
> From: "Chris Whelan" <Chris.Whelan@systemsandsoftware.net>
> To: users@qpid.apache.org
> Sent: Tuesday, December 23, 2014 11:59:48 AM
> Subject: RE: Compiling qpid on aix 7.1 with xlc 13.1.0
> 
> I am wondering if this problem is being caused by an XLC bug.  From the
> stackoverflow thread linked below, it appears there is a workaround but I am
> not familiar enough with C++ templates in order to know how to apply the
> described workaround to qpid code.  The second link seems to indicate that
> IBM didn't consider a similar problem to be a compiler bug.  If anyone can
> tell me I am off base here or alternatively offer any insight on how to
> incorporate the workaround in qpid code, that would be great.
> 
> http://stackoverflow.com/questions/17260479/c-and-ibm-compiler-bug
> 
> http://www-01.ibm.com/support/docview.wss?uid=swg1IZ67247
> 
> Some Additional Information that was accidentally omitted from the previous
> post:
> 
> export CC=/opt/IBM/xlC/13.1.0/bin/xlc
> export CXX=/opt/IBM/xlC/13.1.0/bin/xlc++ export
> BOOST_ROOT=/resgrp072/enquesta_5_0/boost_1_53_0
> export PATH=/opt/IBM/xlC/13.1.0/bin:$PATH
> 
> attempted build from qpid “bld” subdirectory.
> 
> cmake.out is output from “cmake ..”
> make_all.out is output from “make all”
> 
> 
> Thanks,
> 
> Chris Whelan
> 
> -----Original Message-----
> From: Chris Whelan [mailto:Chris.Whelan@systemsandsoftware.net]
> Sent: Monday, December 22, 2014 11:53 AM
> To: users@qpid.apache.org
> Subject: Compiling qpid on aix 7.1 with xlc 13.1.0
> 
> Hi,
> 
> We have been trying to compile qpid on AIX without success.  We have tried
> both the gcc and xlc compilers.  We first attempted the qpid compile on AIX
> 6.1 with xlc 13.1.0 and Boost 1.57.  The error generated during the make all
> step was:
> 
> The wrong number of arguments has been specified for
> "qpid::InlineAllocator<std::allocator<qpid::Range<qpid::framing::SequenceNumber>
> >,3>::allocate(size_type)".
> 
> We subsequently set up an AIX 7.1 server, installed all of the myriad
> prerequisites and attempted to compile qpid using xlc with Boost 1.53.
> Unfortunately, we observed the same error in the new environment.  I have
> attached the relevant files.  We have spent a lot of time on this issue
> between gcc and xlc, setting up multiple environments, trying different
> versions of boost, etc. and unfortunately have nothing to show for it.  We
> have our qpid test code running successfully on Linux and Windows, but AIX
> is proving to be a big and costly hurdle for us.  Any assistance that can be
> offered that may help us to resolve this issue would be greatly appreciated.
> 
> Thanks,
> 
> Chris Whelan
> 
> -----Original Message-----
> From: Steve Huston [mailto:shuston@riverace.com]
> Sent: Wednesday, December 17, 2014 3:08 PM
> To: users@qpid.apache.org
> Subject: RE: Compiling qpid on aix 6.1 with xlc 13.1.0
> 
> I don't think the boost warnings are pertinent in this case, and boost is
> tough to get built with xlC, so for the time being, I'd let that dog lie.
> 
> It smells like a mismatch between std::vector arguments between xlC and what
> the code expects. I'd chase that one down first. If I get done with customer
> commitments today I will check into it later.
> 
> -Steve
> 
> > -----Original Message-----
> > From: Chuck Rolke [mailto:crolke@redhat.com]
> > Sent: Wednesday, December 17, 2014 3:00 PM
> > To: users@qpid.apache.org
> > Subject: Re: Compiling qpid on aix 6.1 with xlc 13.1.0
> > 
> > Hi Chris,
> > 
> > In your makeAllOutput.txt file you are getting boost (1_57) warnings
> > right off the bat. I've never used any boost beyond 1_53 on linux or
> > windows but
> > 1_53 works on both of those platforms.
> > 
> > Could you try downgrading your boost to 1_53, a "known good on Windows
> > and Linux" version?
> > 
> > -Chuck
> > 
> > ----- Original Message -----
> > > From: "Chris Whelan" <Chris.Whelan@systemsandsoftware.net>
> > > To: users@qpid.apache.org
> > > Sent: Wednesday, December 17, 2014 9:31:35 AM
> > > Subject: Compiling qpid on aix 6.1 with xlc 13.1.0
> > >
> > > Hi,
> > >
> > > We have abandoned using gcc on aix to compile qpid and have now
> > > moved on to our next problem child, xlc.  Boost compiled
> > > successfully, but when we try to compile qpid, an argument mismatch
> > > apparently occurs.
> > > The environment description and details are below.  The associated
> > > files are attached.  If anyone can offer any insight into what is
> > > wrong or has any suggestions on what we should try to resolve this,
> > > your assistance will be gratefully accepted.
> > >
> > > Regards,
> > >
> > > Chris Whelan
> > >
> > > # environment
> > > export CC=/opt/IBM/xlC/13.1.0/bin/xlc export
> > > CXX=/opt/IBM/xlC/13.1.0/bin/xlc++ export
> > > BOOST_ROOT=/home/dbapi/enquesta_5_0/boost_1_57_0
> > > # for xlC:
> > > export PATH=/opt/IBM/xlC/13.1.0/bin:$PATH
> > > # for other dependencies built locally export
> > > PATH=/home/dbapi/enquesta_5_0/usr/local/bin:$PATH
> > >
> > > Email attachments:
> > > cmakeOutput.txt is the output from running cmake makeAllOutput.txt
> > > is the output from the compile (make all) vector.t is an IBM source
> > > file, /opt/IBM/xlC/13.1.0/include/vector.t
> > > InlineVector.h is from qpid source,
> > > $QPID_HOME/src/qpid/InlineVector.h
> > >
> > > The error from makeAllOutput.txt ("make all" command)
> > > /opt/IBM/xlC/13.1.0/include/vector.t", line 41.55: 1540-0215 (S) The
> > > wrong numb er of arguments has been specified for
> > > "qpid::InlineAllocator<std::allocator<qpi
> > > d::Range<qpid::framing::SequenceNumber> >,3>::allocate(size_type)".
> > > "/opt/IBM/xlC/13.1.0/include/vector.t", line 37.6: 1540-0700 (I) The
> > > previous me ssage was produced while processing
> > > "std::vector<qpid::Range<qpid::framing::Sequ
> > > enceNumber>,qpid::InlineAllocator<std::allocator<qpid::Range<qpid::f
> > > enceNumber>ra
> > > enceNumber>ming::Sequ
> > > enceNumber> >,3> >::reserve(size_type)".
> > > "/home/dbapi/enquesta_5_0/qpid-cpp-0.30/src/qpid/InlineVector.h",
> > > line
> > 50.13:
> > > 15
> > > 40-0700 (I) The previous message was produced while processing
> > > "qpid::InlineVect
> > >
> > or<qpid::Range<qpid::framing::SequenceNumber>,3,std::allocator<qpid::R
> > a
> > nge<qpid:
> > > :framing::SequenceNumber> > >::InlineVector(const allocator_type &)".
> > >
> > >
> > > --------------------------------------------------------------------
> > > - To unsubscribe, e-mail: users-unsubscribe@qpid.apache.org For
> > > additional commands, e-mail: users-help@qpid.apache.org
> > 
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: users-unsubscribe@qpid.apache.org For
> > additional commands, e-mail: users-help@qpid.apache.org
> 
> B KKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKCB  [
> X  ܚX KK[XZ[  \ \  ][  X  ܚX P\Y  \X K ܙ B  ܈Y][ۘ[  [X[  K[XZ[  \ \  Z[\Y
> \X K ܙ B B
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@qpid.apache.org
> For additional commands, e-mail: users-help@qpid.apache.org
> 
> 

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@qpid.apache.org
For additional commands, e-mail: users-help@qpid.apache.org


Mime
View raw message