From 8e7a50ab42016b5de658f2323015a9d7ff863cf7 Mon Sep 17 00:00:00 2001 From: Matthias Clasen Date: Thu, 4 Aug 2005 17:21:03 +0000 Subject: [PATCH] Always export g_atomic_int_get and g_atomic_pointer_get as functions, even 2005-08-04 Matthias Clasen * glib/glib.symbols: * glib/gatomic.[hc]: Always export g_atomic_int_get and g_atomic_pointer_get as functions, even if we have macros, to avoid changing the ABI depending on configuration. * glib/gatomic.c: Fix the s390 implementations of g_atomic_pointer_compare_and_exchange. --- ChangeLog | 10 ++++++++++ ChangeLog.pre-2-10 | 10 ++++++++++ ChangeLog.pre-2-12 | 10 ++++++++++ ChangeLog.pre-2-8 | 10 ++++++++++ glib/gatomic.c | 18 ++++++++++++++++-- glib/gatomic.h | 4 ++-- glib/glib.symbols | 3 ++- 7 files changed, 60 insertions(+), 5 deletions(-) diff --git a/ChangeLog b/ChangeLog index 2cc8fcce..d5fb2af8 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,13 @@ +2005-08-04 Matthias Clasen + + * glib/glib.symbols: + * glib/gatomic.[hc]: Always export g_atomic_int_get and + g_atomic_pointer_get as functions, even if we have macros, + to avoid changing the ABI depending on configuration. + + * glib/gatomic.c: Fix the s390 implementations of + g_atomic_pointer_compare_and_exchange. + 2005-08-04 Tor Lillqvist * glib/gstdio.h: Move the G_BEGIN_DECLS/G_END_DECLS pair outside diff --git a/ChangeLog.pre-2-10 b/ChangeLog.pre-2-10 index 2cc8fcce..d5fb2af8 100644 --- a/ChangeLog.pre-2-10 +++ b/ChangeLog.pre-2-10 @@ -1,3 +1,13 @@ +2005-08-04 Matthias Clasen + + * glib/glib.symbols: + * glib/gatomic.[hc]: Always export g_atomic_int_get and + g_atomic_pointer_get as functions, even if we have macros, + to avoid changing the ABI depending on configuration. + + * glib/gatomic.c: Fix the s390 implementations of + g_atomic_pointer_compare_and_exchange. + 2005-08-04 Tor Lillqvist * glib/gstdio.h: Move the G_BEGIN_DECLS/G_END_DECLS pair outside diff --git a/ChangeLog.pre-2-12 b/ChangeLog.pre-2-12 index 2cc8fcce..d5fb2af8 100644 --- a/ChangeLog.pre-2-12 +++ b/ChangeLog.pre-2-12 @@ -1,3 +1,13 @@ +2005-08-04 Matthias Clasen + + * glib/glib.symbols: + * glib/gatomic.[hc]: Always export g_atomic_int_get and + g_atomic_pointer_get as functions, even if we have macros, + to avoid changing the ABI depending on configuration. + + * glib/gatomic.c: Fix the s390 implementations of + g_atomic_pointer_compare_and_exchange. + 2005-08-04 Tor Lillqvist * glib/gstdio.h: Move the G_BEGIN_DECLS/G_END_DECLS pair outside diff --git a/ChangeLog.pre-2-8 b/ChangeLog.pre-2-8 index 2cc8fcce..d5fb2af8 100644 --- a/ChangeLog.pre-2-8 +++ b/ChangeLog.pre-2-8 @@ -1,3 +1,13 @@ +2005-08-04 Matthias Clasen + + * glib/glib.symbols: + * glib/gatomic.[hc]: Always export g_atomic_int_get and + g_atomic_pointer_get as functions, even if we have macros, + to avoid changing the ABI depending on configuration. + + * glib/gatomic.c: Fix the s390 implementations of + g_atomic_pointer_compare_and_exchange. + 2005-08-04 Tor Lillqvist * glib/gstdio.h: Move the G_BEGIN_DECLS/G_END_DECLS pair outside diff --git a/glib/gatomic.c b/glib/gatomic.c index ad1f163b..eb9bec35 100644 --- a/glib/gatomic.c +++ b/glib/gatomic.c @@ -464,7 +464,7 @@ g_atomic_pointer_compare_and_exchange (gpointer *atomic, __asm__ __volatile__ ("cs %0, %2, %1" : "+d" (result), "=Q" (*(atomic)) : "d" (newval), "m" (*(atomic)) : "cc" ); - result == oldval; + return result == oldval; } # elif GLIB_SIZEOF_VOID_P == 8 /* 64-bit system */ gboolean @@ -477,7 +477,7 @@ g_atomic_pointer_compare_and_exchange (gpointer *atomic, __asm__ __volatile__ ("csg %0, %2, %1" : "+d" (result), "=Q" (*a) : "d" ((long)(newval)), "m" (*a) : "cc" ); - result == oldval; + return result == oldval; } # else /* What's that */ # error "Your system has an unsupported pointer size" @@ -687,5 +687,19 @@ _g_atomic_thread_init (void) #endif /* DEFINE_WITH_MUTEXES */ } +#ifndef G_ATOMIC_OP_MEMORY_BARRIER_NEEDED +gint +(g_atomic_int_get) (gint *atomic) +{ + return g_atomic_int_get (atomic); +} + +gpointer +(g_atomic_pointer_get) (gpointer *atomic) +{ + return g_atomic_pointer_get (atomic); +} +#endif /* G_ATOMIC_OP_MEMORY_BARRIER_NEEDED */ + #define __G_ATOMIC_C__ #include "galiasdef.c" diff --git a/glib/gatomic.h b/glib/gatomic.h index 069fc174..4e050a2e 100644 --- a/glib/gatomic.h +++ b/glib/gatomic.h @@ -45,10 +45,10 @@ gboolean g_atomic_pointer_compare_and_exchange (gpointer *atomic, gpointer oldval, gpointer newval); -#ifdef G_ATOMIC_OP_MEMORY_BARRIER_NEEDED gint g_atomic_int_get (gint *atomic); gpointer g_atomic_pointer_get (gpointer *atomic); -#else /* !G_ATOMIC_OP_MEMORY_BARRIER_NEEDED */ + +#ifndef G_ATOMIC_OP_MEMORY_BARRIER_NEEDED # define g_atomic_int_get(atomic) (*(atomic)) # define g_atomic_pointer_get(atomic) (*(atomic)) #endif /* G_ATOMIC_OP_MEMORY_BARRIER_NEEDED */ diff --git a/glib/glib.symbols b/glib/glib.symbols index 38aeaa4c..fcaa08c0 100644 --- a/glib/glib.symbols +++ b/glib/glib.symbols @@ -82,7 +82,8 @@ g_atomic_int_add g_atomic_int_compare_and_exchange g_atomic_int_exchange_and_add g_atomic_pointer_compare_and_exchange -#ifdef G_ATOMIC_OP_MEMORY_BARRIER_NEEDED +#ifdef INCLUDE_INTERNAL_SYMBOLS + /* these are not internal, but we don't want to alias them */ g_atomic_int_get g_atomic_pointer_get #endif -- 2.34.1