diff options
author | Matthias Clasen <matthiasc@src.gnome.org> | 2006-09-30 13:59:01 +0000 |
---|---|---|
committer | Matthias Clasen <matthiasc@src.gnome.org> | 2006-09-30 13:59:01 +0000 |
commit | 20b39ffafad66ba1746de6954aa85653d135a5b8 (patch) | |
tree | 205ef8445cf96574a21a87a505e8d5ba9602b5d5 /gobject | |
parent | b6a3cd8039125e04d6f72d37c2bbf46610c9959c (diff) |
Fix some issues with PLT entries.
Diffstat (limited to 'gobject')
-rw-r--r-- | gobject/ChangeLog | 12 | ||||
-rw-r--r-- | gobject/Makefile.am | 6 | ||||
-rw-r--r-- | gobject/gobject.c | 7 | ||||
-rw-r--r-- | gobject/gsignal.c | 4 | ||||
-rw-r--r-- | gobject/gtype.c | 2 | ||||
-rw-r--r-- | gobject/gvaluetypes.c | 12 | ||||
-rwxr-xr-x | gobject/pltcheck.sh | 17 |
7 files changed, 49 insertions, 11 deletions
diff --git a/gobject/ChangeLog b/gobject/ChangeLog index f2f268aa3..281183073 100644 --- a/gobject/ChangeLog +++ b/gobject/ChangeLog @@ -1,3 +1,15 @@ +Sat Sep 30 2006 Matthias Clasen <mclasen@redhat.com> + + * pltcheck.sh: Script to check PLT entries. + + * Makefile.am (TESTS): Run pltcheck.sh + + * gtype.c: + * gsignal.c: + * gobject.c: + * gvaluetypes.c: Move all includes before gobjectalias.h. + (#3545422, Behdad Esfahbod) + Fri Sep 22 13:41:02 2006 Tim Janik <timj@imendio.com> * gtype.h: applied patch from Behdad with slight optimization, diff --git a/gobject/Makefile.am b/gobject/Makefile.am index 09d732b41..f192ee09f 100644 --- a/gobject/Makefile.am +++ b/gobject/Makefile.am @@ -154,6 +154,12 @@ EXTRA_DIST = \ gen_sources = xgen-gmh xgen-gmc xgen-gms CLEANFILES = $(gen_sources) +if OS_LINUX +if HAVE_GNUC_VISIBILITY +TESTS = pltcheck.sh +endif +endif + # normal autogeneration rules # all autogenerated files need to be generated in the srcdir, # so old versions get remade and are not confused with newer diff --git a/gobject/gobject.c b/gobject/gobject.c index d5290a108..7514c9a3d 100644 --- a/gobject/gobject.c +++ b/gobject/gobject.c @@ -17,7 +17,6 @@ * Boston, MA 02111-1307, USA. */ #include "gobject.h" -#include "gobjectalias.h" #include <glib/gdatasetprivate.h> /* @@ -28,10 +27,14 @@ #include "gsignal.h" #include "gparamspecs.h" #include "gvaluetypes.h" -#include "gobjectnotifyqueue.c" #include <string.h> #include <signal.h> +#include "gobjectalias.h" + +/* This should be included after gobjectalias.h (or pltcheck.sh will fail) */ +#include "gobjectnotifyqueue.c" + #define PREALLOC_CPARAMS (8) diff --git a/gobject/gsignal.c b/gobject/gsignal.c index 8bd147849..c65565ae2 100644 --- a/gobject/gsignal.c +++ b/gobject/gsignal.c @@ -32,6 +32,8 @@ #include "gvaluecollector.h" #include "gvaluetypes.h" #include "gboxed.h" +#include "gobject.h" +#include "genums.h" #include "gobjectalias.h" @@ -2605,8 +2607,6 @@ g_signal_accumulator_true_handled (GSignalInvocationHint *ihint, } /* --- compile standard marshallers --- */ -#include "gobject.h" -#include "genums.h" #include "gmarshal.c" #define __G_SIGNAL_C__ diff --git a/gobject/gtype.c b/gobject/gtype.c index 04bcc7e10..12ce66fe8 100644 --- a/gobject/gtype.c +++ b/gobject/gtype.c @@ -18,7 +18,6 @@ */ #include <config.h> #include "gtype.h" -#include "gobjectalias.h" /* * MT safe @@ -29,6 +28,7 @@ #include "gbsearcharray.h" #include <string.h> +#include "gobjectalias.h" /* NOTE: some functions (some internal variants and exported ones) * invalidate data portions of the TypeNodes. if external functions/callbacks diff --git a/gobject/gvaluetypes.c b/gobject/gvaluetypes.c index 7bfc9f6c9..a479a5807 100644 --- a/gobject/gvaluetypes.c +++ b/gobject/gvaluetypes.c @@ -24,6 +24,12 @@ #include "gvaluetypes.h" #include "gvaluecollector.h" + +#include "gobject.h" +#include "gparam.h" +#include "gboxed.h" +#include "genums.h" + #include "gobjectalias.h" #include <string.h> #include <stdlib.h> /* qsort() */ @@ -847,12 +853,6 @@ g_value_get_gtype (const GValue *value) } -/* need extra includes for g_strdup_value_contents() ;( */ -#include "gobject.h" -#include "gparam.h" -#include "gboxed.h" -#include "genums.h" - gchar* g_strdup_value_contents (const GValue *value) { diff --git a/gobject/pltcheck.sh b/gobject/pltcheck.sh new file mode 100755 index 000000000..19edfac02 --- /dev/null +++ b/gobject/pltcheck.sh @@ -0,0 +1,17 @@ +#!/bin/sh + +LANG=C + +status=0 + +if ! which readelf 2>/dev/null >/dev/null; then + echo "'readelf' not found; skipping test" + exit 0 +fi + +for so in .libs/lib*.so; do + echo Checking $so for local PLT entries + readelf -r $so | grep 'JU\?MP_SLOT' | grep '\<g_type_\|\<g_boxed_\|\<g_value_\|\<g_cclosure_\|\<g_closure_\|\<g_signal\|\<g_enum_\|\<g_flags_\|\<g_io_\|\<g_object_\|\<g_param_' && status=1 +done + +exit $status |