[netcdf] 01/02: Add patch to fix conflicting type errors on arm.

Sebastiaan Couwenberg sebastic at moszumanska.debian.org
Sun Jan 17 14:52:27 UTC 2016


This is an automated email from the git hooks/post-receive script.

sebastic pushed a commit to branch master
in repository netcdf.

commit c1a09b8ccbfce261fa052b2f7ec517c5c7994268
Author: Bas Couwenberg <sebastic at xs4all.nl>
Date:   Sun Jan 17 02:20:55 2016 +0100

    Add patch to fix conflicting type errors on arm.
---
 debian/changelog                          |   6 +
 debian/patches/m4-generated-sources.patch | 502 ++++++++++++++++++++++++++++++
 debian/patches/series                     |   1 +
 3 files changed, 509 insertions(+)

diff --git a/debian/changelog b/debian/changelog
index 4d14572..dff2912 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,9 @@
+netcdf (1:4.4.0-1~exp2) UNRELEASED; urgency=medium
+
+  * Add patch to fix conflicting type errors on arm.
+
+ -- Bas Couwenberg <sebastic at debian.org>  Sun, 17 Jan 2016 02:20:39 +0100
+
 netcdf (1:4.4.0-1~exp1) experimental; urgency=medium
 
   * New upstream release.
