diff options
71 files changed, 1147 insertions, 10 deletions
diff --git a/gio/ChangeLog b/gio/ChangeLog index 211d1b031..05557fd07 100644 --- a/gio/ChangeLog +++ b/gio/ChangeLog @@ -1,3 +1,22 @@ +2007-11-28 Alexander Larsson <alexl@redhat.com> + + * Makefile.am: + * abicheck.sh: Added. + * makegioalias.pl: Added. + * pltcheck.sh: Added. + * gio.symbols: Added. + * *.c: + * inotify/*.c + Initial work on adding symbol handling. + + * gvfs.h: + Correct ifdef guard name + + * fam/Makefile.am: + * inotify/Makefile.am: + * xdgmime/Makefile.am: + Include toplevel Makefile.decl + 2007-11-27 Matthias Clasen <mclasen@redhat.com> * gcontenttype.c: Move doc comments to the unix section. diff --git a/gio/Makefile.am b/gio/Makefile.am index f965501ff..b5895171c 100644 --- a/gio/Makefile.am +++ b/gio/Makefile.am @@ -1,3 +1,5 @@ +include $(top_srcdir)/Makefile.decl + NULL = SUBDIRS= @@ -6,6 +8,21 @@ if OS_UNIX SUBDIRS += xdgmime endif +gio.def: gio.symbols + (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 + +gioalias.h: gio.symbols + $(PERL) $(srcdir)/makegioalias.pl < $(srcdir)/gio.symbols > gioalias.h + +gioaliasdef.c: gio.symbols + $(PERL) $(srcdir)/makegioalias.pl -def < $(srcdir)/gio.symbols > gioaliasdef.c + +if OS_LINUX +if HAVE_GNUC_VISIBILITY +TESTS = abicheck.sh pltcheck.sh +endif +endif + AM_CPPFLAGS = \ -DG_LOG_DOMAIN=\"GLib-GIO\" \ -I$(top_builddir) \ @@ -19,8 +36,9 @@ AM_CPPFLAGS = \ lib_LTLIBRARIES = libgio-2.0.la marshal_sources = \ - gio-marshal.h \ - gio-marshal.c \ + gio-marshal.h \ + gio-marshal.c \ + makegioalias.pl \ $(NULL) if CROSS_COMPILING @@ -215,8 +233,13 @@ gioinclude_HEADERS = \ gvolumemonitor.h \ $(NULL) + +# these sources (also mentioned above) are generated. +BUILT_SOURCES = gio-marshal.h gio-marshal.c gioalias.h gioaliasdef.c + EXTRA_DIST = \ gio-marshal.list \ + gio.symbols \ $(NULL) CLEANFILES = \ diff --git a/gio/abicheck.sh b/gio/abicheck.sh new file mode 100755 index 000000000..692ae2a19 --- /dev/null +++ b/gio/abicheck.sh @@ -0,0 +1,13 @@ +#! /bin/sh + +egrep '^#([^i]|if).*[^\]$' "${top_builddir:-..}/glibconfig.h" > glibconfig.cpp + +INCLUDES="-include ${top_builddir:-..}/config.h" +INCLUDES="$INCLUDES -include glibconfig.cpp" + +cpp -DINCLUDE_VARIABLES -P $INCLUDES -DALL_FILES ${srcdir:-.}/gobject.symbols | sed -e '/^$/d' -e 's/ G_GNUC.*$//' -e 's/ PRIVATE$//' | sort > expected-abi +rm glibconfig.cpp + +nm -D -g --defined-only .libs/libgio-2.0.so | cut -d ' ' -f 3 | sort > actual-abi + +diff -u expected-abi actual-abi && rm expected-abi actual-abi diff --git a/gio/fam/Makefile.am b/gio/fam/Makefile.am index 053c74163..3d9b4d592 100644 --- a/gio/fam/Makefile.am +++ b/gio/fam/Makefile.am @@ -1,3 +1,5 @@ +include $(top_srcdir)/Makefile.decl + NULL = module_flags = -export_dynamic -avoid-version -module -no-undefined -export-symbols-regex '^g_io_module_(load|unload)' diff --git a/gio/gappinfo.c b/gio/gappinfo.c index 7dfd1623a..98a5fe1dc 100644 --- a/gio/gappinfo.c +++ b/gio/gappinfo.c @@ -25,6 +25,8 @@ #include "glibintl.h" #include <gioerror.h> +#include "gioalias.h" + /** * SECTION:gappinfo * @short_description: Application information and launch contexts @@ -33,8 +35,6 @@ * #GAppInfo and #GAppLaunchContext are used for describing and launching * installed system applications. * - * @Note: These may/will be moved to Gtk+ in the future. - * **/ static void g_app_info_base_init (gpointer g_class); @@ -594,3 +594,6 @@ g_app_launch_context_launch_failed (GAppLaunchContext *context, if (class->launch_failed != NULL) class->launch_failed (context, startup_notify_id); } + +#define __G_APP_INFO_C__ +#include "gioaliasdef.c" diff --git a/gio/gasynchelper.c b/gio/gasynchelper.c index 620885d45..aefd987b9 100644 --- a/gio/gasynchelper.c +++ b/gio/gasynchelper.c @@ -24,6 +24,8 @@ #include "gasynchelper.h" +#include "gioalias.h" + /** * SECTION:gasynchelper * @short_description: Asynchronous Helper Functions diff --git a/gio/gasyncresult.c b/gio/gasyncresult.c index 9d698a599..5bba11374 100644 --- a/gio/gasyncresult.c +++ b/gio/gasyncresult.c @@ -24,6 +24,8 @@ #include "gasyncresult.h" #include "glibintl.h" +#include "gioalias.h" + /** * SECTION:gasyncresult * @short_description: Asynchronous Function Results @@ -167,3 +169,6 @@ g_async_result_get_source_object (GAsyncResult *res) return (* iface->get_source_object) (res); } + +#define __G_ASYNC_RESULT_C__ +#include "gioaliasdef.c" diff --git a/gio/gbufferedinputstream.c b/gio/gbufferedinputstream.c index bbc9a4c8e..49295ee0f 100644 --- a/gio/gbufferedinputstream.c +++ b/gio/gbufferedinputstream.c @@ -28,6 +28,8 @@ #include <string.h> #include "glibintl.h" +#include "gioalias.h" + /** * SECTION:gbufferedinputstream * @short_description: Buffered Input Stream @@ -1359,4 +1361,8 @@ g_buffered_input_stream_skip_finish (GInputStream *stream, return data->bytes_skipped; } + +#define __G_BUFFERED_INPUT_STREAM_C__ +#include "gioaliasdef.c" + /* vim: ts=2 sw=2 et */ diff --git a/gio/gbufferedoutputstream.c b/gio/gbufferedoutputstream.c index 309de9ee6..2fc57aa3e 100644 --- a/gio/gbufferedoutputstream.c +++ b/gio/gbufferedoutputstream.c @@ -27,6 +27,8 @@ #include "string.h" #include "glibintl.h" +#include <gioalias.h> + /** * SECTION:gbufferedoutputstream * @short_description: Buffered Output Stream @@ -758,4 +760,7 @@ g_buffered_output_stream_close_finish (GOutputStream *stream, return TRUE; } +#define __G_BUFFERED_OUTPUT_STREAM_C__ +#include "gioaliasdef.c" + /* vim: ts=2 sw=2 et */ diff --git a/gio/gcancellable.c b/gio/gcancellable.c index a31420bb2..e14e98123 100644 --- a/gio/gcancellable.c +++ b/gio/gcancellable.c @@ -27,6 +27,7 @@ #include "gcancellable.h" #include "glibintl.h" +#include "gioalias.h" /** * SECTION:gcancellable @@ -334,4 +335,5 @@ g_cancellable_cancel (GCancellable *cancellable) } } - +#define __G_CANCELLABLE_C__ +#include "gioaliasdef.c" diff --git a/gio/gcontenttype.c b/gio/gcontenttype.c index 84037ce8b..0838827c9 100644 --- a/gio/gcontenttype.c +++ b/gio/gcontenttype.c @@ -28,6 +28,8 @@ #include "gcontenttypeprivate.h" #include "glibintl.h" +#include "gioalias.h" + /** * SECTION:gcontenttype * @short_description: platform specific content typing @@ -868,3 +870,6 @@ g_content_types_get_registered (void) } #endif /* Unix version */ + +#define __G_CONTENT_TYPE_C__ +#include "gioaliasdef.c" diff --git a/gio/gdatainputstream.c b/gio/gdatainputstream.c index 095428a56..77dbd5c85 100644 --- a/gio/gdatainputstream.c +++ b/gio/gdatainputstream.c @@ -25,6 +25,8 @@ #include "gdatainputstream.h" #include "glibintl.h" +#include "gioalias.h" + /** * SECTION:gdatainputstream * @short_description: Data Input Stream @@ -854,3 +856,6 @@ g_data_input_stream_read_until (GDataInputStream *stream, return data_until; } + +#define __G_DATA_INPUT_STREAM_C__ +#include "gioaliasdef.c" diff --git a/gio/gdataoutputstream.c b/gio/gdataoutputstream.c index 5f6bd820d..fc7c57199 100644 --- a/gio/gdataoutputstream.c +++ b/gio/gdataoutputstream.c @@ -25,6 +25,8 @@ #include "gdataoutputstream.h" #include "glibintl.h" +#include "gioalias.h" + /** * SECTION:gdataoutputstream * @short_description: Data Output Stream @@ -473,3 +475,6 @@ g_data_output_stream_put_string (GDataOutputStream *stream, &bytes_written, cancellable, error); } + +#define __G_DATA_OUTPUT_STREAM_C__ +#include "gioaliasdef.c" diff --git a/gio/gdataoutputstream.h b/gio/gdataoutputstream.h index 954540413..643cbde20 100644 --- a/gio/gdataoutputstream.h +++ b/gio/gdataoutputstream.h @@ -74,8 +74,6 @@ GDataOutputStream* g_data_output_stream_new (GOutputStream *base_stream) void g_data_output_stream_set_byte_order (GDataOutputStream *stream, GDataStreamByteOrder order); GDataStreamByteOrder g_data_output_stream_get_byte_order (GDataOutputStream *stream); -void g_data_output_stream_set_expand_buffer (GDataOutputStream *stream, - gboolean expand_buffer); gboolean g_data_output_stream_put_byte (GDataOutputStream *stream, guchar data, diff --git a/gio/gdesktopappinfo.c b/gio/gdesktopappinfo.c index 80c0a1038..a99ea1a7f 100644 --- a/gio/gdesktopappinfo.c +++ b/gio/gdesktopappinfo.c @@ -36,6 +36,8 @@ #include <glib/gstdio.h> #include "glibintl.h" +#include "gioalias.h" + #define DEFAULT_APPLICATIONS_GROUP "Default Applications" #define MIME_CACHE_GROUP "MIME Cache" @@ -2190,3 +2192,6 @@ get_all_desktop_entries_for_mime_type (const char *base_mime_type) return desktop_entries; } + +#define __G_DESKTOP_APP_INFO_C__ +#include "gioaliasdef.c" diff --git a/gio/gdirectorymonitor.c b/gio/gdirectorymonitor.c index 489a7adcc..e1d71d192 100644 --- a/gio/gdirectorymonitor.c +++ b/gio/gdirectorymonitor.c @@ -29,6 +29,8 @@ #include "gvfs.h" #include "glibintl.h" +#include "gioalias.h" + /** * SECTION:gdirectorymonitor * @short_description: Directory Monitor @@ -489,3 +491,6 @@ g_directory_monitor_emit_event (GDirectoryMonitor *monitor, update_rate_limiter_timeout (monitor, limiter->send_virtual_changes_done_at); } } + +#define __G_DIRECTORY_MONITOR_C__ +#include "gioaliasdef.c" diff --git a/gio/gdrive.c b/gio/gdrive.c index 6303f33d5..e90218638 100644 --- a/gio/gdrive.c +++ b/gio/gdrive.c @@ -25,6 +25,8 @@ #include "gsimpleasyncresult.h" #include "glibintl.h" +#include "gioalias.h" + /** * SECTION:gdrive * @short_description: Virtual File System drive management @@ -383,3 +385,6 @@ g_drive_eject_finish (GDrive *drive, return (* iface->mount_finish) (drive, result, error); } + +#define __G_DRIVE_C__ +#include "gioaliasdef.c" diff --git a/gio/gdummyfile.c b/gio/gdummyfile.c index 40ac3b166..d2dd249aa 100644 --- a/gio/gdummyfile.c +++ b/gio/gdummyfile.c @@ -32,6 +32,8 @@ #include "gdummyfile.h" +#include "gioalias.h" + static void g_dummy_file_file_iface_init (GFileIface *iface); typedef struct { diff --git a/gio/gfile.c b/gio/gfile.c index a28671c5b..773d2f2c8 100644 --- a/gio/gfile.c +++ b/gio/gfile.c @@ -34,6 +34,8 @@ #include "gpollfilemonitor.h" #include "glibintl.h" +#include "gioalias.h" + /** * SECTION:gfile * @short_description: File and Directory Handling @@ -4605,3 +4607,6 @@ g_file_replace_contents_finish (GFile *file, return TRUE; } + +#define __G_FILE_C__ +#include "gioaliasdef.c" diff --git a/gio/gfileattribute.c b/gio/gfileattribute.c index 394404e1e..b3b2dfa8e 100644 --- a/gio/gfileattribute.c +++ b/gio/gfileattribute.c @@ -28,6 +28,8 @@ #include <glib-object.h> #include "glibintl.h" +#include "gioalias.h" + /** * SECTION:gfileattribute * @short_description: Key-Value Paired File Attributes @@ -906,3 +908,6 @@ g_file_attribute_info_list_add (GFileAttributeInfoList *list, list_update_public (priv); } + +#define __G_FILE_ATTRIBUTE_C__ +#include "gioaliasdef.c" diff --git a/gio/gfileenumerator.c b/gio/gfileenumerator.c index 44161515d..1f7e9dd30 100644 --- a/gio/gfileenumerator.c +++ b/gio/gfileenumerator.c @@ -27,6 +27,8 @@ #include "gsimpleasyncresult.h" #include "glibintl.h" +#include "gioalias.h" + /** * SECTION:gfileenumerator * @short_description: Enumerated Files Routines @@ -628,3 +630,6 @@ g_file_enumerator_real_close_finish (GFileEnumerator *enumerator, g_file_enumerator_real_close_async); return TRUE; } + +#define __G_FILE_ENUMERATOR_C__ +#include "gioaliasdef.c" diff --git a/gio/gfileicon.c b/gio/gfileicon.c index 5a6687905..612184d0c 100644 --- a/gio/gfileicon.c +++ b/gio/gfileicon.c @@ -25,6 +25,8 @@ #include "gfileicon.h" #include "gsimpleasyncresult.h" +#include "gioalias.h" + /** * SECTION:gfileicon * @short_description: Icons for given files @@ -269,3 +271,6 @@ g_file_icon_loadable_icon_iface_init (GLoadableIconIface *iface) iface->load_async = g_file_icon_load_async; iface->load_finish = g_file_icon_load_finish; } + +#define __G_FILE_ICON_C__ +#include "gioaliasdef.c" diff --git a/gio/gfileinfo.c b/gio/gfileinfo.c index 3df6325a6..3585a3eea 100644 --- a/gio/gfileinfo.c +++ b/gio/gfileinfo.c @@ -42,6 +42,8 @@ #include "gfileinfo.h" #include "glibintl.h" +#include "gioalias.h" + /* We use this nasty thing, because NULL is a valid attribute matcher (matches nothing) */ #define NO_ATTRIBUTE_MASK ((GFileAttributeMatcher *)1) @@ -2083,3 +2085,6 @@ g_file_attribute_matcher_enumerate_next (GFileAttributeMatcher *matcher) return get_attribute_for_id (sub_matcher->id); } } + +#define __G_FILE_INFO_C__ +#include "gioaliasdef.c" diff --git a/gio/gfileinputstream.c b/gio/gfileinputstream.c index 94c02699c..0d52cf9ab 100644 --- a/gio/gfileinputstream.c +++ b/gio/gfileinputstream.c @@ -28,6 +28,8 @@ #include "gsimpleasyncresult.h" #include "glibintl.h" +#include "gioalias.h" + /** * SECTION:gfileinputstream * @short_description: file input streaming operations @@ -518,3 +520,7 @@ g_file_input_stream_real_query_info_finish (GFileInputStream *stream, return NULL; } + +#define __G_FILE_INPUT_STREAM_C__ +#include "gioaliasdef.c" + diff --git a/gio/gfilemonitor.c b/gio/gfilemonitor.c index eaec3cf8e..1e1b5a213 100644 --- a/gio/gfilemonitor.c +++ b/gio/gfilemonitor.c @@ -28,6 +28,8 @@ #include "gvfs.h" #include "glibintl.h" +#include "gioalias.h" + /** * SECTION:gfilemonitor * @short_description: File Monitor @@ -403,3 +405,6 @@ g_file_monitor_emit_event (GFileMonitor *monitor, schedule_virtual_change_done (monitor, file); } } + +#define __G_FILE_MONITOR_C__ +#include "gioaliasdef.c" diff --git a/gio/gfilenamecompleter.c b/gio/gfilenamecompleter.c index 76e6276a6..8558ecfda 100644 --- a/gio/gfilenamecompleter.c +++ b/gio/gfilenamecompleter.c @@ -27,6 +27,8 @@ #include <string.h> #include "glibintl.h" +#include "gioalias.h" + /** * SECTION:gfilenamecompleter * @short_description: Filename Completer @@ -508,3 +510,6 @@ g_filename_completer_set_dirs_only (GFilenameCompleter *completer, completer->dirs_only = dirs_only; } + +#define __G_FILENAME_COMPLETER_C__ +#include "gioaliasdef.c" diff --git a/gio/gfileoutputstream.c b/gio/gfileoutputstream.c index f54a58356..d252d5401 100644 --- a/gio/gfileoutputstream.c +++ b/gio/gfileoutputstream.c @@ -28,6 +28,8 @@ #include "gsimpleasyncresult.h" #include "glibintl.h" +#include "gioalias.h" + /** * SECTION:gfileoutputstream * @short_description: file output streaming operations @@ -645,3 +647,6 @@ g_file_output_stream_real_query_info_finish (GFileOutputStream *stream, return NULL; } + +#define __G_FILE_OUTPUT_STREAM_C__ +#include "gioaliasdef.c" diff --git a/gio/gfilterinputstream.c b/gio/gfilterinputstream.c index 078a479cf..012a2218e 100644 --- a/gio/gfilterinputstream.c +++ b/gio/gfilterinputstream.c @@ -25,6 +25,8 @@ #include "ginputstream.h" #include "glibintl.h" +#include "gioalias.h" + /** * SECTION:gfilterinputstream * @short_description: Filter Input Stream @@ -396,4 +398,7 @@ g_filter_input_stream_close_finish (GInputStream *stream, return res; } +#define __G_FILTER_INPUT_STREAM_C__ +#include "gioaliasdef.c" + /* vim: ts=2 sw=2 et */ diff --git a/gio/gfilteroutputstream.c b/gio/gfilteroutputstream.c index 5fdd3b329..3d420fc66 100644 --- a/gio/gfilteroutputstream.c +++ b/gio/gfilteroutputstream.c @@ -25,6 +25,8 @@ #include "goutputstream.h" #include "glibintl.h" +#include "gioalias.h" + /** * SECTION:gfilteroutputstream * @short_description: Filter Output Stream @@ -376,5 +378,7 @@ g_filter_output_stream_close_finish (GOutputStream *stream, return res; } +#define __G_FILTER_OUTPUT_STREAM_C__ +#include "gioaliasdef.c" /* vim: ts=2 sw=2 et */ diff --git a/gio/gicon.c b/gio/gicon.c index 4b2bf3f4f..a6631a189 100644 --- a/gio/gicon.c +++ b/gio/gicon.c @@ -25,6 +25,8 @@ #include "glibintl.h" +#include "gioalias.h" + static void g_icon_base_init (gpointer g_class); static void g_icon_class_init (gpointer g_class, gpointer class_data); @@ -120,3 +122,5 @@ g_icon_equal (GIcon *icon1, return (* iface->equal) (icon1, icon2); } +#define __G_ICON_C__ +#include "gioaliasdef.c" diff --git a/gio/ginputstream.c b/gio/ginputstream.c index 77def7016..ba835d831 100644 --- a/gio/ginputstream.c +++ b/gio/ginputstream.c @@ -28,6 +28,8 @@ #include "gseekable.h" #include "gsimpleasyncresult.h" +#include "gioalias.h" + /** * SECTION:ginputstream * @short_description: base class for implementing streaming input @@ -1204,3 +1206,6 @@ g_input_stream_real_close_finish (GInputStream *stream, g_assert (g_simple_async_result_get_source_tag (simple) == g_input_stream_real_close_async); return TRUE; } + +#define __G_INPUT_STREAM_C__ +#include "gioaliasdef.c" diff --git a/gio/gio.symbols b/gio/gio.symbols new file mode 100644 index 000000000..ba70fcec1 --- /dev/null +++ b/gio/gio.symbols @@ -0,0 +1,688 @@ +/* This file lists all exported symbols. It is used to generate + * the gio.def file used to control exports on Windows and the + * gioalias.h/gioaliasdef.c files used to avoid PLT entries for + * internal uses of exported functions (see makegioalias.pl). + * + * Every symbol must be included in the right + * #ifdef IN_HEADER(sym) #endif and + * #ifdef IN_FILE(sym) #endif sections. + */ +#ifdef ALL_FILES +#define IN_FILE(x) 1 +#define IN_HEADER(x) 1 +#endif + +#if IN_HEADER(__G_VFS_H__) +#if IN_FILE(__G_VFS_C__) +g_vfs_get_type G_GNUC_CONST +g_vfs_is_active +g_vfs_get_file_for_path +g_vfs_get_file_for_uri +g_vfs_get_supported_uri_schemes +g_vfs_parse_name +g_vfs_get_default +g_vfs_get_local +#endif +#endif + +#if IN_HEADER(__G_APP_INFO_H__) +#if IN_FILE(__G_APP_INFO_C__) +g_app_info_get_type G_GNUC_CONST +g_app_launch_context_get_type G_GNUC_CONST +g_app_info_dup +g_app_info_equal +g_app_info_get_id +g_app_info_get_name +g_app_info_get_description +g_app_info_get_executable +g_app_info_get_icon +g_app_info_launch +g_app_info_supports_uris +g_app_info_launch_uris +g_app_info_should_show +g_app_info_set_as_default_for_type +g_app_info_set_as_default_for_extension +g_app_info_add_supports_type +g_app_info_can_remove_supports_type +g_app_info_remove_supports_type +g_app_launch_context_new +g_app_launch_context_get_display +g_app_launch_context_get_startup_notify_id +g_app_launch_context_launch_failed +#endif + +#if IN_FILE(__G_DESKTOP_APP_INFO_C__) +g_app_info_create_from_commandline +g_app_info_get_all +g_app_info_get_all_for_type +g_app_info_get_default_for_type +g_app_info_get_default_for_uri_scheme +#endif +#endif + + +#if IN_HEADER(__G_ASYNC_RESULT_H__) +#if IN_FILE(__G_ASYNC_RESULT_C__) +g_async_result_get_type G_GNUC_CONST +g_async_result_get_user_data +g_async_result_get_source_object +#endif +#endif + +#if IN_HEADER(__G_BUFFERED_INPUT_STREAM_H__) +#if IN_FILE(__G_BUFFERED_INPUT_STREAM_C__) +g_buffered_input_stream_get_type G_GNUC_CONST +g_buffered_input_stream_new +g_buffered_input_stream_new_sized +g_buffered_input_stream_get_buffer_size +g_buffered_input_stream_set_buffer_size +g_buffered_input_stream_get_available +g_buffered_input_stream_peek +g_buffered_input_stream_peek_buffer +g_buffered_input_stream_fill +g_buffered_input_stream_fill_async +g_buffered_input_stream_fill_finish +g_buffered_input_stream_read_byte +#endif +#endif + +#if IN_HEADER(__G_BUFFERED_OUTPUT_STREAM_H__) +#if IN_FILE(__G_BUFFERED_OUTPUT_STREAM_C__) +g_buffered_output_stream_get_type G_GNUC_CONST; +g_buffered_output_stream_new +g_buffered_output_stream_new_sized +g_buffered_output_stream_get_buffer_size +g_buffered_output_stream_set_buffer_size +g_buffered_output_stream_get_auto_grow +g_buffered_output_stream_set_auto_grow +#endif +#endif + +#if IN_HEADER(__G_CANCELLABLE_H__) +#if IN_FILE(__G_CANCELLABLE_C__) +g_cancellable_get_type G_GNUC_CONST +g_cancellable_new +g_cancellable_is_cancelled +g_cancellable_set_error_if_cancelled +g_cancellable_get_fd +g_cancellable_get_current +g_push_current_cancellable +g_pop_current_cancellable +g_cancellable_reset +g_cancellable_cancel +#endif +#endif + +#if IN_HEADER(__G_CONTENT_TYPE_H__) +#if IN_FILE(__G_CONTENT_TYPE_C__) +g_content_type_equals +g_content_type_is_a +g_content_type_is_unknown +g_content_type_get_description +g_content_type_get_mime_type +g_content_type_get_icon +g_content_type_can_be_executable +g_content_type_guess +g_content_types_get_registered +#endif +#endif + +#if IN_HEADER(__G_DATA_INPUT_STREAM_H__) +#if IN_FILE(__G_DATA_INPUT_STREAM_C__) +g_data_input_stream_get_type G_GNUC_CONST +g_data_input_stream_new +g_data_input_stream_set_byte_order +g_data_input_stream_get_byte_order +g_data_input_stream_set_newline_type +g_data_input_stream_get_newline_type +g_data_input_stream_read_byte +g_data_input_stream_read_int16 +g_data_input_stream_read_uint16 +g_data_input_stream_read_int32 +g_data_input_stream_read_uint32 +g_data_input_stream_read_int64 +g_data_input_stream_read_uint64 +g_data_input_stream_read_line +g_data_input_stream_read_until +#endif +#endif + +#if IN_HEADER(__G_DATA_OUTPUT_STREAM_H__) +#if IN_FILE(__G_DATA_OUTPUT_STREAM_C__) +g_data_output_stream_get_type G_GNUC_CONST +g_data_output_stream_new +g_data_output_stream_set_byte_order +g_data_output_stream_get_byte_order +g_data_output_stream_put_byte +g_data_output_stream_put_int16 +g_data_output_stream_put_uint16 +g_data_output_stream_put_int32 +g_data_output_stream_put_uint32 +g_data_output_stream_put_int64 +g_data_output_stream_put_uint64 +g_data_output_stream_put_string +#endif +#endif + +#if IN_HEADER(__G_DIRECTORY_MONITOR_H__) +#if IN_FILE(__G_DIRECTORY_MONITOR_C__) +g_directory_monitor_get_type G_GNUC_CONST +g_directory_monitor_cancel +g_directory_monitor_is_cancelled +g_directory_monitor_set_rate_limit +g_directory_monitor_emit_event +#endif +#endif + +#if IN_HEADER(__G_DRIVE_H__) +#if IN_FILE(__G_DRIVE_C__) +g_drive_get_type G_GNUC_CONST +g_drive_get_name +g_drive_get_icon +g_drive_has_volumes +g_drive_get_volumes +g_drive_is_automounted +g_drive_can_mount +g_drive_can_eject +g_drive_mount +g_drive_mount_finish +g_drive_eject +g_drive_eject_finish +#endif +#endif + +#if IN_HEADER(__G_FILE_ATTRIBUTE_H__) +#if IN_FILE(__G_FILE_ATTRIBUTE_C__) +g_file_attribute_value_new +g_file_attribute_value_free +g_file_attribute_value_clear +g_file_attribute_value_set +g_file_attribute_value_dup +g_file_attribute_value_as_string +g_file_attribute_value_get_string +g_file_attribute_value_get_byte_string +g_file_attribute_value_get_boolean +g_file_attribute_value_get_uint32 +g_file_attribute_value_get_int32 +g_file_attribute_value_get_uint64 +g_file_attribute_value_get_int64 +g_file_attribute_value_get_object +g_file_attribute_value_set_string +g_file_attribute_value_set_byte_string +g_file_attribute_value_set_boolean +g_file_attribute_value_set_uint32 +g_file_attribute_value_set_int32 +g_file_attribute_value_set_uint64 +g_file_attribute_value_set_int64 +g_file_attribute_value_set_object +g_file_attribute_info_list_new +g_file_attribute_info_list_ref +g_file_attribute_info_list_unref +g_file_attribute_info_list_dup +g_file_attribute_info_list_lookup +g_file_attribute_info_list_add +#endif +#endif + +#if IN_HEADER(__G_FILE_H__) +#if IN_FILE(__G_FILE_C__) +g_file_get_type G_GNUC_CONST +g_file_new_for_path +g_file_new_for_uri +g_file_new_for_commandline_arg +g_file_parse_name +g_file_dup +g_file_hash +g_file_equal +g_file_get_basename +g_file_get_path +g_file_get_uri +g_file_get_parse_name +g_file_get_parent +g_file_get_child +g_file_get_child_for_display_name +g_file_contains_file +g_file_get_relative_path +g_file_resolve_relative_path +g_file_is_native +g_file_has_uri_scheme +g_file_get_uri_scheme +g_file_read +g_file_read_async +g_file_read_finish +g_file_append_to +g_file_create +g_file_replace +g_file_append_to_async +g_file_append_to_finish +g_file_create_async +g_file_create_finish +g_file_replace_async +g_file_replace_finish +g_file_query_info +g_file_query_info_async +g_file_query_info_finish +g_file_query_filesystem_info +g_file_find_enclosing_volume +g_file_enumerate_children +g_file_enumerate_children_async +g_file_enumerate_children_finish +g_file_set_display_name +g_file_set_display_name_async +g_file_set_display_name_finish +g_file_delete +g_file_trash +g_file_copy +g_file_move +g_file_make_directory +g_file_make_symbolic_link +g_file_query_settable_attributes +g_file_query_writable_namespaces +g_file_set_attribute +g_file_set_attributes_from_info +g_file_set_attributes_async +g_file_set_attributes_finish +g_file_set_attribute_string +g_file_set_attribute_byte_string +g_file_set_attribute_uint32 +g_file_set_attribute_int32 +g_file_set_attribute_uint64 +g_file_set_attribute_int64 +g_mount_for_location +g_mount_for_location_finish +g_file_mount_mountable +g_file_mount_mountable_finish +g_file_unmount_mountable +g_file_unmount_mountable_finish +g_file_eject_mountable +g_file_eject_mountable_finish +g_file_copy_attributes +g_file_monitor_directory +g_file_monitor_file +g_file_load_contents +g_file_load_contents_async +g_file_load_contents_finish +g_file_load_partial_contents_async +g_file_load_partial_contents_finish +g_file_replace_contents +g_file_replace_contents_async +g_file_replace_contents_finish +#endif +#endif + +#if IN_HEADER(__G_FILE_ENUMERATOR_H__) +#if IN_FILE(__G_FILE_ENUMERATOR_C__) +g_file_enumerator_get_type G_GNUC_CONST +g_file_enumerator_next_file +g_file_enumerator_close +g_file_enumerator_next_files_async +g_file_enumerator_next_files_finish +g_file_enumerator_close_async +g_file_enumerator_close_finish +g_file_enumerator_is_closed +g_file_enumerator_has_pending +g_file_enumerator_set_pending +#endif +#endif + +#if IN_HEADER(__G_FILE_ICON_H__) +#if IN_FILE(__G_FILE_ICON_C__) +g_file_icon_get_type G_GNUC_CONST +g_file_icon_new +g_file_icon_get_file +#endif +#endif + +#if IN_HEADER(__G_FILE_INFO_H__) +#if IN_FILE(__G_FILE_INFO_C__) +g_file_info_get_type G_GNUC_CONST +g_file_info_new +g_file_info_dup +g_file_info_copy_into +g_file_info_has_attribute +g_file_info_list_attributes +g_file_info_get_attribute_type +g_file_info_remove_attribute +g_file_info_get_attribute +g_file_info_get_attribute_string +g_file_info_get_attribute_byte_string +g_file_info_get_attribute_boolean +g_file_info_get_attribute_object +g_file_info_set_attribute +g_file_info_set_attribute_string +g_file_info_set_attribute_byte_string +g_file_info_set_attribute_boolean +g_file_info_set_attribute_object +g_file_info_clear_status +g_file_info_get_file_type +g_file_info_get_is_hidden +g_file_info_get_is_backup +g_file_info_get_is_symlink +g_file_info_get_name +g_file_info_get_display_name +g_file_info_get_edit_name +g_file_info_get_icon +g_file_info_get_content_type +g_file_info_get_size +g_file_info_get_modification_time +g_file_info_get_symlink_target +g_file_info_get_etag +g_file_info_get_sort_order +g_file_info_set_attribute_mask +g_file_info_unset_attribute_mask +g_file_info_set_file_type +g_file_info_set_is_hidden +g_file_info_set_is_symlink +g_file_info_set_name +g_file_info_set_display_name +g_file_info_set_edit_name +g_file_info_set_icon +g_file_info_set_content_type +g_file_info_set_size +g_file_info_set_modification_time +g_file_info_set_symlink_target +g_file_info_set_sort_order +g_file_attribute_matcher_unref +g_file_attribute_matcher_matches +g_file_attribute_matcher_matches_only +g_file_attribute_matcher_enumerate_namespace +g_file_attribute_matcher_enumerate_next +#endif +#endif + +#if IN_HEADER(__G_FILE_INPUT_STREAM_H__) +#if IN_FILE(__G_FILE_INPUT_STREAM_C__) +g_file_input_stream_get_type G_GNUC_CONST +g_file_input_stream_query_info +g_file_input_stream_query_info_async +g_file_input_stream_query_info_finish +g_file_input_stream_tell +g_file_input_stream_can_seek +g_file_input_stream_seek +#endif +#endif + +#if IN_HEADER(__G_FILE_MONITOR_H__) +#if IN_FILE(__G_FILE_MONITOR_C__) +g_file_monitor_get_type G_GNUC_CONST +g_file_monitor_cancel +g_file_monitor_is_cancelled +g_file_monitor_set_rate_limit +g_file_monitor_emit_event +#endif +#endif + +#if IN_HEADER(__G_FILENAME_COMPLETER_H__) +#if IN_FILE(__G_FILENAME_COMPLETER_C__) +g_filename_completer_get_type G_GNUC_CONST +g_filename_completer_new +g_filename_completer_get_completion_suffix +g_filename_completer_get_completions +g_filename_completer_set_dirs_only +#endif +#endif + +#if IN_HEADER(__G_FILE_OUTPUT_STREAM_H__) +#if IN_FILE(__G_FILE_OUTPUT_STREAM_C__) +g_file_output_stream_get_type G_GNUC_CONST +g_file_output_stream_query_info +g_file_output_stream_query_info_async +g_file_output_stream_query_info_finish +g_file_output_stream_get_etag +g_file_output_stream_tell +g_file_output_stream_can_seek +g_file_output_stream_seek +g_file_output_stream_can_truncate +g_file_output_stream_truncate +#endif +#endif + +#if IN_HEADER(__G_FILTER_INPUT_STREAM_H__) +#if IN_FILE(__G_FILTER_INPUT_STREAM_C__) +g_filter_input_stream_get_type G_GNUC_CONST +g_filter_input_stream_get_base_stream +#endif +#endif + +#if IN_HEADER(__G_FILTER_OUTPUT_STREAM_H__) +#if IN_FILE(__G_FILTER_OUTPUT_STREAM_C__) +g_filter_output_stream_get_type G_GNUC_CONST +g_filter_output_stream_get_base_stream +#endif +#endif + +#if IN_HEADER(__G_ICON_H__) +#if IN_FILE(__G_ICON_C__) +g_icon_get_type G_GNUC_CONST +g_icon_hash +g_icon_equal +#endif +#endif + +#if IN_HEADER(__G_INPUT_STREAM_H__) +#if IN_FILE(__G_INPUT_STREAM_C__) +g_input_stream_get_type G_GNUC_CONST +g_input_stream_read +g_input_stream_read_all +g_input_stream_skip +g_input_stream_close +g_input_stream_read_async +g_input_stream_read_finish +g_input_stream_skip_async +g_input_stream_skip_finish +g_input_stream_close_async +g_input_stream_close_finish +g_input_stream_is_closed +g_input_stream_has_pending +g_input_stream_set_pending +#endif +#endif + +#if IN_HEADER(__G_IO_ERROR_H__) +#if IN_FILE(__G_IO_ERROR_C__) +g_io_error_quark +g_io_error_from_errno +#endif +#endif + +#if IN_HEADER(__G_IO_MODULE_H__) +#if IN_FILE(__G_IO_MODULE_C__) +g_io_module_get_type G_GNUC_CONST +g_io_module_new +g_io_modules_ensure_loaded +#endif +#endif + +#if IN_HEADER(__G_IO_SCHEDULER_H__) +#if IN_FILE(__G_IO_SCHEDULER_C__) +g_schedule_io_job +g_cancel_all_io_jobs +g_io_job_send_to_mainloop +#endif +#endif + +#if IN_HEADER(__G_LOADABLE_ICON_H__) +#if IN_FILE(__G_LOADABLE_ICON_C__) +g_loadable_icon_get_type G_GNUC_CONST +g_loadable_icon_load +g_loadable_icon_load_async +g_loadable_icon_load_finish +#endif +#endif + +#if IN_HEADER(__G_MEMORY_INPUT_STREAM_H__) +#if IN_FILE(__G_MEMORY_INPUT_STREAM_C__) +g_memory_input_stream_get_type G_GNUC_CONST +g_memory_input_stream_from_data +g_memory_input_stream_set_free_data +g_memory_input_stream_get_data +g_memory_input_stream_get_data_size +#endif +#endif + +#if IN_HEADER(__G_MEMORY_OUTPUT_STREAM_H__) +#if IN_FILE(__G_MEMORY_OUTPUT_STREAM_C__) +g_memory_output_stream_get_type G_GNUC_CONST +g_memory_output_stream_new +g_memory_output_stream_set_max_size +g_memory_output_stream_get_data +g_memory_output_stream_set_free_data +#endif +#endif + +#if IN_HEADER(__G_MOUNT_OPERATION_H__) +#if IN_FILE(__G_MOUNT_OPERATION_C__) +g_mount_operation_get_type G_GNUC_CONST +g_mount_operation_new +g_mount_operation_get_username +g_mount_operation_set_username +g_mount_operation_get_password +g_mount_operation_set_password +g_mount_operation_get_anonymous +g_mount_operation_set_anonymous +g_mount_operation_get_domain +g_mount_operation_set_domain +g_mount_operation_get_password_save +g_mount_operation_set_password_save +g_mount_operation_get_choice +g_mount_operation_set_choice +g_mount_operation_reply +#endif +#endif + +#if IN_HEADER(__G_OUTPUT_STREAM_H__) +#if IN_FILE(__G_OUTPUT_STREAM_C__) +g_output_stream_get_type G_GNUC_CONST +g_output_stream_write +g_output_stream_write_all +g_output_stream_splice +g_output_stream_flush +g_output_stream_close +g_output_stream_write_async +g_output_stream_write_finish +g_output_stream_splice_async +g_output_stream_splice_finish +g_output_stream_flush_async +g_output_stream_flush_finish +g_output_stream_close_async +g_output_stream_close_finish +g_output_stream_is_closed +g_output_stream_has_pending +g_output_stream_set_pending +#endif +#endif + +#if IN_HEADER(__G_SEEKABLE_H__) +#if IN_FILE(__G_SEEKABLE_C__) +g_seekable_get_type G_GNUC_CONST +g_seekable_tell +g_seekable_can_seek +g_seekable_seek +g_seekable_can_truncate +g_seekable_truncate +#endif +#endif + +#if IN_HEADER(__G_SIMPLE_ASYNC_RESULT_H__) +#if IN_FILE(__G_SIMPLE_ASYNC_RESULT_C__) +g_simple_async_result_get_type G_GNUC_CONST +g_simple_async_result_new +g_simple_async_result_new_error +g_simple_async_result_new_from_error +g_simple_async_result_set_op_res_gpointer +g_simple_async_result_get_op_res_gpointer +g_simple_async_result_set_op_res_gssize +g_simple_async_result_get_op_res_gssize +g_simple_async_result_set_op_res_gboolean +g_simple_async_result_get_op_res_gboolean +g_simple_async_result_get_source_tag +g_simple_async_result_set_handle_cancellation +g_simple_async_result_complete +g_simple_async_result_complete_in_idle +g_simple_async_result_run_in_thread +g_simple_async_result_set_from_error +g_simple_async_result_propagate_error +g_simple_async_result_set_error +g_simple_async_result_set_error_va +g_simple_async_report_error_in_idle +#endif +#endif + +#if IN_HEADER(__G_THEMED_ICON_H__) +#if IN_FILE(__G_THEMED_ICON_C__) +g_themed_icon_get_type G_GNUC_CONST +g_themed_icon_new +g_themed_icon_new_from_names +g_themed_icon_get_names +#endif +#endif + +#if IN_HEADER(__G_UNIX_MOUNTS_H__) +#if IN_FILE(__G_UNIX_MOUNTS_C__) +g_unix_mount_free +g_unix_mount_point_free +g_unix_mount_compare +g_unix_mount_get_mount_path +g_unix_mount_get_device_path +g_unix_mount_get_fs_type +g_unix_mount_is_readonly +g_unix_mount_is_system_internal +g_unix_mount_guess_type +g_unix_mount_point_compare +g_unix_mount_point_get_mount_path +g_unix_mount_point_get_device_path +g_unix_mount_point_get_fs_type +g_unix_mount_point_is_readonly +g_unix_mount_point_is_user_mountable +g_unix_mount_point_is_loopback +g_unix_mount_point_guess_type +g_get_unix_mount_points +g_get_unix_mounts +g_get_unix_mount_at +g_unix_mounts_changed_since +g_unix_mount_points_changed_since +g_unix_mount_monitor_get_type G_GNUC_CONST +g_unix_mount_monitor_new +#endif +#endif + +#if IN_HEADER(__G_UNIX_INPUT_STREAM_H__) +#if IN_FILE(__G_UNIX_INPUT_STREAM_C__) +g_unix_input_stream_get_type G_GNUC_CONST +g_unix_input_stream_new +#endif +#endif + +#if IN_HEADER(__G_UNIX_OUTPUT_STREAM_H__) +#if IN_FILE(__G_UNIX_OUTPUT_STREAM_C__) +g_unix_output_stream_get_type G_GNUC_CONST +g_unix_output_stream_new +#endif +#endif + +#if IN_HEADER(__G_VOLUME_H__) +#if IN_FILE(__G_VOLUME_C__) +g_volume_get_type G_GNUC_CONST +g_volume_get_root +g_volume_get_name +g_volume_get_icon +g_volume_get_drive +g_volume_can_unmount +g_volume_can_eject +g_volume_unmount +g_volume_unmount_finish +g_volume_eject +g_volume_eject_finish +#endif +#endif + +#if IN_HEADER(__G_VOLUME_MONITOR_H__) +#if IN_FILE(__G_VOLUME_MONITOR_C__) +g_volume_monitor_get_type G_GNUC_CONST +g_volume_monitor_get_mounted_volumes +g_volume_monitor_get_connected_drives +#endif +#if IN_FILE(__G_UNION_VOLUME_MONITOR_C__) +g_volume_monitor_get +#endif +#endif diff --git a/gio/gioerror.c b/gio/gioerror.c index e3bb34835..df2d31b60 100644 --- a/gio/gioerror.c +++ b/gio/gioerror.c @@ -24,6 +24,8 @@ #include <errno.h> #include "gioerror.h" +#include "gioalias.h" + /** * SECTION:gioerror * @short_description: Error helper functions @@ -169,3 +171,6 @@ g_io_error_from_errno (gint err_no) break; } } + +#define __G_IO_ERROR_C__ +#include "gioaliasdef.c" diff --git a/gio/giomodule.c b/gio/giomodule.c index 1214d817b..02d12d69b 100644 --- a/gio/giomodule.c +++ b/gio/giomodule.c @@ -24,6 +24,8 @@ #include "giomodule.h" +#include "gioalias.h" + /** * SECTION:giomodule * @short_description: Loadable GIO Modules @@ -247,3 +249,6 @@ g_io_modules_ensure_loaded (const char *directory) G_UNLOCK (loaded_dirs); } + +#define __G_IO_MODULE_C__ +#include "gioaliasdef.c" diff --git a/gio/gioscheduler.c b/gio/gioscheduler.c index 932375516..d82357efd 100644 --- a/gio/gioscheduler.c +++ b/gio/gioscheduler.c @@ -24,6 +24,8 @@ #include "gioscheduler.h" +#include "gioalias.h" + /** * SECTION:gioscheduler * @short_description: I/O Scheduler @@ -380,3 +382,6 @@ g_io_job_send_to_mainloop (GIOJob *job, mainloop_proxy_free (proxy); } } + +#define __G_IO_SCHEDULER_C__ +#include "gioaliasdef.c" diff --git a/gio/gloadableicon.c b/gio/gloadableicon.c index 85e8e6d8e..5bef93fdf 100644 --- a/gio/gloadableicon.c +++ b/gio/gloadableicon.c @@ -25,6 +25,8 @@ #include "gloadableicon.h" #include "glibintl.h" +#include "gioalias.h" + /** * SECTION:gloadableicon * @short_description: Loadable Icons @@ -276,3 +278,6 @@ g_loadable_icon_real_load_finish (GLoadableIcon *icon, return g_object_ref (data->stream); } + +#define __G_LOADABLE_ICON_C__ +#include "gioaliasdef.c" diff --git a/gio/glocaldirectorymonitor.c b/gio/glocaldirectorymonitor.c index 0cdcf8aa4..ca4e8488f 100644 --- a/gio/glocaldirectorymonitor.c +++ b/gio/glocaldirectorymonitor.c @@ -29,6 +29,8 @@ #include <string.h> +#include "gioalias.h" + enum { PROP_0, diff --git a/gio/glocalfile.c b/gio/glocalfile.c index 9d5b92606..2e9b5fcd3 100644 --- a/gio/glocalfile.c +++ b/gio/glocalfile.c @@ -77,6 +77,8 @@ #include <glib/gstdio.h> #include "glibintl.h" +#include "gioalias.h" + static void g_local_file_file_iface_init (GFileIface *iface); static GFileAttributeInfoList *local_writable_attributes = NULL; diff --git a/gio/glocalfileenumerator.c b/gio/glocalfileenumerator.c index 8548fcfad..7030c2aaa 100644 --- a/gio/glocalfileenumerator.c +++ b/gio/glocalfileenumerator.c @@ -27,6 +27,8 @@ #include <glocalfileinfo.h> #include "glibintl.h" +#include "gioalias.h" + /* TODO: * It would be nice to use the dirent->d_type to check file type without * needing to stat each files on linux and other systems that support it. diff --git a/gio/glocalfileinfo.c b/gio/glocalfileinfo.c index 5f6176be5..ab56cfdd5 100644 --- a/gio/glocalfileinfo.c +++ b/gio/glocalfileinfo.c @@ -60,6 +60,8 @@ #include "gcontenttype.h" #include "gcontenttypeprivate.h" +#include "gioalias.h" + struct ThumbMD5Context { guint32 buf[4]; guint32 bits[2]; diff --git a/gio/glocalfileinputstream.c b/gio/glocalfileinputstream.c index 3f90720c2..b46548578 100644 --- a/gio/glocalfileinputstream.c +++ b/gio/glocalfileinputstream.c @@ -35,6 +35,7 @@ #include "glocalfileinfo.h" #include "glibintl.h" +#include "gioalias.h" G_DEFINE_TYPE (GLocalFileInputStream, g_local_file_input_stream, G_TYPE_FILE_INPUT_STREAM); diff --git a/gio/glocalfilemonitor.c b/gio/glocalfilemonitor.c index 94ebf7b61..be189a032 100644 --- a/gio/glocalfilemonitor.c +++ b/gio/glocalfilemonitor.c @@ -27,6 +27,8 @@ #include <string.h> +#include "gioalias.h" + enum { PROP_0, diff --git a/gio/glocalfileoutputstream.c b/gio/glocalfileoutputstream.c index 3ff205669..2a8f21e2d 100644 --- a/gio/glocalfileoutputstream.c +++ b/gio/glocalfileoutputstream.c @@ -36,6 +36,8 @@ #include "glocalfileoutputstream.h" #include "glocalfileinfo.h" +#include "gioalias.h" + G_DEFINE_TYPE (GLocalFileOutputStream, g_local_file_output_stream, G_TYPE_FILE_OUTPUT_STREAM); /* Some of the file replacement code was based on the code from gedit, diff --git a/gio/glocalvfs.c b/gio/glocalvfs.c index e5fc64481..555a2db72 100644 --- a/gio/glocalvfs.c +++ b/gio/glocalvfs.c @@ -27,6 +27,8 @@ #include <sys/types.h> #include <pwd.h> +#include "gioalias.h" + struct _GLocalVfs { GVfs parent; diff --git a/gio/gmemoryinputstream.c b/gio/gmemoryinputstream.c index 0e9dbaccc..ec4346e6c 100644 --- a/gio/gmemoryinputstream.c +++ b/gio/gmemoryinputstream.c @@ -28,6 +28,8 @@ #include "gsimpleasyncresult.h" #include "glibintl.h" +#include "gioalias.h" + /** * SECTION:gmemoryinputstream * @short_description: streaming input operations on memory chunks @@ -465,5 +467,7 @@ g_memory_input_stream_truncate (GSeekable *seekable, return FALSE; } -/* vim: ts=2 sw=2 et */ +#define __G_MEMORY_INPUT_STREAM_C__ +#include "gioaliasdef.c" +/* vim: ts=2 sw=2 et */ diff --git a/gio/gmemoryoutputstream.c b/gio/gmemoryoutputstream.c index b3c2a108e..bd71ac1c7 100644 --- a/gio/gmemoryoutputstream.c +++ b/gio/gmemoryoutputstream.c @@ -28,6 +28,8 @@ #include "string.h" #include "glibintl.h" +#include "gioalias.h" + /** * SECTION:gmemoryoutputstream * @short_description: streaming output operations on memory chunks @@ -685,4 +687,7 @@ g_memory_output_stream_truncate (GSeekable *seekable, return TRUE; } +#define __G_MEMORY_OUTPUT_STREAM_C__ +#include "gioaliasdef.c" + /* vim: ts=2 sw=2 et */ diff --git a/gio/gmountoperation.c b/gio/gmountoperation.c index bdb0b3a70..9a618f326 100644 --- a/gio/gmountoperation.c +++ b/gio/gmountoperation.c @@ -28,6 +28,8 @@ #include "gio-marshal.h" #include "glibintl.h" +#include "gioalias.h" + /** * SECTION:gmountoperation * @short_description: Authentication methods for mountable locations @@ -408,3 +410,6 @@ g_mount_operation_reply (GMountOperation *op, g_return_if_fail (G_IS_MOUNT_OPERATION (op)); g_signal_emit (op, signals[REPLY], 0, abort); } + +#define __G_MOUNT_OPERATION_C__ +#include "gioaliasdef.c" diff --git a/gio/gnativevolumemonitor.c b/gio/gnativevolumemonitor.c index cc2d81a07..d7fa98c28 100644 --- a/gio/gnativevolumemonitor.c +++ b/gio/gnativevolumemonitor.c @@ -5,6 +5,7 @@ #include <glib.h> #include "gnativevolumemonitor.h" +#include "gioalias.h" G_DEFINE_ABSTRACT_TYPE (GNativeVolumeMonitor, g_native_volume_monitor, G_TYPE_VOLUME_MONITOR); diff --git a/gio/goutputstream.c b/gio/goutputstream.c index 5b1fc4ea5..9c2bb64aa 100644 --- a/gio/goutputstream.c +++ b/gio/goutputstream.c @@ -25,6 +25,8 @@ #include "gsimpleasyncresult.h" #include "glibintl.h" +#include "gioalias.h" + /** * SECTION:goutputstream * @short_description: base class for implementing streaming output @@ -1343,3 +1345,6 @@ g_output_stream_real_close_finish (GOutputStream *stream, g_assert (g_simple_async_result_get_source_tag (simple) == g_output_stream_real_close_async); return TRUE; } + +#define __G_OUTPUT_STREAM_C__ +#include "gioaliasdef.c" diff --git a/gio/gpollfilemonitor.c b/gio/gpollfilemonitor.c index 2b559c1d6..f6e853a27 100644 --- a/gio/gpollfilemonitor.c +++ b/gio/gpollfilemonitor.c @@ -26,6 +26,8 @@ #include "gpollfilemonitor.h" #include "gfilemonitor.h" +#include "gioalias.h" + static gboolean g_poll_file_monitor_cancel (GFileMonitor* monitor); static void schedule_poll_timeout (GPollFileMonitor* poll_monitor); diff --git a/gio/gseekable.c b/gio/gseekable.c index fba1dec6f..98fa7769b 100644 --- a/gio/gseekable.c +++ b/gio/gseekable.c @@ -24,6 +24,8 @@ #include "gseekable.h" #include "glibintl.h" +#include "gioalias.h" + /** * SECTION:gseekable * @short_description: Stream seeking interface @@ -203,3 +205,5 @@ g_seekable_truncate (GSeekable *seekable, return (* iface->truncate) (seekable, offset, cancellable, error); } +#define __G_SEEKABLE_C__ +#include "gioaliasdef.c" diff --git a/gio/gsimpleasyncresult.c b/gio/gsimpleasyncresult.c index b0997839a..d3c932761 100644 --- a/gio/gsimpleasyncresult.c +++ b/gio/gsimpleasyncresult.c @@ -34,6 +34,8 @@ #include <gio/gioerror.h> #include "glibintl.h" +#include "gioalias.h" + /** * SECTION:gsimpleasyncresult * @short_description: simple asynchronous results implementation @@ -680,3 +682,6 @@ g_simple_async_report_error_in_idle (GObject *object, g_simple_async_result_complete_in_idle (simple); g_object_unref (simple); } + +#define __G_SIMPLE_ASYNC_RESULT_C__ +#include "gioaliasdef.c" diff --git a/gio/gthemedicon.c b/gio/gthemedicon.c index 38b83ebc9..14b0ad052 100644 --- a/gio/gthemedicon.c +++ b/gio/gthemedicon.c @@ -24,6 +24,8 @@ #include "gthemedicon.h" +#include "gioalias.h" + /** * SECTION:gthemedicon * @short_description: Themed Icons @@ -184,3 +186,6 @@ g_themed_icon_icon_iface_init (GIconIface *iface) iface->hash = g_themed_icon_hash; iface->equal = g_themed_icon_equal; } + +#define __G_THEMED_ICON_C__ +#include "gioaliasdef.c" diff --git a/gio/gunionvolumemonitor.c b/gio/gunionvolumemonitor.c index 10f9e318d..cc0f08194 100644 --- a/gio/gunionvolumemonitor.c +++ b/gio/gunionvolumemonitor.c @@ -35,6 +35,8 @@ #include "glibintl.h" +#include "gioalias.h" + struct _GUnionVolumeMonitor { GVolumeMonitor parent; @@ -393,3 +395,6 @@ g_volume_get_for_mount_path (const char *mountpoint) return volume; } + +#define __G_UNION_VOLUME_MONITOR_C__ +#include "gioaliasdef.c" diff --git a/gio/gunixdrive.c b/gio/gunixdrive.c index 25e05392c..e102ec54d 100644 --- a/gio/gunixdrive.c +++ b/gio/gunixdrive.c @@ -32,6 +32,8 @@ #include "gvolumemonitor.h" #include "glibintl.h" +#include "gioalias.h" + struct _GUnixDrive { GObject parent; diff --git a/gio/gunixinputstream.c b/gio/gunixinputstream.c index 0057180e4..c215a07f9 100644 --- a/gio/gunixinputstream.c +++ b/gio/gunixinputstream.c @@ -39,6 +39,8 @@ #include "gasynchelper.h" #include "glibintl.h" +#include "gioalias.h" + /** * SECTION:gunixinputstream * @short_description: Unix Input Stream @@ -478,3 +480,5 @@ g_unix_input_stream_close_finish (GInputStream *stream, return TRUE; } +#define __G_UNIX_INPUT_STREAM_C__ +#include "gioaliasdef.c" diff --git a/gio/gunixmounts.c b/gio/gunixmounts.c index f2d96cadb..85c4ef4bd 100644 --- a/gio/gunixmounts.c +++ b/gio/gunixmounts.c @@ -47,6 +47,8 @@ #include "gfile.h" #include "gfilemonitor.h" +#include "gioalias.h" + /** * SECTION:gunixmounts * @short_description: Unix Mounts @@ -1589,3 +1591,6 @@ g_unix_mount_point_guess_type (GUnixMountPoint *mount_point) mount_point->device_path, mount_point->filesystem_type); } + +#define __G_UNIX_MOUNTS_C__ +#include "gioaliasdef.c" diff --git a/gio/gunixoutputstream.c b/gio/gunixoutputstream.c index e9da5c5c3..a48514c07 100644 --- a/gio/gunixoutputstream.c +++ b/gio/gunixoutputstream.c @@ -39,6 +39,8 @@ #include "gasynchelper.h" #include "glibintl.h" +#include "gioalias.h" + /** * SECTION:gunixoutputstream * @short_description: Unix Output Stream @@ -436,3 +438,6 @@ g_unix_output_stream_close_finish (GOutputStream *stream, /* Failures handled in generic close_finish code */ return TRUE; } + +#define __G_UNIX_OUTPUT_STREAM_C__ +#include "gioaliasdef.c" diff --git a/gio/gunixvolume.c b/gio/gunixvolume.c index a6e9867b2..8bcf1de28 100644 --- a/gio/gunixvolume.c +++ b/gio/gunixvolume.c @@ -33,6 +33,8 @@ #include "gthemedicon.h" #include "glibintl.h" +#include "gioalias.h" + struct _GUnixVolume { GObject parent; diff --git a/gio/gunixvolumemonitor.c b/gio/gunixvolumemonitor.c index 08ad02d79..acbbba315 100644 --- a/gio/gunixvolumemonitor.c +++ b/gio/gunixvolumemonitor.c @@ -32,6 +32,8 @@ #include "gvolumeprivate.h" #include "glibintl.h" +#include "gioalias.h" + struct _GUnixVolumeMonitor { GNativeVolumeMonitor parent; diff --git a/gio/gvfs.c b/gio/gvfs.c index 36f727662..a8f7bad9f 100644 --- a/gio/gvfs.c +++ b/gio/gvfs.c @@ -27,6 +27,8 @@ #include "giomodule.h" #include "glibintl.h" +#include "gioalias.h" + /** * SECTION:gvfs * @short_description: Virtual File System @@ -274,3 +276,5 @@ g_vfs_get_local (void) return G_VFS (vfs); } +#define __G_VFS_C__ +#include "gioaliasdef.c" diff --git a/gio/gvfs.h b/gio/gvfs.h index ce7e3cd8c..21219afff 100644 --- a/gio/gvfs.h +++ b/gio/gvfs.h @@ -20,8 +20,8 @@ * Author: Alexander Larsson <alexl@redhat.com> */ -#ifndef __G_VFS_IMPLEMENTATION_H__ -#define __G_VFS_IMPLEMENTATION_H__ +#ifndef __G_VFS_H__ +#define __G_VFS_H__ #include <glib-object.h> #include <gio/gfile.h> diff --git a/gio/gvolume.c b/gio/gvolume.c index da0e4bfeb..8a7e709a7 100644 --- a/gio/gvolume.c +++ b/gio/gvolume.c @@ -26,6 +26,8 @@ #include "gsimpleasyncresult.h" #include "glibintl.h" +#include "gioalias.h" + /** * SECTION:gvolume * @short_description: mounted volume management @@ -377,3 +379,6 @@ g_volume_eject_finish (GVolume *volume, iface = G_VOLUME_GET_IFACE (volume); return (* iface->eject_finish) (volume, result, error); } + +#define __G_VOLUME_C__ +#include "gioaliasdef.c" diff --git a/gio/gvolumemonitor.c b/gio/gvolumemonitor.c index c2be9c179..0d45b7b3f 100644 --- a/gio/gvolumemonitor.c +++ b/gio/gvolumemonitor.c @@ -24,6 +24,8 @@ #include "gvolumemonitor.h" #include "glibintl.h" +#include "gioalias.h" + /** * SECTION:gvolumemonitor * @short_description: Volume Monitor @@ -183,3 +185,5 @@ g_volume_monitor_get_connected_drives (GVolumeMonitor *volume_monitor) return class->get_connected_drives (volume_monitor); } +#define __G_VOLUME_MONITOR_C__ +#include "gioaliasdef.c" diff --git a/gio/gwin32appinfo.c b/gio/gwin32appinfo.c index 3215b997b..0192effac 100644 --- a/gio/gwin32appinfo.c +++ b/gio/gwin32appinfo.c @@ -33,6 +33,8 @@ #include <windows.h> #include <shlwapi.h> +#include "gioalias.h" + #ifndef ASSOCF_INIT_BYEXENAME #define ASSOCF_INIT_BYEXENAME 0x00000002 #endif diff --git a/gio/inotify/Makefile.am b/gio/inotify/Makefile.am index 765437ead..0780fa278 100644 --- a/gio/inotify/Makefile.am +++ b/gio/inotify/Makefile.am @@ -1,3 +1,5 @@ +include $(top_srcdir)/Makefile.decl + NULL = noinst_LTLIBRARIES = libinotify.la diff --git a/gio/inotify/ginotifydirectorymonitor.c b/gio/inotify/ginotifydirectorymonitor.c index bec36093c..e202b95c7 100644 --- a/gio/inotify/ginotifydirectorymonitor.c +++ b/gio/inotify/ginotifydirectorymonitor.c @@ -31,6 +31,8 @@ #define USE_INOTIFY 1 #include "inotify-helper.h" +#include "gioalias.h" + struct _GInotifyDirectoryMonitor { GLocalDirectoryMonitor parent_instance; diff --git a/gio/inotify/ginotifyfilemonitor.c b/gio/inotify/ginotifyfilemonitor.c index 4132116a0..cdc200d9e 100644 --- a/gio/inotify/ginotifyfilemonitor.c +++ b/gio/inotify/ginotifyfilemonitor.c @@ -31,6 +31,8 @@ #define USE_INOTIFY 1 #include "inotify-helper.h" +#include "gioalias.h" + struct _GInotifyFileMonitor { GLocalFileMonitor parent_instance; diff --git a/gio/makegioalias.pl b/gio/makegioalias.pl new file mode 100755 index 000000000..26b9206ec --- /dev/null +++ b/gio/makegioalias.pl @@ -0,0 +1,137 @@ +#!/usr/bin/perl -w + +my $do_def = 0; + +if (($#ARGV >= 0) && ($ARGV[0] eq "-def")) { + shift; + $do_def = 1; +} + +print <<EOF; +/* Generated by makegioalias.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 + + diff --git a/gio/pltcheck.sh b/gio/pltcheck.sh new file mode 100755 index 000000000..685852744 --- /dev/null +++ b/gio/pltcheck.sh @@ -0,0 +1,19 @@ +#!/bin/sh + +LANG=C + +status=0 + +if ! which readelf 2>/dev/null >/dev/null; then + echo "'readelf' not found; skipping test" + exit 0 +fi + +SKIP='\<g_access\|\<g_array_\|\<g_ascii\|\<g_list_\|\<g_assert_warning\|\<g_atomic_int\|\<g_build_filename\|\<g_byte_array\|\<g_child_watch\|\<g_convert\|\<g_dir_\|\<g_error_\|\<g_file_error_quark\|\<g_file_get_contents\|\<g_file_set_contents\|\<g_file_test\|\<g_filename_\|\<g_find_program_in_path\|\<g_free\|\<g_get_\|\<g_getenv\|\<g_hash_table_\|\<g_idle_\|\<g_intern_static_string\|\<g_io_channel_\|\<g_key_file_\|\<g_listenv\|\<g_locale_to_utf8\|\<g_log\|\<g_main_context_wakeup\|\<g_malloc\|\<g_markup_\|\<g_mkdir_\|\<g_mkstemp\|\<g_module_\|\<g_object_\|\<g_once_\|\<g_param_spec_\|\<g_path_\|\<g_printerr\|\<g_propagate_error\|\<g_ptr_array_\|\<g_qsort_\|\<g_quark_\|\<g_queue_\|\<g_realloc\|\<g_return_if_fail\|\<g_set_error\|\<g_shell_\|\<g_signal_\|\<g_slice_\|\<g_slist_\|\<g_snprintf\|\<g_source_\|\<g_spawn_\|\<g_static_\|\<g_str\|\<g_thread_pool_\|\<g_time_val_add\|\<g_timeout_\|\<g_type_\|\<g_unlink\|\<g_uri_\|\<g_utf8_\|\<g_value_' + +for so in .libs/lib*.so; do + echo Checking $so for local PLT entries + readelf -r $so | grep 'JU\?MP_SLOT' | grep '\<g_' | grep -v $SKIP && status=1 +done + +exit $status diff --git a/gio/xdgmime/Makefile.am b/gio/xdgmime/Makefile.am index 41f16a7ea..87fc04872 100644 --- a/gio/xdgmime/Makefile.am +++ b/gio/xdgmime/Makefile.am @@ -1,3 +1,5 @@ +include $(top_srcdir)/Makefile.decl + AM_CPPFLAGS = -DXDG_PREFIX=_gio_xdg noinst_LTLIBRARIES = libxdgmime.la |