bayesiancook / pbmpi

phylobayes mpi
GNU General Public License v2.0
23 stars 9 forks source link

Compilation problem gcc 6 debian stretch #8

Closed npchar closed 6 years ago

npchar commented 6 years ago

Hi there, Just to report a compilation problem with gcc 6.3 from a Debian fresh install (stretch) :

Generating dependencies for RASCATGTRDPGammaPhyloProcess.cpp...
Generating dependencies for ExpoConjugateGTRFiniteProfileProcess.cpp...
Generating dependencies for MissingFractionPerGene.cpp...
Generating dependencies for correlation.cpp...
Generating dependencies for CodonMutSelProfileProcess.cpp...
Generating dependencies for PB.cpp...
Generating dependencies for PoissonSBDPProfileProcess.cpp...
Generating dependencies for MakeMixture.cpp...
Generating dependencies for NNI.cpp...
Generating dependencies for PoissonDPProfileProcess.cpp...
Generating dependencies for PoissonMixtureProfileProcess.cpp...
Generating dependencies for MatrixDPProfileProcess.cpp...
Generating dependencies for SubstitutionProcess.cpp...
Generating dependencies for PolyNode.cpp...
Generating dependencies for TaxaParameters.cpp...
Generating dependencies for FiniteProfileProcess.cpp...
Generating dependencies for TreeList.cpp...
Generating dependencies for Tree.cpp...
Generating dependencies for TraceComp.cpp...
Generating dependencies for DecomposeGTR.cpp...
Generating dependencies for MixtureProfileProcess.cpp...
Generating dependencies for JackKnife.cpp...
Generating dependencies for SimuCodon.cpp...
Generating dependencies for RASCATSBDPGammaPhyloProcess.cpp...
Generating dependencies for GeneralPathSuffStatMatrixSubstitutionProcess.cpp...
Generating dependencies for traceci.cpp...
Generating dependencies for ExpoConjugateGTRSBDPProfileProcess.cpp...
Generating dependencies for AACodonMutSelProfileProcess.cpp...
Generating dependencies for SBDPProfileProcess.cpp...
Generating dependencies for BranchProcess.cpp...
Generating dependencies for MatrixSubstitutionProcess.cpp...
Generating dependencies for RateProcess.cpp...
Generating dependencies for ExpoConjugateGTRMixtureProfileProcess.cpp...
Generating dependencies for MatrixOneProfileProcess.cpp...
Generating dependencies for GeneralPathSuffStatGTRFiniteProfileProcess.cpp...
Generating dependencies for AACodonMutSelFinitePhyloProcess.cpp...
Generating dependencies for PoissonSubstitutionProcess.cpp...
Generating dependencies for StateSpace.cpp...
Generating dependencies for Propagate.cpp...
Generating dependencies for RASCATFiniteGammaPhyloProcess.cpp...
Generating dependencies for Bipartition.cpp...
Generating dependencies for Consensus.cpp...
Generating dependencies for Random.cpp...
Generating dependencies for ConvertPhy2Ali.cpp...
Generating dependencies for CodonMutSelSBDPPhyloProcess.cpp...
Generating dependencies for GammaBranchProcess.cpp...
Generating dependencies for MatrixPhyloProcess.cpp...
Generating dependencies for MatrixInfiniteProfileProcess.cpp...
Generating dependencies for MatrixFiniteProfileProcess.cpp...
Generating dependencies for PBTree.cpp...
Generating dependencies for PoissonPhyloProcess.cpp...
Generating dependencies for AACodonMutSelSBDPPhyloProcess.cpp...
Generating dependencies for ExpoConjugateGTRProfileProcess.cpp...
Generating dependencies for GeneralPathSuffStatMatrixMixtureProfileProcess.cpp...
Generating dependencies for CodonMutSelFinitePhyloProcess.cpp...
Generating dependencies for Chrono.cpp...
Generating dependencies for SequenceAlignment.cpp...
Generating dependencies for gamma.cpp...
Generating dependencies for SubMatrix.cpp...
Generating dependencies for MatrixProfileProcess.cpp...
Generating dependencies for MatrixMixtureProfileProcess.cpp...
Generating dependencies for GeneralPathSuffStatMatrixOneProfileProcess.cpp...
Generating dependencies for DGamRateProcess.cpp...
Generating dependencies for CVrep.cpp...
Generating dependencies for RASCATGTRSBDPGammaPhyloProcess.cpp...
Generating dependencies for PoissonFiniteProfileProcess.cpp...
Generating dependencies for RASCATGTRFiniteGammaPhyloProcess.cpp...
Generating dependencies for GeneralPathSuffStatGTRProfileProcess.cpp...
Generating dependencies for ProfileProcess.cpp...
Generating dependencies for ReadPB.cpp...
Generating dependencies for ExpoConjugateGTRDPProfileProcess.cpp...
Generating dependencies for correl.cpp...
Generating dependencies for TaxonSet.cpp...
Generating dependencies for CodonStateSpace.cpp...
Generating dependencies for ZippedSequenceAlignment.cpp...
Generating dependencies for GeneralPathSuffStatGTRDPProfileProcess.cpp...
Generating dependencies for GTRProfileProcess.cpp...
Generating dependencies for BPCompare.cpp...
Generating dependencies for DPProfileProcess.cpp...
Generating dependencies for GeneralPathSuffStatMatrixPhyloProcess.cpp...
Generating dependencies for CodonSubMatrix.cpp...
Generating dependencies for linalg.cpp...
Generating dependencies for OneProfileProcess.cpp...
Generating dependencies for CodonSequenceAlignment.cpp...
Generating dependencies for ExpoConjugateGTRPhyloProcess.cpp...
Generating dependencies for RASCATGammaPhyloProcess.cpp...
Generating dependencies for PhyloProcess.cpp...
Generating dependencies for BipartitionList.cpp...
Generating dependencies for GTRMixtureProfileProcess.cpp...
Generating dependencies for MatrixSBDPProfileProcess.cpp...
Generating dependencies for ExpoConjugateGTRSubstitutionProcess.cpp...
Generating dependencies for GeneralPathSuffStatGTRSBDPProfileProcess.cpp...
Generating dependencies for GTRSubMatrix.cpp...
mpic++ -c -w -O3 -c PB.cpp
In file included from SequenceAlignment.h:21:0,
                 from CodonSequenceAlignment.h:21,
                 from Model.h:17,
                 from PB.cpp:17:
