[Debian-med-packaging] Bug#812031: prime-phylo: FTBFS with GCC 6: needed for in-class initialization

Erik Sjölund erik.sjolund at gmail.com
Sun May 1 08:10:42 UTC 2016


Hi Andreas,
I did the debian packaging as part of a job project with Lars
Arvestad, who is one of the main authors of prime-phylo.
Since then I've switched working group so I am not so up-to-date about
the status of the prime-phylo development.
The best thing would be if we could involve Lars more in the loop too
so I CC:ed him to this email.

Lars, could you give us a brief update about the development of
prime-phylo? I heard there is now also
a java implementation called jprime.

Lars, maybe it is a good idea to set up a Githup repo for the
prime-phylo source code?
I see you already have a number of repositories:
https://github.com/arvestad

Regarding the compile errors in this specific bug, it seems they are
caused by the
fact that gcc now by default compiles for a newer C++ standard.

A quote from:
https://gcc.gnu.org/gcc-6/changes.html
"The default mode for C++ is now -std=gnu++14 instead of -std=gnu++98."

I guess the easiest solution would be to use
https://cmake.org/cmake/help/v3.1/variable/CMAKE_CXX_STANDARD.html#variable:CMAKE_CXX_STANDARD

and add the line
set(CMAKE_CXX_STANDARD 98)

as in the untested attached patch.
regards,
Erik


