This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

libjava multilib patch


Hi all,

I'm installing the following patch as obvious. It fixes compilation of
libjava on x86-64 and doesn't touch any other port. Now I just need to fix
32 bit linking of libjava and we can finally have working multilib java
x86-64 support.

2002-09-30  Bo Thorsen  <bo@suse.de>

        * sysdep/x86-64/locks.h (compare_and_swap): Fix multilib support.

Index: libjava/sysdep/x86-64/locks.h
===================================================================
RCS file: /cvs/gcc/gcc/libjava/sysdep/x86-64/locks.h,v
retrieving revision 1.1
diff -u -r1.1 locks.h
--- libjava/sysdep/x86-64/locks.h	19 Jul 2002 14:41:15 -0000	1.1
+++ libjava/sysdep/x86-64/locks.h	1 Oct 2002 08:56:57 -0000
@@ -24,10 +24,17 @@
 compare_and_swap(volatile obj_addr_t *addr, obj_addr_t old, obj_addr_t new_val)
 {
   char result;
+#ifdef __x86_64__
   __asm__ __volatile__("lock; cmpxchgq %2, %0; setz %1"
 	      : "+m"(*(addr)), "=q"(result)
 	      : "r" (new_val), "a"(old)
 	      : "memory");
+#else
+  __asm__ __volatile__("lock; cmpxchgl %2, %0; setz %1"
+		       : "+m"(*(addr)), "=q"(result)
+		       : "r" (new_val), "a"(old)
+		       : "memory");
+#endif
   return (bool) result;
 }

Bo.

-- 

     Bo Thorsen                 |   Praestevejen 4
     Free software developer    |   5290 Marslev
     SuSE Labs                  |   Denmark


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]