Your message dated Wed, 24 Dec 2014 17:50:45 +0100 with message-id <20141224165045.GA12329@ugent.be> and subject line Re: Bug#773864: pre-approval: unblock: python-greenlet/0.4.2-2 has caused the Debian Bug report #773864, regarding pre-approval: unblock: python-greenlet/0.4.2-2 to be marked as done. This means that you claim that the problem has been dealt with. If this is not the case it is now your responsibility to reopen the Bug report if necessary, and/or fix the problem forthwith. (NB: If you are a system administrator and have no idea what this message is talking about, this may indicate a serious mail system misconfiguration somewhere. Please contact owner@bugs.debian.org immediately.) -- 773864: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=773864 Debian Bug Tracking System Contact owner@bugs.debian.org with problems
--- Begin Message ---
- To: Debian Bug Tracking System <submit@bugs.debian.org>
- Subject: pre-approval: unblock: python-greenlet/0.4.2-2
- From: "Laszlo Boszormenyi (GCS)" <gcs@debian.org>
- Date: Wed, 24 Dec 2014 11:54:04 +0100
- Message-id: <[🔎] 1419418444.21320.15.camel@debian.org>
Package: release.debian.org Severity: normal User: release.debian.org@packages.debian.org Usertags: unblock Hi Release Team, Package python-greenlet FTBFS on ARM architectures, but it's part of Jessie. Then upstream fixed the build failure[1][2] and released it in version 0.4.5 that didn't make it to testing. Then Ubuntu backported those fixes for Utopic[3]. I did the same, used the fixes for 0.4.2 and asked an other DD, Bálint Réczey to confirm it. Indeed, he says[4] the fixes are working correctly. Please let me upload 0.4.2-2 to t-p-u, debdiff is attached. Thanks, Laszlo/GCS unblock python-greenlet/0.4.2-2 [1] https://github.com/python-greenlet/greenlet/commit/c1437e3677b8f2489e9dab3215eedb58590443c8 [2] https://github.com/python-greenlet/greenlet/commit/f90dbe4c24a9aed261a5fa9f66fb95ebdb8f21cc [3] http://patches.ubuntu.com/p/python-greenlet/python-greenlet_0.4.2-1ubuntu1.patch [4] https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=751498#63diff -Nru python-greenlet-0.4.2/debian/changelog python-greenlet-0.4.2/debian/changelog --- python-greenlet-0.4.2/debian/changelog 2014-02-01 12:34:37.000000000 +0100 +++ python-greenlet-0.4.2/debian/changelog 2014-12-22 08:48:28.000000000 +0100 @@ -1,3 +1,12 @@ +python-greenlet (0.4.2-2) testing-proposed-updates; urgency=medium + + [ Robie Basak <robie.basak@ubuntu.com> ] + * d/p/arm32-{always-use-frame-pointer,unoptimize-return-value}: adjust + armhf-specific platform code to fix armhf FTBFS (closes: #751498); + cherry-picked from upstream (LP: #1379297). + + -- Laszlo Boszormenyi (GCS) <gcs@debian.org> Mon, 22 Dec 2014 07:42:41 +0000 + python-greenlet (0.4.2-1) unstable; urgency=low * New upstream release. diff -Nru python-greenlet-0.4.2/debian/patches/arm32-always-use-frame-pointer python-greenlet-0.4.2/debian/patches/arm32-always-use-frame-pointer --- python-greenlet-0.4.2/debian/patches/arm32-always-use-frame-pointer 1970-01-01 01:00:00.000000000 +0100 +++ python-greenlet-0.4.2/debian/patches/arm32-always-use-frame-pointer 2014-12-22 08:46:22.000000000 +0100 @@ -0,0 +1,34 @@ +From: Robie Basak <robie.basak@canonical.com> +Date: Tue, 14 Oct 2014 13:07:59 +0100 +Subject: [PATCH] arm32: make sure gcc uses a frame pointer + +This code assumes that there is a frame pointer. When gcc doesn't use a +frame pointer here and __thumb__ is defined, then the code clobbers r7 +without declaring it to the compiler. If the compiler uses r7 for +something else, then this causes arbitrary failures, depending on what +the optimizer did. + +To work around this, tell gcc to always use a frame pointer. + +Bug: https://github.com/python-greenlet/greenlet/pull/64 +Origin: upstream, https://github.com/python-greenlet/greenlet/commit/c1437e3677b8f2489e9dab3215eedb58590443c8 +Last-Update: 2014-10-15 + +--- + platform/switch_arm32_gcc.h | 3 +++ + 1 file changed, 3 insertions(+) + +diff --git a/platform/switch_arm32_gcc.h b/platform/switch_arm32_gcc.h +index c6e160d..f74b2bb 100644 +--- a/platform/switch_arm32_gcc.h ++++ b/platform/switch_arm32_gcc.h +@@ -50,6 +50,9 @@ + #endif + + static int ++#ifdef __GNUC__ ++__attribute__((optimize("no-omit-frame-pointer"))) ++#endif + slp_switch(void) + { + void *fp; diff -Nru python-greenlet-0.4.2/debian/patches/arm32-unoptimize-return-value python-greenlet-0.4.2/debian/patches/arm32-unoptimize-return-value --- python-greenlet-0.4.2/debian/patches/arm32-unoptimize-return-value 1970-01-01 01:00:00.000000000 +0100 +++ python-greenlet-0.4.2/debian/patches/arm32-unoptimize-return-value 2014-12-22 08:46:22.000000000 +0100 @@ -0,0 +1,68 @@ +From 505c91a68aaf5ab56325affd4d8581b32b649cf4 Mon Sep 17 00:00:00 2001 +From: Robie Basak <robie.basak@canonical.com> +Date: Tue, 14 Oct 2014 13:16:22 +0100 +Subject: [PATCH] arm32: force return value from asm + +In my case, instead of a simple "mov r0, #0", the optimizer had done +this: + + Between calls to slp_save_state and slp_restore_state, it saved the + value now guaranteed to be 0 using "str r0, [r7]". + + Now, at the end, it restores that value into r0 using "ldr r3, [r7]" + and then "mov r0, r3". + +It isn't clear to me that intermediate values managed by the compiler, +like this one at [r7], would be preserved in the stack this way, +especially as at this point we're in a "different" stack (unknown to the +optimizer). + +Instead, prevent the optimizer from re-using a previous result like this +by forcing it to rely on the inline assembly to produce the result. + +This fixes test failures on Ubuntu Utopic using gcc 4.9.1 (-5ubuntu1). + +I think even this is still a hack though, and not guaranteed to work. +Ultimately, gcc can even re-order the "__asm__ volatile" functions at +will around the entire function, or just wrap each REGS_TO_SAVE +clobbering call with a simple push/pop, thus not preserving the +registers between stack switches. + +The only way I can see of doing this without relying on undefined +compiler behaviour is to write the entire slp_switch function in +assembly for each architecture, instead of inlining it into a C function +for code reuse. + +Bug: https://github.com/python-greenlet/greenlet/pull/65 +Origin: upstream, https://github.com/python-greenlet/greenlet/commit/f90dbe4c24a9aed261a5fa9f66fb95ebdb8f21cc +Last-Update: 2014-10-15 + +--- + platform/switch_arm32_gcc.h | 5 +++-- + 1 file changed, 3 insertions(+), 2 deletions(-) + +diff --git a/platform/switch_arm32_gcc.h b/platform/switch_arm32_gcc.h +index c6e160d..e1cd797 100644 +--- a/platform/switch_arm32_gcc.h ++++ b/platform/switch_arm32_gcc.h +@@ -54,6 +54,7 @@ slp_switch(void) + { + void *fp; + register int *stackref, stsizediff; ++ int result; + __asm__ volatile ("" : : : REGS_TO_SAVE); + __asm__ volatile ("mov r0," REG_FP "\n\tstr r0,%0" : "=m" (fp) : : "r0"); + __asm__ ("mov %0," REG_SP : "=r" (stackref)); +@@ -67,9 +68,9 @@ slp_switch(void) + ); + SLP_RESTORE_STATE(); + } +- __asm__ volatile ("ldr r0,%0\n\tmov " REG_FP ",r0" : : "m" (fp) : "r0"); ++ __asm__ volatile ("ldr r0,%1\n\tmov " REG_FP ",r0\n\tmov %0, #0" : "=r" (result) : "m" (fp) : "r0"); + __asm__ volatile ("" : : : REGS_TO_SAVE); +- return 0; ++ return result; + } + + #endif +\ No newline at end of file diff -Nru python-greenlet-0.4.2/debian/patches/series python-greenlet-0.4.2/debian/patches/series --- python-greenlet-0.4.2/debian/patches/series 2014-02-01 11:31:13.000000000 +0100 +++ python-greenlet-0.4.2/debian/patches/series 2014-12-22 08:46:22.000000000 +0100 @@ -1,2 +1,4 @@ ppc64le.diff support-alpha.patch +arm32-always-use-frame-pointer +arm32-unoptimize-return-valueAttachment: signature.asc
Description: This is a digitally signed message part
--- End Message ---
--- Begin Message ---
- To: László Böszörményi <gcs@debian.org>, 773864-done@bugs.debian.org
- Cc: "Adam D. Barratt" <adam@adam-barratt.org.uk>
- Subject: Re: Bug#773864: pre-approval: unblock: python-greenlet/0.4.2-2
- From: Ivo De Decker <ivodd@debian.org>
- Date: Wed, 24 Dec 2014 17:50:45 +0100
- Message-id: <20141224165045.GA12329@ugent.be>
- In-reply-to: <[🔎] CAKjSHr1siP710ttHkkfse1Hz0gM-pjp7-MtkPKyNuPhWJGDBAw@mail.gmail.com>
- References: <[🔎] 1419418444.21320.15.camel@debian.org> <[🔎] 7b7ea389e0208ec4e98479a4fb67260c@mail.adsl.funky-badger.org> <[🔎] CAKjSHr1siP710ttHkkfse1Hz0gM-pjp7-MtkPKyNuPhWJGDBAw@mail.gmail.com>
Hi, On Wed, Dec 24, 2014 at 12:59:48PM +0100, László Böszörményi wrote: > On Wed, Dec 24, 2014 at 12:11 PM, Adam D. Barratt > <adam@adam-barratt.org.uk> wrote: > > On 2014-12-24 10:54, Laszlo Boszormenyi (GCS) wrote: > >> Please let me upload 0.4.2-2 to t-p-u, debdiff is attached. > > > > Please go ahead, and remove the "moreinfo" tag once the package has been > > accepted. > Done, uploaded. Approved. Cheers, Ivo
--- End Message ---