Your message dated Sat, 20 Nov 2004 18:17:19 -0500
with message-id <[EMAIL PROTECTED]>
and subject line Bug#278409: fixed in gcc-3.4 3.4.3-1
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 Oct 2004 14:09:20 +0000
>From [EMAIL PROTECTED] Tue Oct 26 07:09:20 2004
Return-path: <[EMAIL PROTECTED]>
Received: from iris1.csv.ica.uni-stuttgart.de [129.69.118.2] 
        by spohr.debian.org with esmtp (Exim 3.35 1 (Debian))
        id 1CMS0l-0006PJ-00; Tue, 26 Oct 2004 07:09:20 -0700
Received: from rembrandt.csv.ica.uni-stuttgart.de ([129.69.118.42])
        by iris1.csv.ica.uni-stuttgart.de with esmtp
        id 1CMS0k-00084E-00
        for <[EMAIL PROTECTED]>; Tue, 26 Oct 2004 16:09:18 +0200
Received: from ica2_ts by rembrandt.csv.ica.uni-stuttgart.de with local (Exim 
3.35 #1 (Debian))
        id 1CMS0h-00047u-00
        for <[EMAIL PROTECTED]>; Tue, 26 Oct 2004 16:09:15 +0200
Date: Tue, 26 Oct 2004 16:09:15 +0200
To: [EMAIL PROTECTED]
Subject: Atomic stdc++ operations are broken on some MIPS machines
Message-ID: <[EMAIL PROTECTED]>
Mime-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
X-Debbugs-CC: [EMAIL PROTECTED]
User-Agent: Mutt/1.5.6i
From: Thiemo Seufer <[EMAIL PROTECTED]>
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=-11.0 required=4.0 tests=BAYES_00,HAS_PACKAGE,
        X_DEBBUGS_CC autolearn=ham version=2.60-bugs.debian.org_2004_03_25
X-Spam-Level: 

Package: gcc-3.3
Version: 3.3.5-1
Severity: important

While trying to run Debian on a SGI O200 Machine I found out that the
inline assembly to handle atomic operations in libstdc++ is broken.
The effect is very visible: "apt-get update" hangs in an endless loop
on startup, same for every other c++ program I tried. This happens on
machines with R10000 CPU, others may show degraded performance.

R10000 CPUs aren't yet officially supported in Debian, so I used
serverity important for this bugreport.

The problem is caused by inserting normal load operation in the atomic
loop, which isn't guaranteed to work. The load is generated by the
assembler to fulfill the memory reference, so it isn't visible in the
source.

The appended patch fixes it. It also changes the branch to the likely
variant, this works around some breakage in early R10000 silicon.
The patch is against gcc-3.3, newer gccs have the same problem, but
have some apparently bogus changes in that area.


Thiemo


#! /bin/sh -e

# All lines beginning with `# DPATCH:' are a description of the patch.
# DP: Fix libstdc++ atomic ops for mips/mipsel

dir=
if [ $# -eq 3 -a "$2" = '-d' ]; then
    pdir="-d $3"
    dir="$3/"
elif [ $# -ne 1 ]; then
    echo >&2 "`basename $0`: script expects -patch|-unpatch as argument"
    exit 1
fi
case "$1" in
    -patch)
        patch $pdir -f --no-backup-if-mismatch -p0 < $0
        #cd ${dir}gcc && autoconf
        ;;
    -unpatch)
        patch $pdir -f --no-backup-if-mismatch -R -p0 < $0
        #rm ${dir}gcc/configure
        ;;
    *)
        echo >&2 "`basename $0`: script expects -patch|-unpatch as argument"
        exit 1
esac
exit 0

