gobject/: fully remove gobjectalias hacks

This commit is contained in:
Ryan Lortie 2010-07-07 19:40:48 -04:00
parent 2e53e50244
commit 0fc50fa5f7
22 changed files with 5 additions and 249 deletions

2
gobject/.gitignore vendored
View File

@ -3,8 +3,6 @@ glib-mkenums
gmarshal.[ch]
gmarshal.strings
gobject-query
gobjectalias.h
gobjectaliasdef.c
testgobject
libgobject-gdb.py
makefile.msc

View File

@ -26,15 +26,9 @@ AM_CPPFLAGS = \
gobject.def: gobject.symbols
$(AM_V_GEN) (echo -e EXPORTS; $(CPP) -P -DINCLUDE_VARIABLES -DINCLUDE_INTERNAL_SYMBOLS -DG_OS_WIN32 -DALL_FILES - <$(srcdir)/gobject.symbols | sed -e '/^$$/d' -e 's/^/ /' -e 's/G_GNUC_[^ ]*//g' | sort) > gobject.def
gobjectalias.h: gobject.symbols makegobjectalias.pl
$(AM_V_GEN) $(PERL) $(srcdir)/makegobjectalias.pl < $(srcdir)/gobject.symbols > gobjectalias.h
gobjectaliasdef.c: gobject.symbols makegobjectalias.pl
$(AM_V_GEN) $(PERL) $(srcdir)/makegobjectalias.pl -def < $(srcdir)/gobject.symbols > gobjectaliasdef.c
if OS_LINUX
if HAVE_GNUC_VISIBILITY
TESTS = abicheck.sh pltcheck.sh
TESTS = abicheck.sh
endif
endif
@ -144,7 +138,7 @@ gobject_c_sources = \
gvaluetypes.c
# these sources (also mentioned above) are generated.
BUILT_SOURCES = gmarshal.h gmarshal.c gobjectalias.h gobjectaliasdef.c
BUILT_SOURCES = gmarshal.h gmarshal.c
if ENABLE_DTRACE
gobject_probes.h: gobject_probes.d Makefile
@ -182,7 +176,6 @@ EXTRA_HEADERS =
EXTRA_DIST += \
$(gobject_private_h_sources) \
$(gobject_extra_sources) \
makegobjectalias.pl \
marshal-genstrings.pl
#
@ -259,17 +252,14 @@ EXTRA_DIST += \
gobject.rc.in \
libgobject-gdb.py.in \
glib-mkenums.in \
abicheck.sh \
pltcheck.sh
abicheck.sh
BUILT_EXTRA_DIST = \
makefile.msc \
gobject.rc \
gmarshal.h \
gmarshal.c \
stamp-gmarshal.h \
gobjectalias.h \
gobjectaliasdef.c
stamp-gmarshal.h
gobject-win32-res.o: gobject.rc
$(AM_V_GEN) $(WINDRES) gobject.rc $@

View File

@ -112,7 +112,6 @@
#include "glibintl.h"
#include "gobjectalias.h"
GType
g_binding_flags_get_type (void)
@ -952,6 +951,3 @@ g_object_bind_property (gpointer source,
NULL,
NULL, NULL);
}
#define __G_BINDING_C__
#include "gobjectaliasdef.c"

View File

@ -27,7 +27,6 @@
#include "gvaluearray.h"
#include "gclosure.h"
#include "gvaluecollector.h"
#include "gobjectalias.h"
/**
@ -666,6 +665,3 @@ g_value_take_boxed (GValue *value,
value_set_boxed_internal (value, boxed, FALSE, TRUE);
}
#define __G_BOXED_C__
#include "gobjectaliasdef.c"

View File

@ -28,7 +28,6 @@
#include "gclosure.h"
#include "gvalue.h"
#include "gobjectalias.h"
/**
@ -1237,6 +1236,3 @@ g_signal_type_cclosure_new (GType itype,
* A marshaller for a #GCClosure with a callback of type
* <literal>gchar* (*callback) (gpointer instance, GObject *arg1, gpointer arg2, gpointer user_data)</literal>.
*/
#define __G_CLOSURE_C__
#include "gobjectaliasdef.c"

View File

