nh13 / DWGSIM

Whole Genome Simulator for Next-Generation Sequencing
GNU General Public License v2.0
92 stars 36 forks source link

build failure with gcc 14 #88

Open emollier opened 2 months ago

emollier commented 2 months ago

Hi,

As first identified in Debian bug #1074926, dwgsim 0.1.14 is currently failing to build with gcc 14. There seems to be a good wealth of errors caused by pointer type mismatches, and when I attempted to have a look at patching the issue, I realized that didn't feel comfortable touching the code.

For other codebases in such scenario, I would investigate whether functions and variables signatures were incorrect (and fix them in such situations), or I would determine that the situation requires casting types because of some advanced handling generic resources. In the present situation, the code was too intricate for me to determine whether types could be changed (possibly not since part of them are structure inherited from the zlib), and some of the mismatches felt like I was staring at a genuine bug, so type casting felt wrong to me.

Here is the full relevant part of the build log for your convenience; the original trimming was automated and didn't capture errors before line 1029:

cc -c -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -fcf-protection -Wall -O3 -I. -Wdate-time -D_FORTIFY_SOURCE=2 -D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE -D_USE_KNETFILE -DPACKAGE_VERSION=\"0.1.14-2\" src/dwgsim.c -o src/dwgsim.o
src/dwgsim.c: In function ‘dwgsim_core’:
src/dwgsim.c:864:35: error: initialization of ‘FILE *’ from incompatible pointer type ‘struct gzFile_s **’ [-Wincompatible-pointer-types]
  864 |                       FILE *fpo = (0 == j) ? opt->fp_bwa1: opt->fp_bwa2;
      |                                   ^
