Control: tag -1 + patch
On Fri, 09 Nov 2012 14:10:37 +0400, Ivan Maidanski wrote:
I've committed the workaround (avoiding __builtin_expect in
AO_stack_pop_explicit_aux_acquire for gcc-4/alpha):
https://github.com/ivmai/libatomic_ops/commit/00d7cb807015b109df11b9227fbc7f35babdee16
(But, of course, it would be good if someone report/fix bug in gcc.)
Hi Ian,
this bug should also be closed in testing, and since the version in
unstable won't migrate due to it being a newer version, we need to go
through t-p-u.
I've prepared a debdiff where I tried to backport the 00d7cb8 commit
to the version in testing (attached).
Could you please take a look at it and if possible upload it after
checking back with the release team?
Cheers,
gregor
--
.''`. Homepage: http://info.comodo.priv.at/ - OpenPGP key 0xBB3A68018649AA06
: :' : Debian GNU/Linux user, admin, and developer - http://www.debian.org/
`. `' Member of VIBE!AT SPI, fellow of the Free Software Foundation Europe
`- NP: Beatles
diff -u libatomic-ops-7.2~alpha5+cvs20101124/debian/changelog libatomic-ops-7.2~alpha5+cvs20101124/debian/changelog
--- libatomic-ops-7.2~alpha5+cvs20101124/debian/changelog
+++ libatomic-ops-7.2~alpha5+cvs20101124/debian/changelog
@@ -1,3 +1,13 @@
+libatomic-ops (7.2~alpha5+cvs20101124-1+deb7u1) testing-proposed-updates; urgency=low
+
+ * Non-maintainer upload.
+ * Fix libatomic-ops/powerpc: FTBFS: eats all disk space in the known
+universe (almost, anyway): nackport patch from upstream git repo:
+https://github.com/ivmai/libatomic_ops/commit/00d7cb8#diff-0
+(Closes: #680100)
+
+ -- gregor herrmann gre...@debian.org Fri, 14 Dec 2012 15:00:16 +0100
+
libatomic-ops (7.2~alpha5+cvs20101124-1+deb7u0) testing-proposed-updates; urgency=low
* Non-maintainer upload with maintainer's permission.
only in patch2:
unchanged:
--- libatomic-ops-7.2~alpha5+cvs20101124.orig/src/atomic_ops_stack.c
+++ libatomic-ops-7.2~alpha5+cvs20101124/src/atomic_ops_stack.c
@@ -193,13 +193,25 @@
/* We need to make sure that first is still the first entry on the*/
/* list. Otherwise it's possible that a reinsertion of it was*/
/* already started before we added the black list entry. */
- if (first != AO_load(list)) {
+# if defined(__alpha__) (__GNUC__ == 4)
+if (first != AO_load(list))
+/* Workaround __builtin_expect bug found in */
+/* gcc-4.6.3/alpha causing test_stack failure. */
+# else
+if (AO_EXPECT_FALSE(first != AO_load(list)))
+# endif
+ {
AO_store_release(a-AO_stack_bl+i, 0);
goto retry;
}
first_ptr = AO_REAL_NEXT_PTR(first);
next = AO_load(first_ptr);
- if (!AO_compare_and_swap_release(list, first, next)) {
+# if defined(__alpha__) (__GNUC__ == 4)
+if (!AO_compare_and_swap_release(list, first, next))
+# else
+if (AO_EXPECT_FALSE(!AO_compare_and_swap_release(list, first, next)))
+# endif
+ {
AO_store_release(a-AO_stack_bl+i, 0);
goto retry;
}
only in patch2:
unchanged:
--- libatomic-ops-7.2~alpha5+cvs20101124.orig/src/atomic_ops.h
+++ libatomic-ops-7.2~alpha5+cvs20101124/src/atomic_ops.h
@@ -156,6 +156,13 @@
# define AO_INLINE static
#endif
+#if __GNUC__ = 3 !defined(LINT2)
+# define AO_EXPECT_FALSE(expr) __builtin_expect(expr, 0)
+ /* Equivalent to (expr) but predict that usually (expr) == 0. */
+#else
+# define AO_EXPECT_FALSE(expr) (expr)
+#endif /* !__GNUC__ */
+
#if defined(__GNUC__) !defined(__INTEL_COMPILER)
# define AO_compiler_barrier() __asm__ __volatile__( : : : memory)
#elif defined(_MSC_VER) || defined(__DMC__) || defined(__BORLANDC__) \
signature.asc
Description: Digital signature