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" <[email protected]>
> To: [email protected]
> 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:[email protected]]
> Sent: Monday, December 22, 2014 11:53 AM
> To: [email protected]
> 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:[email protected]]
> Sent: Wednesday, December 17, 2014 3:08 PM
> To: [email protected]
> 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:[email protected]]
> > Sent: Wednesday, December 17, 2014 3:00 PM
> > To: [email protected]
> > 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" <[email protected]>
> > > To: [email protected]
> > > 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: [email protected] For
> > > additional commands, e-mail: [email protected]
> >
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: [email protected] For
> > additional commands, e-mail: [email protected]
>
> 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: [email protected]
> For additional commands, e-mail: [email protected]
>
>
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]