Cyril Brulebois <[email protected]> (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 <[email protected]> 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 <[email protected]> Wed, 28 Jan 2009 12:25:38 +0100
+
guile-1.6 (1.6.8-6.2) unstable; urgency=low
* Non-maintainer upload.
signature.asc
Description: Digital signature