src/dwgsim.c:867:38: error: passing argument 1 of ‘gzprintf’ from incompatible pointer type [-Wincompatible-pointer-types]
  867 |                             gzprintf(fpo, "@%s%s%s_%u_%u_%1u_%1u_%1u_%1u_%d:%d:%d_%d:%d:%d_%llx/%d\n",
      |                                      ^~~
      |                                      |
      |                                      FILE *
In file included from src/dwgsim.c:44:
/usr/include/zlib.h:1471:39: note: expected ‘gzFile’ {aka ‘struct gzFile_s *’} but argument is of type ‘FILE *’
 1471 | ZEXTERN int ZEXPORTVA gzprintf(gzFile file, const char *format, ...);
      |                                ~~~~~~~^~~~
src/dwgsim.c:875:38: error: passing argument 1 of ‘gzputc’ from incompatible pointer type [-Wincompatible-pointer-types]
  875 |                               gzputc(fpo, "ACGTN"[(int)tmp_seq[j][i]]);
      |                                      ^~~
      |                                      |
      |                                      FILE *
/usr/include/zlib.h:1508:35: note: expected ‘gzFile’ {aka ‘struct gzFile_s *’} but argument is of type ‘FILE *’
 1508 | ZEXTERN int ZEXPORT gzputc(gzFile file, int c);
      |                            ~~~~~~~^~~~
src/dwgsim.c:876:38: error: passing argument 1 of ‘gzprintf’ from incompatible pointer type [-Wincompatible-pointer-types]
  876 |                             gzprintf(fpo, "\n+\n%s\n", qstr);
      |                                      ^~~
      |                                      |
      |                                      FILE *
/usr/include/zlib.h:1471:39: note: expected ‘gzFile’ {aka ‘struct gzFile_s *’} but argument is of type ‘FILE *’
 1471 | ZEXTERN int ZEXPORTVA gzprintf(gzFile file, const char *format, ...);
      |                                ~~~~~~~^~~~
src/dwgsim.c:885:38: error: passing argument 1 of ‘gzprintf’ from incompatible pointer type [-Wincompatible-pointer-types]
  885 |                             gzprintf(fpo, "@%s%s%s_%u_%u_%1u_%1u_%1u_%1u_%d:%d:%d_%d:%d:%d_%llx/%d\n",
      |                                      ^~~
      |                                      |
      |                                      FILE *
/usr/include/zlib.h:1471:39: note: expected ‘gzFile’ {aka ‘struct gzFile_s *’} but argument is of type ‘FILE *’
 1471 | ZEXTERN int ZEXPORTVA gzprintf(gzFile file, const char *format, ...);
      |                                ~~~~~~~^~~~
src/dwgsim.c:894:38: error: passing argument 1 of ‘gzputc’ from incompatible pointer type [-Wincompatible-pointer-types]
  894 |                               gzputc(fpo, "ACGTN"[(int)tmp_seq[j][i]]);
      |                                      ^~~
      |                                      |
      |                                      FILE *
/usr/include/zlib.h:1508:35: note: expected ‘gzFile’ {aka ‘struct gzFile_s *’} but argument is of type ‘FILE *’
 1508 | ZEXTERN int ZEXPORT gzputc(gzFile file, int c);
      |                            ~~~~~~~^~~~
src/dwgsim.c:895:38: error: passing argument 1 of ‘gzprintf’ from incompatible pointer type [-Wincompatible-pointer-types]
  895 |                             gzprintf(fpo, "\n+\n");
      |                                      ^~~
      |                                      |
      |                                      FILE *
/usr/include/zlib.h:1471:39: note: expected ‘gzFile’ {aka ‘struct gzFile_s *’} but argument is of type ‘FILE *’
 1471 | ZEXTERN int ZEXPORTVA gzprintf(gzFile file, const char *format, ...);
      |                                ~~~~~~~^~~~
src/dwgsim.c:897:38: error: passing argument 1 of ‘gzputc’ from incompatible pointer type [-Wincompatible-pointer-types]
  897 |                               gzputc(fpo, qstr[i]);
      |                                      ^~~
      |                                      |
      |                                      FILE *
/usr/include/zlib.h:1508:35: note: expected ‘gzFile’ {aka ‘struct gzFile_s *’} but argument is of type ‘FILE *’
 1508 | ZEXTERN int ZEXPORT gzputc(gzFile file, int c);
      |                            ~~~~~~~^~~~
src/dwgsim.c:898:38: error: passing argument 1 of ‘gzprintf’ from incompatible pointer type [-Wincompatible-pointer-types]
  898 |                             gzprintf(fpo, "\n");
      |                                      ^~~
      |                                      |
      |                                      FILE *
/usr/include/zlib.h:1471:39: note: expected ‘gzFile’ {aka ‘struct gzFile_s *’} but argument is of type ‘FILE *’
 1471 | ZEXTERN int ZEXPORTVA gzprintf(gzFile file, const char *format, ...);
      |                                ~~~~~~~^~~~
src/dwgsim.c:904:39: error: passing argument 1 of ‘gzprintf’ from incompatible pointer type [-Wincompatible-pointer-types]
  904 |                           gzprintf(opt->fp_bfast, "@%s%s%s_%u_%u_%1u_%1u_%1u_%1u_%d:%d:%d_%d:%d:%d_%llx\n",
      |                                    ~~~^~~~~~~~~~
      |                                       |
      |                                       struct gzFile_s **
/usr/include/zlib.h:1471:39: note: expected ‘gzFile’ {aka ‘struct gzFile_s *’} but argument is of type ‘struct gzFile_s **’
 1471 | ZEXTERN int ZEXPORTVA gzprintf(gzFile file, const char *format, ...);
      |                                ~~~~~~~^~~~
src/dwgsim.c:912:43: error: passing argument 1 of ‘gzputc’ from incompatible pointer type [-Wincompatible-pointer-types]
  912 |                                 gzputc(opt->fp_bfast, "ACGTN"[(int)tmp_seq[j][i]]);
      |                                        ~~~^~~~~~~~~~
      |                                           |
      |                                           struct gzFile_s **
/usr/include/zlib.h:1508:35: note: expected ‘gzFile’ {aka ‘struct gzFile_s *’} but argument is of type ‘struct gzFile_s **’
 1508 | ZEXTERN int ZEXPORT gzputc(gzFile file, int c);
      |                            ~~~~~~~^~~~
src/dwgsim.c:913:43: error: passing argument 1 of ‘gzprintf’ from incompatible pointer type [-Wincompatible-pointer-types]
  913 |                               gzprintf(opt->fp_bfast, "\n+\n%s\n", qstr);
      |                                        ~~~^~~~~~~~~~
      |                                           |
      |                                           struct gzFile_s **
/usr/include/zlib.h:1471:39: note: expected ‘gzFile’ {aka ‘struct gzFile_s *’} but argument is of type ‘struct gzFile_s **’
 1471 | ZEXTERN int ZEXPORTVA gzprintf(gzFile file, const char *format, ...);
      |                                ~~~~~~~^~~~
src/dwgsim.c:916:41: error: passing argument 1 of ‘gzputc’ from incompatible pointer type [-Wincompatible-pointer-types]
  916 |                               gzputc(opt->fp_bfast, 'A');
      |                                      ~~~^~~~~~~~~~
      |                                         |
      |                                         struct gzFile_s **
/usr/include/zlib.h:1508:35: note: expected ‘gzFile’ {aka ‘struct gzFile_s *’} but argument is of type ‘struct gzFile_s **’
 1508 | ZEXTERN int ZEXPORT gzputc(gzFile file, int c);
      |                            ~~~~~~~^~~~
src/dwgsim.c:918:43: error: passing argument 1 of ‘gzputc’ from incompatible pointer type [-Wincompatible-pointer-types]
  918 |                                 gzputc(opt->fp_bfast, "01234"[(int)tmp_seq[j][i]]);
      |                                        ~~~^~~~~~~~~~
      |                                           |
      |                                           struct gzFile_s **
/usr/include/zlib.h:1508:35: note: expected ‘gzFile’ {aka ‘struct gzFile_s *’} but argument is of type ‘struct gzFile_s **’
 1508 | ZEXTERN int ZEXPORT gzputc(gzFile file, int c);
      |                            ~~~~~~~^~~~
src/dwgsim.c:919:43: error: passing argument 1 of ‘gzprintf’ from incompatible pointer type [-Wincompatible-pointer-types]
  919 |                               gzprintf(opt->fp_bfast, "\n+\n");
      |                                        ~~~^~~~~~~~~~
      |                                           |
      |                                           struct gzFile_s **
/usr/include/zlib.h:1471:39: note: expected ‘gzFile’ {aka ‘struct gzFile_s *’} but argument is of type ‘struct gzFile_s **’
 1471 | ZEXTERN int ZEXPORTVA gzprintf(gzFile file, const char *format, ...);
      |                                ~~~~~~~^~~~
src/dwgsim.c:921:43: error: passing argument 1 of ‘gzputc’ from incompatible pointer type [-Wincompatible-pointer-types]
  921 |                                 gzputc(opt->fp_bfast, qstr[i]);
      |                                        ~~~^~~~~~~~~~
      |                                           |
      |                                           struct gzFile_s **
/usr/include/zlib.h:1508:35: note: expected ‘gzFile’ {aka ‘struct gzFile_s *’} but argument is of type ‘struct gzFile_s **’
 1508 | ZEXTERN int ZEXPORT gzputc(gzFile file, int c);
      |                            ~~~~~~~^~~~
src/dwgsim.c:922:43: error: passing argument 1 of ‘gzprintf’ from incompatible pointer type [-Wincompatible-pointer-types]
  922 |                               gzprintf(opt->fp_bfast, "\n");
      |                                        ~~~^~~~~~~~~~
      |                                           |
      |                                           struct gzFile_s **
/usr/include/zlib.h:1471:39: note: expected ‘gzFile’ {aka ‘struct gzFile_s *’} but argument is of type ‘struct gzFile_s **’
 1471 | ZEXTERN int ZEXPORTVA gzprintf(gzFile file, const char *format, ...);
      |                                ~~~~~~~^~~~
src/dwgsim.c:972:35: error: initialization of ‘FILE *’ from incompatible pointer type ‘struct gzFile_s **’ [-Wincompatible-pointer-types]
  972 |                       FILE *fpo = (0 == j) ? opt->fp_bwa1: opt->fp_bwa2;
      |                                   ^
src/dwgsim.c:975:40: error: passing argument 1 of ‘gzprintf’ from incompatible pointer type [-Wincompatible-pointer-types]
  975 |                               gzprintf(fpo, "@%s%s%s_%u_%u_%1u_%1u_%1u_%1u_%d:%d:%d_%d:%d:%d_%llx/%d\n",
      |                                        ^~~
      |                                        |
      |                                        FILE *
/usr/include/zlib.h:1471:39: note: expected ‘gzFile’ {aka ‘struct gzFile_s *’} but argument is of type ‘FILE *’
 1471 | ZEXTERN int ZEXPORTVA gzprintf(gzFile file, const char *format, ...);
      |                                ~~~~~~~^~~~
src/dwgsim.c:983:40: error: passing argument 1 of ‘gzputc’ from incompatible pointer type [-Wincompatible-pointer-types]
  983 |                                 gzputc(fpo, "ACGTN"[(int)tmp_seq[j][i]]);
      |                                        ^~~
      |                                        |
      |                                        FILE *
/usr/include/zlib.h:1508:35: note: expected ‘gzFile’ {aka ‘struct gzFile_s *’} but argument is of type ‘FILE *’
 1508 | ZEXTERN int ZEXPORT gzputc(gzFile file, int c);
      |                            ~~~~~~~^~~~
src/dwgsim.c:984:40: error: passing argument 1 of ‘gzprintf’ from incompatible pointer type [-Wincompatible-pointer-types]
  984 |                               gzprintf(fpo, "\n+\n%s\n", qstr);
      |                                        ^~~
      |                                        |
      |                                        FILE *
/usr/include/zlib.h:1471:39: note: expected ‘gzFile’ {aka ‘struct gzFile_s *’} but argument is of type ‘FILE *’
 1471 | ZEXTERN int ZEXPORTVA gzprintf(gzFile file, const char *format, ...);
      |                                ~~~~~~~^~~~
src/dwgsim.c:993:40: error: passing argument 1 of ‘gzprintf’ from incompatible pointer type [-Wincompatible-pointer-types]
  993 |                               gzprintf(fpo, "@%s%s%s_%u_%u_%1u_%1u_%1u_%1u_%d:%d:%d_%d:%d:%d_%llx/%d\n",
      |                                        ^~~
      |                                        |
      |                                        FILE *
/usr/include/zlib.h:1471:39: note: expected ‘gzFile’ {aka ‘struct gzFile_s *’} but argument is of type ‘FILE *’
 1471 | ZEXTERN int ZEXPORTVA gzprintf(gzFile file, const char *format, ...);
      |                                ~~~~~~~^~~~
src/dwgsim.c:1002:40: error: passing argument 1 of ‘gzputc’ from incompatible pointer type [-Wincompatible-pointer-types]
 1002 |                                 gzputc(fpo, "ACGTN"[(int)tmp_seq[j][i]]);
      |                                        ^~~
      |                                        |
      |                                        FILE *
/usr/include/zlib.h:1508:35: note: expected ‘gzFile’ {aka ‘struct gzFile_s *’} but argument is of type ‘FILE *’
 1508 | ZEXTERN int ZEXPORT gzputc(gzFile file, int c);
      |                            ~~~~~~~^~~~
src/dwgsim.c:1003:40: error: passing argument 1 of ‘gzprintf’ from incompatible pointer type [-Wincompatible-pointer-types]
 1003 |                               gzprintf(fpo, "\n+\n");
      |                                        ^~~
      |                                        |
      |                                        FILE *
/usr/include/zlib.h:1471:39: note: expected ‘gzFile’ {aka ‘struct gzFile_s *’} but argument is of type ‘FILE *’
 1471 | ZEXTERN int ZEXPORTVA gzprintf(gzFile file, const char *format, ...);
      |                                ~~~~~~~^~~~
src/dwgsim.c:1005:40: error: passing argument 1 of ‘gzputc’ from incompatible pointer type [-Wincompatible-pointer-types]
 1005 |                                 gzputc(fpo, qstr[i]);
      |                                        ^~~
      |                                        |
      |                                        FILE *
/usr/include/zlib.h:1508:35: note: expected ‘gzFile’ {aka ‘struct gzFile_s *’} but argument is of type ‘FILE *’
 1508 | ZEXTERN int ZEXPORT gzputc(gzFile file, int c);
      |                            ~~~~~~~^~~~
src/dwgsim.c:1006:40: error: passing argument 1 of ‘gzprintf’ from incompatible pointer type [-Wincompatible-pointer-types]
 1006 |                               gzprintf(fpo, "\n");
      |                                        ^~~
      |                                        |
      |                                        FILE *
/usr/include/zlib.h:1471:39: note: expected ‘gzFile’ {aka ‘struct gzFile_s *’} but argument is of type ‘FILE *’
 1471 | ZEXTERN int ZEXPORTVA gzprintf(gzFile file, const char *format, ...);
      |                                ~~~~~~~^~~~
src/dwgsim.c:1012:39: error: passing argument 1 of ‘gzprintf’ from incompatible pointer type [-Wincompatible-pointer-types]
 1012 |                           gzprintf(opt->fp_bfast, "@%s%s%s_%u_%u_%1u_%1u_%1u_%1u_%d:%d:%d_%d:%d:%d_%llx\n",
      |                                    ~~~^~~~~~~~~~
      |                                       |
      |                                       struct gzFile_s **
/usr/include/zlib.h:1471:39: note: expected ‘gzFile’ {aka ‘struct gzFile_s *’} but argument is of type ‘struct gzFile_s **’
 1471 | ZEXTERN int ZEXPORTVA gzprintf(gzFile file, const char *format, ...);
      |                                ~~~~~~~^~~~
src/dwgsim.c:1020:43: error: passing argument 1 of ‘gzputc’ from incompatible pointer type [-Wincompatible-pointer-types]
 1020 |                                 gzputc(opt->fp_bfast, "ACGTN"[(int)tmp_seq[j][i]]);
      |                                        ~~~^~~~~~~~~~
      |                                           |
      |                                           struct gzFile_s **
/usr/include/zlib.h:1508:35: note: expected ‘gzFile’ {aka ‘struct gzFile_s *’} but argument is of type ‘struct gzFile_s **’
 1508 | ZEXTERN int ZEXPORT gzputc(gzFile file, int c);
      |                            ~~~~~~~^~~~
src/dwgsim.c:1021:43: error: passing argument 1 of ‘gzprintf’ from incompatible pointer type [-Wincompatible-pointer-types]
 1021 |                               gzprintf(opt->fp_bfast, "\n+\n%s\n", qstr);
      |                                        ~~~^~~~~~~~~~
      |                                           |
      |                                           struct gzFile_s **
/usr/include/zlib.h:1471:39: note: expected ‘gzFile’ {aka ‘struct gzFile_s *’} but argument is of type ‘struct gzFile_s **’
 1471 | ZEXTERN int ZEXPORTVA gzprintf(gzFile file, const char *format, ...);
      |                                ~~~~~~~^~~~
src/dwgsim.c:1024:41: error: passing argument 1 of ‘gzputc’ from incompatible pointer type [-Wincompatible-pointer-types]
 1024 |                               gzputc(opt->fp_bfast, 'A');
      |                                      ~~~^~~~~~~~~~
      |                                         |
      |                                         struct gzFile_s **
/usr/include/zlib.h:1508:35: note: expected ‘gzFile’ {aka ‘struct gzFile_s *’} but argument is of type ‘struct gzFile_s **’
 1508 | ZEXTERN int ZEXPORT gzputc(gzFile file, int c);
      |                            ~~~~~~~^~~~
src/dwgsim.c:1026:43: error: passing argument 1 of ‘gzputc’ from incompatible pointer type [-Wincompatible-pointer-types]
 1026 |                                 gzputc(opt->fp_bfast, "01234"[(int)tmp_seq[j][i]]);
      |                                        ~~~^~~~~~~~~~
      |                                           |
      |                                           struct gzFile_s **
/usr/include/zlib.h:1508:35: note: expected ‘gzFile’ {aka ‘struct gzFile_s *’} but argument is of type ‘struct gzFile_s **’
 1508 | ZEXTERN int ZEXPORT gzputc(gzFile file, int c);
      |                            ~~~~~~~^~~~
src/dwgsim.c:1027:43: error: passing argument 1 of ‘gzprintf’ from incompatible pointer type [-Wincompatible-pointer-types]
 1027 |                               gzprintf(opt->fp_bfast, "\n+\n");
      |                                        ~~~^~~~~~~~~~
      |                                           |
      |                                           struct gzFile_s **
/usr/include/zlib.h:1471:39: note: expected ‘gzFile’ {aka ‘struct gzFile_s *’} but argument is of type ‘struct gzFile_s **’
 1471 | ZEXTERN int ZEXPORTVA gzprintf(gzFile file, const char *format, ...);
      |                                ~~~~~~~^~~~
src/dwgsim.c:1029:43: error: passing argument 1 of ‘gzputc’ from incompatible pointer type [-Wincompatible-pointer-types]
 1029 |                                 gzputc(opt->fp_bfast, qstr[i]);
      |                                        ~~~^~~~~~~~~~
      |                                           |
      |                                           struct gzFile_s **
/usr/include/zlib.h:1508:35: note: expected ‘gzFile’ {aka ‘struct gzFile_s *’} but argument is of type ‘struct gzFile_s **’
 1508 | ZEXTERN int ZEXPORT gzputc(gzFile file, int c);
      |                            ~~~~~~~^~~~
src/dwgsim.c:1030:43: error: passing argument 1 of ‘gzprintf’ from incompatible pointer type [-Wincompatible-pointer-types]
 1030 |                               gzprintf(opt->fp_bfast, "\n");
      |                                        ~~~^~~~~~~~~~
      |                                           |
      |                                           struct gzFile_s **
/usr/include/zlib.h:1471:39: note: expected ‘gzFile’ {aka ‘struct gzFile_s *’} but argument is of type ‘struct gzFile_s **’
 1471 | ZEXTERN int ZEXPORTVA gzprintf(gzFile file, const char *format, ...);
      |                                ~~~~~~~^~~~
src/dwgsim.c: In function ‘main’:
src/dwgsim.c:1088:25: error: assignment to ‘struct gzFile_s **’ from incompatible pointer type ‘gzFile’ {aka ‘struct gzFile_s *’} [-Wincompatible-pointer-types]
 1088 |           opt->fp_bfast = gzopen(fn_tmp, "w");
      |                         ^
src/dwgsim.c:1092:24: error: assignment to ‘struct gzFile_s **’ from incompatible pointer type ‘gzFile’ {aka ‘struct gzFile_s *’} [-Wincompatible-pointer-types]
 1092 |           opt->fp_bwa1 = gzopen(fn_tmp, "w");
      |                        ^
src/dwgsim.c:1094:24: error: assignment to ‘struct gzFile_s **’ from incompatible pointer type ‘gzFile’ {aka ‘struct gzFile_s *’} [-Wincompatible-pointer-types]
 1094 |           opt->fp_bwa2 = gzopen(fn_tmp, "w");
      |                        ^
src/dwgsim.c:1104:22: error: passing argument 1 of ‘gzclose’ from incompatible pointer type [-Wincompatible-pointer-types]
 1104 |           gzclose(opt->fp_bfast);
      |                   ~~~^~~~~~~~~~
      |                      |
      |                      struct gzFile_s **
/usr/include/zlib.h:1634:39: note: expected ‘gzFile’ {aka ‘struct gzFile_s *’} but argument is of type ‘struct gzFile_s **’
 1634 | ZEXTERN int ZEXPORT    gzclose(gzFile file);
      |                                ~~~~~~~^~~~
src/dwgsim.c:1107:22: error: passing argument 1 of ‘gzclose’ from incompatible pointer type [-Wincompatible-pointer-types]
 1107 |           gzclose(opt->fp_bwa1); gzclose(opt->fp_bwa2);
      |                   ~~~^~~~~~~~~
      |                      |
      |                      struct gzFile_s **
/usr/include/zlib.h:1634:39: note: expected ‘gzFile’ {aka ‘struct gzFile_s *’} but argument is of type ‘struct gzFile_s **’
 1634 | ZEXTERN int ZEXPORT    gzclose(gzFile file);
      |                                ~~~~~~~^~~~
src/dwgsim.c:1107:45: error: passing argument 1 of ‘gzclose’ from incompatible pointer type [-Wincompatible-pointer-types]
 1107 |           gzclose(opt->fp_bwa1); gzclose(opt->fp_bwa2);
      |                                          ~~~^~~~~~~~~
      |                                             |
      |                                             struct gzFile_s **
/usr/include/zlib.h:1634:39: note: expected ‘gzFile’ {aka ‘struct gzFile_s *’} but argument is of type ‘struct gzFile_s **’
 1634 | ZEXTERN int ZEXPORT    gzclose(gzFile file);
      |                                ~~~~~~~^~~~
In file included from src/dwgsim.c:46:
src/mut.h: At top level:
src/mut.h:62:1: warning: inline function ‘mut_get_ins_long_n’ declared but never defined
   62 | mut_get_ins_long_n(uint8_t *ins, uint32_t *n);
      | ^~~~~~~~~~~~~~~~~~
src/mut.h:59:1: warning: inline function ‘mut_get_ins_bytes’ declared but never defined
   59 | mut_get_ins_bytes(int32_t n);
      | ^~~~~~~~~~~~~~~~~

If this is too overwhelming, path of least resistance could be to run the build with -Wno-error=incompatible-pointer-types among C compiler flags, but I'm not comfortable that I could have hidden an issue under the carpet, so haven't implemented it, for the moment. Anyway, without better in-depth knowledge of what the code is doing, I thought wiser to make you aware of the issues; perhaps you would see much better approaches.

Have a nice day, :) Étienne.