Fix some issues with PLT entries.

This commit is contained in:
Matthias Clasen 2006-09-30 13:59:01 +00:00
parent b6a3cd8039
commit 20b39ffafa
7 changed files with 49 additions and 11 deletions

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

17
gobject/pltcheck.sh Executable file
View File

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