Attached please find the patch for the NMU which I have just made to the 1 day delayed queue. Don Armstrong -- A citizen of America will cross the ocean to fight for democracy, but won't cross the street to vote in a national election. -- Bill Vaughan http://www.donarmstrong.com http://rzlab.ucr.edu
diff -u gdc-4.1-0.25-20080616-4.1.2/debian/rules.patch gdc-4.1-0.25-20080616-4.1.2/debian/rules.patch
--- gdc-4.1-0.25-20080616-4.1.2/debian/rules.patch
+++ gdc-4.1-0.25-20080616-4.1.2/debian/rules.patch
@@ -203,6 +203,7 @@
debian_patches += gdc-arm-unwind_ptr
debian_patches += gdc-libphobos-std-format
debian_patches += gdc-libstdcxx-nobuild
+ debian_patches += gdc-array-concat
else
debian_patches += gcc-d-lang
endif
diff -u gdc-4.1-0.25-20080616-4.1.2/debian/changelog gdc-4.1-0.25-20080616-4.1.2/debian/changelog
--- gdc-4.1-0.25-20080616-4.1.2/debian/changelog
+++ gdc-4.1-0.25-20080616-4.1.2/debian/changelog
@@ -1,3 +1,11 @@
+gdc-4.1 (0.25-20080616-4.1.2-23.1) unstable; urgency=low
+
+ * Non-Maintainer Upload
+ * Fix string concatenation segfaults on powerpc, thanks to Ulrich
+ Eckhardt and Arthur Loiret (Closes: #473167).
+
+ -- Don Armstrong <don@debian.org> Fri, 08 Aug 2008 08:58:51 -0700
+
gdc-4.1 (0.25-20080616-4.1.2-23) unstable; urgency=low
* Upload as gdc-4.1.
only in patch2:
unchanged:
--- gdc-4.1-0.25-20080616-4.1.2.orig/debian/patches/gdc-array-concat.dpatch
+++ gdc-4.1-0.25-20080616-4.1.2/debian/patches/gdc-array-concat.dpatch
@@ -0,0 +1,49 @@
+#! /bin/sh -e
+
+# gdc-array-concat.dpatch by Peter De Wachter <pdewacht@gmail.com>
+# DP: Fixes generation of D array concatenation calls.
+
+dir=
+if [ $# -eq 3 -a "$2" = '-d' ]; then
+ pdir="-d $3"
+ dir="$3/"
+elif [ $# -ne 1 ]; then
+ echo >&2 "`basename $0`: script expects -patch|-unpatch as argument"
+ exit 1
+fi
+case "$1" in
+ -patch)
+ patch $pdir -f --no-backup-if-mismatch -p0 < $0
+ #cd ${dir}gcc && autoconf
+ ;;
+ -unpatch)
+ patch $pdir -f --no-backup-if-mismatch -R -p0 < $0
+ #rm ${dir}gcc/configure
+ ;;
+ *)
+ echo >&2 "`basename $0`: script expects -patch|-unpatch as argument"
+ exit 1
+esac
+exit 0
+
+--- gcc/d/d-glue.cc.orig 2008-08-01 14:09:36.000000000 +0200
++++ gcc/d/d-glue.cc 2008-08-01 14:15:57.000000000 +0200
+@@ -650,7 +650,7 @@
+ }
+
+ n_args = 1 + (n_operands > 2 ? 1 : 0) +
+- (n_operands * (irs->splitDynArrayVarArgs ? 2 : 1));
++ n_operands * (n_operands > 2 && irs->splitDynArrayVarArgs ? 2 : 1);
+ args = new tree[n_args];
+ args[0] = irs->typeinfoReference(type);
+ if (n_operands > 2)
+@@ -673,7 +673,7 @@
+ }
+ else
+ array_exp = irs->toDArray(oe);
+- if (irs->splitDynArrayVarArgs)
++ if (n_operands > 2 && irs->splitDynArrayVarArgs)
+ {
+ array_exp = irs->maybeMakeTemp(array_exp);
+ args[ai--] = irs->darrayPtrRef(array_exp); // note: filling array
+
Attachment:
signature.asc
Description: Digital signature