From 7423912f5bd2b50c626cc0e60f8a4ecc1929baf1 Mon Sep 17 00:00:00 2001 From: Ted Tanberry Date: Thu, 31 Dec 2015 15:55:26 +0100 Subject: sci-biology/dialign-tx: fixes GCC-5 inline semantics and -Wformat= warnings, #570252 Package-Manager: portage-2.2.26 --- sci-biology/dialign-tx/dialign-tx-1.0.2-r1.ebuild | 3 +- .../files/dialign-tx-1.0.2-modernize.patch | 130 +++++++++++++++++++++ 2 files changed, 132 insertions(+), 1 deletion(-) create mode 100644 sci-biology/dialign-tx/files/dialign-tx-1.0.2-modernize.patch diff --git a/sci-biology/dialign-tx/dialign-tx-1.0.2-r1.ebuild b/sci-biology/dialign-tx/dialign-tx-1.0.2-r1.ebuild index c73d043742b8..b93f908ef2b5 100644 --- a/sci-biology/dialign-tx/dialign-tx-1.0.2-r1.ebuild +++ b/sci-biology/dialign-tx/dialign-tx-1.0.2-r1.ebuild @@ -22,7 +22,8 @@ S=${WORKDIR}/${MY_P} src_prepare() { sed -e "s/\$(CC) -o/\$(CC) \$(LDFLAGS) -o/" \ -i source/Makefile || die #336533 - epatch "${FILESDIR}"/${P}-implicits.patch + epatch "${FILESDIR}"/${P}-implicits.patch \ + "${FILESDIR}"/${P}-modernize.patch } src_compile() { diff --git a/sci-biology/dialign-tx/files/dialign-tx-1.0.2-modernize.patch b/sci-biology/dialign-tx/files/dialign-tx-1.0.2-modernize.patch new file mode 100644 index 000000000000..b732e34da81c --- /dev/null +++ b/sci-biology/dialign-tx/files/dialign-tx-1.0.2-modernize.patch @@ -0,0 +1,130 @@ +Fix changed gnu89->gnu11 inline semantics with GCC-5, Gentoo Bug #570252 +https://bugs.gentoo.org/show_bug.cgi?id=570252 + +In addition, fixed multiple -Wformat= warnings, such as + +io.c:535:20: warning: format ‘%li’ expects argument of type ‘long int *’, but argument 3 has type ‘int *’ [-Wformat=] + while( fscanf(fp,"%li %li %li %li %li %le\n",&s1,&s2,&sp1,&sp2,&len,&score ) == 6) { + ^ +io.c:535:20: warning: format ‘%li’ expects argument of type ‘long int *’, but argument 4 has type ‘int *’ [-Wformat=] +io.c:535:20: warning: format ‘%li’ expects argument of type ‘long int *’, but argument 5 has type ‘int *’ [-Wformat=] +io.c:535:20: warning: format ‘%li’ expects argument of type ‘long int *’, but argument 6 has type ‘int *’ [-Wformat=] +io.c:535:20: warning: format ‘%li’ expects argument of type ‘long int *’, but argument 7 has type ‘int *’ [-Wformat=] + +--- DIALIGN-TX_1.0.2/source/alig.c ++++ DIALIGN-TX_1.0.2/source/alig.c +@@ -10,9 +10,9 @@ + + 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, ++extern void calc_ov_weight(struct diag* dg, struct diag_col *dcol, struct scr_matrix* smatrix, + struct prob_dist *pdist); + //extern struct seq_part* create_seq_part(int num, struct seq* aSeq, unsigned int startpos); + extern struct diag* create_diag(struct seq_part* part1, struct seq_part* part2, +@@ -520,7 +520,7 @@ + * 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; +--- DIALIGN-TX_1.0.2/source/assemble.c ++++ DIALIGN-TX_1.0.2/source/assemble.c +@@ -10,9 +10,9 @@ + + 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, ++extern void calc_ov_weight(struct diag* dg, struct diag_col *dcol, struct scr_matrix* smatrix, + struct prob_dist *pdist); + //extern struct seq_part* create_seq_part(int num, struct seq* aSeq, unsigned int startpos); + extern long double** create_tmp_pdist(struct prob_dist *pdist); +@@ -22,7 +22,7 @@ + int n2, struct seq* sq2, unsigned int sp2, + int dlength); + extern void free_diag(struct diag* dg); +-extern inline struct simple_diag_col* find_diags_guided(struct scr_matrix *smatrix, ++extern struct simple_diag_col* find_diags_guided(struct scr_matrix *smatrix, + struct prob_dist *pdist, + struct gt_node* n1, + struct gt_node* n2, +@@ -34,10 +34,10 @@ + + extern struct alignment* create_empty_alignment(struct seq_col *scol); + extern void free_alignment(struct alignment *algn); +-extern inline struct algn_pos *find_eqc(struct algn_pos **ap, int seqnum, int pos); ++extern 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); + +--- DIALIGN-TX_1.0.2/source/diag.c ++++ DIALIGN-TX_1.0.2/source/diag.c +@@ -183,7 +183,7 @@ + * omitScore = 0: normal + * omitScore = 1: no score calculation + */ +-inline void real_calc_weight(struct diag* dg, struct scr_matrix* smatrix, ++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 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); + } +--- DIALIGN-TX_1.0.2/source/io.c ++++ DIALIGN-TX_1.0.2/source/io.c +@@ -267,7 +267,7 @@ + for( c=r; cdata = malloc(sizeof (struct diag*)*alloc_size); + sdcol->length=0; + +- while( fscanf(fp,"%li %li %li %li %li %le\n",&s1,&s2,&sp1,&sp2,&len,&score ) == 6) { ++ while( fscanf(fp,"%i %i %i %i %i %le\n",&s1,&s2,&sp1,&sp2,&len,&score ) == 6) { + if(sdcol->length >= alloc_size) { + alloc_size+=16; + sdcol->data = realloc(sdcol->data,sizeof (struct diag*)*alloc_size); -- cgit v1.2.3-65-gdbad