Random.h:53:30: error: ‘constexpr’ needed for in-class initialization of static data member ‘const double Random::INFPROB’ of non-integral type [-fpermissive]
  static const double INFPROB=250;
                              ^~~
In file included from AACodonMutSelProfileProcess.h:20:0,
                 from AACodonMutSelSBDPProfileProcess.h:21,
                 from AACodonMutSelSBDPSubstitutionProcess.h:20,
                 from AACodonMutSelSBDPPhyloProcess.h:20,
                 from Model.h:23,
                 from PB.cpp:17:
CodonSubMatrix.h:70:33: error: ‘constexpr’ needed for in-class initialization of static data member ‘const double AAMutSelProfileSubMatrix::TOOSMALL’ of non-integral type [-fpermissive]
  static const double TOOSMALL = 1e-30;
                                 ^~~~~
CodonSubMatrix.h:71:33: error: ‘constexpr’ needed for in-class initialization of static data member ‘const double AAMutSelProfileSubMatrix::TOOLARGE’ of non-integral type [-fpermissive]
  static const double TOOLARGE = 500;
                                 ^~~
CodonSubMatrix.h:72:42: error: ‘constexpr’ needed for in-class initialization of static data member ‘const double AAMutSelProfileSubMatrix::TOOLARGENEGATIVE’ of non-integral type [-fpermissive]
  static const double TOOLARGENEGATIVE = -500;
                                          ^~~
CodonSubMatrix.h:99:33: error: ‘constexpr’ needed for in-class initialization of static data member ‘const double AACodonMutSelProfileSubMatrix::TOOSMALL’ of non-integral type [-fpermissive]
  static const double TOOSMALL = 1e-30;
                                 ^~~~~
