This is the mail archive of the
libstdc++@sourceware.cygnus.com
mailing list for the libstdc++ project.
[patch] atomicity update
- To: libstdc++ at sourceware dot cygnus dot com
- Subject: [patch] atomicity update
- From: Nathan Myers <ncm at cantrip dot org>
- Date: Fri, 19 May 2000 17:43:34 -0700
- Reply-To: libstdc++ at sourceware dot cygnus dot com
This is a fix for atomicity.h so that MT will work right
on 386 environments (e.g. all Red Hat, Caldera, and Debian
x86 installations). Without it, "i386" configurations
(which those distros use) will get cpu/generic/atomicity.h,
which defines non-atomic operations.
Do:
mkdir config/cpu/i486 config/cpu/i486/bits
cp config/cpu/i386/bits/atomicity.h config/cpu/i486/bits
cvs add ... # etc.
patch < ... # this message
Nathan Myers
ncm@cantrip.org
-----------------------------
? config/cpu/i486
Index: acinclude.m4
===================================================================
RCS file: /cvs/gcc/egcs/libstdc++-v3/acinclude.m4,v
retrieving revision 1.15
diff -c -r1.15 acinclude.m4
*** acinclude.m4 2000/05/19 19:55:50 1.15
--- acinclude.m4 2000/05/20 00:21:10
***************
*** 281,288 ****
arm*)
cpu_include_dir="config/cpu/arm"
;;
! i486 | i586 | i686 | i786)
cpu_include_dir="config/cpu/i386"
;;
powerpc | rs6000)
cpu_include_dir="config/cpu/powerpc"
--- 281,291 ----
arm*)
cpu_include_dir="config/cpu/arm"
;;
! i386)
cpu_include_dir="config/cpu/i386"
+ ;;
+ i486 | i586 | i686 | i786)
+ cpu_include_dir="config/cpu/i486"
;;
powerpc | rs6000)
cpu_include_dir="config/cpu/powerpc"
Index: configure
===================================================================
RCS file: /cvs/gcc/egcs/libstdc++-v3/configure,v
retrieving revision 1.15
diff -c -r1.15 configure
*** configure 2000/05/19 19:55:50 1.15
--- configure 2000/05/20 00:21:12
***************
*** 2194,2201 ****
arm*)
cpu_include_dir="config/cpu/arm"
;;
! i486 | i586 | i686 | i786)
cpu_include_dir="config/cpu/i386"
;;
powerpc | rs6000)
cpu_include_dir="config/cpu/powerpc"
--- 2194,2204 ----
arm*)
cpu_include_dir="config/cpu/arm"
;;
! i386)
cpu_include_dir="config/cpu/i386"
+ ;;
+ i486 | i586 | i686 | i786)
+ cpu_include_dir="config/cpu/i486"
;;
powerpc | rs6000)
cpu_include_dir="config/cpu/powerpc"
Index: config/cpu/i386/bits/atomicity.h
===================================================================
RCS file: /cvs/gcc/egcs/libstdc++-v3/config/cpu/i386/bits/atomicity.h,v
retrieving revision 1.1
diff -c -r1.1 atomicity.h
*** atomicity.h 2000/04/26 02:51:10 1.1
--- atomicity.h 2000/05/20 00:21:12
***************
*** 42,58 ****
: : "ir" (__val), "m" (*__mem) : "memory");
}
- static inline char
- __attribute__ ((unused))
- __compare_and_swap (volatile long* __p, long __oldval, long __newval)
- {
- char __ret;
- long __readval;
-
- __asm__ __volatile__ ("lock; cmpxchgl %3, %1; sete %0"
- : "=q" (__ret), "=m" (*__p), "=a" (__readval)
- : "r" (__newval), "m" (*__p), "a" (__oldval));
- return __ret;
- }
-
#endif /* atomicity.h */
--- 42,45 ----