summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--var/spack/repos/builtin/packages/dialign-tx/dialign-1-0-2-gcc-5-4-0.patch80
-rw-r--r--var/spack/repos/builtin/packages/dialign-tx/package.py2
2 files changed, 82 insertions, 0 deletions
diff --git a/var/spack/repos/builtin/packages/dialign-tx/dialign-1-0-2-gcc-5-4-0.patch b/var/spack/repos/builtin/packages/dialign-tx/dialign-1-0-2-gcc-5-4-0.patch
new file mode 100644
index 0000000000..5a82f97e7b
--- /dev/null
+++ b/var/spack/repos/builtin/packages/dialign-tx/dialign-1-0-2-gcc-5-4-0.patch
@@ -0,0 +1,80 @@
+--- a/source/alig.c 2008-12-06 04:10:05.000000000 -0800
++++ b/source/alig.c 2017-11-21 10:58:31.000000000 -0800
+@@ -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;
+diff -Naur a/source/assemble.c b/source/assemble.c
+--- a/source/assemble.c 2008-12-06 04:10:05.000000000 -0800
++++ b/source/assemble.c 2017-11-21 10:57:55.000000000 -0800
+@@ -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 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 @@
+ * 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;
+diff -Naur a/source/diag.c b/source/diag.c
+--- a/source/diag.c 2008-12-06 04:10:05.000000000 -0800
++++ b/source/diag.c 2017-11-21 10:55:43.000000000 -0800
+@@ -183,7 +183,7 @@
+ * 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 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 @@
+ /**
+ * 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 @@
+ * 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) {
diff --git a/var/spack/repos/builtin/packages/dialign-tx/package.py b/var/spack/repos/builtin/packages/dialign-tx/package.py
index 009793216f..182069a013 100644
--- a/var/spack/repos/builtin/packages/dialign-tx/package.py
+++ b/var/spack/repos/builtin/packages/dialign-tx/package.py
@@ -50,3 +50,5 @@ class DialignTx(MakefilePackage):
install('dialign-tx', prefix.bin)
# t-coffee recognizes as dialign-t
install('dialign-tx', join_path(prefix.bin, 'dialign-t'))
+
+ patch('dialign-1-0-2-gcc-5-4-0.patch', when='%gcc@5.4.0')