CodonSubMatrix.h:100:33: error: ‘constexpr’ needed for in-class initialization of static data member ‘const double AACodonMutSelProfileSubMatrix::TOOLARGE’ of non-integral type [-fpermissive]
  static const double TOOLARGE = 500;
                                 ^~~
CodonSubMatrix.h:101:42: error: ‘constexpr’ needed for in-class initialization of static data member ‘const double AACodonMutSelProfileSubMatrix::TOOLARGENEGATIVE’ of non-integral type [-fpermissive]
  static const double TOOLARGENEGATIVE = -50;
                                          ^~
CodonSubMatrix.h:122:33: error: ‘constexpr’ needed for in-class initialization of static data member ‘const double CodonMutSelProfileSubMatrix::TOOSMALL’ of non-integral type [-fpermissive]
  static const double TOOSMALL = 1e-30;
                                 ^~~~~
CodonSubMatrix.h:123:33: error: ‘constexpr’ needed for in-class initialization of static data member ‘const double CodonMutSelProfileSubMatrix::TOOLARGE’ of non-integral type [-fpermissive]
  static const double TOOLARGE = 500;
                                 ^~~
CodonSubMatrix.h:124:42: error: ‘constexpr’ needed for in-class initialization of static data member ‘const double CodonMutSelProfileSubMatrix::TOOLARGENEGATIVE’ of non-integral type [-fpermissive]
  static const double TOOLARGENEGATIVE = -50;
                                          ^~
Makefile:55 : la recette pour la cible « PB.o » a échouée
make: *** [PB.o] Erreur 1
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/6/lto-wrapper
Target: x86_64-linux-gnu
Configured with: ../src/configure -v --with-pkgversion='Debian 6.3.0-18' --with-bugurl=file:///usr/share/doc/gcc-6/README.Bugs --enable-languages=c,ada,c++,java,go,d,fortran,objc,obj-c++ --prefix=/usr --program-suffix=-6 --program-prefix=x86_64-linux-gnu- --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --with-sysroot=/ --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-gnu-unique-object --disable-vtable-verify --enable-libmpx --enable-plugin --enable-default-pie --with-system-zlib --disable-browser-plugin --enable-java-awt=gtk --enable-gtk-cairo --with-java-home=/usr/lib/jvm/java-1.5.0-gcj-6-amd64/jre --enable-java-home --with-jvm-root-dir=/usr/lib/jvm/java-1.5.0-gcj-6-amd64 --with-jvm-jar-dir=/usr/lib/jvm-exports/java-1.5.0-gcj-6-amd64 --with-arch-directory=amd64 --with-ecj-jar=/usr/share/java/eclipse-ecj.jar --with-target-system-zlib --enable-objc-gc=auto --enable-multiarch --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32,m64,mx32 --enable-multilib --with-tune=generic --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu
Thread model: posix
gcc version 6.3.0 20170516 (Debian 6.3.0-18)

I have no idea how to deal with that. I tried to install gcc4.9 (which worked great for phylobayes mpi compilation on many computer I worked on) but I did something wrong and badly didn't succeed.

Still, looks like something problematic with gcc 6 ? Is someone have an idea of what it's going on ? Very interested to fix it...

Thanks a lot for all the great work you are doing !

Pierre

npchar commented 6 years ago

The Informatic staff of my lab (thanx Erwann) helped me to fix it (I mean to change the gcc version). It looks like there is major change in gcc which have an issue with the phylobayes compilation.

sudo apt-get remove gcc-6-base
sudo apt-get remove g++-6
sudo apt-get install g++-4.9
sudo apt-get install gcc-4.9
sudo ln -s /usr/bin/gcc-4.9 /usr/bin/gcc
sudo ln -s /usr/bin/g++-4.9 /usr/bin/g++ 

And then going to pbmpi/sources and compiling with make. This solution will work only if you are in the sudoers group.

bayesiancook commented 6 years ago

sorry for that -- I have changed the code, so that it can compile with more recent compilers

nicolas