@ -28,7 +28,6 @@
#include "genums.h"
#include "gvalue.h"
#include "gvaluecollector.h"
#include "gobjectalias.h"
/**
@ -619,6 +618,3 @@ g_value_get_flags (const GValue *value)
return value->data[0].v_ulong;
}
#define __G_ENUMS_C__
#include "gobjectaliasdef.c"

View File

@ -34,12 +34,9 @@
#include "gparamspecs.h"
#include "gvaluetypes.h"
#include "gobject_trace.h"
#include "gobjectalias.h"
/* This should be included after gobjectalias.h (or pltcheck.sh will fail) */
#include "gobjectnotifyqueue.c"
/**
* SECTION:objects
* @short_description: The base object type
@ -3326,6 +3323,3 @@ static void
g_initially_unowned_class_init (GInitiallyUnownedClass *klass)
{
}
#define __G_OBJECT_C__
#include "gobjectaliasdef.c"

View File

@ -1,7 +1,5 @@
/* This file lists all exported symbols. It is used to generate
* the gobject.def file used to control exports on Windows and the
* gobjectalias.h/gobjectaliasdef.c files used to avoid PLT entries for
* internal uses of exported functions (see makegobjectalias.pl).
* the gobject.def file used to control exports on Windows.
*
* Every symbol must be included in the right
* #ifdef IN_HEADER(sym) #endif and

View File

@ -28,7 +28,6 @@
#include "gparam.h"
#include "gparamspecs.h"
#include "gvaluecollector.h"
#include "gobjectalias.h"
/**
@ -1496,6 +1495,3 @@ g_value_dup_param (const GValue *value)
return value->data[0].v_pointer ? g_param_spec_ref (value->data[0].v_pointer) : NULL;
}
#define __G_PARAM_C__
#include "gobjectaliasdef.c"

View File

@ -29,7 +29,6 @@
#include "gparamspecs.h"
#include "gvaluecollector.h"
#include "gvaluearray.h"
#include "gobjectalias.h"
/**
@ -2517,6 +2516,3 @@ g_param_spec_variant (const gchar *name,
return G_PARAM_SPEC (vspec);
}
#define __G_PARAMSPECS_C__
#include "gobjectaliasdef.c"

View File

@ -37,7 +37,6 @@
#include "gobject.h"
#include "genums.h"
#include "gobject_trace.h"
#include "gobjectalias.h"
/**
@ -3442,6 +3441,3 @@ g_signal_accumulator_true_handled (GSignalInvocationHint *ihint,
/* --- compile standard marshallers --- */
#include "gmarshal.c"
#define __G_SIGNAL_C__
#include "gobjectaliasdef.c"

View File

@ -25,7 +25,6 @@
#include "gmarshal.h"
#include "gvalue.h"
#include "gvaluetypes.h"
#include "gobjectalias.h"
GType
@ -204,6 +203,3 @@ g_source_set_closure (GSource *source,
g_closure_set_marshal (closure, marshal);
}
}
#define __G_SOURCECLOSURE_C__
#include "gobjectaliasdef.c"

View File

@ -30,7 +30,6 @@
#include "gtypeplugin.h"
#include "gvaluecollector.h"
#include "gbsearcharray.h"
#include "gobjectalias.h"
#include "gatomicarray.h"
#include "gobject_trace.h"
@ -4616,6 +4615,3 @@ g_type_class_get_private (GTypeClass *klass,
return G_STRUCT_MEMBER_P (klass, offset);
}
#define __G_TYPE_C__
#include "gobjectaliasdef.c"

View File

@ -23,7 +23,6 @@
#include "gtypeplugin.h"
#include "gtypemodule.h"
#include "gobjectalias.h"
/**
@ -580,7 +579,3 @@ g_type_module_register_flags (GTypeModule *module,
return g_type_module_register_type (G_TYPE_MODULE (module),
G_TYPE_FLAGS, name, &flags_type_info, 0);
}
#define __G_TYPE_MODULE_C__
#include "gobjectaliasdef.c"

View File

@ -20,7 +20,6 @@
#include "config.h"
#include "gtypeplugin.h"
#include "gobjectalias.h"
/**
@ -205,6 +204,3 @@ g_type_plugin_complete_interface_info (GTypePlugin *plugin,
interface_type,
info);
}
#define __G_TYPE_PLUGIN_C__
#include "gobjectaliasdef.c"

View File

@ -28,7 +28,6 @@
#include "gvalue.h"
#include "gvaluecollector.h"
#include "gbsearcharray.h"
#include "gobjectalias.h"
/**
@ -554,6 +553,3 @@ g_value_transform (const GValue *src_value,
}
return FALSE;
}
#define __G_VALUE_C__
#include "gobjectaliasdef.c"

View File

@ -27,7 +27,6 @@
#include <stdlib.h> /* qsort() */
#include "gvaluearray.h"
#include "gobjectalias.h"
/**
@ -340,6 +339,3 @@ g_value_array_sort_with_data (GValueArray *value_array,
compare_func, user_data);
return value_array;
}
#define __G_VALUE_ARRAY_C__
#include "gobjectaliasdef.c"

View File

@ -23,7 +23,6 @@
#include "gvalue.h"
#include "genums.h"
#include "gobjectalias.h"
/* same type transforms

View File

@ -33,7 +33,6 @@
#include "gparam.h"
#include "gboxed.h"
#include "genums.h"
#include "gobjectalias.h"
/* --- value functions --- */
@ -1394,6 +1393,3 @@ g_pointer_type_register_static (const gchar *name)
return type;
}
#define __G_VALUETYPES_C__
#include "gobjectaliasdef.c"

