Your message dated Tue, 22 Feb 2005 22:32:16 -0500
with message-id <[EMAIL PROTECTED]>
and subject line Bug#287276: fixed in libatomic-ops 0.5.1-3
has caused the attached Bug report 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 I am
talking about this indicates a serious mail system misconfiguration
somewhere. Please contact me immediately.)
Debian bug tracking system administrator
(administrator, Debian Bugs database)
--------------------------------------
Received: (at submit) by bugs.debian.org; 26 Dec 2004 17:18:56 +0000
>From [EMAIL PROTECTED] Sun Dec 26 09:18:55 2004
Return-path: <[EMAIL PROTECTED]>
Received: from astra.telenet-ops.be [195.130.132.58]
by spohr.debian.org with esmtp (Exim 3.35 1 (Debian))
id 1Cic2h-0006SD-00; Sun, 26 Dec 2004 09:18:55 -0800
Received: from localhost (localhost.localdomain [127.0.0.1])
by astra.telenet-ops.be (Postfix) with SMTP id 4121D328048
for <[EMAIL PROTECTED]>; Sun, 26 Dec 2004 18:18:36 +0100 (MET)
Received: from kabel.telenet.be (D5775FD9.kabel.telenet.be [213.119.95.217])
by astra.telenet-ops.be (Postfix) with ESMTP id E76DE328302
for <[EMAIL PROTECTED]>; Sun, 26 Dec 2004 18:18:35 +0100 (MET)
Received: by kabel.telenet.be (Postfix, from userid 501)
id 7D72226137; Sun, 26 Dec 2004 18:18:35 +0100 (CET)
Date: Sun, 26 Dec 2004 18:18:35 +0100
From: Kurt Roeckx <[EMAIL PROTECTED]>
To: [EMAIL PROTECTED]
Subject: libatomic-ops: Support for amd64.
Message-ID: <[EMAIL PROTECTED]>
Mime-Version: 1.0
Content-Type: multipart/mixed; boundary="FL5UXtIhxfXey3p5"
Content-Disposition: inline
User-Agent: Mutt/1.4.2.1i
Delivered-To: [EMAIL PROTECTED]
X-Spam-Checker-Version: SpamAssassin 2.60-bugs.debian.org_2004_03_25
(1.212-2003-09-23-exp) on spohr.debian.org
X-Spam-Status: No, hits=-8.0 required=4.0 tests=BAYES_00,HAS_PACKAGE
autolearn=no version=2.60-bugs.debian.org_2004_03_25
X-Spam-Level:
--FL5UXtIhxfXey3p5
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
Package: libatomic-ops
Version: 0.5.1-1
Tags: patch
Hi,
I've ported the package to amd64. I based the x86_64.h on the
x86.h version. Basicly I just had to change the prefixes from
"l" to "q". There was one other change I did and that was change
an int to an AO_t, which I did in the x86.h too. This should
have no effect on x86 since both an int and long are 32 bit, but
on amd64 a long is 64 bit.
With the attached patch, "make check" succesfully does both
tests.
PS: There seem to be header files for other arches too. They
haven't been tested at all or what?
Kurt
--FL5UXtIhxfXey3p5
Content-Type: text/plain; charset=us-ascii
Content-Disposition: attachment; filename="libatomic-ops-0.5.1+amd64.diff"
diff -urN libatomic-ops-0.5.1/debian/control
libatomic-ops-0.5.1+amd64/debian/control
--- libatomic-ops-0.5.1/debian/control 2004-12-26 17:54:26.380953128 +0100
+++ libatomic-ops-0.5.1+amd64/debian/control 2004-12-26 17:50:15.000000000
+0100
@@ -8,7 +8,7 @@
Package: libatomic-ops
Section: libs
Depends: ${shlibs:Depends}
-Architecture: ia64 i386
+Architecture: ia64 i386 amd64
Description: A library for atomic operations (run-time)
Libatomic-ops implements a large collection of operations, each one
of which is a combination of an (optional) atomic memory operation,
@@ -22,7 +22,7 @@
Package: libatomic-ops-dev
Section: libdevel
Depends: ${shlibs:Depends}
-Architecture: ia64 i386
+Architecture: ia64 i386 amd64
Description: A library for atomic operations (development files)
Libatomic-ops implements a large collection of operations, each one
of which is a combination of an (optional) atomic memory operation,
diff -urN libatomic-ops-0.5.1/src/atomic_ops/sysdeps/gcc/x86.h
libatomic-ops-0.5.1+amd64/src/atomic_ops/sysdeps/gcc/x86.h
--- libatomic-ops-0.5.1/src/atomic_ops/sysdeps/gcc/x86.h 2004-06-23
05:17:30.000000000 +0200
+++ libatomic-ops-0.5.1+amd64/src/atomic_ops/sysdeps/gcc/x86.h 2004-12-26
17:53:24.273394912 +0100
@@ -78,7 +78,7 @@
AO_INLINE AO_TS_t
AO_test_and_set_full(volatile AO_t *addr)
{
- int oldval;
+ AO_t oldval;
/* Note: the "xchg" instruction does not need a "lock" prefix */
__asm__ __volatile__("xchgl %0, %1"
: "=r"(oldval), "+m"(*(addr))
diff -urN libatomic-ops-0.5.1/src/atomic_ops/sysdeps/gcc/x86_64.h
libatomic-ops-0.5.1+amd64/src/atomic_ops/sysdeps/gcc/x86_64.h
--- libatomic-ops-0.5.1/src/atomic_ops/sysdeps/gcc/x86_64.h 1970-01-01
01:00:00.000000000 +0100
+++ libatomic-ops-0.5.1+amd64/src/atomic_ops/sysdeps/gcc/x86_64.h
2004-12-26 17:49:21.000000000 +0100
@@ -0,0 +1,103 @@
+/*
+ * Copyright (c) 1991-1994 by Xerox Corporation. All rights reserved.
+ * Copyright (c) 1996-1999 by Silicon Graphics. All rights reserved.
+ * Copyright (c) 1999-2003 by Hewlett-Packard Company. All rights reserved.
+ *
+ *
+ * THIS MATERIAL IS PROVIDED AS IS, WITH ABSOLUTELY NO WARRANTY EXPRESSED
+ * OR IMPLIED. ANY USE IS AT YOUR OWN RISK.
+ *
+ * Permission is hereby granted to use or copy this program
+ * for any purpose, provided the above notices are retained on all copies.
+ * Permission to modify the code and to distribute modified code is granted,
+ * provided the above notices are retained, and a notice that the code was
+ * modified is included with the above copyright notice.
+ *
+ * Some of the machine specific code was borrowed from our GC distribution.
+ */
+
+/* The following really assume we have a 486 or better. Unfortunately */
+/* gcc doesn't define a suitable feature test macro based on command */
+/* line options. */
+/* We should perhaps test dynamically. */
+
+#include "../aligned_atomic_load_store.h"
+
+/* Real X86 implementations, except for some old WinChips, appear */
+/* to enforce ordering between memory operations, EXCEPT that a later */
+/* read can pass earlier writes, presumably due to the visible */
+/* presence of store buffers. */
+/* We ignore both the WinChips, and the fact that the official specs */
+/* seem to be much weaker (and arguably too weak to be usable).
*/
+
+#include "../ordered_except_wr.h"
+
+#if defined(AO_USE_PENTIUM4_INSTRS)
+AO_INLINE void
+AO_nop_full()
+{
+ __asm__ __volatile__("mfence" : : : "memory");
+}
+
+#define AO_HAVE_NOP_FULL
+
+#else
+
+/* We could use the cpuid instruction. But that seems to be slower */
+/* than the default implementation based on test_and_set_full. Thus */
+/* we omit that bit of misinformation here. */
+
+#endif
+
+/* As far as we can tell, the lfence and sfence instructions are not */
+/* currently needed or useful for cached memory accesses. */
+
+/* Really only works for 486 and later */
+AO_INLINE AO_t
+AO_fetch_and_add_full (volatile AO_t *p, long incr)
+{
+ AO_t result = incr;
+
+ __asm__ __volatile__ ("lock; xaddq %0, %1" :
+ "+r" (result), "+m" (*p) : : "memory");
+ return result;
+}
+
+#define AO_HAVE_fetch_and_add_full
+
+/* Really only works for 486 and later */
+AO_INLINE void
+AO_or_full (volatile AO_t *p, AO_t incr)
+{
+ __asm__ __volatile__ ("lock; orq %1, %0" :
+ "+m" (*p) : "r" (incr) : "memory");
+}
+
+#define AO_HAVE_or_full
+
+AO_INLINE AO_TS_t
+AO_test_and_set_full(volatile AO_t *addr)
+{
+ AO_t oldval;
+ /* Note: the "xchg" instruction does not need a "lock" prefix */
+ __asm__ __volatile__("xchgq %0, %1"
+ : "=r"(oldval), "+m"(*(addr))
+ : "0"(1) : "memory");
+ return oldval;
+}
+
+#define AO_HAVE_test_and_set_full
+
+/* Returns nonzero if the comparison succeeded. */
+AO_INLINE int
+AO_compare_and_swap_full(volatile AO_t *addr,
+ AO_t old, AO_t new_val)
+{
+ char result;
+ __asm__ __volatile__("lock; cmpxchgq %2, %0; setz %1"
+ : "+m"(*(addr)), "=q"(result)
+ : "r" (new_val), "a"(old) : "memory");
+ return (int) result;
+}
+
+#define AO_HAVE_compare_and_swap_full
diff -urN libatomic-ops-0.5.1/src/atomic_ops.h
libatomic-ops-0.5.1+amd64/src/atomic_ops.h
--- libatomic-ops-0.5.1/src/atomic_ops.h 2004-06-23 05:17:30.000000000
+0200
+++ libatomic-ops-0.5.1+amd64/src/atomic_ops.h 2004-12-26 17:42:55.000000000
+0100
@@ -193,6 +193,9 @@
# if defined(__i386__)
# include "atomic_ops/sysdeps/gcc/x86.h"
# endif /* __i386__ */
+# if defined(__x86_64__)
+# include "atomic_ops/sysdeps/gcc/x86_64.h"
+# endif /* __i386__ */
# if defined(__ia64__)
# include "atomic_ops/sysdeps/gcc/ia64.h"
# define AO_GENERALIZE_TWICE
--FL5UXtIhxfXey3p5--
---------------------------------------
Received: (at 287276-close) by bugs.debian.org; 23 Feb 2005 03:41:52 +0000
>From [EMAIL PROTECTED] Tue Feb 22 19:41:52 2005
Return-path: <[EMAIL PROTECTED]>
Received: from newraff.debian.org [208.185.25.31] (mail)
by spohr.debian.org with esmtp (Exim 3.35 1 (Debian))
id 1D3nPM-00020a-00; Tue, 22 Feb 2005 19:41:52 -0800
Received: from katie by newraff.debian.org with local (Exim 3.35 1 (Debian))
id 1D3nG4-0003Xn-00; Tue, 22 Feb 2005 22:32:16 -0500
From: Al Stone <[EMAIL PROTECTED]>
To: [EMAIL PROTECTED]
X-Katie: $Revision: 1.55 $
Subject: Bug#287276: fixed in libatomic-ops 0.5.1-3
Message-Id: <[EMAIL PROTECTED]>
Sender: Archive Administrator <[EMAIL PROTECTED]>
Date: Tue, 22 Feb 2005 22:32:16 -0500
Delivered-To: [EMAIL PROTECTED]
X-Spam-Checker-Version: SpamAssassin 2.60-bugs.debian.org_2005_01_02
(1.212-2003-09-23-exp) on spohr.debian.org
X-Spam-Status: No, hits=-6.0 required=4.0 tests=BAYES_00,HAS_BUG_NUMBER
autolearn=no version=2.60-bugs.debian.org_2005_01_02
X-Spam-Level:
Source: libatomic-ops
Source-Version: 0.5.1-3
We believe that the bug you reported is fixed in the latest version of
libatomic-ops, which is due to be installed in the Debian FTP archive:
libatomic-ops-dev_0.5.1-3_i386.deb
to pool/main/liba/libatomic-ops/libatomic-ops-dev_0.5.1-3_i386.deb
libatomic-ops_0.5.1-3.diff.gz
to pool/main/liba/libatomic-ops/libatomic-ops_0.5.1-3.diff.gz
libatomic-ops_0.5.1-3.dsc
to pool/main/liba/libatomic-ops/libatomic-ops_0.5.1-3.dsc
libatomic-ops_0.5.1-3_i386.deb
to pool/main/liba/libatomic-ops/libatomic-ops_0.5.1-3_i386.deb
A summary of the changes between this version and the previous one is
attached.
Thank you for reporting the bug, which will now be closed. If you
have further comments please address them to [EMAIL PROTECTED],
and the maintainer will reopen the bug report if appropriate.
Debian distribution maintenance software
pp.
Al Stone <[EMAIL PROTECTED]> (supplier of updated libatomic-ops package)
(This message was generated automatically at their request; if you
believe that there is a problem with it please contact the archive
administrators by mailing [EMAIL PROTECTED])
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
Format: 1.7
Date: Mon, 21 Feb 2005 17:15:35 -0700
Source: libatomic-ops
Binary: libatomic-ops libatomic-ops-dev
Architecture: source i386
Version: 0.5.1-3
Distribution: unstable
Urgency: low
Maintainer: Ian Wienand <[EMAIL PROTECTED]>
Changed-By: Al Stone <[EMAIL PROTECTED]>
Description:
libatomic-ops - A library for atomic operations (run-time)
libatomic-ops-dev - A library for atomic operations (development files)
Closes: 287276
Changes:
libatomic-ops (0.5.1-3) unstable; urgency=low
.
* Closes: bug#287276: support for amd64 -- thinko, skipped part
of Kurt's patch inadvertently.
Files:
26949f94bed1bed7cc168a852f7b7c24 646 - optional libatomic-ops_0.5.1-3.dsc
b710831b156dc2e76f9eb4e2aa70f39d 8091 - optional libatomic-ops_0.5.1-3.diff.gz
d125a07502992f5c8c20f819f1bc0c72 11000 libs optional
libatomic-ops_0.5.1-3_i386.deb
e04fa2caf37022c8145df3ad2e48081a 22802 libdevel optional
libatomic-ops-dev_0.5.1-3_i386.deb
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.0 (GNU/Linux)
iD8DBQFCGnvPso6+T7qY4V0RAhFpAJ49nMeBR00OOw3EJYdTbR2BuGNuZACggCzv
S+snUWtzgCd/6UX1aA6kepc=
=HmnT
-----END PGP SIGNATURE-----
--
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]