2006-06-01 Arnaud Charlet * configure: work around libtool bug on ia64 hpux See http://bugzilla.gnome.org/show_bug.cgi?id=343485 2006-03-14 Arnaud Charlet * glib/gatomic.c: work around GCC 3.4 limitation on ia64 platforms --- glib/gatomic.c.orig 2005-12-17 07:20:50.000000000 -0500 +++ glib/gatomic.c 2006-03-14 03:09:49.415176530 -0500 @@ -410,6 +410,14 @@ g_atomic_pointer_compare_and_exchange (v # elif defined (G_ATOMIC_IA64) /* Adapted from CVS version 1.8 of glibc's sysdeps/ia64/bits/atomic.h */ + +extern int __sync_fetch_and_add_si (int *, int); +extern long __sync_fetch_and_add_di (long *, long); +#define __sync_fetch_and_add(PTR,VAL) \ + ((sizeof (*(PTR)) == sizeof(int)) \ + ? (__typeof__(*(PTR))) __sync_fetch_and_add_si((int *)(PTR),(int)(VAL)) \ + : (__typeof__(*(PTR))) __sync_fetch_and_add_di((long *)(PTR),(long)(VAL))) + gint g_atomic_int_exchange_and_add (volatile gint *atomic, gint val) @@ -424,6 +432,13 @@ g_atomic_int_add (volatile gint *atomic, __sync_fetch_and_add (atomic, val); } +extern int __sync_bool_compare_and_swap_si (int *, int, int); +extern int __sync_bool_compare_and_swap_di (long *, long, long); +#define __sync_bool_compare_and_swap(PTR, OLD, NEW) \ + ((sizeof (*(PTR)) == sizeof(int)) \ + ? __sync_bool_compare_and_swap_si((int *)(PTR),(int)(OLD),(int)(NEW)) \ + : __sync_bool_compare_and_swap_di((long *)(PTR),(long)(OLD),(long)(NEW))) + gboolean g_atomic_int_compare_and_exchange (volatile gint *atomic, gint oldval, *** configure.old Fri May 26 08:34:27 2006 --- configure Thu Jun 1 05:09:42 2006 *************** *** 11426,11432 **** case $host_cpu in hppa*64*|ia64*) ! hardcode_libdir_flag_spec_ld='+b $libdir' hardcode_direct=no hardcode_shlibpath_var=no ;; --- 11426,11432 ---- case $host_cpu in hppa*64*|ia64*) ! hardcode_libdir_flag_spec_ld='${wl}+b ${wl}$libdir' hardcode_direct=no hardcode_shlibpath_var=no ;;