From a7e6bf698d6c84ba35b7c49d4d309373f2cad757 Mon Sep 17 00:00:00 2001 From: Emery Hemingway Date: Thu, 3 Aug 2017 10:08:32 -0500 Subject: [PATCH] port Glib https://wiki.gnome.org/Projects/GLib Fix #80 --- include/glib/glibconfig.h | 119 +++ lib/import/import-glib.mk | 2 + lib/mk/glib.mk | 60 ++ lib/symbols/glib | 1631 +++++++++++++++++++++++++++++++++++++ ports/glib.hash | 1 + ports/glib.port | 99 +++ run/glib.run | 61 ++ src/lib/glib/config.h | 176 ++++ src/lib/glib/configmake.h | 6 + src/lib/glib/libintl.h | 0 src/test/glib/target.mk | 7 + 11 files changed, 2162 insertions(+) create mode 100644 include/glib/glibconfig.h create mode 100644 lib/import/import-glib.mk create mode 100644 lib/mk/glib.mk create mode 100644 lib/symbols/glib create mode 100644 ports/glib.hash create mode 100644 ports/glib.port create mode 100644 run/glib.run create mode 100644 src/lib/glib/config.h create mode 100644 src/lib/glib/configmake.h create mode 100644 src/lib/glib/libintl.h create mode 100644 src/test/glib/target.mk diff --git a/include/glib/glibconfig.h b/include/glib/glibconfig.h new file mode 100644 index 0000000..6ae9f0f --- /dev/null +++ b/include/glib/glibconfig.h @@ -0,0 +1,119 @@ +#ifndef __G_LIBCONFIG_H__ +#define __G_LIBCONFIG_H__ + +/* Genode includes */ +#include + +/* Libc includes */ +//#include +#include + +/* Glib includes */ +#include + +G_BEGIN_DECLS + +#define G_MINFLOAT FLT_MIN +#define G_MAXFLOAT FLT_MAX +#define G_MINDOUBLE DBL_MIN +#define G_MAXDOUBLE DBL_MAX +#define G_MINSHORT SHRT_MIN +#define G_MAXSHORT SHRT_MAX +#define G_MAXUSHORT USHRT_MAX +#define G_MININT INT_MIN +#define G_MAXINT INT_MAX +#define G_MAXUINT UINT_MAX +#define G_MINLONG LONG_MIN +#define G_MAXLONG LONG_MAX +#define G_MAXULONG ULONG_MAX + +typedef genode_int8_t gint8; +typedef genode_uint8_t guint8; +typedef genode_int16_t gint16; +typedef genode_uint16_t guint16; +typedef genode_int32_t gint32; +typedef genode_uint32_t guint32; +typedef genode_int64_t gint64; +typedef genode_uint64_t guint64; + +#define G_MAXSIZE G_MAXUINT64 +#define G_MINSSIZE G_MININT64 +#define G_MAXSSIZE G_MAXINT64 + +typedef unsigned long gsize; +typedef long gssize; +typedef long goffset; +#define G_MINOFFSET G_MININT64 +#define G_MAXOFFSET G_MAXINT64 + +#define G_GOFFSET_MODIFIER G_GINT64_MODIFIER +#define G_GOFFSET_FORMAT G_GINT64_FORMAT +#define G_GOFFSET_CONSTANT(val) G_GINT64_CONSTANT(val) + +#define GLIB_SIZEOF_VOID_P 8 +#define GLIB_SIZEOF_LONG 8 +#define GLIB_SIZEOF_SIZE_T 8 + +#define GPOINTER_TO_INT(p) ((gint64) (p)) +#define GPOINTER_TO_UINT(p) ((guint64) (p)) + +#define GINT_TO_POINTER(i) ((gpointer) (i)) +#define GUINT_TO_POINTER(u) ((gpointer) (u)) + +#define G_GSIZE_MODIFIER "" +#define G_GSSIZE_MODIFIER "" +#define G_GSIZE_FORMAT "u" +#define G_GSSIZE_FORMAT "i" +#define G_GINT16_FORMAT "i" +#define G_GUINT16_FORMAT "u" +#define G_GINT32_FORMAT "i" +#define G_GUINT32_FORMAT "u" +#define G_GINT64_FORMAT "i" +#define G_GUINT64_FORMAT "u" +#define G_BYTE_ORDER G_LITTLE_ENDIAN + +#define GLIB_SYSDEF_POLLIN =1 +#define GLIB_SYSDEF_POLLOUT =4 +#define GLIB_SYSDEF_POLLPRI =2 +#define GLIB_SYSDEF_POLLHUP =16 +#define GLIB_SYSDEF_POLLERR =8 +#define GLIB_SYSDEF_POLLNVAL =32 + +typedef char GPid; + +#define G_GINT64_CONSTANT(val) (G_GNUC_EXTENSION (val##LL)) +#define G_GUINT64_CONSTANT(val) (G_GNUC_EXTENSION (val##ULL)) + +#define G_VA_COPY va_copy + +#define GINT16_TO_LE(val) ((gint16) (val)) +#define GUINT16_TO_LE(val) ((guint16) (val)) +#define GINT16_TO_BE(val) ((gint16) GUINT16_SWAP_LE_BE (val)) +#define GUINT16_TO_BE(val) (GUINT16_SWAP_LE_BE (val)) +#define GINT32_TO_LE(val) ((gint32) (val)) +#define GUINT32_TO_LE(val) ((guint32) (val)) +#define GINT32_TO_BE(val) ((gint32) GUINT32_SWAP_LE_BE (val)) +#define GUINT32_TO_BE(val) (GUINT32_SWAP_LE_BE (val)) +#define GINT64_TO_LE(val) ((gint64) (val)) +#define GUINT64_TO_LE(val) ((guint64) (val)) +#define GINT64_TO_BE(val) ((gint64) GUINT64_SWAP_LE_BE (val)) +#define GUINT64_TO_BE(val) (GUINT64_SWAP_LE_BE (val)) +#define GLONG_TO_LE(val) ((glong) GINT32_TO_LE (val)) +#define GULONG_TO_LE(val) ((gulong) GUINT32_TO_LE (val)) +#define GLONG_TO_BE(val) ((glong) GINT32_TO_BE (val)) +#define GULONG_TO_BE(val) ((gulong) GUINT32_TO_BE (val)) +#define GINT_TO_LE(val) ((gint) GINT32_TO_LE (val)) +#define GUINT_TO_LE(val) ((guint) GUINT32_TO_LE (val)) +#define GINT_TO_BE(val) ((gint) GINT32_TO_BE (val)) +#define GUINT_TO_BE(val) ((guint) GUINT32_TO_BE (val)) +#define GSIZE_TO_LE(val) ((gsize) GUINT32_TO_LE (val)) +#define GSSIZE_TO_LE(val) ((gssize) GINT32_TO_LE (val)) +#define GSIZE_TO_BE(val) ((gsize) GUINT32_TO_BE (val)) +#define GSSIZE_TO_BE(val) ((gssize) GINT32_TO_BE (val)) +#define G_BYTE_ORDER G_LITTLE_ENDIAN + +#define G_GINT64_MODIFIER "I64" + +G_END_DECLS + +#endif /* GLIBCONFIG_H */ diff --git a/lib/import/import-glib.mk b/lib/import/import-glib.mk new file mode 100644 index 0000000..f9cfe3b --- /dev/null +++ b/lib/import/import-glib.mk @@ -0,0 +1,2 @@ +GLIB_PORT_DIR := $(call select_from_ports,glib) +INC_DIR += $(GLIB_PORT_DIR)/include/glib $(call select_from_repositories,include/glib) diff --git a/lib/mk/glib.mk b/lib/mk/glib.mk new file mode 100644 index 0000000..7c0b5a8 --- /dev/null +++ b/lib/mk/glib.mk @@ -0,0 +1,60 @@ +SHARED_LIB =1 + +GLIB_PORT_DIR = $(call select_from_ports,glib) + +GLIB_SRC_DIR = $(GLIB_PORT_DIR)/src/lib/glib/glib + +LIBS += libc libiconv + +CC_DEF += \ + -DGLIB_MAJOR_VERSION=2 -DGLIB_MINOR_VERSION=52 -DGLIB_MICRO_VERSION=2 \ + -DGLIB_BINARY_AGE=5302 -DGLIB_INTERFACE_AGE=0 \ + -DGLIB_COMPILATION \ + -DG_OS_UNIX \ + -DSUPPORT_UCP \ + -DSUPPORT_UTF \ + -DSUPPORT_UTF8 \ + -DNEWLINE=-1 \ + -DMATCH_LIMIT=10000000 \ + -DMATCH_LIMIT_RECURSION=8192 \ + -DMAX_NAME_SIZE=32 \ + -DMAX_NAME_COUNT=10000 \ + -DMAX_DUPLENGTH=30000 \ + -DLINK_SIZE=2 \ + -DPOSIX_MALLOC_THRESHOLD=10 \ + -DPCRE_STATIC \ + -UBSR_ANYCRLF \ + -UEBCDIC \ + +CC_WARN += -Wno-unused-function -Wno-deprecated-declarations + +INC_DIR += \ + $(REP_DIR)/src/lib/glib \ + $(GLIB_SRC_DIR) \ + $(REP_DIR)/include/glib \ + $(GLIB_PORT_DIR)/src/lib/glib \ + $(GLIB_PORT_DIR)/include/glib \ + +DEPRECATED_SRC_C := $(notdir $(wildcard $(GLIB_SRC_DIR)/deprecated/*.c)) + +PCRE_SRC := $(notdir $(wildcard $(GLIB_SRC_DIR)/pcre/*.c)) + +LIBCHARSET_SRC := $(notdir $(wildcard $(GLIB_SRC_DIR)/libcharset/*.c)) + +GLIB_SRC := $(notdir $(wildcard $(GLIB_SRC_DIR)/*.c)) + +GLIB_FILTER := \ + goption.c guuid.c win_iconv.c \ + $(notdir $(wildcard $(GLIB_SRC_DIR)/*win32*.c)) \ + $(notdir $(wildcard $(GLIB_SRC_DIR)/*win64*.c)) + +SRC_C = \ + $(DEPRECATED_SRC_C) \ + $(PCRE_SRC) \ + $(LIBCHARSET_SRC) \ + $(filter-out $(GLIB_FILTER),$(GLIB_SRC)) \ + +vpath %.c $(GLIB_SRC_DIR) +vpath %.c $(GLIB_SRC_DIR)/deprecated +vpath %.c $(GLIB_SRC_DIR)/pcre +vpath %.c $(GLIB_SRC_DIR)/libcharset diff --git a/lib/symbols/glib b/lib/symbols/glib new file mode 100644 index 0000000..dc91c2e --- /dev/null +++ b/lib/symbols/glib @@ -0,0 +1,1631 @@ +g_access T +g_allocator_free T +g_allocator_new T +g_array_append_vals T +g_array_free T +g_array_get_element_size T +g_array_insert_vals T +g_array_new T +g_array_prepend_vals T +g_array_ref T +g_array_remove_index T +g_array_remove_index_fast T +g_array_remove_range T +g_array_set_clear_func T +g_array_set_size T +g_array_sized_new T +g_array_sort T +g_array_sort_with_data T +g_array_unref T +g_ascii_digit_value T +g_ascii_dtostr T +g_ascii_formatd T +g_ascii_strcasecmp T +g_ascii_strdown T +g_ascii_strncasecmp T +g_ascii_strtod T +g_ascii_strtoll T +g_ascii_strtoull T +g_ascii_strup T +g_ascii_table D 8 +g_ascii_tolower T +g_ascii_toupper T +g_ascii_xdigit_value T +g_assert_warning T +g_assertion_message T +g_assertion_message_cmpnum T +g_assertion_message_cmpstr T +g_assertion_message_error T +g_assertion_message_expr T +g_async_queue_length T +g_async_queue_length_unlocked T +g_async_queue_lock T +g_async_queue_new T +g_async_queue_new_full T +g_async_queue_pop T +g_async_queue_pop_unlocked T +g_async_queue_push T +g_async_queue_push_front T +g_async_queue_push_front_unlocked T +g_async_queue_push_sorted T +g_async_queue_push_sorted_unlocked T +g_async_queue_push_unlocked T +g_async_queue_ref T +g_async_queue_ref_unlocked T +g_async_queue_remove T +g_async_queue_remove_unlocked T +g_async_queue_sort T +g_async_queue_sort_unlocked T +g_async_queue_timed_pop T +g_async_queue_timed_pop_unlocked T +g_async_queue_timeout_pop T +g_async_queue_timeout_pop_unlocked T +g_async_queue_try_pop T +g_async_queue_try_pop_unlocked T +g_async_queue_unlock T +g_async_queue_unref T +g_async_queue_unref_and_unlock T +g_atexit T +g_atomic_int_add T +g_atomic_int_and T +g_atomic_int_compare_and_exchange T +g_atomic_int_dec_and_test T +g_atomic_int_exchange_and_add T +g_atomic_int_get T +g_atomic_int_inc T +g_atomic_int_or T +g_atomic_int_set T +g_atomic_int_xor T +g_atomic_pointer_add T +g_atomic_pointer_and T +g_atomic_pointer_compare_and_exchange T +g_atomic_pointer_get T +g_atomic_pointer_or T +g_atomic_pointer_set T +g_atomic_pointer_xor T +g_base64_decode T +g_base64_decode_inplace T +g_base64_decode_step T +g_base64_encode T +g_base64_encode_close T +g_base64_encode_step T +g_basename T +g_bit_lock T +g_bit_nth_lsf T +g_bit_nth_msf T +g_bit_storage T +g_bit_trylock T +g_bit_unlock T +g_blow_chunks T +g_bookmark_file_add_application T +g_bookmark_file_add_group T +g_bookmark_file_error_quark T +g_bookmark_file_free T +g_bookmark_file_get_added T +g_bookmark_file_get_app_info T +g_bookmark_file_get_applications T +g_bookmark_file_get_description T +g_bookmark_file_get_groups T +g_bookmark_file_get_icon T +g_bookmark_file_get_is_private T +g_bookmark_file_get_mime_type T +g_bookmark_file_get_modified T +g_bookmark_file_get_size T +g_bookmark_file_get_title T +g_bookmark_file_get_uris T +g_bookmark_file_get_visited T +g_bookmark_file_has_application T +g_bookmark_file_has_group T +g_bookmark_file_has_item T +g_bookmark_file_load_from_data T +g_bookmark_file_load_from_data_dirs T +g_bookmark_file_load_from_file T +g_bookmark_file_move_item T +g_bookmark_file_new T +g_bookmark_file_remove_application T +g_bookmark_file_remove_group T +g_bookmark_file_remove_item T +g_bookmark_file_set_added T +g_bookmark_file_set_app_info T +g_bookmark_file_set_description T +g_bookmark_file_set_groups T +g_bookmark_file_set_icon T +g_bookmark_file_set_is_private T +g_bookmark_file_set_mime_type T +g_bookmark_file_set_modified T +g_bookmark_file_set_title T +g_bookmark_file_set_visited T +g_bookmark_file_to_data T +g_bookmark_file_to_file T +g_build_filename T +g_build_filenamev T +g_build_path T +g_build_pathv T +g_byte_array_append T +g_byte_array_free T +g_byte_array_free_to_bytes T +g_byte_array_new T +g_byte_array_new_take T +g_byte_array_prepend T +g_byte_array_ref T +g_byte_array_remove_index T +g_byte_array_remove_index_fast T +g_byte_array_remove_range T +g_byte_array_set_size T +g_byte_array_sized_new T +g_byte_array_sort T +g_byte_array_sort_with_data T +g_byte_array_unref T +g_bytes_compare T +g_bytes_equal T +g_bytes_get_data T +g_bytes_get_size T +g_bytes_hash T +g_bytes_new T +g_bytes_new_from_bytes T +g_bytes_new_static T +g_bytes_new_take T +g_bytes_new_with_free_func T +g_bytes_ref T +g_bytes_unref T +g_bytes_unref_to_array T +g_bytes_unref_to_data T +g_cache_destroy T +g_cache_insert T +g_cache_key_foreach T +g_cache_new T +g_cache_remove T +g_cache_value_foreach T +g_chdir T +g_check_setuid T +g_checksum_copy T +g_checksum_free T +g_checksum_get_digest T +g_checksum_get_string T +g_checksum_new T +g_checksum_reset T +g_checksum_type_get_length T +g_checksum_update T +g_child_watch_add T +g_child_watch_add_full T +g_child_watch_funcs D 48 +g_child_watch_source_new T +g_chmod T +g_clear_error T +g_clear_pointer T +g_close T +g_completion_add_items T +g_completion_clear_items T +g_completion_complete T +g_completion_complete_utf8 T +g_completion_free T +g_completion_new T +g_completion_remove_items T +g_completion_set_compare T +g_compute_checksum_for_bytes T +g_compute_checksum_for_data T +g_compute_checksum_for_string T +g_compute_hmac_for_bytes T +g_compute_hmac_for_data T +g_compute_hmac_for_string T +g_cond_broadcast T +g_cond_clear T +g_cond_free T +g_cond_init T +g_cond_new T +g_cond_signal T +g_cond_timed_wait T +g_cond_wait T +g_cond_wait_until T +g_convert T +g_convert_error_quark T +g_convert_with_fallback T +g_convert_with_iconv T +g_creat T +g_datalist_clear T +g_datalist_foreach T +g_datalist_get_data T +g_datalist_get_flags T +g_datalist_id_dup_data T +g_datalist_id_get_data T +g_datalist_id_remove_no_notify T +g_datalist_id_replace_data T +g_datalist_id_set_data_full T +g_datalist_init T +g_datalist_set_flags T +g_datalist_unset_flags T +g_dataset_destroy T +g_dataset_foreach T +g_dataset_id_get_data T +g_dataset_id_remove_no_notify T +g_dataset_id_set_data_full T +g_date_add_days T +g_date_add_months T +g_date_add_years T +g_date_clamp T +g_date_clear T +g_date_compare T +g_date_days_between T +g_date_free T +g_date_get_day T +g_date_get_day_of_year T +g_date_get_days_in_month T +g_date_get_iso8601_week_of_year T +g_date_get_julian T +g_date_get_monday_week_of_year T +g_date_get_monday_weeks_in_year T +g_date_get_month T +g_date_get_sunday_week_of_year T +g_date_get_sunday_weeks_in_year T +g_date_get_weekday T +g_date_get_year T +g_date_is_first_of_month T +g_date_is_last_of_month T +g_date_is_leap_year T +g_date_new T +g_date_new_dmy T +g_date_new_julian T +g_date_order T +g_date_set_day T +g_date_set_dmy T +g_date_set_julian T +g_date_set_month T +g_date_set_parse T +g_date_set_time T +g_date_set_time_t T +g_date_set_time_val T +g_date_set_year T +g_date_strftime T +g_date_subtract_days T +g_date_subtract_months T +g_date_subtract_years T +g_date_time_add T +g_date_time_add_days T +g_date_time_add_full T +g_date_time_add_hours T +g_date_time_add_minutes T +g_date_time_add_months T +g_date_time_add_seconds T +g_date_time_add_weeks T +g_date_time_add_years T +g_date_time_compare T +g_date_time_difference T +g_date_time_equal T +g_date_time_format T +g_date_time_get_day_of_month T +g_date_time_get_day_of_week T +g_date_time_get_day_of_year T +g_date_time_get_hour T +g_date_time_get_microsecond T +g_date_time_get_minute T +g_date_time_get_month T +g_date_time_get_second T +g_date_time_get_seconds T +g_date_time_get_timezone_abbreviation T +g_date_time_get_utc_offset T +g_date_time_get_week_numbering_year T +g_date_time_get_week_of_year T +g_date_time_get_year T +g_date_time_get_ymd T +g_date_time_hash T +g_date_time_is_daylight_savings T +g_date_time_new T +g_date_time_new_from_timeval_local T +g_date_time_new_from_timeval_utc T +g_date_time_new_from_unix_local T +g_date_time_new_from_unix_utc T +g_date_time_new_local T +g_date_time_new_now T +g_date_time_new_now_local T +g_date_time_new_now_utc T +g_date_time_new_utc T +g_date_time_ref T +g_date_time_to_local T +g_date_time_to_timeval T +g_date_time_to_timezone T +g_date_time_to_unix T +g_date_time_to_utc T +g_date_time_unref T +g_date_to_struct_tm T +g_date_valid T +g_date_valid_day T +g_date_valid_dmy T +g_date_valid_julian T +g_date_valid_month T +g_date_valid_weekday T +g_date_valid_year T +g_dcgettext T +g_dgettext T +g_dir_close T +g_dir_make_tmp T +g_dir_new_from_dirp T +g_dir_open T +g_dir_open_with_errno T +g_dir_read_name T +g_dir_rewind T +g_direct_equal T +g_direct_hash T +g_dngettext T +g_double_equal T +g_double_hash T +g_dpgettext T +g_dpgettext2 T +g_environ_getenv T +g_environ_setenv T +g_environ_unsetenv T +g_error_copy T +g_error_free T +g_error_matches T +g_error_new T +g_error_new_literal T +g_error_new_valist T +g_file_error_from_errno T +g_file_error_quark T +g_file_get_contents T +g_file_open_tmp T +g_file_read_link T +g_file_set_contents T +g_file_test T +g_filename_display_basename T +g_filename_display_name T +g_filename_from_uri T +g_filename_from_utf8 T +g_filename_to_uri T +g_filename_to_utf8 T +g_find_program_in_path T +g_fopen T +g_format_size T +g_format_size_for_display T +g_format_size_full T +g_fprintf T +g_free T +g_freopen T +g_get_application_name T +g_get_charset T +g_get_codeset T +g_get_current_dir T +g_get_current_time T +g_get_environ T +g_get_filename_charsets T +g_get_home_dir T +g_get_host_name T +g_get_language_names T +g_get_locale_variants T +g_get_monotonic_time T +g_get_num_processors T +g_get_prgname T +g_get_real_name T +g_get_real_time T +g_get_system_config_dirs T +g_get_system_data_dirs T +g_get_tmp_dir T +g_get_user_cache_dir T +g_get_user_config_dir T +g_get_user_data_dir T +g_get_user_name T +g_get_user_runtime_dir T +g_get_user_special_dir T +g_get_worker_context T +g_getenv T +g_hash_table_add T +g_hash_table_contains T +g_hash_table_destroy T +g_hash_table_find T +g_hash_table_foreach T +g_hash_table_foreach_remove T +g_hash_table_foreach_steal T +g_hash_table_get_keys T +g_hash_table_get_keys_as_array T +g_hash_table_get_values T +g_hash_table_insert T +g_hash_table_iter_get_hash_table T +g_hash_table_iter_init T +g_hash_table_iter_next T +g_hash_table_iter_remove T +g_hash_table_iter_replace T +g_hash_table_iter_steal T +g_hash_table_lookup T +g_hash_table_lookup_extended T +g_hash_table_new T +g_hash_table_new_full T +g_hash_table_ref T +g_hash_table_remove T +g_hash_table_remove_all T +g_hash_table_replace T +g_hash_table_size T +g_hash_table_steal T +g_hash_table_steal_all T +g_hash_table_unref T +g_hmac_copy T +g_hmac_get_digest T +g_hmac_get_string T +g_hmac_new T +g_hmac_ref T +g_hmac_unref T +g_hmac_update T +g_hook_alloc T +g_hook_compare_ids T +g_hook_destroy T +g_hook_destroy_link T +g_hook_find T +g_hook_find_data T +g_hook_find_func T +g_hook_find_func_data T +g_hook_first_valid T +g_hook_free T +g_hook_get T +g_hook_insert_before T +g_hook_insert_sorted T +g_hook_list_clear T +g_hook_list_init T +g_hook_list_invoke T +g_hook_list_invoke_check T +g_hook_list_marshal T +g_hook_list_marshal_check T +g_hook_next_valid T +g_hook_prepend T +g_hook_ref T +g_hook_unref T +g_hostname_is_ascii_encoded T +g_hostname_is_ip_address T +g_hostname_is_non_ascii T +g_hostname_to_ascii T +g_hostname_to_unicode T +g_iconv T +g_iconv_close T +g_iconv_open T +g_idle_add T +g_idle_add_full T +g_idle_funcs D 48 +g_idle_remove_by_data T +g_idle_source_new T +g_int64_equal T +g_int64_hash T +g_int_equal T +g_int_hash T +g_intern_static_string T +g_intern_string T +g_io_add_watch T +g_io_add_watch_full T +g_io_channel_close T +g_io_channel_error_from_errno T +g_io_channel_error_quark T +g_io_channel_flush T +g_io_channel_get_buffer_condition T +g_io_channel_get_buffer_size T +g_io_channel_get_buffered T +g_io_channel_get_close_on_unref T +g_io_channel_get_encoding T +g_io_channel_get_flags T +g_io_channel_get_line_term T +g_io_channel_init T +g_io_channel_new_file T +g_io_channel_read T +g_io_channel_read_chars T +g_io_channel_read_line T +g_io_channel_read_line_string T +g_io_channel_read_to_end T +g_io_channel_read_unichar T +g_io_channel_ref T +g_io_channel_seek T +g_io_channel_seek_position T +g_io_channel_set_buffer_size T +g_io_channel_set_buffered T +g_io_channel_set_close_on_unref T +g_io_channel_set_encoding T +g_io_channel_set_flags T +g_io_channel_set_line_term T +g_io_channel_shutdown T +g_io_channel_unix_get_fd T +g_io_channel_unix_new T +g_io_channel_unref T +g_io_channel_write T +g_io_channel_write_chars T +g_io_channel_write_unichar T +g_io_create_watch T +g_io_watch_funcs D 48 +g_key_file_error_quark T +g_key_file_free T +g_key_file_get_boolean T +g_key_file_get_boolean_list T +g_key_file_get_comment T +g_key_file_get_double T +g_key_file_get_double_list T +g_key_file_get_groups T +g_key_file_get_int64 T +g_key_file_get_integer T +g_key_file_get_integer_list T +g_key_file_get_keys T +g_key_file_get_locale_string T +g_key_file_get_locale_string_list T +g_key_file_get_start_group T +g_key_file_get_string T +g_key_file_get_string_list T +g_key_file_get_uint64 T +g_key_file_get_value T +g_key_file_has_group T +g_key_file_has_key T +g_key_file_load_from_bytes T +g_key_file_load_from_data T +g_key_file_load_from_data_dirs T +g_key_file_load_from_dirs T +g_key_file_load_from_file T +g_key_file_new T +g_key_file_ref T +g_key_file_remove_comment T +g_key_file_remove_group T +g_key_file_remove_key T +g_key_file_save_to_file T +g_key_file_set_boolean T +g_key_file_set_boolean_list T +g_key_file_set_comment T +g_key_file_set_double T +g_key_file_set_double_list T +g_key_file_set_int64 T +g_key_file_set_integer T +g_key_file_set_integer_list T +g_key_file_set_list_separator T +g_key_file_set_locale_string T +g_key_file_set_locale_string_list T +g_key_file_set_string T +g_key_file_set_string_list T +g_key_file_set_uint64 T +g_key_file_set_value T +g_key_file_to_data T +g_key_file_unref T +g_list_alloc T +g_list_append T +g_list_concat T +g_list_copy T +g_list_copy_deep T +g_list_delete_link T +g_list_find T +g_list_find_custom T +g_list_first T +g_list_foreach T +g_list_free T +g_list_free_1 T +g_list_free_full T +g_list_index T +g_list_insert T +g_list_insert_before T +g_list_insert_sorted T +g_list_insert_sorted_with_data T +g_list_last T +g_list_length T +g_list_nth T +g_list_nth_data T +g_list_nth_prev T +g_list_pop_allocator T +g_list_position T +g_list_prepend T +g_list_push_allocator T +g_list_remove T +g_list_remove_all T +g_list_remove_link T +g_list_reverse T +g_list_sort T +g_list_sort_with_data T +g_listenv T +g_locale_from_utf8 T +g_locale_to_utf8 T +g_log T +g_log_always_fatal D 4 +g_log_default_handler T +g_log_msg_prefix D 4 +g_log_remove_handler T +g_log_set_always_fatal T +g_log_set_default_handler T +g_log_set_fatal_mask T +g_log_set_handler T +g_log_set_handler_full T +g_log_set_writer_func T +g_log_structured T +g_log_structured_array T +g_log_variant T +g_log_writer_default T +g_log_writer_format_fields T +g_log_writer_is_journald T +g_log_writer_journald T +g_log_writer_standard_streams T +g_log_writer_supports_color T +g_logv T +g_lstat T +g_main_context_acquire T +g_main_context_add_poll T +g_main_context_check T +g_main_context_default T +g_main_context_dispatch T +g_main_context_find_source_by_funcs_user_data T +g_main_context_find_source_by_id T +g_main_context_find_source_by_user_data T +g_main_context_get_poll_func T +g_main_context_get_thread_default T +g_main_context_invoke T +g_main_context_invoke_full T +g_main_context_is_owner T +g_main_context_iteration T +g_main_context_new T +g_main_context_new_with_next_id T +g_main_context_pending T +g_main_context_pop_thread_default T +g_main_context_prepare T +g_main_context_push_thread_default T +g_main_context_query T +g_main_context_ref T +g_main_context_ref_thread_default T +g_main_context_release T +g_main_context_remove_poll T +g_main_context_set_poll_func T +g_main_context_unref T +g_main_context_wait T +g_main_context_wakeup T +g_main_current_source T +g_main_depth T +g_main_loop_get_context T +g_main_loop_is_running T +g_main_loop_new T +g_main_loop_quit T +g_main_loop_ref T +g_main_loop_run T +g_main_loop_unref T +g_malloc T +g_malloc0 T +g_malloc0_n T +g_malloc_n T +g_mapped_file_free T +g_mapped_file_get_bytes T +g_mapped_file_get_contents T +g_mapped_file_get_length T +g_mapped_file_new T +g_mapped_file_new_from_fd T +g_mapped_file_ref T +g_mapped_file_unref T +g_markup_collect_attributes T +g_markup_error_quark T +g_markup_escape_text T +g_markup_parse_context_end_parse T +g_markup_parse_context_free T +g_markup_parse_context_get_element T +g_markup_parse_context_get_element_stack T +g_markup_parse_context_get_position T +g_markup_parse_context_get_user_data T +g_markup_parse_context_new T +g_markup_parse_context_parse T +g_markup_parse_context_pop T +g_markup_parse_context_push T +g_markup_parse_context_ref T +g_markup_parse_context_unref T +g_markup_printf_escaped T +g_markup_vprintf_escaped T +g_match_info_expand_references T +g_match_info_fetch T +g_match_info_fetch_all T +g_match_info_fetch_named T +g_match_info_fetch_named_pos T +g_match_info_fetch_pos T +g_match_info_free T +g_match_info_get_match_count T +g_match_info_get_regex T +g_match_info_get_string T +g_match_info_is_partial_match T +g_match_info_matches T +g_match_info_next T +g_match_info_ref T +g_match_info_unref T +g_mem_chunk_alloc T +g_mem_chunk_alloc0 T +g_mem_chunk_clean T +g_mem_chunk_destroy T +g_mem_chunk_free T +g_mem_chunk_info T +g_mem_chunk_new T +g_mem_chunk_print T +g_mem_chunk_reset T +g_mem_gc_friendly B 4 +g_mem_is_system_malloc T +g_mem_profile T +g_mem_set_vtable T +g_memdup T +g_mkdir T +g_mkdir_with_parents T +g_mkdtemp T +g_mkdtemp_full T +g_mkstemp T +g_mkstemp_full T +g_mutex_clear T +g_mutex_free T +g_mutex_init T +g_mutex_lock T +g_mutex_new T +g_mutex_trylock T +g_mutex_unlock T +g_node_child_index T +g_node_child_position T +g_node_children_foreach T +g_node_copy T +g_node_copy_deep T +g_node_depth T +g_node_destroy T +g_node_find T +g_node_find_child T +g_node_first_sibling T +g_node_get_root T +g_node_insert T +g_node_insert_after T +g_node_insert_before T +g_node_is_ancestor T +g_node_last_child T +g_node_last_sibling T +g_node_max_height T +g_node_n_children T +g_node_n_nodes T +g_node_new T +g_node_nth_child T +g_node_pop_allocator T +g_node_prepend T +g_node_push_allocator T +g_node_reverse_children T +g_node_traverse T +g_node_unlink T +g_nullify_pointer T +g_on_error_query T +g_on_error_stack_trace T +g_once_impl T +g_once_init_enter T +g_once_init_enter_impl T +g_once_init_leave T +g_open T +g_parse_debug_string T +g_path_get_basename T +g_path_get_dirname T +g_path_is_absolute T +g_path_skip_root T +g_pattern_match T +g_pattern_match_simple T +g_pattern_match_string T +g_pattern_spec_equal T +g_pattern_spec_free T +g_pattern_spec_new T +g_pointer_bit_lock T +g_pointer_bit_trylock T +g_pointer_bit_unlock T +g_poll T +g_prefix_error T +g_print T +g_printerr T +g_printf T +g_printf_string_upper_bound T +g_private_get T +g_private_new T +g_private_replace T +g_private_set T +g_propagate_error T +g_propagate_prefixed_error T +g_ptr_array_add T +g_ptr_array_foreach T +g_ptr_array_free T +g_ptr_array_insert T +g_ptr_array_new T +g_ptr_array_new_full T +g_ptr_array_new_with_free_func T +g_ptr_array_ref T +g_ptr_array_remove T +g_ptr_array_remove_fast T +g_ptr_array_remove_index T +g_ptr_array_remove_index_fast T +g_ptr_array_remove_range T +g_ptr_array_set_free_func T +g_ptr_array_set_size T +g_ptr_array_sized_new T +g_ptr_array_sort T +g_ptr_array_sort_with_data T +g_ptr_array_unref T +g_qsort_with_data T +g_quark_from_static_string T +g_quark_from_string T +g_quark_init T +g_quark_to_string T +g_quark_try_string T +g_queue_clear T +g_queue_copy T +g_queue_delete_link T +g_queue_find T +g_queue_find_custom T +g_queue_foreach T +g_queue_free T +g_queue_free_full T +g_queue_get_length T +g_queue_index T +g_queue_init T +g_queue_insert_after T +g_queue_insert_before T +g_queue_insert_sorted T +g_queue_is_empty T +g_queue_link_index T +g_queue_new T +g_queue_peek_head T +g_queue_peek_head_link T +g_queue_peek_nth T +g_queue_peek_nth_link T +g_queue_peek_tail T +g_queue_peek_tail_link T +g_queue_pop_head T +g_queue_pop_head_link T +g_queue_pop_nth T +g_queue_pop_nth_link T +g_queue_pop_tail T +g_queue_pop_tail_link T +g_queue_push_head T +g_queue_push_head_link T +g_queue_push_nth T +g_queue_push_nth_link T +g_queue_push_tail T +g_queue_push_tail_link T +g_queue_remove T +g_queue_remove_all T +g_queue_reverse T +g_queue_sort T +g_queue_unlink T +g_rand_copy T +g_rand_double T +g_rand_double_range T +g_rand_free T +g_rand_int T +g_rand_int_range T +g_rand_new T +g_rand_new_with_seed T +g_rand_new_with_seed_array T +g_rand_set_seed T +g_rand_set_seed_array T +g_random_double T +g_random_double_range T +g_random_int T +g_random_int_range T +g_random_set_seed T +g_realloc T +g_realloc_n T +g_rec_mutex_clear T +g_rec_mutex_init T +g_rec_mutex_lock T +g_rec_mutex_trylock T +g_rec_mutex_unlock T +g_regex_check_replacement T +g_regex_error_quark T +g_regex_escape_nul T +g_regex_escape_string T +g_regex_get_capture_count T +g_regex_get_compile_flags T +g_regex_get_has_cr_or_lf T +g_regex_get_match_flags T +g_regex_get_max_backref T +g_regex_get_max_lookbehind T +g_regex_get_pattern T +g_regex_get_string_number T +g_regex_match T +g_regex_match_all T +g_regex_match_all_full T +g_regex_match_full T +g_regex_match_simple T +g_regex_new T +g_regex_ref T +g_regex_replace T +g_regex_replace_eval T +g_regex_replace_literal T +g_regex_split T +g_regex_split_full T +g_regex_split_simple T +g_regex_unref T +g_relation_count T +g_relation_delete T +g_relation_destroy T +g_relation_exists T +g_relation_index T +g_relation_insert T +g_relation_new T +g_relation_print T +g_relation_select T +g_reload_user_special_dirs_cache T +g_remove T +g_rename T +g_return_if_fail_warning T +g_rmdir T +g_rw_lock_clear T +g_rw_lock_init T +g_rw_lock_reader_lock T +g_rw_lock_reader_trylock T +g_rw_lock_reader_unlock T +g_rw_lock_writer_lock T +g_rw_lock_writer_trylock T +g_rw_lock_writer_unlock T +g_scanner_cur_line T +g_scanner_cur_position T +g_scanner_cur_token T +g_scanner_cur_value T +g_scanner_destroy T +g_scanner_eof T +g_scanner_error T +g_scanner_get_next_token T +g_scanner_input_file T +g_scanner_input_text T +g_scanner_lookup_symbol T +g_scanner_new T +g_scanner_peek_next_token T +g_scanner_scope_add_symbol T +g_scanner_scope_foreach_symbol T +g_scanner_scope_lookup_symbol T +g_scanner_scope_remove_symbol T +g_scanner_set_scope T +g_scanner_sync_file_offset T +g_scanner_unexp_token T +g_scanner_warn T +g_sequence_append T +g_sequence_foreach T +g_sequence_foreach_range T +g_sequence_free T +g_sequence_get T +g_sequence_get_begin_iter T +g_sequence_get_end_iter T +g_sequence_get_iter_at_pos T +g_sequence_get_length T +g_sequence_insert_before T +g_sequence_insert_sorted T +g_sequence_insert_sorted_iter T +g_sequence_is_empty T +g_sequence_iter_compare T +g_sequence_iter_get_position T +g_sequence_iter_get_sequence T +g_sequence_iter_is_begin T +g_sequence_iter_is_end T +g_sequence_iter_move T +g_sequence_iter_next T +g_sequence_iter_prev T +g_sequence_lookup T +g_sequence_lookup_iter T +g_sequence_move T +g_sequence_move_range T +g_sequence_new T +g_sequence_prepend T +g_sequence_range_get_midpoint T +g_sequence_remove T +g_sequence_remove_range T +g_sequence_search T +g_sequence_search_iter T +g_sequence_set T +g_sequence_sort T +g_sequence_sort_changed T +g_sequence_sort_changed_iter T +g_sequence_sort_iter T +g_sequence_swap T +g_set_application_name T +g_set_error T +g_set_error_literal T +g_set_prgname T +g_set_print_handler T +g_set_printerr_handler T +g_setenv T +g_shell_error_quark T +g_shell_parse_argv T +g_shell_quote T +g_shell_unquote T +g_slice_alloc T +g_slice_alloc0 T +g_slice_copy T +g_slice_free1 T +g_slice_free_chain_with_offset T +g_slice_get_config T +g_slice_get_config_state T +g_slice_set_config T +g_slist_alloc T +g_slist_append T +g_slist_concat T +g_slist_copy T +g_slist_copy_deep T +g_slist_delete_link T +g_slist_find T +g_slist_find_custom T +g_slist_foreach T +g_slist_free T +g_slist_free_1 T +g_slist_free_full T +g_slist_index T +g_slist_insert T +g_slist_insert_before T +g_slist_insert_sorted T +g_slist_insert_sorted_with_data T +g_slist_last T +g_slist_length T +g_slist_nth T +g_slist_nth_data T +g_slist_pop_allocator T +g_slist_position T +g_slist_prepend T +g_slist_push_allocator T +g_slist_remove T +g_slist_remove_all T +g_slist_remove_link T +g_slist_reverse T +g_slist_sort T +g_slist_sort_with_data T +g_snprintf T +g_source_add_child_source T +g_source_add_poll T +g_source_add_unix_fd T +g_source_attach T +g_source_destroy T +g_source_get_can_recurse T +g_source_get_context T +g_source_get_current_time T +g_source_get_id T +g_source_get_name T +g_source_get_priority T +g_source_get_ready_time T +g_source_get_time T +g_source_is_destroyed T +g_source_modify_unix_fd T +g_source_new T +g_source_query_unix_fd T +g_source_ref T +g_source_remove T +g_source_remove_by_funcs_user_data T +g_source_remove_by_user_data T +g_source_remove_child_source T +g_source_remove_poll T +g_source_remove_unix_fd T +g_source_set_callback T +g_source_set_callback_indirect T +g_source_set_can_recurse T +g_source_set_funcs T +g_source_set_name T +g_source_set_name_by_id T +g_source_set_priority T +g_source_set_ready_time T +g_source_unref T +g_spaced_primes_closest T +g_spawn_async T +g_spawn_async_with_pipes T +g_spawn_check_exit_status T +g_spawn_close_pid T +g_spawn_command_line_async T +g_spawn_command_line_sync T +g_spawn_error_quark T +g_spawn_exit_error_quark T +g_spawn_sync T +g_sprintf T +g_stat T +g_static_mutex_free T +g_static_mutex_get_mutex_impl T +g_static_mutex_init T +g_static_private_free T +g_static_private_get T +g_static_private_init T +g_static_private_set T +g_static_rec_mutex_free T +g_static_rec_mutex_init T +g_static_rec_mutex_lock T +g_static_rec_mutex_lock_full T +g_static_rec_mutex_trylock T +g_static_rec_mutex_unlock T +g_static_rec_mutex_unlock_full T +g_static_rw_lock_free T +g_static_rw_lock_init T +g_static_rw_lock_reader_lock T +g_static_rw_lock_reader_trylock T +g_static_rw_lock_reader_unlock T +g_static_rw_lock_writer_lock T +g_static_rw_lock_writer_trylock T +g_static_rw_lock_writer_unlock T +g_stpcpy T +g_str_equal T +g_str_has_prefix T +g_str_has_suffix T +g_str_hash T +g_str_is_ascii T +g_str_match_string T +g_str_to_ascii T +g_str_tokenize_and_fold T +g_strcanon T +g_strcasecmp T +g_strchomp T +g_strchug T +g_strcmp0 T +g_strcompress T +g_strconcat T +g_strdelimit T +g_strdown T +g_strdup T +g_strdup_printf T +g_strdup_vprintf T +g_strdupv T +g_strerror T +g_strescape T +g_strfreev T +g_string_append T +g_string_append_c T +g_string_append_len T +g_string_append_printf T +g_string_append_unichar T +g_string_append_uri_escaped T +g_string_append_vprintf T +g_string_ascii_down T +g_string_ascii_up T +g_string_assign T +g_string_chunk_clear T +g_string_chunk_free T +g_string_chunk_insert T +g_string_chunk_insert_const T +g_string_chunk_insert_len T +g_string_chunk_new T +g_string_down T +g_string_equal T +g_string_erase T +g_string_free T +g_string_free_to_bytes T +g_string_hash T +g_string_insert T +g_string_insert_c T +g_string_insert_len T +g_string_insert_unichar T +g_string_new T +g_string_new_len T +g_string_overwrite T +g_string_overwrite_len T +g_string_prepend T +g_string_prepend_c T +g_string_prepend_len T +g_string_prepend_unichar T +g_string_printf T +g_string_set_size T +g_string_sized_new T +g_string_truncate T +g_string_up T +g_string_vprintf T +g_strip_context T +g_strjoin T +g_strjoinv T +g_strlcat T +g_strlcpy T +g_strncasecmp T +g_strndup T +g_strnfill T +g_strreverse T +g_strrstr T +g_strrstr_len T +g_strsignal T +g_strsplit T +g_strsplit_set T +g_strstr_len T +g_strtod T +g_strup T +g_strv_contains T +g_strv_length T +g_system_thread_exit T +g_system_thread_free T +g_system_thread_new T +g_system_thread_set_name T +g_system_thread_wait T +g_test_add_data_func T +g_test_add_data_func_full T +g_test_add_func T +g_test_add_vtable T +g_test_assert_expected_messages_internal T +g_test_bug T +g_test_bug_base T +g_test_build_filename T +g_test_config_vars D 8 +g_test_create_case T +g_test_create_suite T +g_test_expect_message T +g_test_fail T +g_test_failed T +g_test_get_dir T +g_test_get_filename T +g_test_get_root T +g_test_incomplete T +g_test_init T +g_test_log_buffer_free T +g_test_log_buffer_new T +g_test_log_buffer_pop T +g_test_log_buffer_push T +g_test_log_msg_free T +g_test_log_set_fatal_handler T +g_test_log_type_name T +g_test_maximized_result T +g_test_message T +g_test_minimized_result T +g_test_queue_destroy T +g_test_queue_free T +g_test_rand_double T +g_test_rand_double_range T +g_test_rand_int T +g_test_rand_int_range T +g_test_run T +g_test_run_suite T +g_test_set_nonfatal_assertions T +g_test_skip T +g_test_subprocess T +g_test_suite_add T +g_test_suite_add_suite T +g_test_timer_elapsed T +g_test_timer_last T +g_test_timer_start T +g_test_trap_assertions T +g_test_trap_fork T +g_test_trap_has_passed T +g_test_trap_reached_timeout T +g_test_trap_subprocess T +g_thread_create T +g_thread_create_full T +g_thread_error_quark T +g_thread_exit T +g_thread_foreach T +g_thread_functions_for_glib_use D 168 +g_thread_get_initialized T +g_thread_gettime D 8 +g_thread_init_glib T +g_thread_join T +g_thread_new T +g_thread_new_internal T +g_thread_pool_free T +g_thread_pool_get_max_idle_time T +g_thread_pool_get_max_threads T +g_thread_pool_get_max_unused_threads T +g_thread_pool_get_num_threads T +g_thread_pool_get_num_unused_threads T +g_thread_pool_move_to_front T +g_thread_pool_new T +g_thread_pool_push T +g_thread_pool_set_max_idle_time T +g_thread_pool_set_max_threads T +g_thread_pool_set_max_unused_threads T +g_thread_pool_set_sort_function T +g_thread_pool_stop_unused_threads T +g_thread_pool_unprocessed T +g_thread_proxy T +g_thread_ref T +g_thread_self T +g_thread_set_priority T +g_thread_try_new T +g_thread_unref T +g_thread_use_default_impl B 4 +g_thread_yield T +g_threads_got_initialized D 4 +g_time_val_add T +g_time_val_from_iso8601 T +g_time_val_to_iso8601 T +g_time_zone_adjust_time T +g_time_zone_find_interval T +g_time_zone_get_abbreviation T +g_time_zone_get_offset T +g_time_zone_is_dst T +g_time_zone_new T +g_time_zone_new_local T +g_time_zone_new_utc T +g_time_zone_ref T +g_time_zone_unref T +g_timeout_add T +g_timeout_add_full T +g_timeout_add_seconds T +g_timeout_add_seconds_full T +g_timeout_funcs D 48 +g_timeout_source_new T +g_timeout_source_new_seconds T +g_timer_continue T +g_timer_destroy T +g_timer_elapsed T +g_timer_new T +g_timer_reset T +g_timer_start T +g_timer_stop T +g_trash_stack_height T +g_trash_stack_peek T +g_trash_stack_pop T +g_trash_stack_push T +g_tree_destroy T +g_tree_foreach T +g_tree_height T +g_tree_insert T +g_tree_lookup T +g_tree_lookup_extended T +g_tree_new T +g_tree_new_full T +g_tree_new_with_data T +g_tree_nnodes T +g_tree_ref T +g_tree_remove T +g_tree_replace T +g_tree_search T +g_tree_steal T +g_tree_traverse T +g_tree_unref T +g_try_malloc T +g_try_malloc0 T +g_try_malloc0_n T +g_try_malloc_n T +g_try_realloc T +g_try_realloc_n T +g_tuples_destroy T +g_tuples_index T +g_ucs4_to_utf16 T +g_ucs4_to_utf8 T +g_unichar_break_type T +g_unichar_combining_class T +g_unichar_compose T +g_unichar_decompose T +g_unichar_digit_value T +g_unichar_fully_decompose T +g_unichar_get_mirror_char T +g_unichar_get_script T +g_unichar_isalnum T +g_unichar_isalpha T +g_unichar_iscntrl T +g_unichar_isdefined T +g_unichar_isdigit T +g_unichar_isgraph T +g_unichar_islower T +g_unichar_ismark T +g_unichar_isprint T +g_unichar_ispunct T +g_unichar_isspace T +g_unichar_istitle T +g_unichar_isupper T +g_unichar_iswide T +g_unichar_iswide_cjk T +g_unichar_isxdigit T +g_unichar_iszerowidth T +g_unichar_to_utf8 T +g_unichar_tolower T +g_unichar_totitle T +g_unichar_toupper T +g_unichar_type T +g_unichar_validate T +g_unichar_xdigit_value T +g_unicode_canonical_decomposition T +g_unicode_canonical_ordering T +g_unicode_script_from_iso15924 T +g_unicode_script_to_iso15924 T +g_unix_error_quark T +g_unix_fd_add T +g_unix_fd_add_full T +g_unix_fd_source_funcs D 48 +g_unix_fd_source_new T +g_unix_open_pipe T +g_unix_set_fd_nonblocking T +g_unix_signal_add T +g_unix_signal_add_full T +g_unix_signal_funcs D 48 +g_unix_signal_source_new T +g_unlink T +g_unsetenv T +g_uri_escape_string T +g_uri_list_extract_uris T +g_uri_parse_scheme T +g_uri_unescape_segment T +g_uri_unescape_string T +g_usleep T +g_utf16_to_ucs4 T +g_utf16_to_utf8 T +g_utf8_casefold T +g_utf8_collate T +g_utf8_collate_key T +g_utf8_collate_key_for_filename T +g_utf8_find_next_char T +g_utf8_find_prev_char T +g_utf8_get_char T +g_utf8_get_char_validated T +g_utf8_make_valid T +g_utf8_normalize T +g_utf8_offset_to_pointer T +g_utf8_pointer_to_offset T +g_utf8_prev_char T +g_utf8_skip D 8 +g_utf8_strchr T +g_utf8_strdown T +g_utf8_strlen T +g_utf8_strncpy T +g_utf8_strrchr T +g_utf8_strreverse T +g_utf8_strup T +g_utf8_substring T +g_utf8_to_ucs4 T +g_utf8_to_ucs4_fast T +g_utf8_to_utf16 T +g_utf8_validate T +g_utime T +g_variant_builder_add T +g_variant_builder_add_parsed T +g_variant_builder_add_value T +g_variant_builder_clear T +g_variant_builder_close T +g_variant_builder_end T +g_variant_builder_init T +g_variant_builder_new T +g_variant_builder_open T +g_variant_builder_ref T +g_variant_builder_unref T +g_variant_byteswap T +g_variant_check_format_string T +g_variant_classify T +g_variant_compare T +g_variant_dict_clear T +g_variant_dict_contains T +g_variant_dict_end T +g_variant_dict_init T +g_variant_dict_insert T +g_variant_dict_insert_value T +g_variant_dict_lookup T +g_variant_dict_lookup_value T +g_variant_dict_new T +g_variant_dict_ref T +g_variant_dict_remove T +g_variant_dict_unref T +g_variant_dup_bytestring T +g_variant_dup_bytestring_array T +g_variant_dup_objv T +g_variant_dup_string T +g_variant_dup_strv T +g_variant_equal T +g_variant_format_string_scan T +g_variant_format_string_scan_type T +g_variant_get T +g_variant_get_boolean T +g_variant_get_byte T +g_variant_get_bytestring T +g_variant_get_bytestring_array T +g_variant_get_child T +g_variant_get_child_value T +g_variant_get_data T +g_variant_get_data_as_bytes T +g_variant_get_double T +g_variant_get_fixed_array T +g_variant_get_handle T +g_variant_get_int16 T +g_variant_get_int32 T +g_variant_get_int64 T +g_variant_get_maybe T +g_variant_get_normal_form T +g_variant_get_objv T +g_variant_get_size T +g_variant_get_string T +g_variant_get_strv T +g_variant_get_type T +g_variant_get_type_info T +g_variant_get_type_string T +g_variant_get_uint16 T +g_variant_get_uint32 T +g_variant_get_uint64 T +g_variant_get_va T +g_variant_get_variant T +g_variant_hash T +g_variant_is_container T +g_variant_is_floating T +g_variant_is_normal_form T +g_variant_is_object_path T +g_variant_is_of_type T +g_variant_is_signature T +g_variant_is_trusted T +g_variant_iter_copy T +g_variant_iter_free T +g_variant_iter_init T +g_variant_iter_loop T +g_variant_iter_n_children T +g_variant_iter_new T +g_variant_iter_next T +g_variant_iter_next_value T +g_variant_lookup T +g_variant_lookup_value T +g_variant_n_children T +g_variant_new T +g_variant_new_array T +g_variant_new_boolean T +g_variant_new_byte T +g_variant_new_bytestring T +g_variant_new_bytestring_array T +g_variant_new_dict_entry T +g_variant_new_double T +g_variant_new_fixed_array T +g_variant_new_from_bytes T +g_variant_new_from_children T +g_variant_new_from_data T +g_variant_new_handle T +g_variant_new_int16 T +g_variant_new_int32 T +g_variant_new_int64 T +g_variant_new_maybe T +g_variant_new_object_path T +g_variant_new_objv T +g_variant_new_parsed T +g_variant_new_parsed_va T +g_variant_new_printf T +g_variant_new_signature T +g_variant_new_string T +g_variant_new_strv T +g_variant_new_take_string T +g_variant_new_tuple T +g_variant_new_uint16 T +g_variant_new_uint32 T +g_variant_new_uint64 T +g_variant_new_va T +g_variant_new_variant T +g_variant_parse T +g_variant_parse_error_print_context T +g_variant_parse_error_quark T +g_variant_parser_get_error_quark T +g_variant_print T +g_variant_print_string T +g_variant_ref T +g_variant_ref_sink T +g_variant_serialised_byteswap T +g_variant_serialised_get_child T +g_variant_serialised_is_normal T +g_variant_serialised_n_children T +g_variant_serialiser_is_object_path T +g_variant_serialiser_is_signature T +g_variant_serialiser_is_string T +g_variant_serialiser_needed_size T +g_variant_serialiser_serialise T +g_variant_store T +g_variant_take_ref T +g_variant_type_checked_ T +g_variant_type_copy T +g_variant_type_dup_string T +g_variant_type_element T +g_variant_type_equal T +g_variant_type_first T +g_variant_type_free T +g_variant_type_get_string_length T +g_variant_type_hash T +g_variant_type_info_assert_no_infos T +g_variant_type_info_element T +g_variant_type_info_get T +g_variant_type_info_get_type_string T +g_variant_type_info_member_info T +g_variant_type_info_n_members T +g_variant_type_info_query T +g_variant_type_info_query_element T +g_variant_type_info_ref T +g_variant_type_info_unref T +g_variant_type_is_array T +g_variant_type_is_basic T +g_variant_type_is_container T +g_variant_type_is_definite T +g_variant_type_is_dict_entry T +g_variant_type_is_maybe T +g_variant_type_is_subtype_of T +g_variant_type_is_tuple T +g_variant_type_is_variant T +g_variant_type_key T +g_variant_type_n_items T +g_variant_type_new T +g_variant_type_new_array T +g_variant_type_new_dict_entry T +g_variant_type_new_maybe T +g_variant_type_new_tuple T +g_variant_type_next T +g_variant_type_peek_string T +g_variant_type_string_is_valid T +g_variant_type_string_scan T +g_variant_type_value T +g_variant_unref T +g_vasprintf T +g_vfprintf T +g_vprintf T +g_vsnprintf T +g_vsprintf T +g_wakeup_acknowledge T +g_wakeup_free T +g_wakeup_get_pollfd T +g_wakeup_new T +g_wakeup_signal T +g_warn_message T +glib_binary_age R +glib_check_version T +glib_gettext T +glib_init T +glib_interface_age R +glib_major_version R +glib_mem_profiler_table D 8 +glib_micro_version R +glib_minor_version R +glib_on_error_halt D 4 +glib_pgettext T diff --git a/ports/glib.hash b/ports/glib.hash new file mode 100644 index 0000000..96f8a61 --- /dev/null +++ b/ports/glib.hash @@ -0,0 +1 @@ +eab68db7c06342b10624d81cdb95d167b2721e5d diff --git a/ports/glib.port b/ports/glib.port new file mode 100644 index 0000000..f5a2b7a --- /dev/null +++ b/ports/glib.port @@ -0,0 +1,99 @@ +LICENSE := GPLv2 +VERSION := 2.52.2 +DOWNLOADS := glib.archive + +URL(glib) := https://download.gnome.org/sources/glib/2.52/glib-$(VERSION).tar.xz +SHA(glib) := 50a5af7569af1a489e17f207142cd5a4cdefbf68 +DIR(glib) := src/lib/glib + +default: macro_sanity + +# This is wacky automess kludge that +# cannot be managed by hand. +macro_sanity: $(DOWNLOADS) + $(VERBOSE)sed -i '/error/d' src/lib/glib/glib/gversionmacros.h + +DIRS := include/glib include/glib/glib include/glib/glib/deprecated + +DIR_CONTENT(include/glib) := src/lib/glib/glib/glib.h + +DIR_CONTENT(include/glib/glib) := \ + src/lib/glib/glib/galloca.h \ + src/lib/glib/glib/garray.h \ + src/lib/glib/glib/gasyncqueue.h \ + src/lib/glib/glib/gatomic.h \ + src/lib/glib/glib/glib-autocleanups.h \ + src/lib/glib/glib/gbacktrace.h \ + src/lib/glib/glib/gbase64.h \ + src/lib/glib/glib/gbitlock.h \ + src/lib/glib/glib/gbookmarkfile.h \ + src/lib/glib/glib/gbytes.h \ + src/lib/glib/glib/gcharset.h \ + src/lib/glib/glib/gchecksum.h \ + src/lib/glib/glib/gconvert.h \ + src/lib/glib/glib/gdataset.h \ + src/lib/glib/glib/gdate.h \ + src/lib/glib/glib/gdatetime.h \ + src/lib/glib/glib/gdir.h \ + src/lib/glib/glib/genviron.h \ + src/lib/glib/glib/gerror.h \ + src/lib/glib/glib/gfileutils.h \ + src/lib/glib/glib/ggettext.h \ + src/lib/glib/glib/ghash.h \ + src/lib/glib/glib/ghmac.h \ + src/lib/glib/glib/ghook.h \ + src/lib/glib/glib/ghostutils.h \ + src/lib/glib/glib/giochannel.h \ + src/lib/glib/glib/gkeyfile.h \ + src/lib/glib/glib/glist.h \ + src/lib/glib/glib/gmacros.h \ + src/lib/glib/glib/gmain.h \ + src/lib/glib/glib/gmappedfile.h \ + src/lib/glib/glib/gmarkup.h \ + src/lib/glib/glib/gmem.h \ + src/lib/glib/glib/gmessages.h \ + src/lib/glib/glib/gnode.h \ + src/lib/glib/glib/goption.h \ + src/lib/glib/glib/gpattern.h \ + src/lib/glib/glib/gpoll.h \ + src/lib/glib/glib/gprimes.h \ + src/lib/glib/glib/gqsort.h \ + src/lib/glib/glib/gquark.h \ + src/lib/glib/glib/gqueue.h \ + src/lib/glib/glib/grand.h \ + src/lib/glib/glib/gregex.h \ + src/lib/glib/glib/gscanner.h \ + src/lib/glib/glib/gsequence.h \ + src/lib/glib/glib/gshell.h \ + src/lib/glib/glib/gslice.h \ + src/lib/glib/glib/gslist.h \ + src/lib/glib/glib/gspawn.h \ + src/lib/glib/glib/gstdio.h \ + src/lib/glib/glib/gstrfuncs.h \ + src/lib/glib/glib/gstring.h \ + src/lib/glib/glib/gstringchunk.h \ + src/lib/glib/glib/gtestutils.h \ + src/lib/glib/glib/gthread.h \ + src/lib/glib/glib/gthreadpool.h \ + src/lib/glib/glib/gtimer.h \ + src/lib/glib/glib/gtimezone.h \ + src/lib/glib/glib/gtrashstack.h \ + src/lib/glib/glib/gtree.h \ + src/lib/glib/glib/gtypes.h \ + src/lib/glib/glib/gunicode.h \ + src/lib/glib/glib/gurifuncs.h \ + src/lib/glib/glib/gutils.h \ + src/lib/glib/glib/guuid.h \ + src/lib/glib/glib/gvarianttype.h \ + src/lib/glib/glib/gvariant.h \ + src/lib/glib/glib/gversion.h \ + src/lib/glib/glib/gversionmacros.h \ + src/lib/glib/glib/gprintf.h \ + +DIR_CONTENT(include/glib/glib/deprecated) := \ + src/lib/glib/glib/deprecated/gallocator.h \ + src/lib/glib/glib/deprecated/gcache.h \ + src/lib/glib/glib/deprecated/gcompletion.h \ + src/lib/glib/glib/deprecated/gmain.h \ + src/lib/glib/glib/deprecated/grel.h \ + src/lib/glib/glib/deprecated/gthread.h diff --git a/run/glib.run b/run/glib.run new file mode 100644 index 0000000..776078b --- /dev/null +++ b/run/glib.run @@ -0,0 +1,61 @@ +build test/glib + +create_boot_directory + +import_from_depot \ + genodelabs/src/[base_src] \ + genodelabs/src/init \ + +install_config { + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +} + +build_boot_image { + glib.lib.so + libc.lib.so + libiconv.lib.so + libm.lib.so + posix.lib.so + pthread.lib.so + test-glib +} + +append qemu_args " -nographic " + +run_genode_until "child .* exited with exit value 0.*\n" 10 + diff --git a/src/lib/glib/config.h b/src/lib/glib/config.h new file mode 100644 index 0000000..c23fc7c --- /dev/null +++ b/src/lib/glib/config.h @@ -0,0 +1,176 @@ +/* The normal alignment of `guint32', in bytes. */ +#define ALIGNOF_GUINT32 4 + +/* The normal alignment of `guint64', in bytes. */ +#define ALIGNOF_GUINT64 8 + +/* The normal alignment of `unsigned long', in bytes. */ +#define ALIGNOF_UNSIGNED_LONG 4 + +/* Define the gettext package to be used */ +#define GETTEXT_PACKAGE "whatever" + +/* Define if you have a version of the snprintf function with semantics as + specified by the ISO C99 standard. */ +#define HAVE_C99_SNPRINTF + +/* Define if you have a version of the vsnprintf function with semantics as + specified by the ISO C99 standard. */ +#define HAVE_C99_VSNPRINTF + +/* Define to 1 if you have the `clock_gettime' function. */ +#define HAVE_CLOCK_GETTIME 1 + +/* Define to 1 if you have the header file, and it defines `DIR'. + */ +#define HAVE_DIRENT_H 1 + +/* Define to 1 if you have the `fsync' function. */ +#define HAVE_FSYNC 1 + +/* define to use system printf */ +#define HAVE_GOOD_PRINTF + +/* Define if you have the 'intmax_t' type in or . */ +#define HAVE_INTMAX_T 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_INTTYPES_H 1 + +/* Define if exists, doesn't clash with , and + declares uintmax_t. */ +#define HAVE_INTTYPES_H_WITH_UINTMAX 1 + +/* Have function pthread_condattr_setclock */ +#define HAVE_PTHREAD_CONDATTR_SETCLOCK 1 + +/* Define to 1 if you have the `readlink' function. */ +#define HAVE_READLINK 1 + +/* Define to 1 if you have the `recvmmsg' function. */ +#define HAVE_RECVMMSG 1 + +/* Define to 1 if you have the `sendmmsg' function. */ +#define HAVE_SENDMMSG 1 + +/* Define to 1 if you have the `setenv' function. */ +#define HAVE_SETENV 1 + +/* Define to 1 if you have the `snprintf' function. */ +#define HAVE_SNPRINTF 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_STDINT_H 1 + +/* Define if exists, doesn't clash with , and declares + uintmax_t. */ +#define HAVE_STDINT_H_WITH_UINTMAX + +/* Define to 1 if you have the header file. */ +#define HAVE_STDLIB_H 1 + +/* Define to 1 if you have the `stpcpy' function. */ +#define HAVE_STPCPY 1 + +/* Define to 1 if you have the `strcasecmp' function. */ +#define HAVE_STRCASECMP 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_STRINGS_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_STRING_H 1 + +/* Have functions strlcpy and strlcat */ +#define HAVE_STRLCPY 1 + +/* Define to 1 if you have the `strncasecmp' function. */ +#define HAVE_STRNCASECMP 1 + +/* Define to 1 if you have the `strnlen' function. */ +#define HAVE_STRNLEN 1 + +/* Define to 1 if you have the `symlink' function. */ +#define HAVE_SYMLINK 1 + +/* Define to 1 if you have the header file, and it defines `DIR'. + */ +#define HAVE_SYS_DIR_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_EVENT_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_FILIO_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_MOUNT_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_PARAM_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_RESOURCE_H 1 + +/* found fd_set in sys/select.h */ +#define HAVE_SYS_SELECT_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_STATVFS_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_STAT_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_SYSCTL_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_TIME_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_TYPES_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_TERMIOS_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_UNISTD_H 1 + +/* The size of `char', as computed by sizeof. */ +#define SIZEOF_CHAR sizeof(char) + +/* The size of `int', as computed by sizeof. */ +#define SIZEOF_INT sizeof(int) + +/* The size of `long', as computed by sizeof. */ +#define SIZEOF_LONG sizeof(long) + +/* The size of `long long', as computed by sizeof. */ +#define SIZEOF_LONG_LONG sizeof() + +/* The size of `short', as computed by sizeof. */ +#define SIZEOF_SHORT sizeof(short) + +/* The size of `size_t', as computed by sizeof. */ +#define SIZEOF_SIZE_T sizeof(size_t) + +/* The size of `ssize_t', as computed by sizeof. */ +#define SIZEOF_SSIZE_T sizeof(ssize_t) + +/* The size of `void *', as computed by sizeof. */ +#define SIZEOF_VOID_P sizeof(void *) + +/* The size of `__int64', as computed by sizeof. */ +#define SIZEOF___INT64 sizeof(__int64) + +/* Define to 1 if you have the ANSI C header files. */ +#define STDC_HEADERS 1 + +/* Use no threads */ +#define THREADS_NONE + +/* Use pthreads */ +#define THREADS_POSIX + +/* Using GNU libiconv */ +#define USE_LIBICONV_GNU diff --git a/src/lib/glib/configmake.h b/src/lib/glib/configmake.h new file mode 100644 index 0000000..19460f3 --- /dev/null +++ b/src/lib/glib/configmake.h @@ -0,0 +1,6 @@ +#ifndef _CONFIGMAKE_H_ +#define _CONFIGMAKE_H_ + +#define LIBDIR "/lib" + +#endif diff --git a/src/lib/glib/libintl.h b/src/lib/glib/libintl.h new file mode 100644 index 0000000..e69de29 diff --git a/src/test/glib/target.mk b/src/test/glib/target.mk new file mode 100644 index 0000000..445829c --- /dev/null +++ b/src/test/glib/target.mk @@ -0,0 +1,7 @@ +TARGET = test-glib +LIBS = libc pthread glib posix +SRC_C = main.c + +# Strength through pointer arithmetic +main.c: $(call select_from_ports,glib)/src/lib/glib/tests/testglib.c + $(VERBOSE)sed 's/gintptr/int/' $< > $@