[Debian-med-packaging] Problems building latest phyml

Andreas Tille andreas at an3as.eu
Wed Aug 17 14:33:18 UTC 2016


Hi,

involving upstream into the discussion now.

On Wed, Aug 17, 2016 at 02:48:35PM +0100, James Cowgill wrote:
> > So lets come to the real build errors of [1]: I just fixed the first issue
> > in a new patch (please git pull) but I do not understand this one:

Stephane, I've created a simple fix for a missing declaration[2].

Remark: Back than when I was doing some C programming I was told to use
register variables when tying to swap values.  May be the compiler does
this now on its own ...

> > ...
> > gcc  -I. -I..   -Wdate-time -D_FORTIFY_SOURCE=2  -Wall -O2 -msse -fomit-frame-pointer -funroll-loops -Wempty-body -Wuninitialized  -I/usr/include/libhmsbeagle-1 -lhmsbeagle -ldl  -c -o lk.o lk.c
> > lk.c: In function 'Update_PMat_At_Given_Edge':
> > lk.c:2449:31: error: invalid initializer
> >        int p_matrices[1]     = b_fcus->Pij_rr_idx;
> >                                ^~~~~~
> > lk.c:2450:31: error: invalid initializer
> >        double branch_lens[1] = len;
> 
> You can't initialize an array with a scalar value (double[] != double).
> Also, using an array of fixed size 1 is a code smell (why use an array
> at all?)
> 
> The quick fix here is probably to wrap the values in curly braces to
> form a correct array initializer.

My patch [3] implements this hint given by James (thanks for the hint)
but I agree with James that this code looks a bit suspicious - thus I
would like to clarify whether this is really what should be done.

Unfortunately this is not the last issue.  I'm also running into a
linker error which I do not have time to track down for the moment:

libtool: link: gcc -Wall -O2 -msse -fomit-frame-pointer -funroll-loops -Wempty-body -Wuninitialized -I/usr/include/libhmsbeagle-1 -Wl,-z -Wl,relro -o phyml-beagle main.o utilities.o optimiz.o lk.o bionj.o models.o free.o help.o simu.o eigen.o pars.o alrt.o interface.o cl.o spr.o draw.o stats.o rates.o mcmc.o times.o tiporder.o mg.o m4.o io.o make.o nexus.o init.o xml.o mixt.o beagle_utils.o  -ldl -lhmsbeagle -lm
times.o: In function `TIMES_Lk_Birth_Death':
times.c:(.text+0x47cd): undefined reference to `DATE_J_Sum_Product'
times.o: In function `TIMES_Randomize_Tree_With_Time_Constraints':
times.c:(.text+0x62c8): undefined reference to `DATE_Assign_Primary_Calibration'
times.c:(.text+0x62d0): undefined reference to `DATE_Update_T_Prior_MinMax'
times.c:(.text+0x63b7): undefined reference to `DATE_Check_Calibration_Constraints'
times.c:(.text+0x63c5): undefined reference to `DATE_Check_Time_Constraints'
collect2: error: ld returned 1 exit status
Makefile:1738: recipe for target 'phyml-beagle' failed


Kind regards

       Andreas.


[2] https://anonscm.debian.org/cgit/debian-med/phyml.git/tree/debian/patches/fix_declaration_of_temp.patch
[3] https://anonscm.debian.org/cgit/debian-med/phyml.git/tree/debian/patches/fix_wrong_initialisation_of_array.patch

-- 
http://fam-tille.de



More information about the Debian-med-packaging mailing list