Re: [OMPI devel] VT build failure with Clang++
I could reproduce the build error with Clang 2.9. Adding the operator< to DefRec_BaseS fixes the problem, although this operator is not used. Thanks for the hints! I'll commit this fix and create a CMR to v1.5 soon. Matthias On Thursday 16 February 2012 04:22:33 Paul H. Hargrove wrote: > Dmitri, > > Since I have not seen any error like this from gcc, pgi, pathcc, xlc, > icc, open64 or suncc, I am pretty sure the problem is Clang-specific > even if not a true "bug" in Clang. > > I just test everything I can get my hands on and report what I find. > If there is not a simple fix for this then it is not a big deal YET. > However, it is widely expected that Apple will move to a Clang-only (no > gcc/g++) release of Xcode as soon as they are able. > So, it *might* become a concern in the near future. > > So, how should we proceed on this? > > -Paul > > On 2/15/2012 8:38 AM, Dmitri Gribenko wrote: > > I don't know if it is a Clang bug, but here's my understanding of the > > problem. > > [...excellent description removed...] > > > I'm not sure if this is a bug in Clang because I don't know if Clang > > should have tried to instantiate create(). > > > > Dmitri
Re: [OMPI devel] VT build failure with Clang++
Dmitri, Since I have not seen any error like this from gcc, pgi, pathcc, xlc, icc, open64 or suncc, I am pretty sure the problem is Clang-specific even if not a true "bug" in Clang. I just test everything I can get my hands on and report what I find. If there is not a simple fix for this then it is not a big deal YET. However, it is widely expected that Apple will move to a Clang-only (no gcc/g++) release of Xcode as soon as they are able. So, it *might* become a concern in the near future. So, how should we proceed on this? -Paul On 2/15/2012 8:38 AM, Dmitri Gribenko wrote: I don't know if it is a Clang bug, but here's my understanding of the problem. [...excellent description removed...] I'm not sure if this is a bug in Clang because I don't know if Clang should have tried to instantiate create(). Dmitri -- Paul H. Hargrove phhargr...@lbl.gov Future Technologies Group HPC Research Department Tel: +1-510-495-2352 Lawrence Berkeley National Laboratory Fax: +1-510-486-6900
Re: [OMPI devel] VT build failure with Clang++
On Wed, Feb 15, 2012 at 10:56 AM, Paul Hargrovewrote: > I strongly suspect that this is a Clang++ bug. I don't know if it is a Clang bug, but here's my understanding of the problem. TokenFactoryScopeC::create() boils down to this: template uint32_t TokenFactoryScopeC::create( const void * localDef, uint32_t globalToken ) { const T & local_def = *static_cast(localDef); typename std::set::const_iterator it = m_globDefs->find( local_def ); // need operator< for T return 0; } When clang tries to instantiate TokenFactoryScopeC::getPackSize(), it tries to instantiate create() too. It fails to do so because there is no operator< defined for DefRec_BaseS. Anyway, this looks like a bug in VT code, here's why. DefRec_* have DefRec_*::SortS defined, but it is not used in TokenFactoryScopeC::m_globDefs. Probably it should be, something like this: std::set * m_globDefs; I'm not sure if this is a bug in Clang because I don't know if Clang should have tried to instantiate create(). Dmitri -- main(i,j){for(i=2;;i++){for(j=2;j*/
[OMPI devel] VT build failure with Clang++
When trying to build the OMPI trunk or the 1.5 branch with clang-3.0, I cannot build VT. If have tried both MacOS 10.7 and FreeBSD-9.0-RELEASE. In all four builds (2 branches X 2 OSes) the failure appears to be "deep" in the C++ STL. I strongly suspect that this is a Clang++ bug. However, I am reporting it here in the hope that somebody more familiar with STL and/or the VT code can take a closer look to rule out the possibility that the STL *usage* might be "border-line". The failure portion of the make output (nightly trunk tarball 1.7a1r25903) is attached. -Paul -- Paul H. Hargrove phhargr...@lbl.gov Future Technologies Group HPC Research Department Tel: +1-510-495-2352 Lawrence Berkeley National Laboratory Fax: +1-510-486-6900 clang-vt-make.log Description: Binary data