[patch] atomicity update
Nathan Myers
ncm@cantrip.org
Fri May 19 17:43:00 GMT 2000
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 ----
More information about the Libstdc++
mailing list