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-----