View File

@ -17,8 +17,6 @@ all : \
glib-genmarshal.exe \
gmarshal.h \
gmarshal.c \
gobjectalias.h \
gobjectaliasdef.c \
gmarshal.strings \
gobject-query.exe \
libgobject-2.0-@LT_CURRENT_MINUS_AGE@.dll \
@ -42,12 +40,6 @@ gobject_OBJECTS = \
gvaluetypes.obj \
gvaluetransform.obj
gobjectalias.h: gobject.symbols
perl makegobjectalias.pl < gobject.symbols > gobjectalias.h
gobjectaliasdef.c: gobject.symbols
perl makegobjectalias.pl -def < gobject.symbols > gobjectaliasdef.c
gobject.def: gobject.symbols
echo EXPORTS > gobject.def
cl /EP -DINCLUDE_VARIABLES -DG_OS_WIN32 -DALL_FILES \

View File

@ -1,139 +0,0 @@
#!/usr/bin/perl -w
exit 0;
my $do_def = 0;
if (($#ARGV >= 0) && ($ARGV[0] eq "-def")) {
shift;
$do_def = 1;
}
print <<EOF;
/* Generated by makegobjectalias.pl */
#ifndef DISABLE_VISIBILITY
#include "glibconfig.h"
#ifdef G_HAVE_GNUC_VISIBILITY
EOF
if ($do_def) {
print <<EOF
#undef IN_FILE
#define IN_FILE defined
#undef IN_HEADER
#define IN_HEADER(x) 1
EOF
}
else {
print <<EOF
#define IN_FILE(x) 1
#define IN_HEADER defined
EOF
}
my $in_comment = 0;
my $in_skipped_section = 0;
while (<>) {
# ignore empty lines
next if /^\s*$/;
# skip comments
if ($_ =~ /^\s*\/\*/)
{
$in_comment = 1;
}
if ($in_comment)
{
if ($_ =~ /\*\/\s$/)
{
$in_comment = 0;
}
next;
}
# handle ifdefs
if ($_ =~ /^\#endif/)
{
if (!$in_skipped_section)
{
print $_;
}
$in_skipped_section = 0;
next;
}
if ($_ =~ /^\#ifdef\s+(INCLUDE_VARIABLES|INCLUDE_INTERNAL_SYMBOLS|ALL_FILES)/)
{
$in_skipped_section = 1;
}
if ($in_skipped_section)
{
next;
}
if ($_ =~ /^\#ifn?def\s+G/)
{
print $_;
next;
}
if ($_ =~ /^\#if.*(IN_FILE|IN_HEADER)/)
{
print $_;
next;
}
chop;
my $str = $_;
my @words;
my $attributes = "";
@words = split(/ /, $str);
$str = shift(@words);
chomp($str);
my $alias = "IA__".$str;
# Drop any Win32 specific .def file syntax, but keep attributes
foreach $word (@words) {
$attributes = "$attributes $word" unless $word eq "PRIVATE";
}
if (!$do_def) {
print <<EOF
extern __typeof ($str) $alias __attribute((visibility("hidden")))$attributes;
\#define $str $alias
EOF
}
else {
print <<EOF
\#undef $str
extern __typeof ($str) $str __attribute((alias("$alias"), visibility("default")));
EOF
}
}
print <<EOF;
#endif /* G_HAVE_GNUC_VISIBILITY */
#endif /* DISABLE_VISIBILITY */
EOF

View File

@ -1,19 +0,0 @@
#!/bin/sh
exit 0
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