Always export g_atomic_int_get and g_atomic_pointer_get as functions, even

2005-08-04  Matthias Clasen  <mclasen@redhat.com>

	* 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.
This commit is contained in:
Matthias Clasen 2005-08-04 17:21:03 +00:00 committed by Matthias Clasen
parent 9c45222942
commit 8e7a50ab42
7 changed files with 60 additions and 5 deletions

View File

@ -1,3 +1,13 @@
2005-08-04 Matthias Clasen <mclasen@redhat.com>
* 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 <tml@novell.com>
* glib/gstdio.h: Move the G_BEGIN_DECLS/G_END_DECLS pair outside

View File

@ -1,3 +1,13 @@
2005-08-04 Matthias Clasen <mclasen@redhat.com>
* 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 <tml@novell.com>
* glib/gstdio.h: Move the G_BEGIN_DECLS/G_END_DECLS pair outside

View File

@ -1,3 +1,13 @@
2005-08-04 Matthias Clasen <mclasen@redhat.com>
* 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 <tml@novell.com>
* glib/gstdio.h: Move the G_BEGIN_DECLS/G_END_DECLS pair outside

View File

@ -1,3 +1,13 @@
2005-08-04 Matthias Clasen <mclasen@redhat.com>
* 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 <tml@novell.com>
* glib/gstdio.h: Move the G_BEGIN_DECLS/G_END_DECLS pair outside

View File

@ -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"

View File

@ -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 */

View File

@ -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