Giter Site home page Giter Site logo

bwa-gasal2's Introduction

Hi there 👋 I'm Jonathan LEVY.

Here's my GitHub account for academic and professional projects. Up to now, it's mainly about C++ and CUDA university projects.

I currently live in Japan, but when a good opportunity comes out, I'm always ready to move.

bwa-gasal2's People

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

bwa-gasal2's Issues

KSW kernel should drop tile computing to match ksw.c

In order to match the way results are computed in bwa-mem, the KSW kernel must enforce computation in the beginning of both query and target. To do so, a filter is set depending on the values of the score for each cell.

After discussion with @nahmedraja we agreed on removing the tile-based computing since this would make impossible to reproduce the per-cell filtering.

This is done by the following code that ksw_extend runs after computing every column of te matrix, to check where to begin the next column:

for (i = 0; LIKELY(i < tlen); ++i) {
	int t, f = 0, h1, m = 0, mj = -1;
	int8_t *q = &qp[target[i] * qlen];
	// apply the band and the constraint (if provided)
	if (beg < i - w) beg = i - w;
	if (end > i + w + 1) end = i + w + 1;
	if (end > qlen) end = qlen;

	if (beg == 0) {
		h1 = h0 - (o_del + e_del * (i + 1));
		if (h1 < 0) h1 = 0;
		} else h1 = 0;
	for (j = beg; LIKELY(j < end); ++j) {
		// compute cell
	}
	[...]
        for (j = beg; j < end && eh[j].h == 0 && eh[j].e == 0; ++j)
            ;
        beg = j;
        for (j = end; j >= beg && eh[j].h == 0 && eh[j].e == 0; --j)
            ;
        end = j + 2 < ref_len ? j + 2 : query_len;
	[...]
}

Implementing it should provide better results

Error during make step

Hi, I encoutered an error when try to compile with make.
First I clone GASAL2 and then compile it successfully by running ./configure.sh and ./run_all.sh
But when I compile bwa-gasal2, I encountered this error:

If you donot see anything below this line then there is nothing to "make"
g++ -c -g -Wall -Wno-unused-function -O2 -msse4.2 -std=c++11 -fpermissive -DHAVE_PTHREAD -DUSE_MALLOC_WRAPPERS -I./GASAL2/include/  src/bwamem.c -o ./obj/bwamem.o
In file included from src/bwamem.c:18:
src/vector_filter.h:12:36: error: ‘aligned’ was not declared in this scope
 #define __aligned__ __attribute__((aligned(16)))
                                    ^~~~~~~
src/vector_filter.h:12:36: note: suggested alternative: ‘signed’
In file included from /usr/lib/gcc/x86_64-linux-gnu/8/include/xmmintrin.h:31,
                 from /usr/lib/gcc/x86_64-linux-gnu/8/include/emmintrin.h:31,
                 from /usr/lib/gcc/x86_64-linux-gnu/8/include/pmmintrin.h:31,
                 from /usr/lib/gcc/x86_64-linux-gnu/8/include/tmmintrin.h:31,
                 from /usr/lib/gcc/x86_64-linux-gnu/8/include/smmintrin.h:32,
                 from /usr/lib/gcc/x86_64-linux-gnu/8/include/nmmintrin.h:31,
                 from src/vector_filter.h:16,
                 from src/bwamem.c:18:
/usr/lib/gcc/x86_64-linux-gnu/8/include/mmintrin.h:45:85: error: expected ‘)’ before ‘(’ token
 typedef int __m64_u __attribute__ ((__vector_size__ (8), __may_alias__, __aligned__ (1)));
                                    ~                                                ^
/usr/lib/gcc/x86_64-linux-gnu/8/include/mmintrin.h:45:85: error: expected ‘)’ before ‘(’ token
In file included from src/bwamem.c:18:
src/vector_filter.h:12:36: error: ‘aligned’ was not declared in this scope
 #define __aligned__ __attribute__((aligned(16)))
                                    ^~~~~~~
src/vector_filter.h:12:36: note: suggested alternative: ‘signed’
In file included from /usr/lib/gcc/x86_64-linux-gnu/8/include/emmintrin.h:31,
                 from /usr/lib/gcc/x86_64-linux-gnu/8/include/pmmintrin.h:31,
                 from /usr/lib/gcc/x86_64-linux-gnu/8/include/tmmintrin.h:31,
                 from /usr/lib/gcc/x86_64-linux-gnu/8/include/smmintrin.h:32,
                 from /usr/lib/gcc/x86_64-linux-gnu/8/include/nmmintrin.h:31,
                 from src/vector_filter.h:16,
                 from src/bwamem.c:18:
/usr/lib/gcc/x86_64-linux-gnu/8/include/xmmintrin.h:72:89: error: expected ‘)’ before ‘(’ token
 typedef float __m128_u __attribute__ ((__vector_size__ (16), __may_alias__, __aligned__ (1)));
                                       ~                                                 ^
/usr/lib/gcc/x86_64-linux-gnu/8/include/xmmintrin.h:72:89: error: expected ‘)’ before ‘(’ token
In file included from src/bwamem.c:18:
src/vector_filter.h:12:36: error: ‘aligned’ was not declared in this scope
 #define __aligned__ __attribute__((aligned(16)))
                                    ^~~~~~~
src/vector_filter.h:12:36: note: suggested alternative: ‘signed’
In file included from /usr/lib/gcc/x86_64-linux-gnu/8/include/pmmintrin.h:31,
                 from /usr/lib/gcc/x86_64-linux-gnu/8/include/tmmintrin.h:31,
                 from /usr/lib/gcc/x86_64-linux-gnu/8/include/smmintrin.h:32,
                 from /usr/lib/gcc/x86_64-linux-gnu/8/include/nmmintrin.h:31,
                 from src/vector_filter.h:16,
                 from src/bwamem.c:18:
/usr/lib/gcc/x86_64-linux-gnu/8/include/emmintrin.h:57:94: error: expected ‘)’ before ‘(’ token
 typedef long long __m128i_u __attribute__ ((__vector_size__ (16), __may_alias__, __aligned__ (1)));
                                            ~                                                 ^
/usr/lib/gcc/x86_64-linux-gnu/8/include/emmintrin.h:57:94: error: expected ‘)’ before ‘(’ token
In file included from src/bwamem.c:18:
src/vector_filter.h:12:36: error: ‘aligned’ was not declared in this scope
 #define __aligned__ __attribute__((aligned(16)))
                                    ^~~~~~~
src/vector_filter.h:12:36: note: suggested alternative: ‘signed’
In file included from /usr/lib/gcc/x86_64-linux-gnu/8/include/pmmintrin.h:31,
                 from /usr/lib/gcc/x86_64-linux-gnu/8/include/tmmintrin.h:31,
                 from /usr/lib/gcc/x86_64-linux-gnu/8/include/smmintrin.h:32,
                 from /usr/lib/gcc/x86_64-linux-gnu/8/include/nmmintrin.h:31,
                 from src/vector_filter.h:16,
                 from src/bwamem.c:18:
/usr/lib/gcc/x86_64-linux-gnu/8/include/emmintrin.h:58:91: error: expected ‘)’ before ‘(’ token
 typedef double __m128d_u __attribute__ ((__vector_size__ (16), __may_alias__, __aligned__ (1)));
                                         ~                                                 ^
/usr/lib/gcc/x86_64-linux-gnu/8/include/emmintrin.h:58:91: error: expected ‘)’ before ‘(’ token
In file included from src/kstring.h:8,
                 from src/bwamem.c:11:
src/bwamem.c: In function ‘mem_opt_t* mem_opt_init()’:
src/malloc_wrap.h:28:36: warning: invalid conversion from ‘void*’ to ‘mem_opt_t*’ [-fpermissive]
 #  define calloc(n, s)  wrap_calloc( (n), (s), __FILE__, __LINE__, __func__)
                         ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/bwamem.c:52:6: note: in expansion of macro ‘calloc’
  o = calloc(1, sizeof(mem_opt_t));
      ^~~~~~
src/bwamem.c: In function ‘smem_aux_t* smem_aux_init()’:
src/malloc_wrap.h:28:36: warning: invalid conversion from ‘void*’ to ‘smem_aux_t*’ [-fpermissive]
 #  define calloc(n, s)  wrap_calloc( (n), (s), __FILE__, __LINE__, __func__)
                         ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/bwamem.c:110:6: note: in expansion of macro ‘calloc’
  a = calloc(1, sizeof(smem_aux_t));
      ^~~~~~
src/malloc_wrap.h:28:36: warning: invalid conversion from ‘void*’ to ‘bwtintv_v*’ [-fpermissive]
 #  define calloc(n, s)  wrap_calloc( (n), (s), __FILE__, __LINE__, __func__)
                         ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/bwamem.c:111:15: note: in expansion of macro ‘calloc’
  a->tmpv[0] = calloc(1, sizeof(bwtintv_v));
               ^~~~~~
src/malloc_wrap.h:28:36: warning: invalid conversion from ‘void*’ to ‘bwtintv_v*’ [-fpermissive]
 #  define calloc(n, s)  wrap_calloc( (n), (s), __FILE__, __LINE__, __func__)
                         ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/bwamem.c:112:15: note: in expansion of macro ‘calloc’
  a->tmpv[1] = calloc(1, sizeof(bwtintv_v));
               ^~~~~~
src/bwamem.c: In function ‘void mem_collect_intv(mem_opt_t*, const bwt_t*, int, const uint8_t*, smem_aux_t*)’:
src/bwamem.c:202:18: warning: comparison of integer expressions of different signedness: ‘int’ and ‘size_t’ {aka ‘long unsigned int’} [-Wsign-compare]
    for (i = 0; i < a->mem1.n; ++i) {
                ~~^~~~~~~~~~~
src/bwamem.c:217:43: warning: comparison of integer expressions of different signedness: ‘bwtint_t’ {aka ‘long unsigned int’} and ‘int’ [-Wsign-compare]
    if (end - start < split_len || p->x[2] > opt->split_width)
                                   ~~~~~~~~^~~~~~~~~~~~~~~~~~
src/bwamem.c:220:18: warning: comparison of integer expressions of different signedness: ‘int’ and ‘size_t’ {aka ‘long unsigned int’} [-Wsign-compare]
    for (i = 0; i < a->mem1.n; ++i)
                ~~^~~~~~~~~~~
src/bwamem.c:221:66: warning: comparison of integer expressions of different signedness: ‘bwtint_t’ {aka ‘long unsigned int’} and ‘int’ [-Wsign-compare]
     if ((uint32_t) a->mem1.a[i].info - (a->mem1.a[i].info >> 32) >= opt->min_seed_len)
         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~
src/bwamem.c:236:21: warning: comparison of integer expressions of different signedness: ‘int’ and ‘size_t’ {aka ‘long unsigned int’} [-Wsign-compare]
       for (i = 0; i < a->mem1.n; ++i)
                   ~~^~~~~~~~~~~
src/bwamem.c:164:26: warning: unused variable ‘max’ [-Wunused-variable]
  int i, k, x = 0, old_n, max, max_i;
                          ^~~
src/bwamem.c:164:31: warning: unused variable ‘max_i’ [-Wunused-variable]
  int i, k, x = 0, old_n, max, max_i;
                               ^~~~~
src/bwamem.c:167:6: warning: unused variable ‘min_miss_match’ [-Wunused-variable]
  int min_miss_match = 0;
      ^~~~~~~~~~~~~~
src/bwamem.c:168:19: warning: unused variable ‘w’ [-Wunused-variable]
  bwt_mem_width_t *w;
                   ^
In file included from src/kstring.h:8,
                 from src/bwamem.c:11:
src/bwamem.c: In function ‘int test_and_merge(const mem_opt_t*, int64_t, mem_chain_t*, const mem_seed_t*, int)’:
src/malloc_wrap.h:38:37: warning: invalid conversion from ‘void*’ to ‘mem_seed_t*’ [-fpermissive]
 #  define realloc(p, s) wrap_realloc((p), (s), __FILE__, __LINE__, __func__)
                         ~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/bwamem.c:374:16: note: in expansion of macro ‘realloc’
     c->seeds = realloc(c->seeds, c->m * sizeof(mem_seed_t));
                ^~~~~~~
src/bwamem.c: In function ‘void mem_print_chain(const bntseq_t*, mem_chain_v*)’:
src/bwamem.c:409:16: warning: comparison of integer expressions of different signedness: ‘int’ and ‘size_t’ {aka ‘long unsigned int’} [-Wsign-compare]
  for (i = 0; i < chn->n; ++i) {
              ~~^~~~~~~~
src/bwamem.c: In function ‘mem_chain_v mem_chain(const mem_opt_t*, const bwt_t*, const bntseq_t*, int, const uint8_t*, void*)’:
src/bwamem.c:438:19: warning: invalid conversion from ‘const mem_opt_t*’ to ‘mem_opt_t*’ [-fpermissive]
  mem_collect_intv(opt, bwt, len, seq, aux);
                   ^~~
src/bwamem.c:163:41: note:   initializing argument 1 of ‘void mem_collect_intv(mem_opt_t*, const bwt_t*, int, const uint8_t*, smem_aux_t*)’
 static void mem_collect_intv(mem_opt_t *opt, const bwt_t *bwt, int len, const uint8_t *seq, smem_aux_t *a) {
                              ~~~~~~~~~~~^~~
src/bwamem.c:439:35: warning: comparison of integer expressions of different signedness: ‘int’ and ‘size_t’ {aka ‘long unsigned int’} [-Wsign-compare]
  for (i = 0, b = e = l_rep = 0; i < aux->mem.n; ++i) { // compute frac_rep
                                 ~~^~~~~~~~~~~~
src/bwamem.c:442:15: warning: comparison of integer expressions of different signedness: ‘bwtint_t’ {aka ‘long unsigned int’} and ‘const int’ [-Wsign-compare]
   if (p->x[2] <= opt->max_occ)
       ~~~~~~~~^~~~~~~~~~~~~~~
src/bwamem.c:450:16: warning: comparison of integer expressions of different signedness: ‘int’ and ‘size_t’ {aka ‘long unsigned int’} [-Wsign-compare]
  for (i = 0; i < aux->mem.n; ++i) {
              ~~^~~~~~~~~~~~
src/bwamem.c:455:18: warning: comparison of integer expressions of different signedness: ‘bwtint_t’ {aka ‘long unsigned int’} and ‘const int’ [-Wsign-compare]
   step = p->x[2] > opt->max_occ ? p->x[2] / opt->max_occ : 1;
          ~~~~~~~~^~~~~~~~~~~~~~
src/bwamem.c:456:25: warning: comparison of integer expressions of different signedness: ‘int64_t’ {aka ‘long int’} and ‘bwtint_t’ {aka ‘long unsigned int’} [-Wsign-compare]
   for (k = count = 0; k < p->x[2] && count < opt->max_occ; k += step, ++count) {
                       ~~^~~~~~~~~
In file included from src/kstring.h:8,
                 from src/bwamem.c:11:
src/malloc_wrap.h:28:36: warning: invalid conversion from ‘void*’ to ‘mem_seed_t*’ [-fpermissive]
 #  define calloc(n, s)  wrap_calloc( (n), (s), __FILE__, __LINE__, __func__)
                         ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/bwamem.c:476:17: note: in expansion of macro ‘calloc’
     tmp.seeds = calloc(tmp.m, sizeof(mem_seed_t));
                 ^~~~~~
src/bwamem.c:493:16: warning: comparison of integer expressions of different signedness: ‘int’ and ‘size_t’ {aka ‘long unsigned int’} [-Wsign-compare]
  for (i = 0; i < chain.n; ++i)
              ~~^~~~~~~~~
src/bwamem.c: In function ‘int mem_chain_flt(const mem_opt_t*, int, mem_chain_t*)’:
src/bwamem.c:536:18: warning: comparison of integer expressions of different signedness: ‘int’ and ‘size_t’ {aka ‘long unsigned int’} [-Wsign-compare]
    for (k = 0; k < chains.n; ++k) {
                ~~^~~~~~~~~~
src/bwamem.c:555:10: warning: comparison of integer expressions of different signedness: ‘int’ and ‘size_t’ {aka ‘long unsigned int’} [-Wsign-compare]
    if (k == chains.n) {
        ~~^~~~~~~~~~~
src/bwamem.c:560:17: warning: comparison of integer expressions of different signedness: ‘int’ and ‘size_t’ {aka ‘long unsigned int’} [-Wsign-compare]
   for (i = 0; i < chains.n; ++i) {
               ~~^~~~~~~~~~
src/bwamem.c: In function ‘void mem_mark_primary_se_core(const mem_opt_t*, int, mem_alnreg_t*, int_v*)’:
src/bwamem.c:717:18: warning: comparison of integer expressions of different signedness: ‘int’ and ‘size_t’ {aka ‘long unsigned int’} [-Wsign-compare]
    for (k = 0; k < z->n; ++k) {
                ~~^~~~~~
src/bwamem.c:732:10: warning: comparison of integer expressions of different signedness: ‘int’ and ‘size_t’ {aka ‘long unsigned int’} [-Wsign-compare]
    if (k == z->n)
        ~~^~~~~~~
In file included from src/kstring.h:8,
                 from src/bwamem.c:11:
src/bwamem.c: In function ‘void mem_chain2aln(const mem_opt_t*, const bntseq_t*, const uint8_t*, int, const uint8_t*, const mem_chain_t*, mem_alnreg_v*, int*, int*, gpu_batch*)’:
src/malloc_wrap.h:33:36: warning: invalid conversion from ‘void*’ to ‘uint64_t*’ {aka ‘long unsigned int*’} [-fpermissive]
 #  define malloc(s)     wrap_malloc( (s),      __FILE__, __LINE__, __func__)
                         ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/bwamem.c:1087:8: note: in expansion of macro ‘malloc’
  srt = malloc(c->n * 8);
        ^~~~~~
src/bwamem.c:1098:17: warning: comparison of integer expressions of different signedness: ‘int’ and ‘size_t’ {aka ‘long unsigned int’} [-Wsign-compare]
   for (i = 0; i < av->n; ++i)  // test whether extension has been made before
               ~~^~~~~~~
src/bwamem.c:1119:9: warning: comparison of integer expressions of different signedness: ‘int’ and ‘size_t’ {aka ‘long unsigned int’} [-Wsign-compare]
   if (i < av->n)
       ~~^~~~~~~
src/bwamem.c:1226:40: warning: comparison of integer expressions of different signedness: ‘int’ and ‘uint32_t’ {aka ‘unsigned int’} [-Wsign-compare]
     if (curr_gpu_batch->n_target_batch < curr_gpu_batch->gpu_storage->host_max_target_batch_bytes)
         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/bwamem.c:1246:31: warning: comparison of integer expressions of different signedness: ‘int’ and ‘uint32_t’ {aka ‘unsigned int’} [-Wsign-compare]
    if (curr_gpu_batch->n_seqs < curr_gpu_batch->gpu_storage->host_max_n_alns)
        ~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/bwamem.c:1253:31: warning: comparison of integer expressions of different signedness: ‘int’ and ‘uint32_t’ {aka ‘unsigned int’} [-Wsign-compare]
    if (curr_gpu_batch->n_seqs < curr_gpu_batch->gpu_storage->host_max_n_alns)
        ~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/bwamem.c:1260:31: warning: comparison of integer expressions of different signedness: ‘int’ and ‘uint32_t’ {aka ‘unsigned int’} [-Wsign-compare]
    if (curr_gpu_batch->n_seqs < curr_gpu_batch->gpu_storage->host_max_n_alns)
        ~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/bwamem.c:1267:31: warning: comparison of integer expressions of different signedness: ‘int’ and ‘uint32_t’ {aka ‘unsigned int’} [-Wsign-compare]
    if (curr_gpu_batch->n_seqs < curr_gpu_batch->gpu_storage->host_max_n_alns)
        ~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/bwamem.c:1211:8: warning: unused variable ‘j’ [-Wunused-variable]
    int j;
        ^
src/bwamem.c:1048:12: warning: unused variable ‘rid’ [-Wunused-variable]
  int i, k, rid, max_off[2], aw[2]; // aw: actual bandwidth used in extension
            ^~~
src/bwamem.c:1048:17: warning: unused variable ‘max_off’ [-Wunused-variable]
  int i, k, rid, max_off[2], aw[2]; // aw: actual bandwidth used in extension
                 ^~~~~~~
src/bwamem.c:1049:39: warning: unused variable ‘tmp’ [-Wunused-variable]
  int64_t l_pac = bns->l_pac, rmax[2], tmp, max = 0;
                                       ^~~
src/bwamem.c:1051:11: warning: unused variable ‘rseq’ [-Wunused-variable]
  uint8_t *rseq = NULL;
           ^~~~
src/bwamem.c: In function ‘void mem_aln2sam(const mem_opt_t*, const bntseq_t*, kstring_t*, bseq1_t*, int, const mem_aln_t*, int, const mem_aln_t*)’:
src/bwamem.c:1563:25: warning: comparison of integer expressions of different signedness: ‘int’ and ‘size_t’ {aka ‘long unsigned int’} [-Wsign-compare]
         for (i = tmp; i < str->l; ++i) // replace TAB in the comment to SPACE
                       ~~^~~~~~~~
src/bwamem.c: In function ‘void mem_reg2sam(const mem_opt_t*, const bntseq_t*, const uint8_t*, bseq1_t*, mem_alnreg_v*, int, const mem_aln_t*)’:
src/bwamem.c:1621:23: warning: comparison of integer expressions of different signedness: ‘int’ and ‘size_t’ {aka ‘long unsigned int’} [-Wsign-compare]
     for (k = l = 0; k < a->n; ++k) {
                     ~~^~~~~~
src/bwamem.c:1649:23: warning: comparison of integer expressions of different signedness: ‘int’ and ‘size_t’ {aka ‘long unsigned int’} [-Wsign-compare]
         for (k = 0; k < aa.n; ++k)
                     ~~^~~~~~
src/bwamem.c:1651:23: warning: comparison of integer expressions of different signedness: ‘int’ and ‘size_t’ {aka ‘long unsigned int’} [-Wsign-compare]
         for (k = 0; k < aa.n; ++k)
                     ~~^~~~~~
src/bwamem.c:1657:23: warning: comparison of integer expressions of different signedness: ‘int’ and ‘size_t’ {aka ‘long unsigned int’} [-Wsign-compare]
         for (k = 0; k < a->n; ++k)
                     ~~^~~~~~
src/bwamem.c: In function ‘void mem_gasal_fill(gpu_batch*, int, int, char*, int)’:
src/bwamem.c:1679:54: warning: comparison of integer expressions of different signedness: ‘int’ and ‘uint32_t’ {aka ‘unsigned int’} [-Wsign-compare]
   if (gpu_batch_arr[gpu_batch_arr_idx].n_query_batch < gpu_batch_arr[gpu_batch_arr_idx].gpu_storage->host_max_query_batch_bytes)
       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/bwamem.c:1697:54: warning: comparison of integer expressions of different signedness: ‘int’ and ‘uint32_t’ {aka ‘unsigned int’} [-Wsign-compare]
   if (gpu_batch_arr[gpu_batch_arr_idx].n_query_batch < gpu_batch_arr[gpu_batch_arr_idx].gpu_storage->host_max_query_batch_bytes)
       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/bwamem.c: In function ‘void mem_align1_core(const mem_opt_t*, const bwt_t*, const bntseq_t*, const uint8_t*, bseq1_t*, void*, int, int, mem_alnreg_v*, int, gasal_gpu_storage_v*)’:
src/bwamem.c:1803:31: warning: comparison of integer expressions of different signedness: ‘int’ and ‘size_t’ {aka ‘long unsigned int’} [-Wsign-compare]
                 for (i = 0; i < chn.n; ++i) {
                             ~~^~~~~~~
src/bwamem.c:1851:16: warning: unused variable ‘cur’ [-Wunused-variable]
     gpu_batch *cur = &gpu_batch_arr[gpu_batch_arr_idx];
                ^~~
src/bwamem.c:1857:33: warning: format ‘%d’ expects argument of type ‘int’, but argument 5 has type ‘size_t’ {aka ‘long unsigned int’} [-Wformat=]
                 fprintf(stderr, "Thread no. %d is here with internal batch size %d, regs.n %d \n", tid, internal_batch_size, regs.n);
                                 ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                            ~~~~~~
In file included from src/bntseq.h:31,
                 from src/bwamem.h:5,
                 from src/bwamem.c:12:
src/bwamem.c:1865:38: warning: comparison of integer expressions of different signedness: ‘size_t’ {aka ‘long unsigned int’} and ‘int’ [-Wsign-compare]
             assert(kv_size(regs_vec) == batch_processed);
src/bwamem.c:1902:91: warning: format ‘%d’ expects argument of type ‘int’, but argument 3 has type ‘size_t’ {aka ‘long unsigned int’} [-Wformat=]
                     if (gpu_batch_arr[internal_batch_idx].no_extend == 1) fprintf(stderr, "I am here too as well with regs.n %d\n", regs.n);
                                                                                           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  ~~~~~~
src/bwamem.c:1903:34: warning: comparison of integer expressions of different signedness: ‘int’ and ‘size_t’ {aka ‘long unsigned int’} [-Wsign-compare]
                     for(i = 0; i < regs.n; ++i){
                                ~~^~~~~~~~
src/bwamem.c:1923:39: warning: comparison of integer expressions of different signedness: ‘int’ and ‘size_t’ {aka ‘long unsigned int’} [-Wsign-compare]
                         for (i = 0; i < regs.n; ++i) {
                                     ~~^~~~~~~~
src/bwamem.c:1928:35: warning: comparison of integer expressions of different signedness: ‘int’ and ‘size_t’ {aka ‘long unsigned int’} [-Wsign-compare]
                     for (i = 0; i < regs.n; ++i) {
                                 ~~^~~~~~~~
In file included from src/kstring.h:8,
                 from src/bwamem.c:11:
src/bwamem.c: In function ‘mem_aln_t mem_reg2aln(const mem_opt_t*, const bntseq_t*, const uint8_t*, int, const char*, const mem_alnreg_t*)’:
src/malloc_wrap.h:33:36: warning: invalid conversion from ‘void*’ to ‘uint8_t*’ {aka ‘unsigned char*’} [-fpermissive]
 #  define malloc(s)     wrap_malloc( (s),      __FILE__, __LINE__, __func__)
                         ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/bwamem.c:1970:13: note: in expansion of macro ‘malloc’
     query = malloc(l_query);
             ^~~~~~
src/malloc_wrap.h:38:37: warning: invalid conversion from ‘void*’ to ‘uint32_t*’ {aka ‘unsigned int*’} [-fpermissive]
 #  define realloc(p, s) wrap_realloc((p), (s), __FILE__, __LINE__, __func__)
                         ~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/bwamem.c:2027:19: note: in expansion of macro ‘realloc’
         a.cigar = realloc(a.cigar, 4 * (a.n_cigar + 2) + l_MD);
                   ^~~~~~~
src/bwamem.c: In function ‘void mem_process_seqs(const mem_opt_t*, const bwt_t*, const bntseq_t*, const uint8_t*, int64_t, int, bseq1_t*, const mem_pestat_t*)’:
src/malloc_wrap.h:33:36: warning: invalid conversion from ‘void*’ to ‘mem_alnreg_v*’ [-fpermissive]
 #  define malloc(s)     wrap_malloc( (s),      __FILE__, __LINE__, __func__)
                         ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/bwamem.c:2104:14: note: in expansion of macro ‘malloc’
     w.regs = malloc(n * sizeof(mem_alnreg_v));
              ^~~~~~
src/malloc_wrap.h:33:36: warning: invalid conversion from ‘void*’ to ‘smem_aux_t**’ [-fpermissive]
 #  define malloc(s)     wrap_malloc( (s),      __FILE__, __LINE__, __func__)
                         ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/bwamem.c:2112:13: note: in expansion of macro ‘malloc’
     w.aux = malloc(opt->n_threads * sizeof(smem_aux_t));
             ^~~~~~
src/bwamem.c:2116:28: warning: invalid conversion from ‘void (*)(void*, int, int, int, int, gasal_gpu_storage_v*)’ to ‘void (*)(void*, int, int, int, int)’ [-fpermissive]
     kt_for(opt->n_threads, worker1, &w, /*(opt->flag & MEM_F_PE) ? n >> 1 : */n); // find mapping positions
                            ^~~~~~~
In file included from src/bwamem.c:12:
src/bwamem.h:197:43: note:   initializing argument 2 of ‘void kt_for(int, void (*)(void*, int, int, int, int), void*, int)’
  extern void kt_for(int n_threads, void (*func)(void*, int, int, int, int), void *data, int n);
                                    ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/bwamem.c:2136:28: warning: invalid conversion from ‘void (*)(void*, int, int, int, int, gasal_gpu_storage_v*)’ to ‘void (*)(void*, int, int, int, int)’ [-fpermissive]
     kt_for(opt->n_threads, worker2, &w, (opt->flag & MEM_F_PE) ? n >> 1 : n); // generate alignment
                            ^~~~~~~
In file included from src/bwamem.c:12:
src/bwamem.h:197:43: note:   initializing argument 2 of ‘void kt_for(int, void (*)(void*, int, int, int, int), void*, int)’
  extern void kt_for(int n_threads, void (*func)(void*, int, int, int, int), void *data, int n);
                                    ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
make: *** [Makefile:57: bwamem.o] Error 1

My system information is:

$uname -a
Linux TGD 5.8.0-48-generic #54~20.04.1-Ubuntu SMP Sat Mar 20 13:40:25 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux

$gcc -v
Using built-in specs.
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/8/lto-wrapper
OFFLOAD_TARGET_NAMES=nvptx-none
OFFLOAD_TARGET_DEFAULT=1
Target: x86_64-linux-gnu
Configured with: ../src/configure -v --with-pkgversion='Ubuntu 8.4.0-3ubuntu2' --with-bugurl=file:///usr/share/doc/gcc-8/README.Bugs --enable-languages=c,ada,c++,go,brig,d,fortran,objc,obj-c++ --prefix=/usr --with-gcc-major-version-only --program-suffix=-8 --program-prefix=x86_64-linux-gnu- --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --enable-bootstrap --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-gnu-unique-object --disable-vtable-verify --enable-libmpx --enable-plugin --enable-default-pie --with-system-zlib --with-target-system-zlib=auto --enable-objc-gc=auto --enable-multiarch --disable-werror --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32,m64,mx32 --enable-multilib --with-tune=generic --enable-offload-targets=nvptx-none --without-cuda-driver --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu
Thread model: posix
gcc version 8.4.0 (Ubuntu 8.4.0-3ubuntu2)

nvcc --version
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2019 NVIDIA Corporation
Built on Sun_Jul_28_19:07:16_PDT_2019
Cuda compilation tools, release 10.1, V10.1.243

compile error

Hi all, I tried to build bwa-gasal2 on my system but I'm getting errors in the procedure.
I cloned the repo, built GASAL2 library for my platform (it seems to work), although I had to substitute this

g++ -std=c++11 -O3 -o test_prog.out -L/usr/local/cuda//targets/x86_64-linux/lib -L../lib test_prog.o -fopenmp -lcudart -lgasal

with this in the Makefile

nvcc -std=c++11 -O3 -o test_prog.out -L/usr/local/cuda//targets/x86_64-linux/lib -L../lib test_prog.o -lgomp -lcudart -lgasal.
Nevertheless, when issuing make at bwa-gasal2 level, I have this error:

$ make
If you donot see anything below this line then there is nothing to "make"
g++ -c -g -Wall -Wno-unused-function -O2 -msse4.2 -std=c++11 -fpermissive -DHAVE_PTHREAD -DUSE_MALLOC_WRAPPERS  -I./GASAL2/include/  -I/beegfs/scratch/ric.cosr/cittaro.davide/src/boost_1_74_0 src/bwamem.c -o ./obj/bwamem.o
Makefile:57: recipe for target 'bwamem.o' failed

In file included from src/bwamem.c:18:0:
src/vector_filter.h:12:36: error: ‘aligned’ was not declared in this scope
 #define __aligned__ __attribute__((aligned(16)))
                                    ^
src/vector_filter.h:12:36: note: suggested alternative: ‘signed’
In file included from /usr/lib/gcc/x86_64-linux-gnu/7/include/xmmintrin.h:31:0,
                 from /usr/lib/gcc/x86_64-linux-gnu/7/include/emmintrin.h:31,
                 from /usr/lib/gcc/x86_64-linux-gnu/7/include/pmmintrin.h:31,
                 from /usr/lib/gcc/x86_64-linux-gnu/7/include/tmmintrin.h:31,
                 from /usr/lib/gcc/x86_64-linux-gnu/7/include/smmintrin.h:32,
                 from /usr/lib/gcc/x86_64-linux-gnu/7/include/nmmintrin.h:31,
                 from src/vector_filter.h:16,
                 from src/bwamem.c:18:
/usr/lib/gcc/x86_64-linux-gnu/7/include/mmintrin.h:45:85: error: expected ‘)’ before ‘(’ token
 typedef int __m64_u __attribute__ ((__vector_size__ (8), __may_alias__, __aligned__ (1)));
                                                                                     ^
/usr/lib/gcc/x86_64-linux-gnu/7/include/mmintrin.h:45:85: error: expected ‘)’ before ‘(’ token
In file included from src/bwamem.c:18:0:
src/vector_filter.h:12:36: error: ‘aligned’ was not declared in this scope
 #define __aligned__ __attribute__((aligned(16)))
                                    ^
src/vector_filter.h:12:36: note: suggested alternative: ‘signed’
In file included from /usr/lib/gcc/x86_64-linux-gnu/7/include/emmintrin.h:31:0,
                 from /usr/lib/gcc/x86_64-linux-gnu/7/include/pmmintrin.h:31,
                 from /usr/lib/gcc/x86_64-linux-gnu/7/include/tmmintrin.h:31,
                 from /usr/lib/gcc/x86_64-linux-gnu/7/include/smmintrin.h:32,
                 from /usr/lib/gcc/x86_64-linux-gnu/7/include/nmmintrin.h:31,
                 from src/vector_filter.h:16,
                 from src/bwamem.c:18:
/usr/lib/gcc/x86_64-linux-gnu/7/include/xmmintrin.h:72:89: error: expected ‘)’ before ‘(’ token
 typedef float __m128_u __attribute__ ((__vector_size__ (16), __may_alias__, __aligned__ (1)));
                                                                                         ^
/usr/lib/gcc/x86_64-linux-gnu/7/include/xmmintrin.h:72:89: error: expected ‘)’ before ‘(’ token
In file included from src/bwamem.c:18:0:
src/vector_filter.h:12:36: error: ‘aligned’ was not declared in this scope
 #define __aligned__ __attribute__((aligned(16)))
                                    ^
src/vector_filter.h:12:36: note: suggested alternative: ‘signed’
In file included from /usr/lib/gcc/x86_64-linux-gnu/7/include/pmmintrin.h:31:0,
                 from /usr/lib/gcc/x86_64-linux-gnu/7/include/tmmintrin.h:31,
                 from /usr/lib/gcc/x86_64-linux-gnu/7/include/smmintrin.h:32,
                 from /usr/lib/gcc/x86_64-linux-gnu/7/include/nmmintrin.h:31,
                 from src/vector_filter.h:16,
                 from src/bwamem.c:18:
/usr/lib/gcc/x86_64-linux-gnu/7/include/emmintrin.h:57:94: error: expected ‘)’ before ‘(’ token
 typedef long long __m128i_u __attribute__ ((__vector_size__ (16), __may_alias__, __aligned__ (1)));
                                                                                              ^
/usr/lib/gcc/x86_64-linux-gnu/7/include/emmintrin.h:57:94: error: expected ‘)’ before ‘(’ token
In file included from src/bwamem.c:18:0:
src/vector_filter.h:12:36: error: ‘aligned’ was not declared in this scope
 #define __aligned__ __attribute__((aligned(16)))
                                    ^
src/vector_filter.h:12:36: note: suggested alternative: ‘signed’
In file included from /usr/lib/gcc/x86_64-linux-gnu/7/include/pmmintrin.h:31:0,
                 from /usr/lib/gcc/x86_64-linux-gnu/7/include/tmmintrin.h:31,
                 from /usr/lib/gcc/x86_64-linux-gnu/7/include/smmintrin.h:32,
                 from /usr/lib/gcc/x86_64-linux-gnu/7/include/nmmintrin.h:31,
                 from src/vector_filter.h:16,
                 from src/bwamem.c:18:
/usr/lib/gcc/x86_64-linux-gnu/7/include/emmintrin.h:58:91: error: expected ‘)’ before ‘(’ token
 typedef double __m128d_u __attribute__ ((__vector_size__ (16), __may_alias__, __aligned__ (1)));
                                                                                           ^
/usr/lib/gcc/x86_64-linux-gnu/7/include/emmintrin.h:58:91: error: expected ‘)’ before ‘(’ token
In file included from src/kstring.h:8:0,
                 from src/bwamem.c:11:
src/bwamem.c: In function ‘mem_opt_t* mem_opt_init()’:
src/malloc_wrap.h:28:36: warning: invalid conversion from ‘void*’ to ‘mem_opt_t*’ [-fpermissive]
 #  define calloc(n, s)  wrap_calloc( (n), (s), __FILE__, __LINE__, __func__)
                         ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/bwamem.c:52:6: note: in expansion of macro ‘calloc’
  o = calloc(1, sizeof(mem_opt_t));
      ^~~~~~
src/bwamem.c: In function ‘smem_aux_t* smem_aux_init()’:
src/malloc_wrap.h:28:36: warning: invalid conversion from ‘void*’ to ‘smem_aux_t*’ [-fpermissive]
 #  define calloc(n, s)  wrap_calloc( (n), (s), __FILE__, __LINE__, __func__)
                         ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/bwamem.c:110:6: note: in expansion of macro ‘calloc’
  a = calloc(1, sizeof(smem_aux_t));
      ^~~~~~
src/malloc_wrap.h:28:36: warning: invalid conversion from ‘void*’ to ‘bwtintv_v*’ [-fpermissive]
 #  define calloc(n, s)  wrap_calloc( (n), (s), __FILE__, __LINE__, __func__)
                         ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/bwamem.c:111:15: note: in expansion of macro ‘calloc’
  a->tmpv[0] = calloc(1, sizeof(bwtintv_v));
               ^~~~~~
src/malloc_wrap.h:28:36: warning: invalid conversion from ‘void*’ to ‘bwtintv_v*’ [-fpermissive]
 #  define calloc(n, s)  wrap_calloc( (n), (s), __FILE__, __LINE__, __func__)
                         ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/bwamem.c:112:15: note: in expansion of macro ‘calloc’
  a->tmpv[1] = calloc(1, sizeof(bwtintv_v));
               ^~~~~~
src/bwamem.c: In function ‘void mem_collect_intv(mem_opt_t*, const bwt_t*, int, const uint8_t*, smem_aux_t*)’:
src/bwamem.c:202:18: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
    for (i = 0; i < a->mem1.n; ++i) {
                ~~^~~~~~~~~~~
src/bwamem.c:217:43: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
    if (end - start < split_len || p->x[2] > opt->split_width)
                                   ~~~~~~~~^~~~~~~~~~~~~~~~~~
src/bwamem.c:220:18: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
    for (i = 0; i < a->mem1.n; ++i)
                ~~^~~~~~~~~~~
src/bwamem.c:221:66: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
     if ((uint32_t) a->mem1.a[i].info - (a->mem1.a[i].info >> 32) >= opt->min_seed_len)
         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~
src/bwamem.c:236:21: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
       for (i = 0; i < a->mem1.n; ++i)
                   ~~^~~~~~~~~~~
src/bwamem.c:164:26: warning: unused variable ‘max’ [-Wunused-variable]
  int i, k, x = 0, old_n, max, max_i;
                          ^~~
src/bwamem.c:164:31: warning: unused variable ‘max_i’ [-Wunused-variable]
  int i, k, x = 0, old_n, max, max_i;
                               ^~~~~
src/bwamem.c:167:6: warning: unused variable ‘min_miss_match’ [-Wunused-variable]
  int min_miss_match = 0;
      ^~~~~~~~~~~~~~
src/bwamem.c:168:19: warning: unused variable ‘w’ [-Wunused-variable]
  bwt_mem_width_t *w;
                   ^
In file included from src/kstring.h:8:0,
                 from src/bwamem.c:11:
src/bwamem.c: In function ‘int test_and_merge(const mem_opt_t*, int64_t, mem_chain_t*, const mem_seed_t*, int)’:
src/malloc_wrap.h:38:37: warning: invalid conversion from ‘void*’ to ‘mem_seed_t*’ [-fpermissive]
 #  define realloc(p, s) wrap_realloc((p), (s), __FILE__, __LINE__, __func__)
                         ~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/bwamem.c:374:16: note: in expansion of macro ‘realloc’
     c->seeds = realloc(c->seeds, c->m * sizeof(mem_seed_t));
                ^~~~~~~
src/bwamem.c: In function ‘void mem_print_chain(const bntseq_t*, mem_chain_v*)’:
src/bwamem.c:409:16: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
  for (i = 0; i < chn->n; ++i) {
              ~~^~~~~~~~
src/bwamem.c: In function ‘mem_chain_v mem_chain(const mem_opt_t*, const bwt_t*, const bntseq_t*, int, const uint8_t*, void*)’:
src/bwamem.c:438:42: warning: invalid conversion from ‘const mem_opt_t*’ to ‘mem_opt_t*’ [-fpermissive]
  mem_collect_intv(opt, bwt, len, seq, aux);
                                          ^
src/bwamem.c:163:13: note:   initializing argument 1 of ‘void mem_collect_intv(mem_opt_t*, const bwt_t*, int, const uint8_t*, smem_aux_t*)’
 static void mem_collect_intv(mem_opt_t *opt, const bwt_t *bwt, int len, const uint8_t *seq, smem_aux_t *a) {
             ^~~~~~~~~~~~~~~~
src/bwamem.c:439:35: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
  for (i = 0, b = e = l_rep = 0; i < aux->mem.n; ++i) { // compute frac_rep
                                 ~~^~~~~~~~~~~~
src/bwamem.c:442:15: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
   if (p->x[2] <= opt->max_occ)
       ~~~~~~~~^~~~~~~~~~~~~~~
src/bwamem.c:450:16: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
  for (i = 0; i < aux->mem.n; ++i) {
              ~~^~~~~~~~~~~~
src/bwamem.c:455:18: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
   step = p->x[2] > opt->max_occ ? p->x[2] / opt->max_occ : 1;
          ~~~~~~~~^~~~~~~~~~~~~~
src/bwamem.c:456:25: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
   for (k = count = 0; k < p->x[2] && count < opt->max_occ; k += step, ++count) {
                       ~~^~~~~~~~~
In file included from src/kstring.h:8:0,
                 from src/bwamem.c:11:
src/malloc_wrap.h:28:36: warning: invalid conversion from ‘void*’ to ‘mem_seed_t*’ [-fpermissive]
 #  define calloc(n, s)  wrap_calloc( (n), (s), __FILE__, __LINE__, __func__)
                         ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/bwamem.c:476:17: note: in expansion of macro ‘calloc’
     tmp.seeds = calloc(tmp.m, sizeof(mem_seed_t));
                 ^~~~~~
src/bwamem.c:493:16: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
  for (i = 0; i < chain.n; ++i)
              ~~^~~~~~~~~
src/bwamem.c: In function ‘int mem_chain_flt(const mem_opt_t*, int, mem_chain_t*)’:
src/bwamem.c:536:18: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
    for (k = 0; k < chains.n; ++k) {
                ~~^~~~~~~~~~
src/bwamem.c:555:10: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
    if (k == chains.n) {
        ~~^~~~~~~~~~~
src/bwamem.c:560:17: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
   for (i = 0; i < chains.n; ++i) {
               ~~^~~~~~~~~~
src/bwamem.c: In function ‘void mem_mark_primary_se_core(const mem_opt_t*, int, mem_alnreg_t*, int_v*)’:
src/bwamem.c:717:18: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
    for (k = 0; k < z->n; ++k) {
                ~~^~~~~~
src/bwamem.c:732:10: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
    if (k == z->n)
        ~~^~~~~~~
In file included from src/kstring.h:8:0,
                 from src/bwamem.c:11:
src/bwamem.c: In function ‘void mem_chain2aln(const mem_opt_t*, const bntseq_t*, const uint8_t*, int, const uint8_t*, const mem_chain_t*, mem_alnreg_v*, int*, int*, gpu_batch*)’:
src/malloc_wrap.h:33:36: warning: invalid conversion from ‘void*’ to ‘uint64_t* {aka long unsigned int*}’ [-fpermissive]
 #  define malloc(s)     wrap_malloc( (s),      __FILE__, __LINE__, __func__)
                         ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/bwamem.c:1087:8: note: in expansion of macro ‘malloc’
  srt = malloc(c->n * 8);
        ^~~~~~
src/bwamem.c:1098:17: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
   for (i = 0; i < av->n; ++i)  // test whether extension has been made before
               ~~^~~~~~~
src/bwamem.c:1119:9: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
   if (i < av->n)
       ~~^~~~~~~
src/bwamem.c:1226:40: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
     if (curr_gpu_batch->n_target_batch < curr_gpu_batch->gpu_storage->host_max_target_batch_bytes)
         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/bwamem.c:1246:31: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
    if (curr_gpu_batch->n_seqs < curr_gpu_batch->gpu_storage->host_max_n_alns)
        ~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/bwamem.c:1253:31: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
    if (curr_gpu_batch->n_seqs < curr_gpu_batch->gpu_storage->host_max_n_alns)
        ~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/bwamem.c:1260:31: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
    if (curr_gpu_batch->n_seqs < curr_gpu_batch->gpu_storage->host_max_n_alns)
        ~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/bwamem.c:1267:31: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
    if (curr_gpu_batch->n_seqs < curr_gpu_batch->gpu_storage->host_max_n_alns)
        ~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/bwamem.c:1211:8: warning: unused variable ‘j’ [-Wunused-variable]
    int j;
        ^
src/bwamem.c:1048:12: warning: unused variable ‘rid’ [-Wunused-variable]
  int i, k, rid, max_off[2], aw[2]; // aw: actual bandwidth used in extension
            ^~~
src/bwamem.c:1048:17: warning: unused variable ‘max_off’ [-Wunused-variable]
  int i, k, rid, max_off[2], aw[2]; // aw: actual bandwidth used in extension
                 ^~~~~~~
src/bwamem.c:1049:39: warning: unused variable ‘tmp’ [-Wunused-variable]
  int64_t l_pac = bns->l_pac, rmax[2], tmp, max = 0;
                                       ^~~
src/bwamem.c:1051:11: warning: unused variable ‘rseq’ [-Wunused-variable]
  uint8_t *rseq = NULL;
           ^~~~
src/bwamem.c: In function ‘void mem_aln2sam(const mem_opt_t*, const bntseq_t*, kstring_t*, bseq1_t*, int, const mem_aln_t*, int, const mem_aln_t*)’:
src/bwamem.c:1563:25: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
         for (i = tmp; i < str->l; ++i) // replace TAB in the comment to SPACE
                       ~~^~~~~~~~
src/bwamem.c: In function ‘void mem_reg2sam(const mem_opt_t*, const bntseq_t*, const uint8_t*, bseq1_t*, mem_alnreg_v*, int, const mem_aln_t*)’:
src/bwamem.c:1621:23: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
     for (k = l = 0; k < a->n; ++k) {
                     ~~^~~~~~
src/bwamem.c:1649:23: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
         for (k = 0; k < aa.n; ++k)
                     ~~^~~~~~
src/bwamem.c:1651:23: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
         for (k = 0; k < aa.n; ++k)
                     ~~^~~~~~
src/bwamem.c:1657:23: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
         for (k = 0; k < a->n; ++k)
                     ~~^~~~~~
src/bwamem.c: In function ‘void mem_gasal_fill(gpu_batch*, int, int, char*, int)’:
src/bwamem.c:1679:54: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
   if (gpu_batch_arr[gpu_batch_arr_idx].n_query_batch < gpu_batch_arr[gpu_batch_arr_idx].gpu_storage->host_max_query_batch_bytes)
       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/bwamem.c:1697:54: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
   if (gpu_batch_arr[gpu_batch_arr_idx].n_query_batch < gpu_batch_arr[gpu_batch_arr_idx].gpu_storage->host_max_query_batch_bytes)
       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/bwamem.c: In function ‘void mem_align1_core(const mem_opt_t*, const bwt_t*, const bntseq_t*, const uint8_t*, bseq1_t*, void*, int, int, mem_alnreg_v*, int, gasal_gpu_storage_v*)’:
src/bwamem.c:1803:31: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
                 for (i = 0; i < chn.n; ++i) {
                             ~~^~~~~~~
src/bwamem.c:1851:16: warning: unused variable ‘cur’ [-Wunused-variable]
     gpu_batch *cur = &gpu_batch_arr[gpu_batch_arr_idx];
                ^~~
src/bwamem.c:1857:132: warning: format ‘%d’ expects argument of type ‘int’, but argument 5 has type ‘size_t {aka long unsigned int}’ [-Wformat=]
                 fprintf(stderr, "Thread no. %d is here with internal batch size %d, regs.n %d \n", tid, internal_batch_size, regs.n);
                                                                                                                              ~~~~~~^
In file included from src/bntseq.h:31:0,
                 from src/bwamem.h:5,
                 from src/bwamem.c:12:
src/bwamem.c:1865:38: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
             assert(kv_size(regs_vec) == batch_processed);
src/bwamem.c:1902:139: warning: format ‘%d’ expects argument of type ‘int’, but argument 3 has type ‘size_t {aka long unsigned int}’ [-Wformat=]
                     if (gpu_batch_arr[internal_batch_idx].no_extend == 1) fprintf(stderr, "I am here too as well with regs.n %d\n", regs.n);
                                                                                                                                     ~~~~~~^
src/bwamem.c:1903:34: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
                     for(i = 0; i < regs.n; ++i){
                                ~~^~~~~~~~
src/bwamem.c:1923:39: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
                         for (i = 0; i < regs.n; ++i) {
                                     ~~^~~~~~~~
src/bwamem.c:1928:35: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
                     for (i = 0; i < regs.n; ++i) {
                                 ~~^~~~~~~~
In file included from src/kstring.h:8:0,
                 from src/bwamem.c:11:
src/bwamem.c: In function ‘mem_aln_t mem_reg2aln(const mem_opt_t*, const bntseq_t*, const uint8_t*, int, const char*, const mem_alnreg_t*)’:
src/malloc_wrap.h:33:36: warning: invalid conversion from ‘void*’ to ‘uint8_t* {aka unsigned char*}’ [-fpermissive]
 #  define malloc(s)     wrap_malloc( (s),      __FILE__, __LINE__, __func__)
                         ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/bwamem.c:1970:13: note: in expansion of macro ‘malloc’
     query = malloc(l_query);
             ^~~~~~
src/malloc_wrap.h:38:37: warning: invalid conversion from ‘void*’ to ‘uint32_t* {aka unsigned int*}’ [-fpermissive]
 #  define realloc(p, s) wrap_realloc((p), (s), __FILE__, __LINE__, __func__)
                         ~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/bwamem.c:2027:19: note: in expansion of macro ‘realloc’
         a.cigar = realloc(a.cigar, 4 * (a.n_cigar + 2) + l_MD);
                   ^~~~~~~
src/bwamem.c: In function ‘void mem_process_seqs(const mem_opt_t*, const bwt_t*, const bntseq_t*, const uint8_t*, int64_t, int, bseq1_t*, const mem_pestat_t*)’:
src/malloc_wrap.h:33:36: warning: invalid conversion from ‘void*’ to ‘mem_alnreg_v*’ [-fpermissive]
 #  define malloc(s)     wrap_malloc( (s),      __FILE__, __LINE__, __func__)
                         ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/bwamem.c:2104:14: note: in expansion of macro ‘malloc’
     w.regs = malloc(n * sizeof(mem_alnreg_v));
              ^~~~~~
src/malloc_wrap.h:33:36: warning: invalid conversion from ‘void*’ to ‘smem_aux_t**’ [-fpermissive]
 #  define malloc(s)     wrap_malloc( (s),      __FILE__, __LINE__, __func__)
                         ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/bwamem.c:2112:13: note: in expansion of macro ‘malloc’
     w.aux = malloc(opt->n_threads * sizeof(smem_aux_t));
             ^~~~~~
src/bwamem.c:2116:80: warning: invalid conversion from ‘void (*)(void*, int, int, int, int, gasal_gpu_storage_v*)’ to ‘void (*)(void*, int, int, int, int)’ [-fpermissive]
     kt_for(opt->n_threads, worker1, &w, /*(opt->flag & MEM_F_PE) ? n >> 1 : */n); // find mapping positions
                                                                                ^
In file included from src/bwamem.c:12:0:
src/bwamem.h:197:14: note:   initializing argument 2 of ‘void kt_for(int, void (*)(void*, int, int, int, int), void*, int)’
  extern void kt_for(int n_threads, void (*func)(void*, int, int, int, int), void *data, int n);
              ^~~~~~
src/bwamem.c:2136:76: warning: invalid conversion from ‘void (*)(void*, int, int, int, int, gasal_gpu_storage_v*)’ to ‘void (*)(void*, int, int, int, int)’ [-fpermissive]
     kt_for(opt->n_threads, worker2, &w, (opt->flag & MEM_F_PE) ? n >> 1 : n); // generate alignment
                                                                            ^
In file included from src/bwamem.c:12:0:
src/bwamem.h:197:14: note:   initializing argument 2 of ‘void kt_for(int, void (*)(void*, int, int, int, int), void*, int)’
  extern void kt_for(int n_threads, void (*func)(void*, int, int, int, int), void *data, int n);
              ^~~~~~
make: *** [bwamem.o] Error 1

Here's some system info:

$ uname -a
Linux dgx01 4.15.0-130-generic #134-Ubuntu SMP Tue Jan 5 20:46:26 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux
$ gcc -v
Using built-in specs.
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/7/lto-wrapper
OFFLOAD_TARGET_NAMES=nvptx-none
OFFLOAD_TARGET_DEFAULT=1
Target: x86_64-linux-gnu
Configured with: ../src/configure -v --with-pkgversion='Ubuntu 7.5.0-3ubuntu1~18.04' --with-bugurl=file:///usr/share/doc/gcc-7/README.Bugs --enable-languages=c,ada,c++,go,brig,d,fortran,objc,obj-c++ --prefix=/usr --with-gcc-major-version-only --program-suffix=-7 --program-prefix=x86_64-linux-gnu- --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --enable-bootstrap --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-gnu-unique-object --disable-vtable-verify --enable-libmpx --enable-plugin --enable-default-pie --with-system-zlib --with-target-system-zlib --enable-objc-gc=auto --enable-multiarch --disable-werror --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32,m64,mx32 --enable-multilib --with-tune=generic --enable-offload-targets=nvptx-none --without-cuda-driver --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu
Thread model: posix
gcc version 7.5.0 (Ubuntu 7.5.0-3ubuntu1~18.04) 
$ nvcc --version
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2020 NVIDIA Corporation
Built on Tue_Sep_15_19:10:02_PDT_2020
Cuda compilation tools, release 11.1, V11.1.74
Build cuda_11.1.TC455_06.29069683_0

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.