[Debian-med-packaging] Bug#757281: Bug#757281: dialign-t: FTBFS with clang instead of gcc

Charles Plessy plessy at debian.org
Wed Aug 6 22:22:13 UTC 2014


Dear Amarendran,

six year after my previous email to you, DIALIGN and DIALIGN-TX are still
distributed in Debian, where they have a stable user base as you can see from
the graph at the link below.

    https://qa.debian.org/popcon-graph.php?packages=dialign-tx+dialign&show_vote=on&want_legend=on&beenhere=1

We run frequently quality tests over the whole Debian archive, and one of
them let to the production of a patch to compile DIALIGN-TX with Clang.
You can refer to the message below for details.  A clean version of the
patch can be downloaded from the following link.

    https://bugs.debian.org/cgi-bin/bugreport.cgi?msg=5;filename=undef-ref.patch;att=1;bug=757281

Also, in a previous quality control run by a third party, some crashes were
found.  You an see details at the following URL.

    https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=715816

Have a nice day,

-- Charles Plessy, Debian Med packaging team, Tsurumi, Kanagawa, Japan.

Le Wed, Aug 06, 2014 at 03:57:26PM -0500, Arthur Marble a écrit :
> Package: dialign-t
> Severity: minor
> Tags: patch
> User: pkg-llvm-team at lists.alioth.debian.org
> Usertags: clang-ftbfs
> 
> Hello,
> 
> Using the rebuild infrastructure, your package fails to build with clang
> (instead of gcc).
> 
> Detected this kind of error:
> http://clang.debian.net/status.php?version=3.4.2&key=UNDEF_REF
> 
> Full build log is available here:
> http://clang.debian.net/logs/2014-06-16/dialign-t_1.0.2-6_unstable_clang.log
> 
> Thanks,
> Arthur
> 
> -- System Information:
> Debian Release: jessie/sid (unstable)
> Architecture: amd64 (x86_64)
> Kernel: Linux 3.14-2-amd64
> Locale: LANG=en_US.UTF-8, LC_CTYPE="en_US.UTF-8"
> Shell: /bin/sh linked to /bin/dash
> Compiler: Debian clang version 3.5.0-+rc1-2 (tags/RELEASE_35/rc1) (based on LLVM 3.5.0)