diff --git a/debian/patches/m4-generated-sources.patch b/debian/patches/m4-generated-sources.patch
new file mode 100644
index 0000000..6d02791
--- /dev/null
+++ b/debian/patches/m4-generated-sources.patch
@@ -0,0 +1,502 @@
+Description: Regenerate C sources from m4.
+ Fixes conflicting type errors on arm.
+Author: Bas Couwenberg <sebastic at debian.org>
+Forwarded: not-needed
+
+--- a/libsrc/ncx.c
++++ b/libsrc/ncx.c
+@@ -569,7 +569,7 @@ ncx_put_short_schar(void *xp, const scha
+ 		*cp++ = 0xff;
+ 	else
+ 		*cp++ = 0;
+-	*cp = (uchar)*ip;
++	*cp = (uchar)(signed)*ip;
+ 	return ENOERR;
+ }
+ 
+@@ -722,7 +722,7 @@ get_ix_ushort(const void *xp, ix_ushort
+ 		*ip |= (~(0xffff)); /* N.B. Assumes "twos complement" */
+ 	}
+ #endif
+-	*ip |= *cp; 
++	*ip |= *cp;
+ }
+ 
+ static void
+@@ -886,7 +886,7 @@ ncx_put_ushort_schar(void *xp, const sch
+ 		*cp++ = 0xff;
+ 	else
+ 		*cp++ = 0;
+-	*cp = (uchar)*ip;
++	*cp = (uchar)(signed)*ip;
+         if (*ip < 0) return NC_ERANGE;
+ 
+ 	return ENOERR;
+@@ -1211,7 +1211,7 @@ ncx_put_int_schar(void *xp, const schar
+ 		*cp++ = 0x00;
+ 		*cp++ = 0x00;
+ 	}
+-	*cp = (uchar)*ip;
++	*cp = (uchar)(signed)*ip;
+ 	return ENOERR;
+ }
+ 
+@@ -1360,7 +1360,7 @@ get_ix_uint(const void *xp, ix_uint *ip)
+ 	*ip = *cp++ << 24;
+ 	*ip |= (*cp++ << 16);
+ 	*ip |= (*cp++ << 8);
+-	*ip |= *cp; 
++	*ip |= *cp;
+ }
+ 
+ static void
+@@ -1529,7 +1529,7 @@ ncx_put_uint_schar(void *xp, const schar
+ 	*cp++ = 0x00;
+ 	*cp++ = 0x00;
+ 	*cp++ = 0x00;
+-	*cp = (uchar)*ip;
++	*cp = (uchar)(signed)*ip;
+ 
+ 	if (*ip < 0) return NC_ERANGE;
+ 
+@@ -3674,7 +3674,7 @@ int
+ ncx_getn_schar_schar(const void **xpp, size_t nelems, schar *tp)
+ {
+ 		(void) memcpy(tp, *xpp, nelems);
+-	*xpp = (void *)((char *)(*xpp) + nelems);
++	*xpp = (void *)((schar *)(*xpp) + nelems);
+ 	return ENOERR;
+ 
+ }
+@@ -3682,7 +3682,7 @@ int
+ ncx_getn_schar_uchar(const void **xpp, size_t nelems, uchar *tp)
+ {
+ 		(void) memcpy(tp, *xpp, nelems);
+-	*xpp = (void *)((char *)(*xpp) + nelems);
++	*xpp = (void *)((schar *)(*xpp) + nelems);
+ 	return ENOERR;
+ 
+ }
+@@ -4032,7 +4032,7 @@ ncx_putn_schar_short(void **xpp, size_t
+ 	{
+ 		if(*tp > X_SCHAR_MAX || *tp < X_SCHAR_MIN)
+ 			status = NC_ERANGE;
+-		*xp++ = (schar) *tp++;
++		*xp++ = (schar) (signed)*tp++;
+ 	}
+ 
+ 	*xpp = (void *)xp;
+@@ -4049,7 +4049,7 @@ ncx_putn_schar_int(void **xpp, size_t ne
+ 	{
+ 		if(*tp > X_SCHAR_MAX || *tp < X_SCHAR_MIN)
+ 			status = NC_ERANGE;
+-		*xp++ = (schar) *tp++;
++		*xp++ = (schar) (signed)*tp++;
+ 	}
+ 
+ 	*xpp = (void *)xp;
+@@ -4066,7 +4066,7 @@ ncx_putn_schar_float(void **xpp, size_t
+ 	{
+ 		if(*tp > X_SCHAR_MAX || *tp < X_SCHAR_MIN)
+ 			status = NC_ERANGE;
+-		*xp++ = (schar) *tp++;
++		*xp++ = (schar) (signed)*tp++;
+ 	}
+ 
+ 	*xpp = (void *)xp;
+@@ -4083,7 +4083,7 @@ ncx_putn_schar_double(void **xpp, size_t
+ 	{
+ 		if(*tp > X_SCHAR_MAX || *tp < X_SCHAR_MIN)
+ 			status = NC_ERANGE;
+-		*xp++ = (schar) *tp++;
++		*xp++ = (schar) (signed)*tp++;
+ 	}
+ 
+ 	*xpp = (void *)xp;
+@@ -4100,7 +4100,7 @@ ncx_putn_schar_longlong(void **xpp, size
+ 	{
+ 		if(*tp > X_SCHAR_MAX || *tp < X_SCHAR_MIN)
+ 			status = NC_ERANGE;
+-		*xp++ = (schar) *tp++;
++		*xp++ = (schar) (signed)*tp++;
+ 	}
+ 
+ 	*xpp = (void *)xp;
+@@ -4117,7 +4117,7 @@ ncx_putn_schar_ushort(void **xpp, size_t
+ 	{
+ 		if(*tp > X_SCHAR_MAX )
+ 			status = NC_ERANGE;
+-		*xp++ = (schar) *tp++;
++		*xp++ = (schar) (signed)*tp++;
+ 	}
+ 
+ 	*xpp = (void *)xp;
+@@ -4134,7 +4134,7 @@ ncx_putn_schar_uint(void **xpp, size_t n
+ 	{
+ 		if(*tp > X_SCHAR_MAX )
+ 			status = NC_ERANGE;
+-		*xp++ = (schar) *tp++;
++		*xp++ = (schar) (signed)*tp++;
+ 	}
+ 
+ 	*xpp = (void *)xp;
+@@ -4151,7 +4151,7 @@ ncx_putn_schar_ulonglong(void **xpp, siz
+ 	{
+ 		if(*tp > X_SCHAR_MAX )
+ 			status = NC_ERANGE;
+-		*xp++ = (schar) *tp++;
++		*xp++ = (schar) (signed)*tp++;
+ 	}
+ 
+ 	*xpp = (void *)xp;
+@@ -4213,7 +4213,7 @@ ncx_pad_putn_schar_short(void **xpp, siz
+ 	{
+ 		if(*tp > X_SCHAR_MAX || *tp < X_SCHAR_MIN)
+ 			status = NC_ERANGE;
+-		*xp++ = (schar) *tp++;
++		*xp++ = (schar) (signed) *tp++;
+ 	}
+ 
+ 
+@@ -4241,7 +4241,7 @@ ncx_pad_putn_schar_int(void **xpp, size_
+ 	{
+ 		if(*tp > X_SCHAR_MAX || *tp < X_SCHAR_MIN)
+ 			status = NC_ERANGE;
+-		*xp++ = (schar) *tp++;
++		*xp++ = (schar) (signed) *tp++;
+ 	}
+ 
+ 
+@@ -4269,7 +4269,7 @@ ncx_pad_putn_schar_float(void **xpp, siz
+ 	{
+ 		if(*tp > X_SCHAR_MAX || *tp < X_SCHAR_MIN)
+ 			status = NC_ERANGE;
+-		*xp++ = (schar) *tp++;
++		*xp++ = (schar) (signed) *tp++;
+ 	}
+ 
+ 
+@@ -4297,7 +4297,7 @@ ncx_pad_putn_schar_double(void **xpp, si
+ 	{
+ 		if(*tp > X_SCHAR_MAX || *tp < X_SCHAR_MIN)
+ 			status = NC_ERANGE;
+-		*xp++ = (schar) *tp++;
++		*xp++ = (schar) (signed) *tp++;
+ 	}
+ 
+ 
+@@ -4325,7 +4325,7 @@ ncx_pad_putn_schar_longlong(void **xpp,
+ 	{
+ 		if(*tp > X_SCHAR_MAX || *tp < X_SCHAR_MIN)
+ 			status = NC_ERANGE;
+-		*xp++ = (schar) *tp++;
++		*xp++ = (schar) (signed) *tp++;
+ 	}
+ 
+ 
+@@ -4353,7 +4353,7 @@ ncx_pad_putn_schar_ushort(void **xpp, si
+ 	{
+ 		if(*tp > X_SCHAR_MAX )
+ 			status = NC_ERANGE;
+-		*xp++ = (schar) *tp++;
++		*xp++ = (schar) (signed) *tp++;
+ 	}
+ 
+ 
+@@ -4381,7 +4381,7 @@ ncx_pad_putn_schar_uint(void **xpp, size
+ 	{
+ 		if(*tp > X_SCHAR_MAX )
+ 			status = NC_ERANGE;
+-		*xp++ = (schar) *tp++;
++		*xp++ = (schar) (signed) *tp++;
+ 	}
+ 
+ 
+@@ -4409,7 +4409,7 @@ ncx_pad_putn_schar_ulonglong(void **xpp,
+ 	{
+ 		if(*tp > X_SCHAR_MAX )
+ 			status = NC_ERANGE;
+-		*xp++ = (schar) *tp++;
++		*xp++ = (schar) (signed) *tp++;
+ 	}
+ 
+ 
+@@ -4430,7 +4430,7 @@ int
+ ncx_getn_uchar_schar(const void **xpp, size_t nelems, schar *tp)
+ {
+ 		(void) memcpy(tp, *xpp, nelems);
+-	*xpp = (void *)((char *)(*xpp) + nelems);
++	*xpp = (void *)((schar *)(*xpp) + nelems);
+ 	return ENOERR;
+ 
+ }
+@@ -4438,7 +4438,7 @@ int
+ ncx_getn_uchar_uchar(const void **xpp, size_t nelems, uchar *tp)
+ {
+ 		(void) memcpy(tp, *xpp, nelems);
+-	*xpp = (void *)((char *)(*xpp) + nelems);
++	*xpp = (void *)((schar *)(*xpp) + nelems);
+ 	return ENOERR;
+ 
+ }
+@@ -4788,7 +4788,7 @@ ncx_putn_uchar_short(void **xpp, size_t
+ 	{
+ 		if(*tp > X_UCHAR_MAX || *tp < 0)
+ 			status = NC_ERANGE;
+-		*xp++ = (uchar) *tp++;
++		*xp++ = (uchar) (signed)*tp++;
+ 	}
+ 
+ 	*xpp = (void *)xp;
+@@ -4805,7 +4805,7 @@ ncx_putn_uchar_int(void **xpp, size_t ne
+ 	{
+ 		if(*tp > X_UCHAR_MAX || *tp < 0)
+ 			status = NC_ERANGE;
+-		*xp++ = (uchar) *tp++;
++		*xp++ = (uchar) (signed)*tp++;
+ 	}
+ 
+ 	*xpp = (void *)xp;
+@@ -4822,7 +4822,7 @@ ncx_putn_uchar_float(void **xpp, size_t
+ 	{
+ 		if(*tp > X_UCHAR_MAX || *tp < 0)
+ 			status = NC_ERANGE;
+-		*xp++ = (uchar) *tp++;
++		*xp++ = (uchar) (signed)*tp++;
+ 	}
+ 
+ 	*xpp = (void *)xp;
+@@ -4839,7 +4839,7 @@ ncx_putn_uchar_double(void **xpp, size_t
+ 	{
+ 		if(*tp > X_UCHAR_MAX || *tp < 0)
+ 			status = NC_ERANGE;
+-		*xp++ = (uchar) *tp++;
++		*xp++ = (uchar) (signed)*tp++;
+ 	}
+ 
+ 	*xpp = (void *)xp;
+@@ -4856,7 +4856,7 @@ ncx_putn_uchar_longlong(void **xpp, size
+ 	{
+ 		if(*tp > X_UCHAR_MAX || *tp < 0)
+ 			status = NC_ERANGE;
+-		*xp++ = (uchar) *tp++;
++		*xp++ = (uchar) (signed)*tp++;
+ 	}
+ 
+ 	*xpp = (void *)xp;
+@@ -4873,7 +4873,7 @@ ncx_putn_uchar_ushort(void **xpp, size_t
+ 	{
+ 		if(*tp > X_UCHAR_MAX )
+ 			status = NC_ERANGE;
+-		*xp++ = (uchar) *tp++;
++		*xp++ = (uchar) (signed)*tp++;
+ 	}
+ 
+ 	*xpp = (void *)xp;
+@@ -4890,7 +4890,7 @@ ncx_putn_uchar_uint(void **xpp, size_t n
+ 	{
+ 		if(*tp > X_UCHAR_MAX )
+ 			status = NC_ERANGE;
+-		*xp++ = (uchar) *tp++;
++		*xp++ = (uchar) (signed)*tp++;
+ 	}
+ 
+ 	*xpp = (void *)xp;
+@@ -4907,7 +4907,7 @@ ncx_putn_uchar_ulonglong(void **xpp, siz
+ 	{
+ 		if(*tp > X_UCHAR_MAX )
+ 			status = NC_ERANGE;
+-		*xp++ = (uchar) *tp++;
++		*xp++ = (uchar) (signed)*tp++;
+ 	}
+ 
+ 	*xpp = (void *)xp;
+@@ -4969,7 +4969,7 @@ ncx_pad_putn_uchar_short(void **xpp, siz
+ 	{
+ 		if(*tp > X_UCHAR_MAX || *tp < 0)
+ 			status = NC_ERANGE;
+-		*xp++ = (uchar) *tp++;
++		*xp++ = (uchar) (signed) *tp++;
+ 	}
+ 
+ 
+@@ -4997,7 +4997,7 @@ ncx_pad_putn_uchar_int(void **xpp, size_
+ 	{
+ 		if(*tp > X_UCHAR_MAX || *tp < 0)
+ 			status = NC_ERANGE;
+-		*xp++ = (uchar) *tp++;
++		*xp++ = (uchar) (signed) *tp++;
+ 	}
+ 
+ 
+@@ -5025,7 +5025,7 @@ ncx_pad_putn_uchar_float(void **xpp, siz
+ 	{
+ 		if(*tp > X_UCHAR_MAX || *tp < 0)
+ 			status = NC_ERANGE;
+-		*xp++ = (uchar) *tp++;
++		*xp++ = (uchar) (signed) *tp++;
+ 	}
+ 
+ 
+@@ -5053,7 +5053,7 @@ ncx_pad_putn_uchar_double(void **xpp, si
+ 	{
+ 		if(*tp > X_UCHAR_MAX || *tp < 0)
+ 			status = NC_ERANGE;
+-		*xp++ = (uchar) *tp++;
++		*xp++ = (uchar) (signed) *tp++;
+ 	}
+ 
+ 
+@@ -5081,7 +5081,7 @@ ncx_pad_putn_uchar_longlong(void **xpp,
+ 	{
+ 		if(*tp > X_UCHAR_MAX || *tp < 0)
+ 			status = NC_ERANGE;
+-		*xp++ = (uchar) *tp++;
++		*xp++ = (uchar) (signed) *tp++;
+ 	}
+ 
+ 
+@@ -5109,7 +5109,7 @@ ncx_pad_putn_uchar_ushort(void **xpp, si
+ 	{
+ 		if(*tp > X_UCHAR_MAX )
+ 			status = NC_ERANGE;
+-		*xp++ = (uchar) *tp++;
++		*xp++ = (uchar) (signed) *tp++;
+ 	}
+ 
+ 
+@@ -5137,7 +5137,7 @@ ncx_pad_putn_uchar_uint(void **xpp, size
+ 	{
+ 		if(*tp > X_UCHAR_MAX )
+ 			status = NC_ERANGE;
+-		*xp++ = (uchar) *tp++;
++		*xp++ = (uchar) (signed) *tp++;
+ 	}
+ 
+ 
+@@ -5165,7 +5165,7 @@ ncx_pad_putn_uchar_ulonglong(void **xpp,
+ 	{
+ 		if(*tp > X_UCHAR_MAX )
+ 			status = NC_ERANGE;
+-		*xp++ = (uchar) *tp++;
++		*xp++ = (uchar) (signed) *tp++;
+ 	}
+ 
+ 
+@@ -17229,18 +17229,27 @@ ncx_putn_ulonglong_uint(void **xpp, size
+  */
+ 
+ /* text */
+-
++#ifdef __arm__
++int
++ncx_getn_text(const void **xpp, size_t nelems, signed char *tp)
++#else
+ int
+ ncx_getn_text(const void **xpp, size_t nelems, char *tp)
++#endif
+ {
+ 	(void) memcpy(tp, *xpp, nelems);
+-	*xpp = (void *)((char *)(*xpp) + nelems);
++	*xpp = (void *)((schar *)(*xpp) + nelems);
+ 	return ENOERR;
+ 
+ }
+ 
++#ifdef __arm__
++int
++ncx_pad_getn_text(const void **xpp, size_t nelems, signed char *tp)
++#else
+ int
+ ncx_pad_getn_text(const void **xpp, size_t nelems, char *tp)
++#endif
+ {
+ 	size_t rndup = nelems % X_ALIGN;
+ 
+@@ -17254,8 +17263,12 @@ ncx_pad_getn_text(const void **xpp, size
+ 
+ }
+ 
++#ifdef __arm__
++int ncx_putn_text(void **xpp, size_t nelems, const signed char *tp)
++#else
+ int
+ ncx_putn_text(void **xpp, size_t nelems, const char *tp)
++#endif
+ {
+ 	(void) memcpy(*xpp, tp, nelems);
+ 	*xpp = (void *)((char *)(*xpp) + nelems);
+@@ -17264,8 +17277,13 @@ ncx_putn_text(void **xpp, size_t nelems,
+ 
+ }
+ 
++#ifdef __arm__
++int
++ncx_pad_putn_text(void **xpp, size_t nelems, const signed char *tp)
++#else
+ int
+ ncx_pad_putn_text(void **xpp, size_t nelems, const char *tp)
++#endif
+ {
+ 	size_t rndup = nelems % X_ALIGN;
+ 
+@@ -17292,7 +17310,7 @@ int
+ ncx_getn_void(const void **xpp, size_t nelems, void *tp)
+ {
+ 	(void) memcpy(tp, *xpp, nelems);
+-	*xpp = (void *)((char *)(*xpp) + nelems);
++	*xpp = (void *)((schar *)(*xpp) + nelems);
+ 	return ENOERR;
+ 
+ }
+--- a/libsrc/putget.c
++++ b/libsrc/putget.c
+@@ -9664,8 +9664,12 @@ readNCv(const NC3_INFO* ncp, const NC_va
+ 
+     case CASE(NC_CHAR,NC_CHAR):
+     case CASE(NC_CHAR,NC_UBYTE):
+-        return getNCvx_char_char(ncp,varp,start,nelems,(char*)value);
+-	break;
++#ifndef __CHAR_UNSIGNED__
++       return getNCvx_char_char(ncp,varp,start,nelems,(char*)value);
++#else
++    return getNCvx_schar_schar(ncp,varp,start,nelems,(signed char*)value);
++#endif
++    break;
+     case CASE(NC_BYTE,NC_BYTE):
+         return getNCvx_schar_schar(ncp,varp,start,nelems,(signed char*)value);
+ 	break;
+@@ -9707,13 +9711,13 @@ readNCv(const NC3_INFO* ncp, const NC_va
+ 	break;
+     case CASE(NC_SHORT,NC_INT):
+         return getNCvx_short_int(ncp,varp,start,nelems,(int*)value);
+-	break; 
++	break;
+    case CASE(NC_SHORT,NC_FLOAT):
+         return getNCvx_short_float(ncp,varp,start,nelems,(float*)value);
+ 	break;
+     case CASE(NC_SHORT,NC_DOUBLE):
+         return getNCvx_short_double(ncp,varp,start,nelems,(double*)value);
+-	break;	
++	break;
+     case CASE(NC_SHORT,NC_INT64):
+         return getNCvx_short_longlong(ncp,varp,start,nelems,(long long*)value);
+    	break;
+@@ -10317,7 +10321,7 @@ NC3_get_vara(int ncid, int varid,
+     int ii;
+     size_t iocount;
+     size_t memtypelen;
+-    char* value = (char*) value0; /* legally allow ptr arithmetic */
++    signed char* value = (signed char*) value0; /* legally allow ptr arithmetic */
+     const size_t* edges = edges0; /* so we can modify for special cases */
+     size_t modedges[NC_MAX_VAR_DIMS];
+ 
+@@ -10444,7 +10448,7 @@ NC3_put_vara(int ncid, int varid,
+     int ii;
+     size_t iocount;
+     size_t memtypelen;
+-    char* value = (char*) value0; /* legally allow ptr arithmetic */
++    signed char* value = (signed char*) value0; /* legally allow ptr arithmetic */
+     const size_t* edges = edges0; /* so we can modify for special cases */
+     size_t modedges[NC_MAX_VAR_DIMS];
+ 
diff --git a/debian/patches/series b/debian/patches/series
index 42f84d2..3da4b85 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -2,3 +2,4 @@ link-private.patch
 privacy-breach-logo.patch
 hdf5-library-path.patch
 attributes-typo.patch
+m4-generated-sources.patch

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-grass/netcdf.git



More information about the Pkg-grass-devel mailing list