The following commit has been merged in the master branch: commit 0b1ec4c075392ab64adb96943faffdba44f304a6 Author: Francesco Paolo Lovergine <fran...@debian.org> Date: Mon Dec 16 12:51:16 2013 +0100
Incorporating changes to fix ia64 and s390x/ppc64 ports. diff --git a/debian/changelog b/debian/changelog index 90e4561..cc80223 100644 --- a/debian/changelog +++ b/debian/changelog @@ -5,6 +5,12 @@ grass (6.4.3-3) unstable; urgency=medium * Now use dh_autotools-dev_{restore,update}config instead of manual update/restore in debian/rules + [ Paul Gevers ] + * On ia64 build with $(HARDENING_DISABLE_PIE_CFLAGS_FILTER) filtered for + now (closes: #728150) + * Add patch fix_big-endian_issues which allows grass to build on s390x + and ppc64 (closes: #672719) + -- Francesco Paolo Lovergine <fran...@debian.org> Mon, 16 Dec 2013 12:37:57 +0100 grass (6.4.3-2) unstable; urgency=low diff --git a/debian/patches/fix_big-endian_issues b/debian/patches/fix_big-endian_issues new file mode 100644 index 0000000..873418c --- /dev/null +++ b/debian/patches/fix_big-endian_issues @@ -0,0 +1,151 @@ +Description: Fix big endian behavior +Origin: https://trac.osgeo.org/grass/changeset/57855 +Bug: https://trac.osgeo.org/grass/ticket/1430 +Bug-Debian: http://bugs.debian.org/672719 + +--- a/lib/vector/diglib/portable.c ++++ b/lib/vector/diglib/portable.c +@@ -155,21 +155,19 @@ + memset(buf, 0, cnt * sizeof(long)); + /* read from buffer in changed order */ + c1 = (unsigned char *)buffer; +- if (lng_order == ENDIAN_LITTLE) +- c2 = (unsigned char *)buf; +- else +- c2 = (unsigned char *)buf + nat_lng - PORT_LONG; ++ c2 = (unsigned char *)buf; + for (i = 0; i < cnt; i++) { + /* set to FF if the value is negative */ + if (lng_order == ENDIAN_LITTLE) { + if (c1[PORT_LONG - 1] & 0x80) + memset(c2, 0xff, sizeof(long)); ++ memcpy(c2, c1, PORT_LONG); + } + else { + if (c1[0] & 0x80) + memset(c2, 0xff, sizeof(long)); ++ memcpy(c2 + nat_lng - PORT_LONG, c1, PORT_LONG); + } +- memcpy(c2, c1, PORT_LONG); + c1 += PORT_LONG; + c2 += sizeof(long); + } +@@ -227,21 +225,19 @@ + memset(buf, 0, cnt * sizeof(int)); + /* read from buffer in changed order */ + c1 = (unsigned char *)buffer; +- if (int_order == ENDIAN_LITTLE) +- c2 = (unsigned char *)buf; +- else +- c2 = (unsigned char *)buf + nat_int - PORT_INT; ++ c2 = (unsigned char *)buf; + for (i = 0; i < cnt; i++) { + /* set to FF if the value is negative */ + if (int_order == ENDIAN_LITTLE) { + if (c1[PORT_INT - 1] & 0x80) + memset(c2, 0xff, sizeof(int)); ++ memcpy(c2, c1, PORT_INT); + } + else { + if (c1[0] & 0x80) + memset(c2, 0xff, sizeof(int)); ++ memcpy(c2 + nat_int - PORT_INT, c1, PORT_INT); + } +- memcpy(c2, c1, PORT_INT); + c1 += PORT_INT; + c2 += sizeof(int); + } +@@ -299,21 +295,19 @@ + memset(buf, 0, cnt * sizeof(short)); + /* read from buffer in changed order */ + c1 = (unsigned char *)buffer; +- if (shrt_order == ENDIAN_LITTLE) +- c2 = (unsigned char *)buf; +- else +- c2 = (unsigned char *)buf + nat_shrt - PORT_SHORT; ++ c2 = (unsigned char *)buf; + for (i = 0; i < cnt; i++) { + /* set to FF if the value is negative */ + if (shrt_order == ENDIAN_LITTLE) { + if (c1[PORT_SHORT - 1] & 0x80) + memset(c2, 0xff, sizeof(short)); ++ memcpy(c2, c1, PORT_SHORT); + } + else { + if (c1[0] & 0x80) + memset(c2, 0xff, sizeof(short)); ++ memcpy(c2 + nat_shrt - PORT_SHORT, c1, PORT_SHORT); + } +- memcpy(c2, c1, PORT_SHORT); + c1 += PORT_SHORT; + c2 += sizeof(short); + } +@@ -438,15 +432,15 @@ + } + else { + buf_alloc(cnt * PORT_LONG); +- if (lng_order == ENDIAN_LITTLE) +- c1 = (unsigned char *)buf; +- else +- c1 = (unsigned char *)buf + nat_lng - PORT_LONG; ++ c1 = (unsigned char *)buf; + c2 = (unsigned char *)buffer; + for (i = 0; i < cnt; i++) { +- memcpy(c2, c1, PORT_LONG); +- c1 += PORT_LONG; +- c2 += sizeof(long); ++ if (lng_order == ENDIAN_LITTLE) ++ memcpy(c2, c1, PORT_LONG); ++ else ++ memcpy(c2, c1 + nat_lng - PORT_LONG, PORT_LONG); ++ c1 += sizeof(long); ++ c2 += PORT_LONG; + } + if (dig_fwrite(buffer, PORT_LONG, cnt, fp) == cnt) + return 1; +@@ -481,15 +475,15 @@ + } + else { + buf_alloc(cnt * PORT_INT); +- if (int_order == ENDIAN_LITTLE) +- c1 = (unsigned char *)buf; +- else +- c1 = (unsigned char *)buf + nat_int - PORT_INT; ++ c1 = (unsigned char *)buf; + c2 = (unsigned char *)buffer; + for (i = 0; i < cnt; i++) { +- memcpy(c2, c1, PORT_INT); +- c1 += PORT_INT; +- c2 += sizeof(int); ++ if (int_order == ENDIAN_LITTLE) ++ memcpy(c2, c1, PORT_INT); ++ else ++ memcpy(c2, c1 + nat_int - PORT_INT, PORT_INT); ++ c1 += sizeof(int); ++ c2 += PORT_INT; + } + if (dig_fwrite(buffer, PORT_INT, cnt, fp) == cnt) + return 1; +@@ -524,15 +518,15 @@ + } + else { + buf_alloc(cnt * PORT_SHORT); +- if (shrt_order == ENDIAN_LITTLE) +- c1 = (unsigned char *)buf; +- else +- c1 = (unsigned char *)buf + nat_shrt - PORT_SHORT; ++ c1 = (unsigned char *)buf; + c2 = (unsigned char *)buffer; + for (i = 0; i < cnt; i++) { +- memcpy(c2, c1, PORT_SHORT); +- c1 += PORT_SHORT; +- c2 += sizeof(short); ++ if (shrt_order == ENDIAN_LITTLE) ++ memcpy(c2, c1, PORT_SHORT); ++ else ++ memcpy(c2, c1 + nat_shrt - PORT_SHORT, PORT_SHORT); ++ c1 += sizeof(short); ++ c2 += PORT_SHORT; + } + if (dig_fwrite(buffer, PORT_SHORT, cnt, fp) == cnt) + return 1; diff --git a/debian/patches/series b/debian/patches/series index 88de269..a785445 100644 --- a/debian/patches/series +++ b/debian/patches/series @@ -6,3 +6,4 @@ instdir check4dev barscale_ui svn-any-version +fix_big-endian_issues diff --git a/debian/rules b/debian/rules index 685da7e..258aa68 100755 --- a/debian/rules +++ b/debian/rules @@ -17,12 +17,17 @@ PKG_NAME=grass include /usr/share/hardening-includes/hardening.make CFLAGS=$(shell dpkg-buildflags --get CFLAGS) LDFLAGS=$(shell dpkg-buildflags --get LDFLAGS) -# in Wheezy -fPIE conflicts with -fPIC. See example in the hardening.make file. -#CFLAGS += $(HARDENING_CFLAGS_PIC) \ -# $(filter-out $(HARDENING_DISABLE_PIE_CFLAGS_FILTER),$(HARDENING_CFLAGS)) -# in Jessie & Sid the problem seems fixed so we can proceed normally. -CFLAGS+=$(HARDENING_CFLAGS) -LDFLAGS+=$(HARDENING_LDFLAGS) +# in Wheezy (and Jessie ia64) -fPIE conflicts with -fPIC. See example in +# the hardening.make file. +ifeq ($(shell dpkg-architecture -qDEB_HOST_ARCH_CPU),ia64) + CFLAGS += $(HARDENING_CFLAGS_PIC) \ + $(filter-out $(HARDENING_DISABLE_PIE_CFLAGS_FILTER),$(HARDENING_CFLAGS)) + LDFLAGS+=$(HARDENING_LDFLAGS) +else + # in Jessie & Sid the problem seems fixed so we can proceed normally + CFLAGS+=$(HARDENING_CFLAGS) + LDFLAGS+=$(HARDENING_LDFLAGS) +endif # TODO: fix these CFLAGS+=-Wno-error=format-security -- Geographic Resources Analysis Support System _______________________________________________ Pkg-grass-devel mailing list Pkg-grass-devel@lists.alioth.debian.org http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/pkg-grass-devel