Your message dated Sat, 19 Feb 2005 18:47:31 -0500 with message-id <[EMAIL PROTECTED]> and subject line Bug#287276: fixed in libatomic-ops 0.5.1-2 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; 19 Feb 2005 23:56:20 +0000 >From [EMAIL PROTECTED] Sat Feb 19 15:56:20 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 1D2eSS-0006ig-00; Sat, 19 Feb 2005 15:56:20 -0800 Received: from katie by newraff.debian.org with local (Exim 3.35 1 (Debian)) id 1D2eJv-0002TO-00; Sat, 19 Feb 2005 18:47:31 -0500 From: Al Stone <[EMAIL PROTECTED]> To: [EMAIL PROTECTED] X-Katie: $Revision: 1.55 $ Subject: Bug#287276: fixed in libatomic-ops 0.5.1-2 Message-Id: <[EMAIL PROTECTED]> Sender: Archive Administrator <[EMAIL PROTECTED]> Date: Sat, 19 Feb 2005 18:47:31 -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: X-CrossAssassin-Score: 2 Source: libatomic-ops Source-Version: 0.5.1-2 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-2_i386.deb to pool/main/liba/libatomic-ops/libatomic-ops-dev_0.5.1-2_i386.deb libatomic-ops_0.5.1-2.diff.gz to pool/main/liba/libatomic-ops/libatomic-ops_0.5.1-2.diff.gz libatomic-ops_0.5.1-2.dsc to pool/main/liba/libatomic-ops/libatomic-ops_0.5.1-2.dsc libatomic-ops_0.5.1-2_i386.deb to pool/main/liba/libatomic-ops/libatomic-ops_0.5.1-2_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: Sat, 19 Feb 2005 15:47:31 -0700 Source: libatomic-ops Binary: libatomic-ops libatomic-ops-dev Architecture: source i386 Version: 0.5.1-2 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: 244910 287276 Changes: libatomic-ops (0.5.1-2) unstable; urgency=low . * Closes: bug#287276: support for amd64 added (thanks to Kurt Roeckx <[EMAIL PROTECTED]> for the patch). * Closes: bug#244910: all architectures have now been enabled (only i386, ia64, amd64 are absolutely known to work, however) Files: efcc09b65f64aa48a793f20aa0b6d7a8 646 - optional libatomic-ops_0.5.1-2.dsc b608c3b1724fb88f9068a1511b1e38bd 6862 - optional libatomic-ops_0.5.1-2.diff.gz 6d2c55cf72d3233ede93c4e87938af19 10940 libs optional libatomic-ops_0.5.1-2_i386.deb 795e17657fd7a49b8d02f07e7ba18558 22570 libdevel optional libatomic-ops-dev_0.5.1-2_i386.deb -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.0 (GNU/Linux) iD8DBQFCF8xYso6+T7qY4V0RAmXWAJ9Em7GFLKuNcwfG6zuNVgMzpodS/wCggmE0 UjlOfd1jS1hgceHqaiYtwGI= =G5Vd -----END PGP SIGNATURE----- -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]