From 20b39ffafad66ba1746de6954aa85653d135a5b8 Mon Sep 17 00:00:00 2001 From: Matthias Clasen Date: Sat, 30 Sep 2006 13:59:01 +0000 Subject: [PATCH] Fix some issues with PLT entries. --- gobject/ChangeLog | 12 ++++++++++++ gobject/Makefile.am | 6 ++++++ gobject/gobject.c | 7 +++++-- gobject/gsignal.c | 4 ++-- gobject/gtype.c | 2 +- gobject/gvaluetypes.c | 12 ++++++------ gobject/pltcheck.sh | 17 +++++++++++++++++ 7 files changed, 49 insertions(+), 11 deletions(-) create mode 100755 gobject/pltcheck.sh diff --git a/gobject/ChangeLog b/gobject/ChangeLog index f2f268a..2811830 100644 --- a/gobject/ChangeLog +++ b/gobject/ChangeLog @@ -1,3 +1,15 @@ +Sat Sep 30 2006 Matthias Clasen + + * 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 * gtype.h: applied patch from Behdad with slight optimization, diff --git a/gobject/Makefile.am b/gobject/Makefile.am index 09d732b..f192ee0 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 d5290a1..7514c9a 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 /* @@ -28,10 +27,14 @@ #include "gsignal.h" #include "gparamspecs.h" #include "gvaluetypes.h" -#include "gobjectnotifyqueue.c" #include #include +#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 8bd1478..c65565a 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 04bcc7e..12ce66f 100644 --- a/gobject/gtype.c +++ b/gobject/gtype.c @@ -18,7 +18,6 @@ */ #include #include "gtype.h" -#include "gobjectalias.h" /* * MT safe @@ -29,6 +28,7 @@ #include "gbsearcharray.h" #include +#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 7bfc9f6..a479a58 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 #include /* 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 0000000..19edfac --- /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 '\