Mercurial > vanilla
diff desktop/dconf/patch-clang.patch @ 496:089b46d20c00
desktop: convert packages to clang
author | David Demelier <markand@malikania.fr> |
---|---|
date | Mon, 08 Apr 2019 20:15:00 +0200 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/desktop/dconf/patch-clang.patch Mon Apr 08 20:15:00 2019 +0200 @@ -0,0 +1,82 @@ +diff --git a/gvdb/gvdb-reader.c b/gvdb/gvdb-reader.c +index aa3154feb901f244fa184a66ac7198072c038c4f..638649b29d9a9fa2ebba1939ef7f72c92ef0a287 100644 +--- a/gvdb/gvdb-reader.c ++++ b/gvdb/gvdb-reader.c +@@ -17,6 +17,7 @@ + * Author: Ryan Lortie <desrt@desrt.ca> + */ + ++#define GVDB_USE_WEAK_SYMBOLS + #include "gvdb-reader.h" + #include "gvdb-format.h" + +diff --git a/gvdb/gvdb-reader.h b/gvdb/gvdb-reader.h +index 39827737d94dc7889e53b609c25c7ac8e2b3b870..1e88e43dcc3c212e727d2bf0c771f8e86caa90d7 100644 +--- a/gvdb/gvdb-reader.h ++++ b/gvdb/gvdb-reader.h +@@ -22,40 +22,55 @@ + + #include <glib.h> + ++/* We cannot enable the weak attribute unconditionally here because both ++ * gvdb/gvdb-reader.c and tests/dconf-mock-gvdb.c include this file. The ++ * intention of using weak symbols here is to allow the latter to override ++ * functions defined in the former, so functions in tests/dconf-mock-gvdb.c ++ * must have strong bindings. */ ++#ifdef GVDB_USE_WEAK_SYMBOLS ++# ifdef __GNUC__ ++# define GVDB_GNUC_WEAK __attribute__((weak)) ++# else ++# define GVDB_GNUC_WEAK ++# endif ++#else ++# define GVDB_GNUC_WEAK ++#endif ++ + typedef struct _GvdbTable GvdbTable; + + G_BEGIN_DECLS + +-G_GNUC_INTERNAL ++G_GNUC_INTERNAL GVDB_GNUC_WEAK + GvdbTable * gvdb_table_new_from_bytes (GBytes *bytes, + gboolean trusted, + GError **error); +-G_GNUC_INTERNAL ++G_GNUC_INTERNAL GVDB_GNUC_WEAK + GvdbTable * gvdb_table_new (const gchar *filename, + gboolean trusted, + GError **error); +-G_GNUC_INTERNAL ++G_GNUC_INTERNAL GVDB_GNUC_WEAK + void gvdb_table_free (GvdbTable *table); +-G_GNUC_INTERNAL ++G_GNUC_INTERNAL GVDB_GNUC_WEAK + gchar ** gvdb_table_get_names (GvdbTable *table, + gint *length); +-G_GNUC_INTERNAL ++G_GNUC_INTERNAL GVDB_GNUC_WEAK + gchar ** gvdb_table_list (GvdbTable *table, + const gchar *key); +-G_GNUC_INTERNAL ++G_GNUC_INTERNAL GVDB_GNUC_WEAK + GvdbTable * gvdb_table_get_table (GvdbTable *table, + const gchar *key); +-G_GNUC_INTERNAL ++G_GNUC_INTERNAL GVDB_GNUC_WEAK + GVariant * gvdb_table_get_raw_value (GvdbTable *table, + const gchar *key); +-G_GNUC_INTERNAL ++G_GNUC_INTERNAL GVDB_GNUC_WEAK + GVariant * gvdb_table_get_value (GvdbTable *table, + const gchar *key); + +-G_GNUC_INTERNAL ++G_GNUC_INTERNAL GVDB_GNUC_WEAK + gboolean gvdb_table_has_value (GvdbTable *table, + const gchar *key); +-G_GNUC_INTERNAL ++G_GNUC_INTERNAL GVDB_GNUC_WEAK + gboolean gvdb_table_is_valid (GvdbTable *table); + + G_END_DECLS