re PR libstdc++/7926 (i486 instructions in header files make c++ programs crash on...
authorBenjamin Kosnik <bkoz@redhat.com>
Sat, 2 Nov 2002 01:42:22 +0000 (01:42 +0000)
committerBenjamin Kosnik <bkoz@gcc.gnu.org>
Sat, 2 Nov 2002 01:42:22 +0000 (01:42 +0000)
2002-11-01  Benjamin Kosnik  <bkoz@redhat.com>

PR libstdc++/7926
* configure.target: Simplify.
* config/cpu/i386/atomicity.h: Remove.
* config/cpu/i386: Remove.
* config/cpu/arm/atomicity.h: Remove.
* config/cpu/arm: Remove.
* config/cpu/x86-64/atomicity.h: Remove.
* config/cpu/x86-64: Remove.

From-SVN: r58735

libstdc++-v3/ChangeLog
libstdc++-v3/config/cpu/arm/atomicity.h [deleted file]
libstdc++-v3/config/cpu/i386/atomicity.h [deleted file]
libstdc++-v3/config/cpu/x86-64/atomicity.h [deleted file]
libstdc++-v3/configure.target

index ed3de3f..ef72d5c 100644 (file)
@@ -1,3 +1,14 @@
+2002-11-01  Benjamin Kosnik  <bkoz@redhat.com>
+
+       PR libstdc++/7926
+       * configure.target: Simplify.
+       * config/cpu/i386/atomicity.h: Remove.
+       * config/cpu/i386: Remove.      
+       * config/cpu/arm/atomicity.h: Remove.
+       * config/cpu/arm: Remove.       
+       * config/cpu/x86-64/atomicity.h: Remove.
+       * config/cpu/x86-64: Remove.    
+       
 2002-11-01  Christian Ehrhardt  <ehrhardt@mathematik.uni-ulm.de>
 
        PR libstdc++/8197
diff --git a/libstdc++-v3/config/cpu/arm/atomicity.h b/libstdc++-v3/config/cpu/arm/atomicity.h
deleted file mode 100644 (file)
index 7b952aa..0000000
+++ /dev/null
@@ -1,62 +0,0 @@
-// Low-level functions for atomic operations: ARM version  -*- C++ -*-
-
-// Copyright (C) 2000, 2001 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 2, or (at your option)
-// any later version.
-
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-// GNU General Public License for more details.
-
-// You should have received a copy of the GNU General Public License along
-// with this library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
-// USA.
-
-// As a special exception, you may use this file as part of a free software
-// library without restriction.  Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License.  This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
-
-#ifndef _BITS_ATOMICITY_H
-#define _BITS_ATOMICITY_H    1
-
-typedef int _Atomic_word;
-
-/* It isn't possible to write an atomic add instruction using the ARM
-   SWP instruction without using either a global guard variable or a
-   guard bit somewhere in the Atomic word.  However, even with a guard
-   bit we need to understand the thread model (if any) in order to
-   make co-operatively threaded applications work correctly.
-
-   The previous Thumb-based implementations were also completely
-   broken, since they failed to switch back into Thumb mode (Gas bug,
-   I think).  */
-
-static inline _Atomic_word
-__attribute__ ((__unused__))
-__exchange_and_add (volatile _Atomic_word* __mem, int __val)
-{
-  _Atomic_word __result = *__mem;
-
-  *__mem = __result + __val;
-  return __result;
-}
-
-static inline void
-__attribute__ ((__unused__))
-__atomic_add (volatile _Atomic_word *__mem, int __val)
-{
-  __exchange_and_add (__mem, __val);
-}
-
-#endif /* atomicity.h */
diff --git a/libstdc++-v3/config/cpu/i386/atomicity.h b/libstdc++-v3/config/cpu/i386/atomicity.h
deleted file mode 100644 (file)
index 4733503..0000000
+++ /dev/null
@@ -1,59 +0,0 @@
-// Low-level functions for atomic operations: x86, x < 4 version  -*- C++ -*-
-
-// Copyright (C) 1999, 2000, 2001 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 2, or (at your option)
-// any later version.
-
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-// GNU General Public License for more details.
-
-// You should have received a copy of the GNU General Public License along
-// with this library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
-// USA.
-
-// As a special exception, you may use this file as part of a free software
-// library without restriction.  Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License.  This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
-
-#ifndef _BITS_ATOMICITY_H
-#define _BITS_ATOMICITY_H      1
-
-typedef int _Atomic_word;
-
-static inline _Atomic_word 
-__attribute__ ((__unused__))
-__exchange_and_add (volatile _Atomic_word *__mem, int __val)
-{
-  register _Atomic_word __result;
-  __asm__ __volatile__ ("lock; xaddl %0,%2"
-                       : "=r" (__result) 
-                        : "0" (__val), "m" (*__mem) 
-                        : "memory");
-  return __result;
-}
-
-static inline void
-__attribute__ ((__unused__))
-__atomic_add (volatile _Atomic_word* __mem, int __val)
-{
-  __asm__ __volatile__ ("lock; addl %0,%1"
-                       : : "ir" (__val), "m" (*__mem) : "memory");
-}
-
-#endif /* atomicity.h */
-
-
-
-
diff --git a/libstdc++-v3/config/cpu/x86-64/atomicity.h b/libstdc++-v3/config/cpu/x86-64/atomicity.h
deleted file mode 100644 (file)
index 15ff07f..0000000
+++ /dev/null
@@ -1,55 +0,0 @@
-// Low-level functions for atomic operations: AMD x86-64, -*- C++ -*-
-
-// Copyright (C) 2001 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 2, or (at your option)
-// any later version.
-
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-// GNU General Public License for more details.
-
-// You should have received a copy of the GNU General Public License along
-// with this library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
-// USA.
-
-// As a special exception, you may use this file as part of a free software
-// library without restriction.  Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License.  This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
-
-#ifndef _BITS_ATOMICITY_H
-#define _BITS_ATOMICITY_H      1
-
-typedef int _Atomic_word;
-
-static inline _Atomic_word
-__attribute__ ((__unused__))
-__exchange_and_add (volatile _Atomic_word *__mem, int __val)
-{
-  register _Atomic_word __result;
-  __asm__ __volatile__ ("lock; xaddl %0,%2"
-                       : "=r" (__result)
-                        : "0" (__val), "m" (*__mem)
-                        : "memory");
-  return __result;
-}
-
-static inline void
-__attribute__ ((__unused__))
-__atomic_add (volatile _Atomic_word* __mem, int __val)
-{
-  __asm__ __volatile__ ("lock; addl %0,%1"
-                       : : "ir" (__val), "m" (*__mem) : "memory");
-}
-
-#endif /* atomicity.h */
index dc9c44b..d3043c0 100644 (file)
 # Try to guess a default cpu_include_dir based on the name of the CPU.  We
 # cannot do this for os_include_dir; there are too many portable operating
 # systems out there.  :-)
+abi_baseline_triplet=${target}
+c_model=c_std
+c_compatibility=no
 if test -d ${glibcpp_srcdir}/config/cpu/${target_cpu}; then
     cpu_include_dir="cpu/${target_cpu}"
 else
     cpu_include_dir="cpu/generic"
 fi
 
-abi_baseline_triplet=${target}
-
-c_model=c_std
-c_compatibility=no
-
 
 # TARGET-SPECIFIC OVERRIDES
 # Set any CPU-dependent bits.
@@ -71,36 +69,21 @@ case "${target_cpu}" in
   alpha*)
     cpu_include_dir="cpu/alpha"
     ;;
-  arm* | strongarm* | xscale* )
-    cpu_include_dir="cpu/arm"
-    ;;
-  i486 | i586 | i686 | i786)
-    # add athlons here maybe
+  athlon* | i586 | i686 | i786 | x86_64)
     cpu_include_dir="cpu/i486"
     ;;
-  m68k | m680[246]0)
+  m680[246]0)
     cpu_include_dir="cpu/m68k"
     ;;
-  mips*)
-    # MIPS chips are unreliable as to sc/ll support. By default
-    # don't use atomic instructions and override for the OS.
-    cpu_include_dir="cpu/generic"
-    ;;
-  mmix)
-    ATOMICITYH="cpu/generic"
-    ;;
   powerpc* | rs6000)
     cpu_include_dir="cpu/powerpc"
     ;;
-  s390 | s390x)
+  s390x)
     cpu_include_dir="cpu/s390"
     ;;
   sparc* | ultrasparc)
     cpu_include_dir="cpu/sparc"
     ;;
-  x86_64*)
-    cpu_include_dir="cpu/x86-64"
-    ;;
 esac