Cyril Brulebois <k...@debian.org> (28/01/2009):
> I'll follow up in a few hours with a proposed patch, and an NMU short
> afterwards, thus tagging pending.

NMU just uploaded, using the attached patch.

Mraw,
KiBi.
diff -u guile-1.6-1.6.8/debian/rules guile-1.6-1.6.8/debian/rules
--- guile-1.6-1.6.8/debian/rules
+++ guile-1.6-1.6.8/debian/rules
@@ -49,28 +49,48 @@
 	--enable-dynamic-linking \
 	${ENABLE_THREADS}
 
-# Use -O1.  Otherwise guile may use up too much stack on some
-# architectures.
+
+### CFLAGS HANDLING.
+#
+#           -----------------------------------
+#   CFLAGS  | sparc  |     hppa     | others  |
+# ---------------------------------------------
+# | normal  |    -O0 |    -O1 -D... | nothing |
+# ---------------------------------------------
+# | noopt   | -g -O0 | -g -O1 -D... | -g -01  |
+# ---------------------------------------------
 #
-# http://lists.gnu.org/archive/html/guile-devel/2006-10/msg00007.html
+# Implemented this way:
+#  - if noopt, then -g
+#    if additionally not on hppa & sparc, -O1
+#  - if on sparc, add -O0
+#  - if on hppa, add -01 -D...
 #
+# This solves the following issues:
+#  - hppa:  the stack grows up, autotools test
+#           was broken and disabled.
+#  - hppa:  stack overflows if -O1 isn't used.
+#  - sparc: runtime errors if -O0 isn't used.
+#
+# -- Cyril Brulebois <k...@debian.org>  Wed, 28 Jan 2009 12:25:38 +0100
+
 ifneq (,$(findstring noopt,$(DEB_BUILD_OPTIONS)))
-# However, using -O1 makes the test suite fail (#501114) on sparc.
-# Use -O0 there.
-ifneq ($(DEB_HOST_ARCH),sparc)
-	configure_args += CFLAGS="-O1 -g"
-else
-	configure_args += CFLAGS="-O0 -g"
+	cflags = -g
+ifeq (,$(findstring $(DEB_HOST_ARCH), hppa sparc))
+	cflags += -O1
 endif
 endif
 
-# Use -O0 on sparc to work around a failure in the test suite with the
-# default -O2 (see #501114).
+ifeq ($(DEB_HOST_ARCH), hppa)
+	cflags += -O1 -DSCM_STACK_GROWS_UP=1
+endif
+
 ifeq ($(DEB_HOST_ARCH), sparc)
-# Don't set CFLAGS if it was already set because of noopt.
-ifeq (,$(findstring CFLAGS, $(configure_args)))
-		configure_args += CFLAGS="-O0"
+	cflags += -O0
 endif
+
+ifneq (,$(cflags))
+	configure_args += CFLAGS="$(cflags)"
 endif
 
 # It looks like Debian's packaging tools can't handle an empty file,
diff -u guile-1.6-1.6.8/debian/changelog guile-1.6-1.6.8/debian/changelog
--- guile-1.6-1.6.8/debian/changelog
+++ guile-1.6-1.6.8/debian/changelog
@@ -1,3 +1,23 @@
+guile-1.6 (1.6.8-6.3) unstable; urgency=high
+
+  * Non-maintainer upload.
+  * Work around two FTBFS causes on hppa (Closes: #497740):
+     - The stack grows up on hppa (only), and the variable introduced by
+       the stackdirection.diff patch isn't the needed one (it introduces
+       SCM_I_GSC_STACK_GROWS_UP while SCM_STACK_GROWS_UP would be needed).
+     - Both -O2 and -O0 are not OK on hppa because it leads to a stack
+       overflow.
+    Therefore, instead of fiddling with the patch, introduce more
+    architecture-specific checks to add the right CFLAGS.
+  * As a consequence, rework the existing CFLAGS handling to make them a
+    bit more readable, including a table that describes the wanted CFLAGS
+    depending on the architecture, and depending on whether “noopt” is
+    passed through DEB_BUILD_OPTIONS. Test-buit successfully on amd64,
+    hppa, and sparc, both with and without “noopt”.
+  * Set urgency to “high” since that will fix 2 RC bugs in lenny.
+
+ -- Cyril Brulebois <k...@debian.org>  Wed, 28 Jan 2009 12:25:38 +0100
+
 guile-1.6 (1.6.8-6.2) unstable; urgency=low
 
   * Non-maintainer upload.

Attachment: signature.asc
Description: Digital signature

Reply via email to