[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