> diff -Naur dialign-t.orig/dialign-t-1.0.2/debian/changelog dialign-t/dialign-t-1.0.2/debian/changelog
> --- dialign-t.orig/dialign-t-1.0.2/debian/changelog	2014-08-06 15:44:15.135034437 -0500
> +++ dialign-t/dialign-t-1.0.2/debian/changelog	2014-08-06 15:52:44.235043303 -0500
> @@ -1,3 +1,13 @@
> +dialign-t (1.0.2-7) unstable; urgency=low
> +
> +  * Fix FTBFS with clang
> +    - Fixed the undefined reference error in
> +      source/alig.c
> +      source/assemble.c
> +      source/diag.c
> +
> + -- Arthur Marble <arthur at info9.net>  Wed, 06 Aug 2014 15:52:44 -0500
> +
>  dialign-t (1.0.2-6) unstable; urgency=medium
>  
>    * debian/patches/consistent_declarations.patch: Make sure declarations
> diff -Naur dialign-t.orig/dialign-t-1.0.2/debian/patches/clang-ftbfs.diff dialign-t/dialign-t-1.0.2/debian/patches/clang-ftbfs.diff 
> --- dialign-t.orig/dialign-t-1.0.2/debian/patches/clang-ftbfs.diff	1969-12-31 18:00:00.000000000 -0600
> +++ dialign-t/dialign-t-1.0.2/debian/patches/clang-ftbfs.diff	2014-08-06 15:51:34.219042084 -0500
> @@ -0,0 +1,78 @@
> +--- a/source/diag.c
> ++++ b/source/diag.c
> +@@ -183,7 +183,7 @@ void fill_tmp_pdist(struct prob_dist *pd
> +  * omitScore = 0:  normal 
> +  * omitScore = 1:  no score calculation 
> +  */ 
> +-inline void real_calc_weight(struct diag* dg, struct scr_matrix* smatrix,  
> ++static inline void real_calc_weight(struct diag* dg, struct scr_matrix* smatrix,
> + 		 struct prob_dist *pdist, char omitScore, long double **tmp_dist, struct alignment *algn ) { 
> +    
> +   if(dg->multi_dg) {
> +@@ -302,7 +302,7 @@ inline void real_calc_weight(struct diag
> +   } 
> + } 
> +  
> +-inline void calc_weight(struct diag* dg, struct scr_matrix* smatrix,  
> ++void calc_weight(struct diag* dg, struct scr_matrix* smatrix,
> + 		 struct prob_dist *pdist) { 
> +   real_calc_weight(dg, smatrix, pdist, 0,NULL,NULL); 
> + } 
> +@@ -312,7 +312,7 @@ inline void calc_weight(struct diag* dg,
> + /** 
> +  * calculates the overlap weight for the given diag 
> +  */ 
> +-inline void calc_ov_weight(struct diag* dg, struct diag_col *dcol, struct scr_matrix* smatrix,  
> ++static inline void calc_ov_weight(struct diag* dg, struct diag_col *dcol, struct scr_matrix* smatrix,
> + 		    struct prob_dist *pdist) { 
> +   int sn1 = dg->seq_p1.num; 
> +   int sn2 = dg->seq_p2.num; 
> +@@ -958,7 +958,7 @@ inline struct simple_diag_col* find_diag
> +  * The pointer returned (and the ones included in the struct)  
> +  * has to be deallocted explicitely from memory. 
> +  */ 
> +-inline struct simple_diag_col* find_diags_dialign(struct scr_matrix *smatrix,  
> ++static inline struct simple_diag_col* find_diags_dialign(struct scr_matrix *smatrix,
> + 				struct prob_dist *pdist, struct seq* seq1,  
> + 				struct seq* seq2, struct alignment *algn, 
> + 				 long double **tmp_dist, int round) { 
> +--- a/source/assemble.c
> ++++ b/source/assemble.c
> +@@ -10,7 +10,7 @@
> + 
> + extern void error(char *message);
> + extern void merror(char *msg1, char *msg2);
> +-extern inline void calc_weight(struct diag* dg, struct scr_matrix* smatrix, 
> ++extern void calc_weight(struct diag* dg, struct scr_matrix* smatrix,
> + 			struct prob_dist *pdist);
> + extern inline void calc_ov_weight(struct diag* dg, struct diag_col *dcol, struct scr_matrix* smatrix, 
> + 		    struct prob_dist *pdist);
> +@@ -37,7 +37,7 @@ extern void free_alignment(struct alignm
> + extern inline struct algn_pos *find_eqc(struct algn_pos **ap, int seqnum, int pos);
> + extern struct alignment* copy_alignment( struct alignment *o_algn, struct alignment *algn, char doDgc);
> + //extern char adapt_diag(struct alignment *algn, struct scr_matrix *smatrix, struct diag* dg);
> +-extern inline char align_diag(struct alignment *algn, struct scr_matrix *smatrix, struct diag* dg);
> ++extern char align_diag(struct alignment *algn, struct scr_matrix *smatrix, struct diag* dg);
> + //extern inline struct diag_cont* enter_sorted(struct diag_cont* backlog_diags, struct diag_cont *cand);
> + //extern inline char fit_fpos_diag(struct alignment *algn, struct diag* dg);
> + 
> +@@ -574,7 +574,7 @@ char simple_aligner(struct seq_col *scol
> +  * returns a value <0 if there is an non-conflicting overlap
> +  * returns 0 in all other non-conflicting cases
> +  */
> +-inline char confl_diag(struct alignment *algn, char *layer, struct diag *dg1, struct diag *dg2) {
> ++static inline char confl_diag(struct alignment *algn, char *layer, struct diag *dg1, struct diag *dg2) {
> +   //  if(dg1->multi_dg || dg2->multi_dg) error(" confl_diag(): cannot accept multi dgs!");
> +   int s1_1 = dg1->seq_p1.num;
> +   int s1_2 = dg1->seq_p2.num;
> +--- a/source/alig.c
> ++++ b/source/alig.c
> +@@ -520,7 +520,7 @@ struct alignment* copy_alignment( struct
> +  * datastructure (i.e. frontiers). The given diag must be consistent
> +  * to the given alignment !
> +  */
> +-inline char align_diag(struct alignment *algn, struct scr_matrix *smatrix, struct diag* dg) {
> ++char align_diag(struct alignment *algn, struct scr_matrix *smatrix, struct diag* dg) {
> + 
> +   char alignedSomething = 0;
> +   int i,j,k;
> diff -Naur dialign-t.orig/dialign-t-1.0.2/debian/patches/series dialign-t/dialign-t-1.0.2/debian/patches/series 
> --- dialign-t.orig/dialign-t-1.0.2/debian/patches/series	2014-08-06 15:44:15.135034437 -0500
> +++ dialign-t/dialign-t-1.0.2/debian/patches/series	2014-08-06 15:44:40.243034875 -0500
> @@ -1,3 +1,4 @@
>  prevent_enforcing_arch.patch
>  hardening.patch
>  consistent_declarations.patch
> +clang-ftbfs.diff

> _______________________________________________
> 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


-- 
Charles Plessy
Debian Med packaging team,
http://www.debian.org/devel/debian-med
Tsurumi, Kanagawa, Japan



More information about the Debian-med-packaging mailing list