LAM/MPI logo

LAM/MPI General User's Mailing List Archives

  |   Home   |   Download   |   Documentation   |   FAQ   |   all just in this list

From: Jeff Squyres (jsquyres_at_[hidden])
Date: 2005-06-15 11:29:30


It looks like at least one problem is that LAM was compiled with the
Portland C++ compiler, not g++. Hence, your build flags may not be
suitable. If you recompile LAM to use the g++ compiler, you might have
better luck.

It looks like there may be other errors, too (they step from Defs.hpp,
which look to be part of some local package) -- I can't really comment
on those because they are part of your local software setup. But
perhaps they are using g++ extensions for your C++ code...? If so,
switching LAM to use g++ might help here, too.

On Jun 15, 2005, at 11:49 AM, nithu wrote:

> Hi,
>  
> I tried changing g++ to mpiCC, but it gives out many other errors.
> Yes...you are rite! the build has python bindings. The software has a
> c++ core, and for the front end python bindings are used. My core
> interest is in the core c++, but i'm forced to use the build that
> comes along with the software package because, there are many
> libraries and paths to be included for the compilation and execution
> of the core c++ programs. But if the build itself has a python binding
> and if i change g++ to mpiCC it does'nt work.
>  
> Any suggestions for this?
>  
> Below is the error i get if i change g++ to mpiCC in the build file.
> please let me know if anyone has any clue of what is wrong.
>  
>  
>  
> pgCC-Warning-Unknown switch: Wno-pmf-conversions
>  
> "usr/local/include/ecell/libecs/Defs.hpp", line 427 :error :identifier
> INFINITY is undefined
> const Real INF (INFINITY) ;
>  
> "usr/local/include/ecell/libecs/Defs.hpp", line 444 : warning type
> qualifier on return type is meaningless
> inline Const Real FMA (const Real a, const Real b,  const Real c)
>  
> "usr/local/include/ecell/libecs/libecs.hpp", line 55 : warning type
> qualifier on return type is meaningless
> inline Const int getMajorVersion();
>  
> "usr/local/include/ecell/libecs/libecs.hpp", line 60 : warning type
> qualifier on return type is meaningless
> inline Const int getMinorVersion();
>  
> "usr/local/include/ecell/libecs/libecs.hpp", line 65 : warning type
> qualifier on return type is meaningless
> inline Const int getMicroVersion();
>  
> "/usr/local/include/ecell/libecs/PropertySlot.hpp", line 254: error: no
>           instance of function template
> "libecs::PropertiedClass::nullGet"
>           matches the required type
>         aNullMethodPtr( &PropertiedClass::nullGet<SlotType> );
>                         ^
>           detected during:
>             instantiation of "const bool
> libecs::ConcretePropertySlot<T,
>                      
> SlotType_>::isGetableMethod(libecs::ConcretePropertySlot<
>                       T, SlotType_>::GetMethodPtr) [with
> T=MakesignalProcess,
>                       SlotType_=libecs::Integer]" at line 189
>             instantiation of "const bool
> libecs::ConcretePropertySlot<T,
>                       SlotType_>::isGetable() const [with
> T=MakesignalProcess,
>                       SlotType_=libecs::Integer]" at line 179
>             instantiation of "libecs::ConcretePropertySlot<T,
>                       SlotType_>::~ConcretePropertySlot() [with
>                       T=MakesignalProcess, SlotType_=libecs::Integer]"
> at line
>                       174
>             instantiation of "libecs::ConcretePropertySlot<T,
>                      
> SlotType_>::ConcretePropertySlot(libecs::ConcreteProperty
>                       Slot<T, SlotType_>::SetMethodPtr,
>                       libecs::ConcretePropertySlot<T,
>                       SlotType_>::GetMethodPtr) [with
> T=MakesignalProcess,
>                       SlotType_=libecs::Integer]" at line 81 of
>                       "/usr/local/include/ecell/libecs/Process.hpp"
>             instantiation of "void
>                      
> libecs::Process::initializePropertyInterface(libecs::Type
>                       2Type<TT>) [with TT=MakesignalProcess]" at line
> 20 of
>                       "MakesignalProcess.cc"
>             instantiation of "void
>                      
> MakesignalProcess::initializePropertyInterface(libecs::Ty
>                       pe2Type<TT>) [with TT=MakesignalProcess]" at
> line 120 of
>                      
> "/usr/local/include/ecell/libecs/PropertyInterface.hpp"
>             instantiation of
>                      
> "libecs::PropertyInterface<T>::PropertyInterface() [with
>                       T=MakesignalProcess]"
> "/usr/local/include/ecell/libecs/PropertySlot.hpp", line 263: error: no
>           instance of function template
> "libecs::PropertiedClass::nullSet"
>           matches the required type
>           return &PropertiedClass::nullSet<SlotType>;
>                  ^
>           detected during:
>             instantiation of "libecs::ConcretePropertySlot<T,
>                       SlotType_>::SetMethodPtr
> libecs::ConcretePropertySlot<T,
>                      
> SlotType_>::SetMethod(libecs::ConcretePropertySlot<T,
>                       SlotType_>::SetMethodPtr) [with
> T=MakesignalProcess,
>                       SlotType_=libecs::Real]" at line 170
>             instantiation of "libecs::ConcretePropertySlot<T,
>                      
> SlotType_>::ConcretePropertySlot(libecs::ConcreteProperty
>                       Slot<T, SlotType_>::SetMethodPtr,
>                       libecs::ConcretePropertySlot<T,
>                       SlotType_>::GetMethodPtr) [with
> T=MakesignalProcess,
>                       SlotType_=libecs::Real]" at line 318
>             instantiation of "libecs::LoadSaveConcretePropertySlot<T,
>                      
> SlotType_>::LoadSaveConcretePropertySlot(libecs::LoadSave
>                       ConcretePropertySlot<T, SlotType_>::SetMethodPtr,
>                       libecs::LoadSaveConcretePropertySlot<T,
>                       SlotType_>::GetMethodPtr,
>                       libecs::LoadSaveConcretePropertySlot<T,
>                       SlotType_>::SetMethodPtr,
>                       libecs::LoadSaveConcretePropertySlot<T,
>                       SlotType_>::GetMethodPtr) [with
> T=MakesignalProcess,
>                       SlotType_=libecs::Real]" at line 84 of
>                       "/usr/local/include/ecell/libecs/Process.hpp"
>             instantiation of "void
>                      
> libecs::Process::initializePropertyInterface(libecs::Type
>                       2Type<TT>) [with TT=MakesignalProcess]" at line
> 20 of
>                       "MakesignalProcess.cc"
>             instantiation of "void
>                      
> MakesignalProcess::initializePropertyInterface(libecs::Ty
>                       pe2Type<TT>) [with TT=MakesignalProcess]" at
> line 120 of
>                      
> "/usr/local/include/ecell/libecs/PropertyInterface.hpp"
>             instantiation of
>                      
> "libecs::PropertyInterface<T>::PropertyInterface() [with
>                       T=MakesignalProcess]"
> "/usr/local/include/ecell/libecs/PropertySlot.hpp", line 275: error: no
>           instance of function template
> "libecs::PropertiedClass::nullGet"
>           matches the required type
>           return &PropertiedClass::nullGet<SlotType>;
>                  ^
>           detected during:
>             instantiation of "libecs::ConcretePropertySlot<T,
>                       SlotType_>::GetMethodPtr
> libecs::ConcretePropertySlot<T,
>                      
> SlotType_>::GetMethod(libecs::ConcretePropertySlot<T,
>                       SlotType_>::GetMethodPtr) [with
> T=MakesignalProcess,
>                       SlotType_=libecs::Real]" at line 171
>             instantiation of "libecs::ConcretePropertySlot<T,
>                      
> SlotType_>::ConcretePropertySlot(libecs::ConcreteProperty
>                       Slot<T, SlotType_>::SetMethodPtr,
>                       libecs::ConcretePropertySlot<T,
>                       SlotType_>::GetMethodPtr) [with
> T=MakesignalProcess,
>                       SlotType_=libecs::Real]" at line 318
>             instantiation of "libecs::LoadSaveConcretePropertySlot<T,
>                      
> SlotType_>::LoadSaveConcretePropertySlot(libecs::LoadSave
>                       ConcretePropertySlot<T, SlotType_>::SetMethodPtr,
>                       libecs::LoadSaveConcretePropertySlot<T,
>                       SlotType_>::GetMethodPtr,
>                       libecs::LoadSaveConcretePropertySlot<T,
>                       SlotType_>::SetMethodPtr,
>                       libecs::LoadSaveConcretePropertySlot<T,
>                       SlotType_>::GetMethodPtr) [with
> T=MakesignalProcess,
>                       SlotType_=libecs::Real]" at line 84 of
>                       "/usr/local/include/ecell/libecs/Process.hpp"
>             instantiation of "void
>                      
> libecs::Process::initializePropertyInterface(libecs::Type
>                       2Type<TT>) [with TT=MakesignalProcess]" at line
> 20 of
>                       "MakesignalProcess.cc"
>             instantiation of "void
>                      
> MakesignalProcess::initializePropertyInterface(libecs::Ty
>                       pe2Type<TT>) [with TT=MakesignalProcess]" at
> line 120 of
>                      
> "/usr/local/include/ecell/libecs/PropertyInterface.hpp"
>             instantiation of
>                      
> "libecs::PropertyInterface<T>::PropertyInterface() [with
>                       T=MakesignalProcess]"
> "/usr/local/include/ecell/libecs/PropertySlot.hpp", line 247: error: no
>           instance of function template
> "libecs::PropertiedClass::nullSet"
>           matches the required type
>         const SetMethodPtr aNullMethodPtr(
> &PropertiedClass::nullSet<SlotType> );
>                                            ^
>           detected during:
>             instantiation of "const bool
> libecs::ConcretePropertySlot<T,
>                      
> SlotType_>::isSetableMethod(libecs::ConcretePropertySlot<
>                       T, SlotType_>::SetMethodPtr) [with
> T=MakesignalProcess,
>                       SlotType_=libecs::Real]" at line 184
>             instantiation of "const bool
> libecs::ConcretePropertySlot<T,
>                       SlotType_>::isSetable() const [with
> T=MakesignalProcess,
>                       SlotType_=libecs::Real]" at line 179
>             instantiation of "libecs::ConcretePropertySlot<T,
>                       SlotType_>::~ConcretePropertySlot() [with
>                       T=MakesignalProcess, SlotType_=libecs::Real]" at
> line 174
>             instantiation of "libecs::ConcretePropertySlot<T,
>                      
> SlotType_>::ConcretePropertySlot(libecs::ConcreteProperty
>                       Slot<T, SlotType_>::SetMethodPtr,
>                       libecs::ConcretePropertySlot<T,
>                       SlotType_>::GetMethodPtr) [with
> T=MakesignalProcess,
>                       SlotType_=libecs::Real]" at line 318
>             instantiation of "libecs::LoadSaveConcretePropertySlot<T,
>                      
> SlotType_>::LoadSaveConcretePropertySlot(libecs::LoadSave
>                       ConcretePropertySlot<T, SlotType_>::SetMethodPtr,
>                       libecs::LoadSaveConcretePropertySlot<T,
>                       SlotType_>::GetMethodPtr,
>                       libecs::LoadSaveConcretePropertySlot<T,
>                       SlotType_>::SetMethodPtr,
>                       libecs::LoadSaveConcretePropertySlot<T,
>                       SlotType_>::GetMethodPtr) [with
> T=MakesignalProcess,
>                       SlotType_=libecs::Real]" at line 84 of
>                       "/usr/local/include/ecell/libecs/Process.hpp"
>             instantiation of "void
>                      
> libecs::Process::initializePropertyInterface(libecs::Type
>                       2Type<TT>) [with TT=MakesignalProcess]" at line
> 20 of
>                       "MakesignalProcess.cc"
>             instantiation of "void
>                      
> MakesignalProcess::initializePropertyInterface(libecs::Ty
>                       pe2Type<TT>) [with TT=MakesignalProcess]" at
> line 120 of
>                      
> "/usr/local/include/ecell/libecs/PropertyInterface.hpp"
>             instantiation of
>                      
> "libecs::PropertyInterface<T>::PropertyInterface() [with
>                       T=MakesignalProcess]"
> "/usr/local/include/ecell/libecs/PropertySlot.hpp", line 254: error: no
>           instance of function template
> "libecs::PropertiedClass::nullGet"
>           matches the required type
>         aNullMethodPtr( &PropertiedClass::nullGet<SlotType> );
>                         ^
>           detected during:
>             instantiation of "const bool
> libecs::ConcretePropertySlot<T,
>                      
> SlotType_>::isGetableMethod(libecs::ConcretePropertySlot<
>                       T, SlotType_>::GetMethodPtr) [with
> T=MakesignalProcess,
>                       SlotType_=libecs::Real]" at line 189
>             instantiation of "const bool
> libecs::ConcretePropertySlot<T,
>                       SlotType_>::isGetable() const [with
> T=MakesignalProcess,
>                       SlotType_=libecs::Real]" at line 179
>             instantiation of "libecs::ConcretePropertySlot<T,
>                       SlotType_>::~ConcretePropertySlot() [with
>                       T=MakesignalProcess, SlotType_=libecs::Real]" at
> line 174
>             instantiation of "libecs::ConcretePropertySlot<T,
>                      
> SlotType_>::ConcretePropertySlot(libecs::ConcreteProperty
>                       Slot<T, SlotType_>::SetMethodPtr,
>                       libecs::ConcretePropertySlot<T,
>                       SlotType_>::GetMethodPtr) [with
> T=MakesignalProcess,
>                       SlotType_=libecs::Real]" at line 318
>             instantiation of "libecs::LoadSaveConcretePropertySlot<T,
>                      
> SlotType_>::LoadSaveConcretePropertySlot(libecs::LoadSave
>                       ConcretePropertySlot<T, SlotType_>::SetMethodPtr,
>                       libecs::LoadSaveConcretePropertySlot<T,
>                       SlotType_>::GetMethodPtr,
>                       libecs::LoadSaveConcretePropertySlot<T,
>                       SlotType_>::SetMethodPtr,
>                       libecs::LoadSaveConcretePropertySlot<T,
>                       SlotType_>::GetMethodPtr) [with
> T=MakesignalProcess,
>                       SlotType_=libecs::Real]" at line 84 of
>                       "/usr/local/include/ecell/libecs/Process.hpp"
>             instantiation of "void
>                      
> libecs::Process::initializePropertyInterface(libecs::Type
>                       2Type<TT>) [with TT=MakesignalProcess]" at line
> 20 of
>                       "MakesignalProcess.cc"
>             instantiation of "void
>                      
> MakesignalProcess::initializePropertyInterface(libecs::Ty
>                       pe2Type<TT>) [with TT=MakesignalProcess]" at
> line 120 of
>                      
> "/usr/local/include/ecell/libecs/PropertyInterface.hpp"
>             instantiation of
>                      
> "libecs::PropertyInterface<T>::PropertyInterface() [with
>                       T=MakesignalProcess]"
> "/usr/local/include/ecell/libecs/PropertyInterface.hpp", line 229:
> warning:
>           missing return statement at end of non-void function
>           "libecs::PropertyInterface<T>::createPropertySlotProxy [with
>           T=MakesignalProcess]"
>       }
>       ^
>           detected during instantiation of
> "libecs::PropertySlotProxyPtr
>                    
> libecs::PropertyInterface<T>::createPropertySlotProxy(T &,
>                     libecs::StringCref) [with T=MakesignalProcess]"
> "/usr/local/include/ecell/libecs/PropertyInterface.hpp", line 336:
> warning:
>           missing return statement at end of non-void function
>           "libecs::PropertyInterface<T>::saveProperty [with
>           T=MakesignalProcess]"
>       }
>       ^
>           detected during instantiation of "const libecs::Polymorph
>                     libecs::PropertyInterface<T>::saveProperty(const T
> &,
>                     libecs::StringCref) [with T=MakesignalProcess]"
> 18 errors detected in the compilation of "MakesignalProcess.cc".
> E-Cell3 dmcompile: Error: The compiler failed to create
> MakesignalProcess.o
> [root_at_master LTD]#
>  
> Thanks
>  
> NG
>  
>  
>  
>  
>  
>  
>  
>  
>  
>
>
>  
>
> Do you Yahoo!?
> Yahoo! Mail - Helps protect you from nasty viruses.From: Jeff Squyres
> <jsquyres_at_[hidden]>
> Subject: Re: LAM: changin compiler
> Date: Tue, 14 Jun 2005 18:12:51 -0400
> To: General LAM/MPI mailing list <lam_at_[hidden]>
>
> FWIW: this looks like Python code, not a Makefile. Does your build
> system use python?
>
> If so, I *suspect* that changing the "CXX" line to contain mpiCC
> instead of g++ should do the trick. As long as mpiCC is using g++ as a
> back-end compiler (which you can verify by running "mpiCC -showme"),
> the rest of your flags should be fine (although on most modern g++
> installations, you shouldn't need -lstdc++, I think...?).
>
>
> On Jun 14, 2005, at 4:40 PM, nithu wrote:
>
> > Hi,
> >  
> > i'm trying to change the compiler of a software from gcc to mpiCC. i
> > tried changing the code in the make file, to make it accept mpiCC in
> > place of gcc. A small part of the make file is
> >  
> > import string
> > import getopt
> > prefix=os.environ['ECELL3_PREFIX']
> > exec_prefix=prefix
> > libdir=exec_prefix + os.sep + 'lib'
> > CXX='g++'
> > ORIG_CXXFLAGS="-O2 -g -pipe -march=i386 -mcpu=i686"
> > LDADD='-lstdc++'
> > SHLEXT='.so'
> > CXXSUFFIX='.cpp'
> > CXXFLAGS = os.environ.get('CXXFLAGS','')
> > VERBOSE = False
> >  
> > i would like to know where and what kind of changes i should make to
> > force it to change from gcc compiler to mpiCC compiler.
> >  
> > Thanks,
> > NG
> >
> > Do you Yahoo!?
> > Yahoo! Mail - Helps protect you from nasty
> > viruses._______________________________________________
> > This list is archived at http://www.lam-mpi.org/MailArchives/lam/
>
> --
> {+} Jeff Squyres
> {+} jsquyres_at_[hidden]
> {+} http://www.lam-mpi.org/
>
>
>
>
> __________________________________________________
> Do You Yahoo!?
> Tired of spam? Yahoo! Mail has the best spam protection around
> http://mail.yahoo.com_______________________________________________
> This list is archived at http://www.lam-mpi.org/MailArchives/lam/

-- 
{+} Jeff Squyres
{+} jsquyres_at_[hidden]
{+} http://www.lam-mpi.org/