mirror of
https://gitlab.gnome.org/GNOME/glib.git
synced 2025-12-14 12:28:29 +01:00
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:
committed by
Matthias Clasen
parent
9c45222942
commit
8e7a50ab42
10
ChangeLog
10
ChangeLog
@@ -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>
|
2005-08-04 Tor Lillqvist <tml@novell.com>
|
||||||
|
|
||||||
* glib/gstdio.h: Move the G_BEGIN_DECLS/G_END_DECLS pair outside
|
* glib/gstdio.h: Move the G_BEGIN_DECLS/G_END_DECLS pair outside
|
||||||
|
|||||||
@@ -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>
|
2005-08-04 Tor Lillqvist <tml@novell.com>
|
||||||
|
|
||||||
* glib/gstdio.h: Move the G_BEGIN_DECLS/G_END_DECLS pair outside
|
* glib/gstdio.h: Move the G_BEGIN_DECLS/G_END_DECLS pair outside
|
||||||
|
|||||||
@@ -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>
|
2005-08-04 Tor Lillqvist <tml@novell.com>
|
||||||
|
|
||||||
* glib/gstdio.h: Move the G_BEGIN_DECLS/G_END_DECLS pair outside
|
* glib/gstdio.h: Move the G_BEGIN_DECLS/G_END_DECLS pair outside
|
||||||
|
|||||||
@@ -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>
|
2005-08-04 Tor Lillqvist <tml@novell.com>
|
||||||
|
|
||||||
* glib/gstdio.h: Move the G_BEGIN_DECLS/G_END_DECLS pair outside
|
* glib/gstdio.h: Move the G_BEGIN_DECLS/G_END_DECLS pair outside
|
||||||
|
|||||||
@@ -464,7 +464,7 @@ g_atomic_pointer_compare_and_exchange (gpointer *atomic,
|
|||||||
__asm__ __volatile__ ("cs %0, %2, %1"
|
__asm__ __volatile__ ("cs %0, %2, %1"
|
||||||
: "+d" (result), "=Q" (*(atomic))
|
: "+d" (result), "=Q" (*(atomic))
|
||||||
: "d" (newval), "m" (*(atomic)) : "cc" );
|
: "d" (newval), "m" (*(atomic)) : "cc" );
|
||||||
result == oldval;
|
return result == oldval;
|
||||||
}
|
}
|
||||||
# elif GLIB_SIZEOF_VOID_P == 8 /* 64-bit system */
|
# elif GLIB_SIZEOF_VOID_P == 8 /* 64-bit system */
|
||||||
gboolean
|
gboolean
|
||||||
@@ -477,7 +477,7 @@ g_atomic_pointer_compare_and_exchange (gpointer *atomic,
|
|||||||
__asm__ __volatile__ ("csg %0, %2, %1"
|
__asm__ __volatile__ ("csg %0, %2, %1"
|
||||||
: "+d" (result), "=Q" (*a)
|
: "+d" (result), "=Q" (*a)
|
||||||
: "d" ((long)(newval)), "m" (*a) : "cc" );
|
: "d" ((long)(newval)), "m" (*a) : "cc" );
|
||||||
result == oldval;
|
return result == oldval;
|
||||||
}
|
}
|
||||||
# else /* What's that */
|
# else /* What's that */
|
||||||
# error "Your system has an unsupported pointer size"
|
# error "Your system has an unsupported pointer size"
|
||||||
@@ -687,5 +687,19 @@ _g_atomic_thread_init (void)
|
|||||||
#endif /* DEFINE_WITH_MUTEXES */
|
#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__
|
#define __G_ATOMIC_C__
|
||||||
#include "galiasdef.c"
|
#include "galiasdef.c"
|
||||||
|
|||||||
@@ -45,10 +45,10 @@ gboolean g_atomic_pointer_compare_and_exchange (gpointer *atomic,
|
|||||||
gpointer oldval,
|
gpointer oldval,
|
||||||
gpointer newval);
|
gpointer newval);
|
||||||
|
|
||||||
#ifdef G_ATOMIC_OP_MEMORY_BARRIER_NEEDED
|
|
||||||
gint g_atomic_int_get (gint *atomic);
|
gint g_atomic_int_get (gint *atomic);
|
||||||
gpointer g_atomic_pointer_get (gpointer *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_int_get(atomic) (*(atomic))
|
||||||
# define g_atomic_pointer_get(atomic) (*(atomic))
|
# define g_atomic_pointer_get(atomic) (*(atomic))
|
||||||
#endif /* G_ATOMIC_OP_MEMORY_BARRIER_NEEDED */
|
#endif /* G_ATOMIC_OP_MEMORY_BARRIER_NEEDED */
|
||||||
|
|||||||
@@ -82,7 +82,8 @@ g_atomic_int_add
|
|||||||
g_atomic_int_compare_and_exchange
|
g_atomic_int_compare_and_exchange
|
||||||
g_atomic_int_exchange_and_add
|
g_atomic_int_exchange_and_add
|
||||||
g_atomic_pointer_compare_and_exchange
|
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_int_get
|
||||||
g_atomic_pointer_get
|
g_atomic_pointer_get
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
Reference in New Issue
Block a user