Package: stimfit
Version: 0.15.3-1
Severity: serious
Tags: patch


From the armhf build log for the hdf5 binnmu
In file included from biosig4c++/t210/scp-decode.cpp:113:0:
biosig4c++/t210/codes.h:25:37: error: narrowing conversion of '-1' from 'int' 
to 'char' inside { } [-Wnarrowing]
arm64, armel, ppc64el, powerpc and ppc64 have the same problem.

I believe this was triggered by the move to gcc-6. At least on armhf the previous successful build was performed with gcc 5.

Adding an explicit typecast makes the package build. I took a quick look at the code to try to determine if this fix was correct but I was unable to determine what exactly the value in question was actually used for.

I uploaded the fix to raspbian and have attatched a debdiff.

No intent to NMU in debian.

diff -Nru stimfit-0.15.3/debian/changelog stimfit-0.15.3/debian/changelog
--- stimfit-0.15.3/debian/changelog     2016-07-14 10:12:45.000000000 +0000
+++ stimfit-0.15.3/debian/changelog     2016-12-09 00:34:10.000000000 +0000
@@ -1,3 +1,9 @@
+stimfit (0.15.3-1+rpi1) stretch-staging; urgency=medium
+
+  * Add typecast to fix build failure on architectures where char is unsigned..
+
+ -- Peter Michael Green <plugw...@raspbian.org>  Fri, 09 Dec 2016 00:34:10 
+0000
+
 stimfit (0.15.3-1) unstable; urgency=low
 
   * Fix building with gcc-6 (Closes: #811904)
diff -Nru stimfit-0.15.3/debian/patches/fix-char-signedness.patch 
stimfit-0.15.3/debian/patches/fix-char-signedness.patch
--- stimfit-0.15.3/debian/patches/fix-char-signedness.patch     1970-01-01 
00:00:00.000000000 +0000
+++ stimfit-0.15.3/debian/patches/fix-char-signedness.patch     2016-12-09 
00:34:10.000000000 +0000
@@ -0,0 +1,14 @@
+Description: Add typecast to fix build failure on architectures where char is 
unsigned..
+Author: Peter Michael Green <plugw...@raspbian.org>
+
+--- stimfit-0.15.3.orig/src/libbiosiglite/biosig4c++/t210/codes.h
++++ stimfit-0.15.3/src/libbiosiglite/biosig4c++/t210/codes.h
+@@ -22,7 +22,7 @@ Foundation, Inc., 59 Temple Place - Suit
+ #ifndef __CODES_H__
+ #define __CODES_H__
+ 
+-static const char STR_END[]={-1,'\0'};
++static const char STR_END[]={(char)-1,'\0'};
+ static char STR_NULL[]=" unspecified/unknown ";
+ 
+ static alfabetic _special[]={
diff -Nru stimfit-0.15.3/debian/patches/series 
stimfit-0.15.3/debian/patches/series
--- stimfit-0.15.3/debian/patches/series        1970-01-01 00:00:00.000000000 
+0000
+++ stimfit-0.15.3/debian/patches/series        2016-12-09 00:34:10.000000000 
+0000
@@ -0,0 +1 @@
+fix-char-signedness.patch

Reply via email to