--- libstdc++-v3/config/cpu/mips/atomicity.h.old        2003-06-02 
20:04:54.000000000 +0200
+++ libstdc++-v3/config/cpu/mips/atomicity.h    2004-10-23 17:41:38.000000000 
+0200
@@ -40,17 +40,19 @@ __exchange_and_add (volatile _Atomic_wor
 
   __asm__ __volatile__
     ("/* Inline exchange & add */\n\t"
-     "1:\n\t"
      ".set     push\n\t"
      ".set     mips2\n\t"
-     "ll       %0,%3\n\t"
-     "addu     %1,%4,%0\n\t"
-     "sc       %1,%2\n\t"
+     ".set     noreorder\n\t"
+     ".set     nomacro\n"
+     "1:\tll   %0,(%2)\n\t"
+     "addu     %1,%3,%0\n\t"
+     "sc       %1,(%2)\n\t"
+     ".set     reorder\n\t"
+     "beqzl    %1,1b\n\t"
      ".set     pop\n\t"
-     "beqz     %1,1b\n\t"
-     "/* End exchange & add */"
-     : "=&r"(__result), "=&r"(__tmp), "=m"(*__mem)
-     : "m" (*__mem), "r"(__val)
+     "/* End exchange & add */\n"
+     : "=&r"(__result), "=&r"(__tmp), "+r"(__mem)
+     : "r"(__val)
      : "memory");
 
   return __result;
@@ -64,17 +66,19 @@ __atomic_add (volatile _Atomic_word *__m
 
   __asm__ __volatile__
     ("/* Inline atomic add */\n\t"
-     "1:\n\t"
      ".set     push\n\t"
      ".set     mips2\n\t"
-     "ll       %0,%2\n\t"
-     "addu     %0,%3,%0\n\t"
-     "sc       %0,%1\n\t"
+     ".set     noreorder\n\t"
+     ".set     nomacro\n"
+     "1:\tll   %0,(%1)\n\t"
+     "addu     %0,%2,%0\n\t"
+     "sc       %0,(%1)\n\t"
+     ".set     reorder\n\t"
+     "beqzl    %0,1b\n\t"
      ".set     pop\n\t"
-     "beqz     %0,1b\n\t"
-     "/* End atomic add */"
-     : "=&r"(__result), "=m"(*__mem)
-     : "m" (*__mem), "r"(__val)
+     "/* End atomic add */\n"
+     : "=&r"(__result), "+r"(__mem)
+     : "r"(__val)
      : "memory");
 }
 

---------------------------------------
Received: (at 278409-close) by bugs.debian.org; 20 Nov 2004 23:23:24 +0000
>From [EMAIL PROTECTED] Sat Nov 20 15:23:24 2004
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 1CVeZg-000403-00; Sat, 20 Nov 2004 15:23:24 -0800
Received: from katie by newraff.debian.org with local (Exim 3.35 1 (Debian))
        id 1CVeTn-0000Fd-00; Sat, 20 Nov 2004 18:17:19 -0500
From: Matthias Klose <[EMAIL PROTECTED]>
To: [EMAIL PROTECTED]
X-Katie: $Revision: 1.51 $
Subject: Bug#278409: fixed in gcc-3.4 3.4.3-1
Message-Id: <[EMAIL PROTECTED]>
Sender: Archive Administrator <[EMAIL PROTECTED]>
Date: Sat, 20 Nov 2004 18:17:19 -0500
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=-6.0 required=4.0 tests=BAYES_00,HAS_BUG_NUMBER 
        autolearn=no version=2.60-bugs.debian.org_2004_03_25
X-Spam-Level: 
X-CrossAssassin-Score: 3

Source: gcc-3.4
Source-Version: 3.4.3-1

We believe that the bug you reported is fixed in the latest version of
gcc-3.4, which is due to be installed in the Debian FTP archive:

cpp-3.4-doc_3.4.3-1_all.deb
  to pool/main/g/gcc-3.4/cpp-3.4-doc_3.4.3-1_all.deb
cpp-3.4_3.4.3-1_i386.deb
  to pool/main/g/gcc-3.4/cpp-3.4_3.4.3-1_i386.deb
fastjar_3.4.3-1_i386.deb
  to pool/main/g/gcc-3.4/fastjar_3.4.3-1_i386.deb
g++-3.4_3.4.3-1_i386.deb
  to pool/main/g/gcc-3.4/g++-3.4_3.4.3-1_i386.deb
g77-3.4-doc_3.4.3-1_all.deb
  to pool/main/g/gcc-3.4/g77-3.4-doc_3.4.3-1_all.deb
g77-3.4_3.4.3-1_i386.deb
  to pool/main/g/gcc-3.4/g77-3.4_3.4.3-1_i386.deb
gcc-3.4-base_3.4.3-1_i386.deb
  to pool/main/g/gcc-3.4/gcc-3.4-base_3.4.3-1_i386.deb
gcc-3.4-doc_3.4.3-1_all.deb
  to pool/main/g/gcc-3.4/gcc-3.4-doc_3.4.3-1_all.deb
gcc-3.4_3.4.3-1.diff.gz
  to pool/main/g/gcc-3.4/gcc-3.4_3.4.3-1.diff.gz
gcc-3.4_3.4.3-1.dsc
  to pool/main/g/gcc-3.4/gcc-3.4_3.4.3-1.dsc
gcc-3.4_3.4.3-1_i386.deb
  to pool/main/g/gcc-3.4/gcc-3.4_3.4.3-1_i386.deb
gcc-3.4_3.4.3.orig.tar.gz
  to pool/main/g/gcc-3.4/gcc-3.4_3.4.3.orig.tar.gz
gcj-3.4_3.4.3-1_i386.deb
  to pool/main/g/gcc-3.4/gcj-3.4_3.4.3-1_i386.deb
gij-3.4_3.4.3-1_i386.deb
  to pool/main/g/gcc-3.4/gij-3.4_3.4.3-1_i386.deb
gnat-3.4-doc_3.4.3-1_all.deb
  to pool/main/g/gcc-3.4/gnat-3.4-doc_3.4.3-1_all.deb
gnat-3.4_3.4.3-1_i386.deb
  to pool/main/g/gcc-3.4/gnat-3.4_3.4.3-1_i386.deb
gobjc-3.4_3.4.3-1_i386.deb
  to pool/main/g/gcc-3.4/gobjc-3.4_3.4.3-1_i386.deb
gpc-2.1-3.4-doc_3.4.3-1_all.deb
  to pool/main/g/gcc-3.4/gpc-2.1-3.4-doc_3.4.3-1_all.deb
gpc-2.1-3.4_3.4.3-1_i386.deb
  to pool/main/g/gcc-3.4/gpc-2.1-3.4_3.4.3-1_i386.deb
lib64gcc1_3.4.3-1_i386.deb
  to pool/main/g/gcc-3.4/lib64gcc1_3.4.3-1_i386.deb
lib64stdc++6_3.4.3-1_i386.deb
  to pool/main/g/gcc-3.4/lib64stdc++6_3.4.3-1_i386.deb
libffi3-dev_3.4.3-1_i386.deb
  to pool/main/g/gcc-3.4/libffi3-dev_3.4.3-1_i386.deb
libffi3_3.4.3-1_i386.deb
  to pool/main/g/gcc-3.4/libffi3_3.4.3-1_i386.deb
libgcc1_3.4.3-1_i386.deb
  to pool/main/g/gcc-3.4/libgcc1_3.4.3-1_i386.deb
libgcj5-awt_3.4.3-1_i386.deb
  to pool/main/g/gcc-3.4/libgcj5-awt_3.4.3-1_i386.deb
libgcj5-common_3.4.3-1_all.deb
  to pool/main/g/gcc-3.4/libgcj5-common_3.4.3-1_all.deb
libgcj5-dev_3.4.3-1_i386.deb
  to pool/main/g/gcc-3.4/libgcj5-dev_3.4.3-1_i386.deb
libgcj5_3.4.3-1_i386.deb
  to pool/main/g/gcc-3.4/libgcj5_3.4.3-1_i386.deb
libgnat-3.4_3.4.3-1_i386.deb
  to pool/main/g/gcc-3.4/libgnat-3.4_3.4.3-1_i386.deb
libstdc++6-dbg_3.4.3-1_i386.deb
  to pool/main/g/gcc-3.4/libstdc++6-dbg_3.4.3-1_i386.deb
libstdc++6-dev_3.4.3-1_i386.deb
  to pool/main/g/gcc-3.4/libstdc++6-dev_3.4.3-1_i386.deb
libstdc++6-doc_3.4.3-1_all.deb
  to pool/main/g/gcc-3.4/libstdc++6-doc_3.4.3-1_all.deb
libstdc++6-pic_3.4.3-1_i386.deb
  to pool/main/g/gcc-3.4/libstdc++6-pic_3.4.3-1_i386.deb
libstdc++6_3.4.3-1_i386.deb
  to pool/main/g/gcc-3.4/libstdc++6_3.4.3-1_i386.deb
treelang-3.4_3.4.3-1_i386.deb
  to pool/main/g/gcc-3.4/treelang-3.4_3.4.3-1_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.
Matthias Klose <[EMAIL PROTECTED]> (supplier of updated gcc-3.4 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-----

Format: 1.7
Date: Mon, 18 Oct 2004 07:04:37 +0200
Source: gcc-3.4
Binary: g77-3.4-doc gcc-3.4-base libstdc++6 lib64gcj5-awt gnat-3.4 libobjc1 
libgcj5 libgcc1 gcc-3.4 lib64g2c0 gobjc-3.4 libstdc++6-0 gcc-3.4-nof libgcc2 
libstdc++6-dev libstdc++6-doc protoize libgnat-3.4 libgcj5-dev libstdc++6-0-pic 
libgcj5-common lib64stdc++6 libstdc++6-dbg lib32stdc++6-0 gij-3.4 lib32gcc1 
lib64gnat-3.4 lib64objc1 cpp-3.4 lib64gcj5 gcc-3.4-hppa64 gcc-3.4-soft-float 
libstdc++6-0-dev libgcj5-awt cpp-3.4-doc libgcj-common libffi3-dev gcc-3.4-doc 
libg2c0-dev gpc-2.1-3.4-doc lib64gcc1 fastjar treelang-3.4 libffi3 fixincludes 
libg2c0 lib32stdc++6 libstdc++6-pic lib64ffi3 gnat-3.4-doc libstdc++6-0-dbg 
gcj-3.4 gpc-2.1-3.4 g++-3.4 g77-3.4
Architecture: source i386 all
Version: 3.4.3-1
Distribution: unstable
Urgency: medium
Maintainer: Debian GCC maintainers <debian-gcc@lists.debian.org>
Changed-By: Matthias Klose <[EMAIL PROTECTED]>
Description: 
 cpp-3.4    - The GNU C preprocessor
 cpp-3.4-doc - Documentation for the GNU C preprocessor (cpp)
 fastjar    - Jar creation utility
 g++-3.4    - The GNU C++ compiler
 g77-3.4    - The GNU Fortran 77 compiler
 g77-3.4-doc - Documentation for the GNU Fortran compiler (g77)
 gcc-3.4    - The GNU C compiler
 gcc-3.4-base - The GNU Compiler Collection (base package)
 gcc-3.4-doc - Documentation for the GNU compilers (gcc, gobjc, g++)
 gcj-3.4    - The GNU compiler for Java(TM)
 gij-3.4    - The GNU Java bytecode interpreter
 gnat-3.4   - The GNU Ada compiler
 gnat-3.4-doc - Documentation for the GNU Ada compiler (gnat)
 gobjc-3.4  - The GNU Objective-C compiler
 gpc-2.1-3.4 - The GNU Pascal compiler
 gpc-2.1-3.4-doc - Documentation for the GNU Pascal compiler (gpc)
 lib64gcc1  - GCC support library (64bit)
 lib64stdc++6 - The GNU Standard C++ Library v3 (64bit)
 libffi3    - Foreign Function Interface library runtime
 libffi3-dev - Foreign Function Interface library (development files)
 libgcc1    - GCC support library
 libgcj5    - Java runtime library for use with gcj
 libgcj5-awt - AWT peer runtime libraries for use with gcj
 libgcj5-common - Java runtime library for use with gcj (jar files)
 libgcj5-dev - Java development headers and static library for use with gcj
 libgnat-3.4 - Runtime library for GNU Ada applications
 libstdc++6 - The GNU Standard C++ Library v3
 libstdc++6-dbg - The GNU Standard C++ Library v3 (debugging files)
 libstdc++6-dev - The GNU Standard C++ Library v3 (development files)
 libstdc++6-doc - The GNU Standard C++ Library v3 (documentation files)
 libstdc++6-pic - The GNU Standard C++ Library v3 (shared library subset kit)
 treelang-3.4 - The GNU Treelang compiler
Closes: 268757 272536 278409 279185 279850 280913
Changes: 
 gcc-3.4 (3.4.3-1) unstable; urgency=medium
 .
   * gcc-3.4.3 release.
     - Doesn't reject valid C++ code (namespaces). Closes: #279185.
   * Tightened dependencies on the gcc-3.4-base package.
   * Don't build java on mips/mipsel, until the GOT handling is fixed.
     Closes: #279850.
   * Fix atomic stdc++ operations are broken on some MIPS machines. Patch
     by Thiemo Seufer. Closes: #278409.
   * Fixed empty libstdc++ manpages. Closes: #280913.
   * README.Debian: Add a note, that lib64gcc1, amd64-libs and maybe other
     library packages need to be installed when targeting 64bit on the i386
     platform. Closes: #272536.
   * On ia64, the ACATS hangs in unaligned memory access. Start a shell
     script, which kills these tests manually.
   * README.Debian: Add note on gcc-3.4 -m64 code generation. Closes: #268757.
   * Don't run the boehm-gc test, hangs at least on m68k.
Files: 
 34bdda56774923b030c1f4a3f43111e2 3107 devel optional gcc-3.4_3.4.3-1.dsc
 43d5e841b97a582fdbe5ddc17790e84d 30513800 devel optional 
gcc-3.4_3.4.3.orig.tar.gz
 8ef010f198f5ec051b872f296f6ff852 3788296 devel optional gcc-3.4_3.4.3-1.diff.gz
 994ba29eeb8884252410e903e2907af0 181572 doc optional 
cpp-3.4-doc_3.4.3-1_all.deb
 9fb36fe0793ce875d2a8a64a0f977d7f 2028736 libs optional 
libgcj5-common_3.4.3-1_all.deb
 33583ef4a87fc222bb877cff95fa73ea 4249248 doc optional 
libstdc++6-doc_3.4.3-1_all.deb
 a22cfc080a6bd03eecebf5ea5f9c6678 628868 doc optional 
g77-3.4-doc_3.4.3-1_all.deb
 679b1b68054f0f03efe5a86642cdcc2b 896352 doc optional 
gnat-3.4-doc_3.4.3-1_all.deb
 ddca69af497d563f58b6f8db2084cefe 468718 doc optional 
gpc-2.1-3.4-doc_3.4.3-1_all.deb
 4e283c944a5c713621f6479f4cdd7e09 1473672 doc optional 
gcc-3.4-doc_3.4.3-1_all.deb
 1493eaf4c5b5e9fdeabd27008282fd4d 157840 devel optional 
gcc-3.4-base_3.4.3-1_i386.deb
 54ea46c7b5389e6500a0d139976365c7 79026 libs required libgcc1_3.4.3-1_i386.deb
 3827eec64ad02465966fbb1322fbb0a3 83054 libs optional lib64gcc1_3.4.3-1_i386.deb
 3a5ac123fad161ca99ff09f66a40e59e 1703490 interpreters optional 
cpp-3.4_3.4.3-1_i386.deb
 df7c8b7599fbdf4472a9bb42d47b7a3e 1742342 devel optional 
gobjc-3.4_3.4.3-1_i386.deb
 a2916fb4f49c5efd9bb7820a7949775c 13260 devel optional gij-3.4_3.4.3-1_i386.deb
 a0d38cfa0fe8cb416f874898daaa0bb9 3664826 libs optional libgcj5_3.4.3-1_i386.deb
 ca9e68df0eefc5b0895f855154bcf90c 186662 libs optional 
libgcj5-awt_3.4.3-1_i386.deb
 f3c6c34dfcb540fb9a4c8fedb969f4c2 2040400 devel optional 
gcj-3.4_3.4.3-1_i386.deb
 9e80fe6b88b7b592aab45ba49545ed6c 6859536 libdevel optional 
libgcj5-dev_3.4.3-1_i386.deb
 d28f2412c69f008df4c40f7c950bd216 117630 devel optional fastjar_3.4.3-1_i386.deb
 7aef549210d7186c8eb6e2a7e1d23e86 78214 libs optional libffi3_3.4.3-1_i386.deb
 dfea4bfff5be9322cf03df97cd68914b 8852 libdevel optional 
libffi3-dev_3.4.3-1_i386.deb
 cdc8efd242628d86db398eccd48cddec 1938396 devel optional 
g++-3.4_3.4.3-1_i386.deb
 f30a4a9456795e21313e7b5522fce0b3 326044 base optional 
lib64stdc++6_3.4.3-1_i386.deb
 4b5f2073d20f2cbd02adcac6a3e3e82f 320130 base optional 
libstdc++6_3.4.3-1_i386.deb
 081caebb7da70c3cf5000cb0fbf319e1 1302500 libdevel optional 
libstdc++6-dev_3.4.3-1_i386.deb
 6326f471ee44bbd2cd369b35c78e95b3 757260 libdevel extra 
libstdc++6-pic_3.4.3-1_i386.deb
 2bb41d96a398341f636ac2157ba59f05 9062700 libdevel extra 
libstdc++6-dbg_3.4.3-1_i386.deb
 8ff671a043dbf7be5a41377e8b7267e4 1859176 devel optional 
g77-3.4_3.4.3-1_i386.deb
 07b7fde7f52710d50774c1f6f727571e 727656 libs optional 
libgnat-3.4_3.4.3-1_i386.deb
 3027d0a8128fa68195497d5dbbdcc267 7131288 devel optional 
gnat-3.4_3.4.3-1_i386.deb
 d41a00fef0b944a26aea8d2fcc4fcbd0 2985592 devel optional 
treelang-3.4_3.4.3-1_i386.deb
 96d1f620b364246a033368a9163485d6 2246746 devel optional 
gpc-2.1-3.4_3.4.3-1_i386.deb
 72777128393bd63bfc2d0aedc1fd6528 1480126 devel optional 
gcc-3.4_3.4.3-1_i386.deb

-----BEGIN PGP SIGNATURE-----
Version: 2.6.3ia
Charset: noconv
Comment: Requires PGP version 2.6 or later.

iQEVAwUBQZ/NSAuDzMCIcnEhAQHC4wf/aVcLepUFue9LWjU3bdVlyHwIpEj7/Qi7
zSpMRjgxMpHRqFRR1JOyt+03twqHKdXlzm1xqMC2Fc2Idrl7WTE1SaArugAqjfU5
1cI1RHU/FgoIIjQACPVLase9jHroGjYmh9S9bfITId4dHIW3NqdqCsmmohDveMd0
Ewo+1qwVOwurWP2NVpxUWJip4QwckLscAcwGuNTO6qcwCYS0kV0bl/6dfUiqzdaE
W57z2DXVZsiDq/ogShuqxQ/Q9p5aQjzrvFodx+/MfLrpWs1zfU98jLhf7GwCY/Zn
qsT3kXqDoqxlQGhc9VN4wo1zra6bz5mg3rVh0bXVNOusAmRk9CBR+Q==
=4ox9
-----END PGP SIGNATURE-----


Reply via email to