[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