On Tue, Apr 26, 2016 at 3:17 PM, Andreas Tille <andreas at an3as.eu> wrote:
> Hi Erik,
>
> there is a bug in the Debian bug tracking system for prime-phylo.  Could
> you please have a look?
>
> Thanks
>
>       Andreas.
>
> On Tue, Jan 19, 2016 at 08:40:57PM -0800, Martin Michlmayr wrote:
>> Package: prime-phylo
>> Version: 1.0.11-2
>> Severity: important
>> User: debian-gcc at lists.debian.org
>> Usertags: ftbfs-gcc-6
>>
>> This package fails to build with GCC 6.  GCC 6 has not been released
>> yet, but it's expected that GCC 6 will become the default compiler for
>> stretch.
>>
>> Note that only the first error is reported; there might be more.  You
>> can find a snapshot of GCC 6 in experimental.  To build with GCC 6,
>> you can set CC=gcc-6 CXX=g++-6 explicitly.
>>
>> You may be able to find out more about this issue at
>> https://gcc.gnu.org/gcc-6/changes.html
>>
>> > sbuild (Debian sbuild) 0.67.0 (26 Dec 2015) on dl580gen9-02.hlinux
>> ...
>> > cd /<<PKGBUILDDIR>>/obj-x86_64-linux-gnu/src/cxx/libraries/prime && /usr/bin/c++   -DONLY_ONE_TIMESAMPLE -DPERTURBED_NODE -Dprime_phylo_EXPORTS -I/<<PKGBUILDDIR>>/obj-x86_64-linux-gnu/src/cxx/libraries/prime -I/<<PKGBUILDDIR>>/src/cxx/libraries/prime -I/usr/lib/openmpi/include -I/usr/lib/openmpi/include/openmpi -I/usr/lib/openmpi/include/openmpi/ompi/mpi/cxx -I/usr/include/libxml2 -I/<<PKGBUILDDIR>>/src/cxx/libraries -I/usr/lib/openmpi/include/openmpi/openmpi/ompi/mpi/cxx  -g -O2 -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2  -Wreorder -Wall -fexceptions -g -fPIC   -o CMakeFiles/prime-phylo.dir/TreePerturbationEvent.cc.o -c /<<PKGBUILDDIR>>/src/cxx/libraries/prime/TreePerturbationEvent.cc
>> > In file included from /<<PKGBUILDDIR>>/src/cxx/libraries/prime/ODESolver.cc:4:0:
>> > /<<PKGBUILDDIR>>/src/cxx/libraries/prime/ODESolver.hh:359:42: error: 'constexpr' needed for in-class initialization of static data member 'const Real beep::ODESolver::C2' of non-integral type [-fpermissive]
>> >   static const Real C2 =       1.0 /      5.0;
>> >                                           ^~~
>> >
>> > /<<PKGBUILDDIR>>/src/cxx/libraries/prime/ODESolver.hh:360:41: error: 'constexpr' needed for in-class initialization of static data member 'const Real beep::ODESolver::C3' of non-integral type [-fpermissive]
>> >   static const Real C3 =       3.0 /     10.0;
>> >                                          ^~~~
>> >
>> > /<<PKGBUILDDIR>>/src/cxx/libraries/prime/ODESolver.hh:361:42: error: 'constexpr' needed for in-class initialization of static data member 'const Real beep::ODESolver::C4' of non-integral type [-fpermissive]
>> >   static const Real C4 =       4.0 /      5.0;
>> >                                           ^~~
>> >
>> > /<<PKGBUILDDIR>>/src/cxx/libraries/prime/ODESolver.hh:362:42: error: 'constexpr' needed for in-class initialization of static data member 'const Real beep::ODESolver::C5' of non-integral type [-fpermissive]
>> >   static const Real C5 =       8.0 /      9.0;
>> >                                           ^~~
>> >
>> > /<<PKGBUILDDIR>>/src/cxx/libraries/prime/ODESolver.hh:363:42: error: 'constexpr' needed for in-class initialization of static data member 'const Real beep::ODESolver::A21' of non-integral type [-fpermissive]
>> >   static const Real A21 =      1.0 /      5.0;
>> >                                           ^~~
>> >
>> > /<<PKGBUILDDIR>>/src/cxx/libraries/prime/ODESolver.hh:364:41: error: 'constexpr' needed for in-class initialization of static data member 'const Real beep::ODESolver::A31' of non-integral type [-fpermissive]
>> >   static const Real A31 =      3.0 /     40.0;
>> >                                          ^~~~
>> >
>> > /<<PKGBUILDDIR>>/src/cxx/libraries/prime/ODESolver.hh:365:41: error: 'constexpr' needed for in-class initialization of static data member 'const Real beep::ODESolver::A32' of non-integral type [-fpermissive]
>> >   static const Real A32 =      9.0 /     40.0;
>> >                                          ^~~~
>> >
>> > /<<PKGBUILDDIR>>/src/cxx/libraries/prime/ODESolver.hh:366:41: error: 'constexpr' needed for in-class initialization of static data member 'const Real beep::ODESolver::A41' of non-integral type [-fpermissive]
>> >   static const Real A41 =     44.0 /     45.0;
>> >                                          ^~~~
>> >
>> > /<<PKGBUILDDIR>>/src/cxx/libraries/prime/ODESolver.hh:367:41: error: 'constexpr' needed for in-class initialization of static data member 'const Real beep::ODESolver::A42' of non-integral type [-fpermissive]
>> >   static const Real A42 =    -56.0 /     15.0;
>> >                                          ^~~~
>> >
>> > /<<PKGBUILDDIR>>/src/cxx/libraries/prime/ODESolver.hh:368:42: error: 'constexpr' needed for in-class initialization of static data member 'const Real beep::ODESolver::A43' of non-integral type [-fpermissive]
>> >   static const Real A43 =     32.0 /      9.0;
>> >                                           ^~~
>> >
>> > /<<PKGBUILDDIR>>/src/cxx/libraries/prime/ODESolver.hh:369:39: error: 'constexpr' needed for in-class initialization of static data member 'const Real beep::ODESolver::A51' of non-integral type [-fpermissive]
>> >   static const Real A51 =  19372.0 /   6561.0;
>> >                                        ^~~~~~
>> >
>> > /<<PKGBUILDDIR>>/src/cxx/libraries/prime/ODESolver.hh:370:42: error: 'constexpr' needed for in-class initialization of static data member 'const Real beep::ODESolver::A52' of non-integral type [-fpermissive]
>> >      static const Real A52 = -25360.0 /   2187.0;
>> >                                           ^~~~~~
>> >
>> > /<<PKGBUILDDIR>>/src/cxx/libraries/prime/ODESolver.hh:371:42: error: 'constexpr' needed for in-class initialization of static data member 'const Real beep::ODESolver::A53' of non-integral type [-fpermissive]
>> >      static const Real A53 =  64448.0 /   6561.0;
>> >                                           ^~~~~~
>> >
>> > /<<PKGBUILDDIR>>/src/cxx/libraries/prime/ODESolver.hh:372:43: error: 'constexpr' needed for in-class initialization of static data member 'const Real beep::ODESolver::A54' of non-integral type [-fpermissive]
>> >      static const Real A54 =   -212.0 /    729.0;
>> >                                            ^~~~~
>> >
>> > /<<PKGBUILDDIR>>/src/cxx/libraries/prime/ODESolver.hh:373:42: error: 'constexpr' needed for in-class initialization of static data member 'const Real beep::ODESolver::A61' of non-integral type [-fpermissive]
>> >      static const Real A61 =   9017.0 /   3168.0;
>> >                                           ^~~~~~
>> >
>> > /<<PKGBUILDDIR>>/src/cxx/libraries/prime/ODESolver.hh:374:44: error: 'constexpr' needed for in-class initialization of static data member 'const Real beep::ODESolver::A62' of non-integral type [-fpermissive]
>> >      static const Real A62 =   -355.0 /     33.0;
>> >                                             ^~~~
>> >
>> > /<<PKGBUILDDIR>>/src/cxx/libraries/prime/ODESolver.hh:375:42: error: 'constexpr' needed for in-class initialization of static data member 'const Real beep::ODESolver::A63' of non-integral type [-fpermissive]
>> >      static const Real A63 =  46732.0 /   5247.0;
>> >                                           ^~~~~~
>> >
>> > /<<PKGBUILDDIR>>/src/cxx/libraries/prime/ODESolver.hh:376:43: error: 'constexpr' needed for in-class initialization of static data member 'const Real beep::ODESolver::A64' of non-integral type [-fpermissive]
>> >      static const Real A64 =     49.0 /    176.0;
>> >                                            ^~~~~
>> >
>> > /<<PKGBUILDDIR>>/src/cxx/libraries/prime/ODESolver.hh:377:41: error: 'constexpr' needed for in-class initialization of static data member 'const Real beep::ODESolver::A65' of non-integral type [-fpermissive]
>> >      static const Real A65 =  -5103.0 /  18656.0;
>> >                                          ^~~~~~~
>> >
>> > /<<PKGBUILDDIR>>/src/cxx/libraries/prime/ODESolver.hh:378:43: error: 'constexpr' needed for in-class initialization of static data member 'const Real beep::ODESolver::A71' of non-integral type [-fpermissive]
>> >      static const Real A71 =     35.0 /    384.0;
>> >                                            ^~~~~
>> >
>> > /<<PKGBUILDDIR>>/src/cxx/libraries/prime/ODESolver.hh:379:42: error: 'constexpr' needed for in-class initialization of static data member 'const Real beep::ODESolver::A73' of non-integral type [-fpermissive]
>> >      static const Real A73 =    500.0 /   1113.0;
>> >                                           ^~~~~~
>> >
>> > /<<PKGBUILDDIR>>/src/cxx/libraries/prime/ODESolver.hh:380:43: error: 'constexpr' needed for in-class initialization of static data member 'const Real beep::ODESolver::A74' of non-integral type [-fpermissive]
>> >      static const Real A74 =    125.0 /    192.0;
>> >                                            ^~~~~
>> >
>> > /<<PKGBUILDDIR>>/src/cxx/libraries/prime/ODESolver.hh:381:42: error: 'constexpr' needed for in-class initialization of static data member 'const Real beep::ODESolver::A75' of non-integral type [-fpermissive]
>> >      static const Real A75 =  -2187.0 /   6784.0;
>> >                                           ^~~~~~
>> >
>> > /<<PKGBUILDDIR>>/src/cxx/libraries/prime/ODESolver.hh:382:44: error: 'constexpr' needed for in-class initialization of static data member 'const Real beep::ODESolver::A76' of non-integral type [-fpermissive]
>> >      static const Real A76 =     11.0 /     84.0;
>> >                                             ^~~~
>> >
>> > /<<PKGBUILDDIR>>/src/cxx/libraries/prime/ODESolver.hh:383:41: error: 'constexpr' needed for in-class initialization of static data member 'const Real beep::ODESolver::E1' of non-integral type [-fpermissive]
>> >      static const Real E1 =      71.0 /  57600.0;
>> >                                          ^~~~~~~
>> >
>> > /<<PKGBUILDDIR>>/src/cxx/libraries/prime/ODESolver.hh:384:41: error: 'constexpr' needed for in-class initialization of static data member 'const Real beep::ODESolver::E3' of non-integral type [-fpermissive]
>> >      static const Real E3 =     -71.0 /  16695.0;
>> >                                          ^~~~~~~
>> >
>> > /<<PKGBUILDDIR>>/src/cxx/libraries/prime/ODESolver.hh:385:42: error: 'constexpr' needed for in-class initialization of static data member 'const Real beep::ODESolver::E4' of non-integral type [-fpermissive]
>> >      static const Real E4 =      71.0 /   1920.0;
>> >                                           ^~~~~~
>> >
>> > /<<PKGBUILDDIR>>/src/cxx/libraries/prime/ODESolver.hh:386:40: error: 'constexpr' needed for in-class initialization of static data member 'const Real beep::ODESolver::E5' of non-integral type [-fpermissive]
>> >      static const Real E5 =  -17253.0 / 339200.0;
>> >                                         ^~~~~~~~
>> >
>> > /<<PKGBUILDDIR>>/src/cxx/libraries/prime/ODESolver.hh:387:43: error: 'constexpr' needed for in-class initialization of static data member 'const Real beep::ODESolver::E6' of non-integral type [-fpermissive]
>> >      static const Real E6 =      22.0 /    525.0;
>> >                                            ^~~~~
>> >
>> > /<<PKGBUILDDIR>>/src/cxx/libraries/prime/ODESolver.hh:388:44: error: 'constexpr' needed for in-class initialization of static data member 'const Real beep::ODESolver::E7' of non-integral type [-fpermissive]
>> >      static const Real E7 =      -1.0 /     40.0;
>> >                                             ^~~~
>> >
>> > /<<PKGBUILDDIR>>/src/cxx/libraries/prime/ODESolver.hh:391:47: error: 'constexpr' needed for in-class initialization of static data member 'const Real beep::ODESolver::D1' of non-integral type [-fpermissive]
>> >      static const Real D1 =  -12715105075.0 /  11282082432.0;
>> >                                                ^~~~~~~~~~~~~
>> >
>> > /<<PKGBUILDDIR>>/src/cxx/libraries/prime/ODESolver.hh:392:47: error: 'constexpr' needed for in-class initialization of static data member 'const Real beep::ODESolver::D3' of non-integral type [-fpermissive]
>> >      static const Real D3 =   87487479700.0 /  32700410799.0;
>> >                                                ^~~~~~~~~~~~~
>> >
>> > /<<PKGBUILDDIR>>/src/cxx/libraries/prime/ODESolver.hh:393:48: error: 'constexpr' needed for in-class initialization of static data member 'const Real beep::ODESolver::D4' of non-integral type [-fpermissive]
>> >      static const Real D4 =  -10690763975.0 /   1880347072.0;
>> >                                                 ^~~~~~~~~~~~
>> >
>> > /<<PKGBUILDDIR>>/src/cxx/libraries/prime/ODESolver.hh:394:46: error: 'constexpr' needed for in-class initialization of static data member 'const Real beep::ODESolver::D5' of non-integral type [-fpermissive]
>> >      static const Real D5 =  701980252875.0 / 199316789632.0;
>> >                                               ^~~~~~~~~~~~~~
>> >
>> > /<<PKGBUILDDIR>>/src/cxx/libraries/prime/ODESolver.hh:395:49: error: 'constexpr' needed for in-class initialization of static data member 'const Real beep::ODESolver::D6' of non-integral type [-fpermissive]
>> >      static const Real D6 =   -1453857185.0 /    822651844.0;
>> >                                                  ^~~~~~~~~~~
>> >
>> > /<<PKGBUILDDIR>>/src/cxx/libraries/prime/ODESolver.hh:396:50: error: 'constexpr' needed for in-class initialization of static data member 'const Real beep::ODESolver::D7' of non-integral type [-fpermissive]
>> >      static const Real D7 =      69997945.0 /     29380423.0;
>> >                                                   ^~~~~~~~~~
>> >
>> > [ 28%] Building CXX object src/cxx/libraries/prime/CMakeFiles/prime-phylo.dir/ConstRateModel.cc.o
>> > cd /<<PKGBUILDDIR>>/obj-x86_64-linux-gnu/src/cxx/libraries/prime && /usr/bin/c++   -DONLY_ONE_TIMESAMPLE -DPERTURBED_NODE -Dprime_phylo_EXPORTS -I/<<PKGBUILDDIR>>/obj-x86_64-linux-gnu/src/cxx/libraries/prime -I/<<PKGBUILDDIR>>/src/cxx/libraries/prime -I/usr/lib/openmpi/include -I/usr/lib/openmpi/include/openmpi -I/usr/lib/openmpi/include/openmpi/ompi/mpi/cxx -I/usr/include/libxml2 -I/<<PKGBUILDDIR>>/src/cxx/libraries -I/usr/lib/openmpi/include/openmpi/openmpi/ompi/mpi/cxx  -g -O2 -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2  -Wreorder -Wall -fexceptions -g -fPIC   -o CMakeFiles/prime-phylo.dir/ConstRateModel.cc.o -c /<<PKGBUILDDIR>>/src/cxx/libraries/prime/ConstRateModel.cc
>> > [ 29%] Building CXX object src/cxx/libraries/prime/CMakeFiles/prime-phylo.dir/Density2P_common.cc.o
>> > cd /<<PKGBUILDDIR>>/obj-x86_64-linux-gnu/src/cxx/libraries/prime && /usr/bin/c++   -DONLY_ONE_TIMESAMPLE -DPERTURBED_NODE -Dprime_phylo_EXPORTS -I/<<PKGBUILDDIR>>/obj-x86_64-linux-gnu/src/cxx/libraries/prime -I/<<PKGBUILDDIR>>/src/cxx/libraries/prime -I/usr/lib/openmpi/include -I/usr/lib/openmpi/include/openmpi -I/usr/lib/openmpi/include/openmpi/ompi/mpi/cxx -I/usr/include/libxml2 -I/<<PKGBUILDDIR>>/src/cxx/libraries -I/usr/lib/openmpi/include/openmpi/openmpi/ompi/mpi/cxx  -g -O2 -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2  -Wreorder -Wall -fexceptions -g -fPIC   -o CMakeFiles/prime-phylo.dir/Density2P_common.cc.o -c /<<PKGBUILDDIR>>/src/cxx/libraries/prime/Density2P_common.cc
>> > [ 29%] Building CXX object src/cxx/libraries/prime/CMakeFiles/prime-phylo.dir/Density2P_positive.cc.o
>> > cd /<<PKGBUILDDIR>>/obj-x86_64-linux-gnu/src/cxx/libraries/prime && /usr/bin/c++   -DONLY_ONE_TIMESAMPLE -DPERTURBED_NODE -Dprime_phylo_EXPORTS -I/<<PKGBUILDDIR>>/obj-x86_64-linux-gnu/src/cxx/libraries/prime -I/<<PKGBUILDDIR>>/src/cxx/libraries/prime -I/usr/lib/openmpi/include -I/usr/lib/openmpi/include/openmpi -I/usr/lib/openmpi/include/openmpi/ompi/mpi/cxx -I/usr/include/libxml2 -I/<<PKGBUILDDIR>>/src/cxx/libraries -I/usr/lib/openmpi/include/openmpi/openmpi/ompi/mpi/cxx  -g -O2 -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2  -Wreorder -Wall -fexceptions -g -fPIC   -o CMakeFiles/prime-phylo.dir/Density2P_positive.cc.o -c /<<PKGBUILDDIR>>/src/cxx/libraries/prime/Density2P_positive.cc
>> > src/cxx/libraries/prime/CMakeFiles/prime-phylo.dir/build.make:293: recipe for target 'src/cxx/libraries/prime/CMakeFiles/prime-phylo.dir/ODESolver.cc.o' failed
>> > make[3]: *** [src/cxx/libraries/prime/CMakeFiles/prime-phylo.dir/ODESolver.cc.o] Error 1
>> > make[3]: *** Waiting for unfinished jobs....
>> > In file included from /<<PKGBUILDDIR>>/src/cxx/libraries/prime/EpochTree.cc:7:0:
>> > /<<PKGBUILDDIR>>/src/cxx/libraries/prime/EpochTree.hh:54:39: error: 'constexpr' needed for in-class initialization of static data member 'const Real beep::EpochTree::MIN_SPLICE_DELTA' of non-integral type [-fpermissive]
>> >   static const Real MIN_SPLICE_DELTA = 0.0001;
>> >                                        ^~~~~~
>> >
>> > In file included from /<<PKGBUILDDIR>>/src/cxx/libraries/prime/EpochPtMaps.hh:9:0,
>> >                  from /<<PKGBUILDDIR>>/src/cxx/libraries/prime/EpochPtMaps.cc:5:
>> > /<<PKGBUILDDIR>>/src/cxx/libraries/prime/EpochTree.hh:54:39: error: 'constexpr' needed for in-class initialization of static data member 'const Real beep::EpochTree::MIN_SPLICE_DELTA' of non-integral type [-fpermissive]
>> >   static const Real MIN_SPLICE_DELTA = 0.0001;
>> >                                        ^~~~~~
>>
>> _______________________________________________
>> Debian-med-packaging mailing list
>> Debian-med-packaging at lists.alioth.debian.org
>> http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/debian-med-packaging
>>
>
> --
> http://fam-tille.de
-------------- next part --------------
A non-text attachment was scrubbed...
Name: untested.patch
Type: text/x-patch
Size: 1146 bytes
Desc: not available
URL: <http://lists.alioth.debian.org/pipermail/debian-med-packaging/attachments/20160501/031d939b/attachment-0001.bin>


More information about the Debian-med-packaging mailing list