+Thu Sep 16 02:03:15 2004 Matthias Clasen <maclas@gmx.de>
+
+ Implement the same PLT reduction technique used in GTK+:
+
+ * glib/glib.symbols: Master list of symbols
+
+ * glib/makegalias.pl: Perl script which creates galias.h
+
+ * glib/abicheck.sh: Compares actual exports against glib.symbols
+
+ * glib/glib.def: Removed. This file is now generated from
+ glib.symbols
+
+ * glib/Makefile.am: Add rules to generate galias.h and glib.def,
+ and add abicheck.sh to TESTS. Don't export _-prefixed symbols.
+
+ * configure.in: Add --disable-visibility to suppress the
+ use of ELF visibility attributes.
+
+ * glib/*.c: Include galias.h
+
2004-09-15 Tor Lillqvist <tml@iki.fi>
* glib/gwin32.c (g_win32_error_message): Convert message to
+Thu Sep 16 02:03:15 2004 Matthias Clasen <maclas@gmx.de>
+
+ Implement the same PLT reduction technique used in GTK+:
+
+ * glib/glib.symbols: Master list of symbols
+
+ * glib/makegalias.pl: Perl script which creates galias.h
+
+ * glib/abicheck.sh: Compares actual exports against glib.symbols
+
+ * glib/glib.def: Removed. This file is now generated from
+ glib.symbols
+
+ * glib/Makefile.am: Add rules to generate galias.h and glib.def,
+ and add abicheck.sh to TESTS. Don't export _-prefixed symbols.
+
+ * configure.in: Add --disable-visibility to suppress the
+ use of ELF visibility attributes.
+
+ * glib/*.c: Include galias.h
+
2004-09-15 Tor Lillqvist <tml@iki.fi>
* glib/gwin32.c (g_win32_error_message): Convert message to
+Thu Sep 16 02:03:15 2004 Matthias Clasen <maclas@gmx.de>
+
+ Implement the same PLT reduction technique used in GTK+:
+
+ * glib/glib.symbols: Master list of symbols
+
+ * glib/makegalias.pl: Perl script which creates galias.h
+
+ * glib/abicheck.sh: Compares actual exports against glib.symbols
+
+ * glib/glib.def: Removed. This file is now generated from
+ glib.symbols
+
+ * glib/Makefile.am: Add rules to generate galias.h and glib.def,
+ and add abicheck.sh to TESTS. Don't export _-prefixed symbols.
+
+ * configure.in: Add --disable-visibility to suppress the
+ use of ELF visibility attributes.
+
+ * glib/*.c: Include galias.h
+
2004-09-15 Tor Lillqvist <tml@iki.fi>
* glib/gwin32.c (g_win32_error_message): Convert message to
+Thu Sep 16 02:03:15 2004 Matthias Clasen <maclas@gmx.de>
+
+ Implement the same PLT reduction technique used in GTK+:
+
+ * glib/glib.symbols: Master list of symbols
+
+ * glib/makegalias.pl: Perl script which creates galias.h
+
+ * glib/abicheck.sh: Compares actual exports against glib.symbols
+
+ * glib/glib.def: Removed. This file is now generated from
+ glib.symbols
+
+ * glib/Makefile.am: Add rules to generate galias.h and glib.def,
+ and add abicheck.sh to TESTS. Don't export _-prefixed symbols.
+
+ * configure.in: Add --disable-visibility to suppress the
+ use of ELF visibility attributes.
+
+ * glib/*.c: Include galias.h
+
2004-09-15 Tor Lillqvist <tml@iki.fi>
* glib/gwin32.c (g_win32_error_message): Convert message to
+Thu Sep 16 02:03:15 2004 Matthias Clasen <maclas@gmx.de>
+
+ Implement the same PLT reduction technique used in GTK+:
+
+ * glib/glib.symbols: Master list of symbols
+
+ * glib/makegalias.pl: Perl script which creates galias.h
+
+ * glib/abicheck.sh: Compares actual exports against glib.symbols
+
+ * glib/glib.def: Removed. This file is now generated from
+ glib.symbols
+
+ * glib/Makefile.am: Add rules to generate galias.h and glib.def,
+ and add abicheck.sh to TESTS. Don't export _-prefixed symbols.
+
+ * configure.in: Add --disable-visibility to suppress the
+ use of ELF visibility attributes.
+
+ * glib/*.c: Include galias.h
+
2004-09-15 Tor Lillqvist <tml@iki.fi>
* glib/gwin32.c (g_win32_error_message): Convert message to
esac
AC_MSG_RESULT([$glib_native_win32])
AM_CONDITIONAL(OS_WIN32, [test "$glib_native_win32" = "yes"])
+AM_CONDITIONAL(OS_UNIX, [test "$glib_native_win32" != "yes"])
AC_SUBST(G_LIB_WIN32_RESOURCE)
AC_SUBST(G_MODULE_WIN32_RESOURCE)
AC_SUBST(G_OBJECT_WIN32_RESOURCE)
fi
AM_CONDITIONAL(MS_LIB_AVAILABLE, [test x$ms_librarian = xyes])
+if test "$glib_native_win32" != yes; then
+ # libtool option to control which symbols are exported
+ # right now, symbols starting with _ are not exported
+ LIBTOOL_EXPORT_OPTIONS='-export-symbols-regex "^[[^_]].*"'
+else
+ # We currently use .def files on Windows
+ LIBTOOL_EXPORT_OPTIONS=
+fi
+AC_SUBST(LIBTOOL_EXPORT_OPTIONS)
+
dnl declare --enable-* args and collect ac_help strings
AC_ARG_ENABLE(debug,
AC_HELP_STRING([--enable-debug=@<:@no/minimum/yes@:>@],
[AC_HELP_STRING([--disable-rebuilds],
[disable all source autogeneration rules])],,
[enable_rebuilds=yes])
+AC_ARG_ENABLE(visibility,
+ [AC_HELP_STRING([--disable-visibility],
+ [don't use ELF visibility attributes])],,
+ [enable_visibility=yes])
if test "x$enable_threads" != "xyes"; then
enable_threads=no
fi
fi
+if test "x$enable_visibility" = "xno"; then
+ GLIB_DEBUG_FLAGS="$GLIB_DEBUG_FLAGS -DDISABLE_VISIBILITY"
+fi
+
# Ensure MSVC-compatible struct packing convention is used when
# compiling for Win32 with gcc.
# What flag to depends on gcc version: gcc3 uses "-mms-bitfields", while
INCLUDES = -I$(top_srcdir) -DG_LOG_DOMAIN=\"GLib\" \
$(GLIB_DEBUG_FLAGS) -DG_DISABLE_DEPRECATED -DGLIB_COMPILATION
+glib.def: glib.symbols
+ (echo -e EXPORTS; cpp -P -DINCLUDE_VARIABLES -DINCLUDE_INTERNAL_SYMBOLS -DG_OS_WIN32 $(srcdir)/glib.symbols | sed -e '/^$$/d' -e 's/^/\t/') > glib.def
+
+galias.h: glib.symbols
+ ./makegalias.pl < $(srcdir)/glib.symbols > galias.h
+
+if OS_UNIX
+TESTS = abicheck.sh
+endif
+
+BUILT_SOURCES = galias.h
+
EXTRA_DIST = \
makefile.msc.in \
glib.rc.in \
gen-unicode-tables.pl \
- glib.def
+ makegalias.pl \
+ glib.symbols
# These may be in the builddir too
BUILT_EXTRA_DIST = \
makefile.msc \
- glib.rc
+ glib.rc \
+ glib.def \
+ galias.h
lib_LTLIBRARIES = libglib-2.0.la
else
install-libtool-import-lib:
uninstall-libtool-import-lib:
+
+export_symbols = $(LIBTOOL_EXPORT_OPTIONS)
endif
libglib_2_0_la_LIBADD = libcharset/libcharset.la $(printf_la) @GIO@ @GSPAWN@ @PLATFORMDEP@ @G_LIB_WIN32_RESOURCE@ @ICONV_LIBS@ @G_LIBS_EXTRA@
--- /dev/null
+#! /bin/sh
+
+cpp -P -DG_OS_UNIX -DINCLUDE_INTERNAL_SYMBOLS ${srcdir:-.}/glib.symbols | sed -e '/^$/d' | sort > expected-abi
+nm -D .libs/libglib-2.0.so | grep " T " | cut -c12- | sort > actual-abi
+diff -u expected-abi actual-abi && rm expected-abi actual-abi
#include <string.h>
#include <stdlib.h>
+#include "galias.h"
#include "glib.h"
#include "config.h"
+#include "galias.h"
#include "glib.h"
#include "config.h"
+#include "galias.h"
#include "glib.h"
#include "gthreadinit.h"
#include <stdarg.h>
#include <stdio.h>
#include <stdlib.h>
+#include "galias.h"
#include "glib.h"
#include "gprintfint.h"
#include "config.h"
+#include "galias.h"
#include "glib.h"
#include <string.h>
+#include "galias.h"
#include "glib.h"
#include <string.h>
#include <stdlib.h>
+#include "galias.h"
#include "glib.h"
#include "gprintfint.h"
#include "gthreadinit.h"
#include "config.h"
#include <string.h>
-
+#include "galias.h"
#include "glib.h"
/* #define DEBUG_MSG(args) g_message args ; */
#endif
+#include "galias.h"
#include "glib.h"
#include <time.h>
#include <dirent.h>
#endif
+#include "galias.h"
#include "glib.h"
#include "gdir.h"
#include "config.h"
+#include "galias.h"
#include "glib.h"
#include "config.h"
+#include "galias.h"
#include "glib.h"
#include <sys/stat.h>
#include "config.h"
+#include "galias.h"
#include "glib.h"
#include "config.h"
+#include "galias.h"
#include "glib.h"
#undef G_DISABLE_DEPRECATED
+#include "galias.h"
#include "glib.h"
#include "giochannel.h"
#include <string.h>
#include <fcntl.h>
+#include "galias.h"
#include "glib.h"
/*
#include "config.h"
+#include "galias.h"
#include "glib.h"
#include <stdlib.h>
+++ /dev/null
-EXPORTS
- g_allocator_free
- g_allocator_new
- g_array_append_vals
- g_array_free
- g_array_insert_vals
- g_array_new
- g_array_prepend_vals
- g_array_remove_index
- g_array_remove_index_fast
- g_array_remove_range
- g_array_set_size
- g_array_sized_new
- g_array_sort
- g_array_sort_with_data
- g_ascii_digit_value
- g_ascii_dtostr
- g_ascii_formatd
- g_ascii_strcasecmp
- g_ascii_strdown
- g_ascii_strncasecmp
- g_ascii_strtod
- g_ascii_strtoull
- g_ascii_strup
- g_ascii_table
- g_ascii_tolower
- g_ascii_toupper
- g_ascii_xdigit_value
- g_async_queue_length
- g_async_queue_length_unlocked
- g_async_queue_lock
- g_async_queue_new
- g_async_queue_pop
- g_async_queue_pop_unlocked
- g_async_queue_push
- g_async_queue_push_unlocked
- g_async_queue_ref
- g_async_queue_ref_unlocked
- g_async_queue_timed_pop
- g_async_queue_timed_pop_unlocked
- g_async_queue_try_pop
- g_async_queue_try_pop_unlocked
- g_async_queue_unlock
- g_async_queue_unref
- g_async_queue_unref_and_unlock
- g_atexit
- g_atomic_int_add
- g_atomic_int_compare_and_exchange
- g_atomic_int_exchange_and_add
-; g_atomic_int_get
- g_atomic_pointer_compare_and_exchange
-; g_atomic_pointer_get
- g_basename
- g_bit_nth_lsf
- g_bit_nth_msf
- g_bit_storage
- g_blow_chunks
- g_build_filename
- g_build_path
- g_byte_array_append
- g_byte_array_free
- g_byte_array_new
- g_byte_array_prepend
- g_byte_array_remove_index
- g_byte_array_remove_index_fast
- g_byte_array_remove_range
- g_byte_array_set_size
- g_byte_array_sized_new
- g_byte_array_sort
- g_byte_array_sort_with_data
- g_cache_destroy
- g_cache_insert
- g_cache_key_foreach
- g_cache_new
- g_cache_remove
- g_cache_value_foreach
- g_child_watch_add
- g_child_watch_add_full
- g_child_watch_source_new
- g_clear_error
- g_completion_add_items
- g_completion_clear_items
- g_completion_complete
- g_completion_complete_utf8
- g_completion_free
- g_completion_new
- g_completion_remove_items
- g_completion_set_compare
- g_convert
- g_convert_error_quark
- g_convert_with_fallback
- g_convert_with_iconv
- g_datalist_clear
- g_datalist_foreach
- g_datalist_id_get_data
- g_datalist_id_remove_no_notify
- g_datalist_id_set_data_full
- g_datalist_init
- g_dataset_destroy
- g_dataset_foreach
- g_dataset_id_get_data
- g_dataset_id_remove_no_notify
- g_dataset_id_set_data_full
- g_date_add_days
- g_date_add_months
- g_date_add_years
- g_date_clamp
- g_date_clear
- g_date_compare
- g_date_days_between
- g_date_free
- g_date_get_day
- g_date_get_day_of_year
- g_date_get_days_in_month
- g_date_get_iso8601_week_of_year
- g_date_get_julian
- g_date_get_monday_week_of_year
- g_date_get_monday_weeks_in_year
- g_date_get_month
- g_date_get_sunday_week_of_year
- g_date_get_sunday_weeks_in_year
- g_date_get_weekday
- g_date_get_year
- g_date_is_first_of_month
- g_date_is_last_of_month
- g_date_is_leap_year
- g_date_new
- g_date_new_dmy
- g_date_new_julian
- g_date_order
- g_date_set_day
- g_date_set_dmy
- g_date_set_julian
- g_date_set_month
- g_date_set_parse
- g_date_set_time
- g_date_set_year
- g_date_strftime
- g_date_subtract_days
- g_date_subtract_months
- g_date_subtract_years
- g_date_to_struct_tm
- g_date_valid
- g_date_valid_day
- g_date_valid_dmy
- g_date_valid_julian
- g_date_valid_month
- g_date_valid_weekday
- g_date_valid_year
- g_dir_close
- g_dir_open
- g_dir_read_name
- g_dir_rewind
- g_direct_equal
- g_direct_hash
- g_error_copy
- g_error_free
- g_error_matches
- g_error_new
- g_error_new_literal
- g_file_error_from_errno
- g_file_error_quark
- g_file_get_contents
- g_file_open_tmp
- g_file_read_link
- g_file_test
- g_filename_from_uri
- g_filename_from_utf8
- g_filename_to_uri
- g_filename_to_utf8
- g_find_program_in_path
- g_fprintf
- g_free
- g_get_application_name
- g_get_charset
- g_get_codeset
- g_get_current_dir
- g_get_current_time
- g_get_home_dir
- g_get_language_names
- g_get_prgname
- g_get_real_name
- g_get_system_config_dirs
- g_get_system_data_dirs
- g_get_tmp_dir
- g_get_user_cache_dir
- g_get_user_config_dir
- g_get_user_data_dir
- g_get_user_name
- g_getenv
- g_hash_table_destroy
- g_hash_table_find
- g_hash_table_foreach
- g_hash_table_foreach_remove
- g_hash_table_foreach_steal
- g_hash_table_insert
- g_hash_table_lookup
- g_hash_table_lookup_extended
- g_hash_table_new
- g_hash_table_new_full
- g_hash_table_remove
- g_hash_table_replace
- g_hash_table_size
- g_hash_table_steal
- g_hook_alloc
- g_hook_compare_ids
- g_hook_destroy
- g_hook_destroy_link
- g_hook_find
- g_hook_find_data
- g_hook_find_func
- g_hook_find_func_data
- g_hook_first_valid
- g_hook_free
- g_hook_get
- g_hook_insert_before
- g_hook_insert_sorted
- g_hook_list_clear
- g_hook_list_init
- g_hook_list_invoke
- g_hook_list_invoke_check
- g_hook_list_marshal
- g_hook_list_marshal_check
- g_hook_next_valid
- g_hook_prepend
- g_hook_ref
- g_hook_unref
- g_iconv
- g_iconv_close
- g_iconv_open
- g_idle_add
- g_idle_add_full
- g_idle_funcs
- g_idle_remove_by_data
- g_idle_source_new
- g_int_equal
- g_int_hash
- g_io_add_watch
- g_io_add_watch_full
- g_io_channel_close
- g_io_channel_error_from_errno
- g_io_channel_error_quark
- g_io_channel_flush
- g_io_channel_get_buffer_condition
- g_io_channel_get_buffer_size
- g_io_channel_get_buffered
- g_io_channel_get_close_on_unref
- g_io_channel_get_encoding
- g_io_channel_get_flags
- g_io_channel_get_line_term
- g_io_channel_init
- g_io_channel_new_file
- g_io_channel_read
- g_io_channel_read_chars
- g_io_channel_read_line
- g_io_channel_read_line_string
- g_io_channel_read_to_end
- g_io_channel_read_unichar
- g_io_channel_ref
- g_io_channel_seek
- g_io_channel_seek_position
- g_io_channel_set_buffer_size
- g_io_channel_set_buffered
- g_io_channel_set_close_on_unref
- g_io_channel_set_encoding
- g_io_channel_set_flags
- g_io_channel_set_line_term
- g_io_channel_shutdown
- g_io_channel_unix_get_fd
- g_io_channel_unix_new
- g_io_channel_unref
- g_io_channel_win32_get_fd
- g_io_channel_win32_make_pollfd
- g_io_channel_win32_new_fd
- g_io_channel_win32_new_messages
- g_io_channel_win32_new_socket
- g_io_channel_win32_new_stream_socket
- g_io_channel_win32_poll
- g_io_channel_win32_set_debug
- g_io_channel_write
- g_io_channel_write_chars
- g_io_channel_write_unichar
- g_io_create_watch
- g_io_watch_funcs
- g_list_alloc
- g_list_append
- g_list_concat
- g_list_copy
- g_list_delete_link
- g_list_find
- g_list_find_custom
- g_list_first
- g_list_foreach
- g_list_free
- g_list_free_1
- g_list_index
- g_list_insert
- g_list_insert_before
- g_list_insert_sorted
- g_list_last
- g_list_length
- g_list_nth
- g_list_nth_data
- g_list_nth_prev
- g_list_pop_allocator
- g_list_position
- g_list_prepend
- g_list_push_allocator
- g_list_remove
- g_list_remove_all
- g_list_remove_link
- g_list_reverse
- g_list_sort
- g_list_sort_with_data
- g_locale_from_utf8
- g_locale_to_utf8
- g_log
- g_log_default_handler
- g_log_remove_handler
- g_log_set_always_fatal
- g_log_set_default_handler
- g_log_set_fatal_mask
- g_log_set_handler
- g_logv
- g_main_context_acquire
- g_main_context_add_poll
- g_main_context_check
- g_main_context_default
- g_main_context_dispatch
- g_main_context_find_source_by_funcs_user_data
- g_main_context_find_source_by_id
- g_main_context_find_source_by_user_data
- g_main_context_get_poll_func
- g_main_context_iteration
- g_main_context_new
- g_main_context_pending
- g_main_context_prepare
- g_main_context_query
- g_main_context_ref
- g_main_context_release
- g_main_context_remove_poll
- g_main_context_set_poll_func
- g_main_context_unref
- g_main_context_wait
- g_main_context_wakeup
- g_main_depth
- g_main_loop_get_context
- g_main_loop_is_running
- g_main_loop_new
- g_main_loop_quit
- g_main_loop_ref
- g_main_loop_run
- g_main_loop_unref
- g_malloc
- g_malloc0
- g_markup_error_quark
- g_markup_escape_text
- g_markup_parse_context_end_parse
- g_markup_parse_context_free
- g_markup_parse_context_get_element
- g_markup_parse_context_get_position
- g_markup_parse_context_new
- g_markup_parse_context_parse
- g_markup_printf_escaped
- g_markup_vprintf_escaped
- g_mem_chunk_alloc
- g_mem_chunk_alloc0
- g_mem_chunk_clean
- g_mem_chunk_destroy
- g_mem_chunk_free
- g_mem_chunk_info
- g_mem_chunk_new
- g_mem_chunk_print
- g_mem_chunk_reset
- g_mem_is_system_malloc
- g_mem_profile
- g_mem_set_vtable
- g_memdup
- g_mkstemp
- g_node_child_index
- g_node_child_position
- g_node_children_foreach
- g_node_copy
- g_node_copy_deep
- g_node_depth
- g_node_destroy
- g_node_find
- g_node_find_child
- g_node_first_sibling
- g_node_get_root
- g_node_insert
- g_node_insert_after
- g_node_insert_before
- g_node_is_ancestor
- g_node_last_child
- g_node_last_sibling
- g_node_max_height
- g_node_n_children
- g_node_n_nodes
- g_node_new
- g_node_nth_child
- g_node_pop_allocator
- g_node_prepend
- g_node_push_allocator
- g_node_reverse_children
- g_node_traverse
- g_node_unlink
- g_nullify_pointer
- g_on_error_query
- g_on_error_stack_trace
- g_once_impl
- g_option_context_add_group
- g_option_context_add_main_entries
- g_option_context_error_quark
- g_option_context_free
- g_option_context_get_help_enabled
- g_option_context_get_ignore_unknown_options
- g_option_context_get_main_group
- g_option_context_new
- g_option_context_parse
- g_option_context_set_help_enabled
- g_option_context_set_ignore_unknown_options
- g_option_context_set_main_group
- g_option_group_add_entries
- g_option_group_free
- g_option_group_new
- g_option_group_set_error_hook
- g_option_group_set_parse_hooks
- g_option_group_set_translate_func
- g_option_group_set_translation_domain
- g_parse_debug_string
- g_path_get_basename
- g_path_get_dirname
- g_path_is_absolute
- g_path_skip_root
- g_pattern_match
- g_pattern_match_simple
- g_pattern_match_string
- g_pattern_spec_equal
- g_pattern_spec_free
- g_pattern_spec_new
- g_print
- g_printerr
- g_printf
- g_printf_string_upper_bound
- g_propagate_error
- g_ptr_array_add
- g_ptr_array_foreach
- g_ptr_array_free
- g_ptr_array_new
- g_ptr_array_remove
- g_ptr_array_remove_fast
- g_ptr_array_remove_index
- g_ptr_array_remove_index_fast
- g_ptr_array_remove_range
- g_ptr_array_set_size
- g_ptr_array_sized_new
- g_ptr_array_sort
- g_ptr_array_sort_with_data
- g_qsort_with_data
- g_quark_from_static_string
- g_quark_from_string
- g_quark_to_string
- g_quark_try_string
- g_queue_copy
- g_queue_delete_link
- g_queue_find
- g_queue_find_custom
- g_queue_foreach
- g_queue_free
- g_queue_get_length
- g_queue_index
- g_queue_insert_after
- g_queue_insert_before
- g_queue_insert_sorted
- g_queue_is_empty
- g_queue_link_index
- g_queue_new
- g_queue_peek_head
- g_queue_peek_head_link
- g_queue_peek_nth
- g_queue_peek_nth_link
- g_queue_peek_tail
- g_queue_peek_tail_link
- g_queue_pop_head
- g_queue_pop_head_link
- g_queue_pop_nth
- g_queue_pop_nth_link
- g_queue_pop_tail
- g_queue_pop_tail_link
- g_queue_push_head
- g_queue_push_head_link
- g_queue_push_nth
- g_queue_push_nth_link
- g_queue_push_tail
- g_queue_push_tail_link
- g_queue_remove
- g_queue_remove_all
- g_queue_reverse
- g_queue_sort
- g_queue_unlink
- g_rand_copy
- g_rand_double
- g_rand_double_range
- g_rand_free
- g_rand_int
- g_rand_int_range
- g_rand_new
- g_rand_new_with_seed
- g_rand_new_with_seed_array
- g_rand_set_seed
- g_rand_set_seed_array
- g_random_double
- g_random_double_range
- g_random_int
- g_random_int_range
- g_random_set_seed
- g_realloc
- g_relation_count
- g_relation_delete
- g_relation_destroy
- g_relation_exists
- g_relation_index
- g_relation_insert
- g_relation_new
- g_relation_print
- g_relation_select
- g_scanner_cur_line
- g_scanner_cur_position
- g_scanner_cur_token
- g_scanner_cur_value
- g_scanner_destroy
- g_scanner_eof
- g_scanner_error
- g_scanner_get_next_token
- g_scanner_input_file
- g_scanner_input_text
- g_scanner_lookup_symbol
- g_scanner_new
- g_scanner_peek_next_token
- g_scanner_scope_add_symbol
- g_scanner_scope_foreach_symbol
- g_scanner_scope_lookup_symbol
- g_scanner_scope_remove_symbol
- g_scanner_set_scope
- g_scanner_sync_file_offset
- g_scanner_unexp_token
- g_scanner_warn
- g_set_application_name
- g_set_error
- g_set_prgname
- g_set_print_handler
- g_set_printerr_handler
- g_setenv
- g_shell_error_quark
- g_shell_parse_argv
- g_shell_quote
- g_shell_unquote
- g_slist_alloc
- g_slist_append
- g_slist_concat
- g_slist_copy
- g_slist_delete_link
- g_slist_find
- g_slist_find_custom
- g_slist_foreach
- g_slist_free
- g_slist_free_1
- g_slist_index
- g_slist_insert
- g_slist_insert_before
- g_slist_insert_sorted
- g_slist_last
- g_slist_length
- g_slist_nth
- g_slist_nth_data
- g_slist_pop_allocator
- g_slist_position
- g_slist_prepend
- g_slist_push_allocator
- g_slist_remove
- g_slist_remove_all
- g_slist_remove_link
- g_slist_reverse
- g_slist_sort
- g_slist_sort_with_data
- g_snprintf
- g_source_add_poll
- g_source_attach
- g_source_destroy
- g_source_get_can_recurse
- g_source_get_context
- g_source_get_current_time
- g_source_get_id
- g_source_get_priority
- g_source_new
- g_source_ref
- g_source_remove
- g_source_remove_by_funcs_user_data
- g_source_remove_by_user_data
- g_source_remove_poll
- g_source_set_callback
- g_source_set_callback_indirect
- g_source_set_can_recurse
- g_source_set_priority
- g_source_unref
- g_spaced_primes_closest
- g_spawn_async
- g_spawn_async_with_pipes
- g_spawn_close_pid
- g_spawn_command_line_async
- g_spawn_command_line_sync
- g_spawn_error_quark
- g_spawn_sync
- g_sprintf
- g_static_mutex_free
- g_static_mutex_get_mutex_impl
- g_static_mutex_init
- g_static_private_free
- g_static_private_get
- g_static_private_init
- g_static_private_set
- g_static_rec_mutex_free
- g_static_rec_mutex_init
- g_static_rec_mutex_lock
- g_static_rec_mutex_lock_full
- g_static_rec_mutex_trylock
- g_static_rec_mutex_unlock
- g_static_rec_mutex_unlock_full
- g_static_rw_lock_free
- g_static_rw_lock_init
- g_static_rw_lock_reader_lock
- g_static_rw_lock_reader_trylock
- g_static_rw_lock_reader_unlock
- g_static_rw_lock_writer_lock
- g_static_rw_lock_writer_trylock
- g_static_rw_lock_writer_unlock
- g_stpcpy
- g_str_equal
- g_str_has_prefix
- g_str_has_suffix
- g_str_hash
- g_strcanon
- g_strcasecmp
- g_strchomp
- g_strchug
- g_strcompress
- g_strconcat
- g_strdelimit
- g_strdown
- g_strdup
- g_strdup_printf
- g_strdup_vprintf
- g_strdupv
- g_strerror
- g_strescape
- g_strfreev
- g_string_append
- g_string_append_c
- g_string_append_len
- g_string_append_printf
- g_string_append_unichar
- g_string_ascii_down
- g_string_ascii_up
- g_string_assign
- g_string_chunk_free
- g_string_chunk_insert
- g_string_chunk_insert_const
- g_string_chunk_insert_len
- g_string_chunk_new
- g_string_down
- g_string_equal
- g_string_erase
- g_string_free
- g_string_hash
- g_string_insert
- g_string_insert_c
- g_string_insert_len
- g_string_insert_unichar
- g_string_new
- g_string_new_len
- g_string_prepend
- g_string_prepend_c
- g_string_prepend_len
- g_string_prepend_unichar
- g_string_printf
- g_string_set_size
- g_string_sized_new
- g_string_truncate
- g_string_up
- g_strip_context
- g_strjoin
- g_strjoinv
- g_strlcat
- g_strlcpy
- g_strncasecmp
- g_strndup
- g_strnfill
- g_strreverse
- g_strrstr
- g_strrstr_len
- g_strsignal
- g_strsplit
- g_strsplit_set
- g_strstr_len
- g_strtod
- g_strup
- g_thread_create_full
- g_thread_error_quark
- g_thread_exit
- g_thread_functions_for_glib_use
- g_thread_init_glib
- g_thread_join
- g_thread_pool_free
- g_thread_pool_get_max_threads
- g_thread_pool_get_max_unused_threads
- g_thread_pool_get_num_threads
- g_thread_pool_get_num_unused_threads
- g_thread_pool_new
- g_thread_pool_push
- g_thread_pool_set_max_threads
- g_thread_pool_set_max_unused_threads
- g_thread_pool_stop_unused_threads
- g_thread_pool_unprocessed
- g_thread_self
- g_thread_set_priority
- g_thread_use_default_impl
- g_threads_got_initialized
- g_time_val_add
- g_timeout_add
- g_timeout_add_full
- g_timeout_funcs
- g_timeout_source_new
- g_timer_continue
- g_timer_destroy
- g_timer_elapsed
- g_timer_new
- g_timer_reset
- g_timer_start
- g_timer_stop
- g_trash_stack_height
- g_trash_stack_peek
- g_trash_stack_pop
- g_trash_stack_push
- g_tree_destroy
- g_tree_foreach
- g_tree_height
- g_tree_insert
- g_tree_lookup
- g_tree_lookup_extended
- g_tree_new
- g_tree_new_full
- g_tree_new_with_data
- g_tree_nnodes
- g_tree_remove
- g_tree_replace
- g_tree_search
- g_tree_steal
- g_tree_traverse
- g_try_malloc
- g_try_realloc
- g_tuples_destroy
- g_tuples_index
- g_ucs4_to_utf16
- g_ucs4_to_utf8
- g_unichar_break_type
- g_unichar_digit_value
- g_unichar_get_mirror_char
- g_unichar_isalnum
- g_unichar_isalpha
- g_unichar_iscntrl
- g_unichar_isdefined
- g_unichar_isdigit
- g_unichar_isgraph
- g_unichar_islower
- g_unichar_isprint
- g_unichar_ispunct
- g_unichar_isspace
- g_unichar_istitle
- g_unichar_isupper
- g_unichar_iswide
- g_unichar_isxdigit
- g_unichar_to_utf8
- g_unichar_tolower
- g_unichar_totitle
- g_unichar_toupper
- g_unichar_type
- g_unichar_validate
- g_unichar_xdigit_value
- g_unicode_canonical_decomposition
- g_unicode_canonical_ordering
- g_unsetenv
- g_usleep
- g_utf16_to_ucs4
- g_utf16_to_utf8
- g_utf8_casefold
- g_utf8_collate
- g_utf8_collate_key
- g_utf8_find_next_char
- g_utf8_find_prev_char
- g_utf8_get_char
- g_utf8_get_char_validated
- g_utf8_normalize
- g_utf8_offset_to_pointer
- g_utf8_pointer_to_offset
- g_utf8_prev_char
- g_utf8_skip
- g_utf8_strchr
- g_utf8_strdown
- g_utf8_strlen
- g_utf8_strncpy
- g_utf8_strrchr
- g_utf8_strreverse
- g_utf8_strup
- g_utf8_to_ucs4
- g_utf8_to_ucs4_fast
- g_utf8_to_utf16
- g_utf8_validate
- g_vasprintf
- g_vfprintf
- g_vprintf
- g_vsnprintf
- g_vsprintf
- g_win32_error_message
- g_win32_ftruncate
- g_win32_get_package_installation_directory
- g_win32_get_package_installation_subdirectory
- g_win32_get_windows_version
- g_win32_getlocale
- glib_binary_age
- glib_check_version
- glib_interface_age
- glib_major_version
- glib_mem_profiler_table
- glib_micro_version
- glib_minor_version
--- /dev/null
+g_allocator_free
+g_allocator_new
+g_array_append_vals
+g_array_free
+g_array_insert_vals
+g_array_new
+g_array_prepend_vals
+g_array_remove_index
+g_array_remove_index_fast
+g_array_remove_range
+g_array_set_size
+g_array_sized_new
+g_array_sort
+g_array_sort_with_data
+g_ascii_digit_value
+g_ascii_dtostr
+g_ascii_formatd
+g_ascii_strcasecmp
+g_ascii_strdown
+g_ascii_strncasecmp
+g_ascii_strtod
+g_ascii_strtoull
+g_ascii_strup
+g_ascii_tolower
+g_ascii_toupper
+g_ascii_xdigit_value
+g_async_queue_length
+g_async_queue_length_unlocked
+g_async_queue_lock
+g_async_queue_new
+g_async_queue_pop
+g_async_queue_pop_unlocked
+g_async_queue_push
+g_async_queue_push_unlocked
+g_async_queue_ref
+g_async_queue_ref_unlocked
+g_async_queue_timed_pop
+g_async_queue_timed_pop_unlocked
+g_async_queue_try_pop
+g_async_queue_try_pop_unlocked
+g_async_queue_unlock
+g_async_queue_unref
+g_async_queue_unref_and_unlock
+g_atexit
+g_atomic_int_add
+g_atomic_int_compare_and_exchange
+g_atomic_int_exchange_and_add
+g_atomic_pointer_compare_and_exchange
+#ifdef G_ATOMIC_OP_MEMORY_BARRIER_NEEDED
+g_atomic_int_get
+g_atomic_pointer_get
+#endif
+g_basename
+g_blow_chunks
+g_build_filename
+g_build_path
+g_byte_array_append
+g_byte_array_free
+g_byte_array_new
+g_byte_array_prepend
+g_byte_array_remove_index
+g_byte_array_remove_index_fast
+g_byte_array_remove_range
+g_byte_array_set_size
+g_byte_array_sized_new
+g_byte_array_sort
+g_byte_array_sort_with_data
+g_cache_destroy
+g_cache_insert
+g_cache_key_foreach
+g_cache_new
+g_cache_remove
+g_cache_value_foreach
+g_child_watch_add
+g_child_watch_add_full
+g_child_watch_source_new
+g_clear_error
+g_completion_add_items
+g_completion_clear_items
+g_completion_complete
+g_completion_complete_utf8
+g_completion_free
+g_completion_new
+g_completion_remove_items
+g_completion_set_compare
+g_convert
+g_convert_error_quark
+g_convert_with_fallback
+g_convert_with_iconv
+g_datalist_clear
+g_datalist_foreach
+g_datalist_id_get_data
+g_datalist_id_remove_no_notify
+g_datalist_id_set_data_full
+g_datalist_init
+g_dataset_destroy
+g_dataset_foreach
+g_dataset_id_get_data
+g_dataset_id_remove_no_notify
+g_dataset_id_set_data_full
+g_date_add_days
+g_date_add_months
+g_date_add_years
+g_date_clamp
+g_date_clear
+g_date_compare
+g_date_days_between
+g_date_free
+g_date_get_day
+g_date_get_day_of_year
+g_date_get_days_in_month
+g_date_get_iso8601_week_of_year
+g_date_get_julian
+g_date_get_monday_week_of_year
+g_date_get_monday_weeks_in_year
+g_date_get_month
+g_date_get_sunday_week_of_year
+g_date_get_sunday_weeks_in_year
+g_date_get_weekday
+g_date_get_year
+g_date_is_first_of_month
+g_date_is_last_of_month
+g_date_is_leap_year
+g_date_new
+g_date_new_dmy
+g_date_new_julian
+g_date_order
+g_date_set_day
+g_date_set_dmy
+g_date_set_julian
+g_date_set_month
+g_date_set_parse
+g_date_set_time
+g_date_set_year
+g_date_strftime
+g_date_subtract_days
+g_date_subtract_months
+g_date_subtract_years
+g_date_to_struct_tm
+g_date_valid
+g_date_valid_day
+g_date_valid_dmy
+g_date_valid_julian
+g_date_valid_month
+g_date_valid_weekday
+g_date_valid_year
+g_dir_close
+g_direct_equal
+g_direct_hash
+g_dir_open
+g_dir_read_name
+g_dir_rewind
+g_error_copy
+g_error_free
+g_error_matches
+g_error_new
+g_error_new_literal
+g_file_error_from_errno
+g_file_error_quark
+g_file_get_contents
+g_filename_from_uri
+g_filename_from_utf8
+g_filename_to_uri
+g_filename_to_utf8
+g_file_open_tmp
+g_file_read_link
+g_file_test
+g_find_program_in_path
+g_fprintf
+g_free
+g_get_application_name
+g_get_charset
+g_get_current_dir
+g_get_current_time
+g_getenv
+g_get_home_dir
+g_get_language_names
+g_get_prgname
+g_get_real_name
+g_get_system_config_dirs
+g_get_system_data_dirs
+g_get_tmp_dir
+g_get_user_cache_dir
+g_get_user_config_dir
+g_get_user_data_dir
+g_get_user_name
+g_hash_table_destroy
+g_hash_table_find
+g_hash_table_foreach
+g_hash_table_foreach_remove
+g_hash_table_foreach_steal
+g_hash_table_insert
+g_hash_table_lookup
+g_hash_table_lookup_extended
+g_hash_table_new
+g_hash_table_new_full
+g_hash_table_remove
+g_hash_table_replace
+g_hash_table_size
+g_hash_table_steal
+g_hook_alloc
+g_hook_compare_ids
+g_hook_destroy
+g_hook_destroy_link
+g_hook_find
+g_hook_find_data
+g_hook_find_func
+g_hook_find_func_data
+g_hook_first_valid
+g_hook_free
+g_hook_get
+g_hook_insert_before
+g_hook_insert_sorted
+g_hook_list_clear
+g_hook_list_init
+g_hook_list_invoke
+g_hook_list_invoke_check
+g_hook_list_marshal
+g_hook_list_marshal_check
+g_hook_next_valid
+g_hook_prepend
+g_hook_ref
+g_hook_unref
+g_iconv
+g_iconv_close
+g_iconv_open
+g_idle_add
+g_idle_add_full
+g_idle_remove_by_data
+g_idle_source_new
+g_int_equal
+g_int_hash
+g_io_add_watch
+g_io_add_watch_full
+g_io_channel_close
+g_io_channel_error_from_errno
+g_io_channel_error_quark
+g_io_channel_flush
+g_io_channel_get_buffer_condition
+g_io_channel_get_buffered
+g_io_channel_get_buffer_size
+g_io_channel_get_close_on_unref
+g_io_channel_get_encoding
+g_io_channel_get_flags
+g_io_channel_get_line_term
+g_io_channel_init
+g_io_channel_new_file
+g_io_channel_read
+g_io_channel_read_chars
+g_io_channel_read_line
+g_io_channel_read_line_string
+g_io_channel_read_to_end
+g_io_channel_read_unichar
+g_io_channel_ref
+g_io_channel_seek
+g_io_channel_seek_position
+g_io_channel_set_buffered
+g_io_channel_set_buffer_size
+g_io_channel_set_close_on_unref
+g_io_channel_set_encoding
+g_io_channel_set_flags
+g_io_channel_set_line_term
+g_io_channel_shutdown
+g_io_channel_unix_get_fd
+g_io_channel_unix_new
+g_io_channel_unref
+#ifdef G_OS_WIN32
+g_io_channel_win32_get_fd
+g_io_channel_win32_make_pollfd
+g_io_channel_win32_new_fd
+g_io_channel_win32_new_messages
+g_io_channel_win32_new_socket
+g_io_channel_win32_new_stream_socket
+g_io_channel_win32_poll
+g_io_channel_win32_set_debug
+#endif
+g_io_channel_write
+g_io_channel_write_chars
+g_io_channel_write_unichar
+g_io_create_watch
+glib_check_version
+g_list_alloc
+g_list_append
+g_list_concat
+g_list_copy
+g_list_delete_link
+g_list_find
+g_list_find_custom
+g_list_first
+g_list_foreach
+g_list_free
+g_list_free_1
+g_list_index
+g_list_insert
+g_list_insert_before
+g_list_insert_sorted
+g_list_last
+g_list_length
+g_list_nth
+g_list_nth_data
+g_list_nth_prev
+g_list_pop_allocator
+g_list_position
+g_list_prepend
+g_list_push_allocator
+g_list_remove
+g_list_remove_all
+g_list_remove_link
+g_list_reverse
+g_list_sort
+g_list_sort_with_data
+g_locale_from_utf8
+g_locale_to_utf8
+g_log
+g_log_default_handler
+g_log_remove_handler
+g_log_set_always_fatal
+g_log_set_default_handler
+g_log_set_fatal_mask
+g_log_set_handler
+g_logv
+g_main_context_acquire
+g_main_context_add_poll
+g_main_context_check
+g_main_context_default
+g_main_context_dispatch
+g_main_context_find_source_by_funcs_user_data
+g_main_context_find_source_by_id
+g_main_context_find_source_by_user_data
+g_main_context_get_poll_func
+g_main_context_iteration
+g_main_context_new
+g_main_context_pending
+g_main_context_prepare
+g_main_context_query
+g_main_context_ref
+g_main_context_release
+g_main_context_remove_poll
+g_main_context_set_poll_func
+g_main_context_unref
+g_main_context_wait
+g_main_context_wakeup
+g_main_depth
+g_main_loop_get_context
+g_main_loop_is_running
+g_main_loop_new
+g_main_loop_quit
+g_main_loop_ref
+g_main_loop_run
+g_main_loop_unref
+g_malloc
+g_malloc0
+g_markup_error_quark
+g_markup_escape_text
+g_markup_parse_context_end_parse
+g_markup_parse_context_free
+g_markup_parse_context_get_element
+g_markup_parse_context_get_position
+g_markup_parse_context_new
+g_markup_parse_context_parse
+g_markup_printf_escaped
+g_markup_vprintf_escaped
+g_mem_chunk_alloc
+g_mem_chunk_alloc0
+g_mem_chunk_clean
+g_mem_chunk_destroy
+g_mem_chunk_free
+g_mem_chunk_info
+g_mem_chunk_new
+g_mem_chunk_print
+g_mem_chunk_reset
+g_memdup
+g_mem_is_system_malloc
+g_mem_profile
+g_mem_set_vtable
+g_mkstemp
+g_node_child_index
+g_node_child_position
+g_node_children_foreach
+g_node_copy
+g_node_copy_deep
+g_node_depth
+g_node_destroy
+g_node_find
+g_node_find_child
+g_node_first_sibling
+g_node_get_root
+g_node_insert
+g_node_insert_after
+g_node_insert_before
+g_node_is_ancestor
+g_node_last_child
+g_node_last_sibling
+g_node_max_height
+g_node_n_children
+g_node_new
+g_node_n_nodes
+g_node_nth_child
+g_node_pop_allocator
+g_node_prepend
+g_node_push_allocator
+g_node_reverse_children
+g_node_traverse
+g_node_unlink
+g_nullify_pointer
+g_once_impl
+g_on_error_query
+g_on_error_stack_trace
+g_option_context_add_group
+g_option_context_add_main_entries
+g_option_context_error_quark
+g_option_context_free
+g_option_context_get_help_enabled
+g_option_context_get_ignore_unknown_options
+g_option_context_get_main_group
+g_option_context_new
+g_option_context_parse
+g_option_context_set_help_enabled
+g_option_context_set_ignore_unknown_options
+g_option_context_set_main_group
+g_option_group_add_entries
+g_option_group_free
+g_option_group_new
+g_option_group_set_error_hook
+g_option_group_set_parse_hooks
+g_option_group_set_translate_func
+g_option_group_set_translation_domain
+g_parse_debug_string
+g_path_get_basename
+g_path_get_dirname
+g_path_is_absolute
+g_path_skip_root
+g_pattern_match
+g_pattern_match_simple
+g_pattern_match_string
+g_pattern_spec_equal
+g_pattern_spec_free
+g_pattern_spec_new
+g_print
+g_printerr
+g_printf
+g_printf_string_upper_bound
+g_propagate_error
+g_ptr_array_add
+g_ptr_array_foreach
+g_ptr_array_free
+g_ptr_array_new
+g_ptr_array_remove
+g_ptr_array_remove_fast
+g_ptr_array_remove_index
+g_ptr_array_remove_index_fast
+g_ptr_array_remove_range
+g_ptr_array_set_size
+g_ptr_array_sized_new
+g_ptr_array_sort
+g_ptr_array_sort_with_data
+g_qsort_with_data
+g_quark_from_static_string
+g_quark_from_string
+g_quark_to_string
+g_quark_try_string
+g_queue_copy
+g_queue_delete_link
+g_queue_find
+g_queue_find_custom
+g_queue_foreach
+g_queue_free
+g_queue_get_length
+g_queue_index
+g_queue_insert_after
+g_queue_insert_before
+g_queue_insert_sorted
+g_queue_is_empty
+g_queue_link_index
+g_queue_new
+g_queue_peek_head
+g_queue_peek_head_link
+g_queue_peek_nth
+g_queue_peek_nth_link
+g_queue_peek_tail
+g_queue_peek_tail_link
+g_queue_pop_head
+g_queue_pop_head_link
+g_queue_pop_nth
+g_queue_pop_nth_link
+g_queue_pop_tail
+g_queue_pop_tail_link
+g_queue_push_head
+g_queue_push_head_link
+g_queue_push_nth
+g_queue_push_nth_link
+g_queue_push_tail
+g_queue_push_tail_link
+g_queue_remove
+g_queue_remove_all
+g_queue_reverse
+g_queue_sort
+g_queue_unlink
+g_rand_copy
+g_rand_double
+g_rand_double_range
+g_rand_free
+g_rand_int
+g_rand_int_range
+g_rand_new
+g_rand_new_with_seed
+g_rand_new_with_seed_array
+g_random_double
+g_random_double_range
+g_random_int
+g_random_int_range
+g_random_set_seed
+g_rand_set_seed
+g_rand_set_seed_array
+g_realloc
+g_relation_count
+g_relation_delete
+g_relation_destroy
+g_relation_exists
+g_relation_index
+g_relation_insert
+g_relation_new
+g_relation_print
+g_relation_select
+g_return_if_fail_warning
+g_scanner_cur_line
+g_scanner_cur_position
+g_scanner_cur_token
+g_scanner_cur_value
+g_scanner_destroy
+g_scanner_eof
+g_scanner_error
+g_scanner_get_next_token
+g_scanner_input_file
+g_scanner_input_text
+g_scanner_lookup_symbol
+g_scanner_new
+g_scanner_peek_next_token
+g_scanner_scope_add_symbol
+g_scanner_scope_foreach_symbol
+g_scanner_scope_lookup_symbol
+g_scanner_scope_remove_symbol
+g_scanner_set_scope
+g_scanner_sync_file_offset
+g_scanner_unexp_token
+g_scanner_warn
+g_set_application_name
+g_setenv
+g_set_error
+g_set_prgname
+g_set_printerr_handler
+g_set_print_handler
+g_shell_error_quark
+g_shell_parse_argv
+g_shell_quote
+g_shell_unquote
+g_slist_alloc
+g_slist_append
+g_slist_concat
+g_slist_copy
+g_slist_delete_link
+g_slist_find
+g_slist_find_custom
+g_slist_foreach
+g_slist_free
+g_slist_free_1
+g_slist_index
+g_slist_insert
+g_slist_insert_before
+g_slist_insert_sorted
+g_slist_last
+g_slist_length
+g_slist_nth
+g_slist_nth_data
+g_slist_pop_allocator
+g_slist_position
+g_slist_prepend
+g_slist_push_allocator
+g_slist_remove
+g_slist_remove_all
+g_slist_remove_link
+g_slist_reverse
+g_slist_sort
+g_slist_sort_with_data
+g_snprintf
+g_source_add_poll
+g_source_attach
+g_source_destroy
+g_source_get_can_recurse
+g_source_get_context
+g_source_get_current_time
+g_source_get_id
+g_source_get_priority
+g_source_new
+g_source_ref
+g_source_remove
+g_source_remove_by_funcs_user_data
+g_source_remove_by_user_data
+g_source_remove_poll
+g_source_set_callback
+g_source_set_callback_indirect
+g_source_set_can_recurse
+g_source_set_priority
+g_source_unref
+g_spaced_primes_closest
+g_spawn_async
+g_spawn_async_with_pipes
+g_spawn_close_pid
+g_spawn_command_line_async
+g_spawn_command_line_sync
+g_spawn_error_quark
+g_spawn_sync
+g_sprintf
+g_static_mutex_free
+g_static_mutex_get_mutex_impl
+g_static_mutex_init
+g_static_private_free
+g_static_private_get
+g_static_private_init
+g_static_private_set
+g_static_rec_mutex_free
+g_static_rec_mutex_init
+g_static_rec_mutex_lock
+g_static_rec_mutex_lock_full
+g_static_rec_mutex_trylock
+g_static_rec_mutex_unlock
+g_static_rec_mutex_unlock_full
+g_static_rw_lock_free
+g_static_rw_lock_init
+g_static_rw_lock_reader_lock
+g_static_rw_lock_reader_trylock
+g_static_rw_lock_reader_unlock
+g_static_rw_lock_writer_lock
+g_static_rw_lock_writer_trylock
+g_static_rw_lock_writer_unlock
+g_stpcpy
+g_strcanon
+g_strcasecmp
+g_strchomp
+g_strchug
+g_strcompress
+g_strconcat
+g_strdelimit
+g_strdown
+g_strdup
+g_strdup_printf
+g_strdupv
+g_strdup_vprintf
+g_str_equal
+g_strerror
+g_strescape
+g_strfreev
+g_str_hash
+g_str_has_prefix
+g_str_has_suffix
+g_string_append
+g_string_append_len
+g_string_append_printf
+g_string_append_unichar
+g_string_ascii_down
+g_string_ascii_up
+g_string_assign
+g_string_chunk_free
+g_string_chunk_insert
+g_string_chunk_insert_const
+g_string_chunk_insert_len
+g_string_chunk_new
+g_string_down
+g_string_equal
+g_string_erase
+g_string_free
+g_string_hash
+g_string_insert
+g_string_insert_c
+g_string_insert_len
+g_string_insert_unichar
+g_string_new
+g_string_new_len
+g_string_prepend
+g_string_prepend_c
+g_string_prepend_len
+g_string_prepend_unichar
+g_string_printf
+g_string_set_size
+g_string_sized_new
+g_string_truncate
+g_string_up
+g_strip_context
+g_strjoin
+g_strjoinv
+g_strlcat
+g_strlcpy
+g_strncasecmp
+g_strndup
+g_strnfill
+g_strreverse
+g_strrstr
+g_strrstr_len
+g_strsignal
+g_strsplit
+g_strsplit_set
+g_strstr_len
+g_strtod
+g_strup
+g_strv_length
+g_thread_create_full
+g_thread_error_quark
+g_thread_exit
+g_thread_join
+g_thread_pool_free
+g_thread_pool_get_max_threads
+g_thread_pool_get_max_unused_threads
+g_thread_pool_get_num_threads
+g_thread_pool_get_num_unused_threads
+g_thread_pool_new
+g_thread_pool_push
+g_thread_pool_set_max_threads
+g_thread_pool_set_max_unused_threads
+g_thread_pool_stop_unused_threads
+g_thread_pool_unprocessed
+g_thread_self
+g_thread_set_priority
+g_timeout_add
+g_timeout_add_full
+g_timeout_source_new
+g_timer_continue
+g_timer_destroy
+g_timer_elapsed
+g_timer_new
+g_timer_reset
+g_timer_start
+g_timer_stop
+g_time_val_add
+g_tree_destroy
+g_tree_foreach
+g_tree_height
+g_tree_insert
+g_tree_lookup
+g_tree_lookup_extended
+g_tree_new
+g_tree_new_full
+g_tree_new_with_data
+g_tree_nnodes
+g_tree_remove
+g_tree_replace
+g_tree_search
+g_tree_steal
+g_tree_traverse
+g_try_malloc
+g_try_realloc
+g_tuples_destroy
+g_tuples_index
+g_ucs4_to_utf16
+g_ucs4_to_utf8
+g_unichar_break_type
+g_unichar_digit_value
+g_unichar_get_mirror_char
+g_unichar_isalnum
+g_unichar_isalpha
+g_unichar_iscntrl
+g_unichar_isdefined
+g_unichar_isdigit
+g_unichar_isgraph
+g_unichar_islower
+g_unichar_isprint
+g_unichar_ispunct
+g_unichar_isspace
+g_unichar_istitle
+g_unichar_isupper
+g_unichar_iswide
+g_unichar_isxdigit
+g_unichar_tolower
+g_unichar_totitle
+g_unichar_toupper
+g_unichar_to_utf8
+g_unichar_type
+g_unichar_validate
+g_unichar_xdigit_value
+g_unicode_canonical_decomposition
+g_unicode_canonical_ordering
+g_unsetenv
+g_usleep
+g_utf16_to_ucs4
+g_utf16_to_utf8
+g_utf8_casefold
+g_utf8_collate
+g_utf8_collate_key
+g_utf8_find_next_char
+g_utf8_find_prev_char
+g_utf8_get_char
+g_utf8_get_char_validated
+g_utf8_normalize
+g_utf8_offset_to_pointer
+g_utf8_pointer_to_offset
+g_utf8_prev_char
+g_utf8_strchr
+g_utf8_strdown
+g_utf8_strlen
+g_utf8_strncpy
+g_utf8_strrchr
+g_utf8_strreverse
+g_utf8_strup
+g_utf8_to_ucs4
+g_utf8_to_ucs4_fast
+g_utf8_to_utf16
+g_utf8_validate
+g_vasprintf
+g_vfprintf
+g_vprintf
+g_vsnprintf
+g_vsprintf
+#ifdef G_OS_WIN32
+g_win32_error_message
+g_win32_ftruncate
+g_win32_get_package_installation_directory
+g_win32_get_package_installation_subdirectory
+g_win32_get_windows_version
+g_win32_getlocale
+#endif
+#ifdef INCLUDE_VARIABLES
+g_ascii_table
+g_utf8_skip
+g_idle_funcs
+g_timeout_funcs
+g_io_watch_funcs
+g_child_watch_funcs
+g_thread_functions_for_glib_use
+g_thread_use_default_impl
+g_threads_got_initialized
+glib_binary_age
+glib_interface_age
+glib_major_version
+glib_mem_profiler_table
+glib_micro_version
+glib_minor_version
+#endif
+#ifdef INCLUDE_INTERNAL_SYMBOLS
+/* internal or inline symbols */
+g_get_codeset
+g_string_append_c
+g_thread_init_glib
+g_trash_stack_height
+g_trash_stack_peek
+g_trash_stack_pop
+g_trash_stack_push
+g_bit_nth_lsf
+g_bit_nth_msf
+g_bit_storage
+#endif
#include "config.h"
+#include "galias.h"
#include "glib.h"
/* uncomment the next line to get poll() debugging info */
/* #define G_MAIN_POLL_DEBUG */
+#include "galias.h"
#include "glib.h"
#include "gthreadinit.h"
#include <signal.h>
#include <stdlib.h>
#include <errno.h>
+#include "galias.h"
#include "glib.h"
#include "glibintl.h"
#include <string.h>
#include <signal.h>
+#include "galias.h"
#include "glib.h"
#include "gthreadinit.h"
#include <locale.h>
#include <errno.h>
+#include "galias.h"
#include "glib.h"
#include "gdebug.h"
#include "gprintfint.h"
#include "config.h"
+#include "galias.h"
#include "glib.h"
#ifndef DISABLE_MEM_POOLS
#include "goption.h"
+#include "galias.h"
#include "glib.h"
#include "gi18n.h"
#include <string.h>
+#include "galias.h"
#include "gpattern.h"
#include "gmacros.h"
#include "config.h"
+#include "galias.h"
#include "glib.h"
#include <stdlib.h>
#include <stdio.h>
+#include "galias.h"
#include "glib.h"
#include "gprintf.h"
#include "gprintfint.h"
#include <string.h>
+#include "galias.h"
#include "glib.h"
#include "config.h"
+#include "galias.h"
#include "glib.h"
#include <unistd.h>
#endif
+#include "galias.h"
#include "glib.h"
#include "gthreadinit.h"
#include <stdarg.h>
#include <string.h>
+#include "galias.h"
#include "glib.h"
#include <unistd.h>
#endif
+#include "galias.h"
#include "glib.h"
#include "gprintfint.h"
#include <string.h>
+#include "galias.h"
#include "glib.h"
#ifdef _
#include "config.h"
+#include "galias.h"
#include "glib.h"
#include <config.h>
+#include "galias.h"
#include "glib.h"
#include "gprintfint.h"
#include <sys/select.h>
#endif /* HAVE_SYS_SELECT_H */
+#include "galias.h"
#include "glib.h"
#include "glibintl.h"
#include <signal.h>
#endif
+#include "galias.h"
#include "glib.h"
#include "gprintf.h"
#include "gprintfint.h"
#include <string.h>
#include <ctype.h>
+#include "galias.h"
#include "glib.h"
#include "gprintf.h"
#include <string.h>
+#include "galias.h"
#include "glib.h"
#include "gthreadinit.h"
#include "config.h"
+#include "galias.h"
#include "glib.h"
*/
#include "config.h"
+#include "galias.h"
#include "glibconfig.h"
#ifdef HAVE_UNISTD_H
#include "config.h"
+#include "galias.h"
#include "glib.h"
#include <stdlib.h>
+#include "galias.h"
#include "glib.h"
#include "gunibreak.h"
#include <wchar.h>
#endif
+#include "galias.h"
#include "glib.h"
#include "gunicodeprivate.h"
#include <stdlib.h>
+#include "galias.h"
#include "glib.h"
#include "gunidecomp.h"
#include "gunicomp.h"
#include <string.h>
#include <locale.h>
+#include "galias.h"
#include "glib.h"
#include "gunichartables.h"
#include "gunicodeprivate.h"
#endif
#include <string.h>
+#include "galias.h"
#include "glib.h"
#ifdef G_PLATFORM_WIN32
*/
#define G_IMPLEMENT_INLINES 1
#define __G_UTILS_C__
+#include "galias.h"
#include "glib.h"
#include "gprintfint.h"
#include "config.h"
+#include "galias.h"
#include "glibconfig.h"
#include <stdlib.h>
--- /dev/null
+#!/usr/bin/perl -w
+
+print <<EOF;
+/* Generated by makegalias.pl */
+
+#ifndef DISABLE_VISIBILITY
+
+#include "glibconfig.h"
+
+#ifdef G_HAVE_GNUC_VISIBILITY
+
+#ifdef G_DISABLE_DEPRECATED
+#define WAS_NO_G_DEPR
+#endif
+#undef G_DISABLE_DEPRECATED
+
+#include "glib.h"
+
+#include "gprintf.h"
+#ifdef G_OS_WIN32
+#include "gwin32.h"
+#endif
+
+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)/)
+ {
+ $in_skipped_section = 1;
+ }
+
+ if ($in_skipped_section)
+ {
+ next;
+ }
+
+ if ($_ =~ /^\#ifdef\s+G/)
+ {
+ print $_;
+
+ next;
+ }
+
+
+ my $str = $_;
+ chomp($str);
+ my $alias = "IA__".$str;
+
+ print <<EOF
+extern __typeof ($str) $alias __attribute((visibility("hidden")));
+extern __typeof ($str) $str __attribute((alias("$alias"), visibility("default")));
+\#define $str $alias
+
+EOF
+}
+
+print <<EOF;
+
+#ifdef WAS_NO_G_DEPR
+#define G_DISABLE_DEPRECATED
+#undef WAS_NO_G_DEPR
+#endif
+
+#endif /* G_HAVE_GNUC_VISIBILITY */
+
+#endif /* DISABLE_VISIBILITY */
+EOF
+
+