changeset 496:089b46d20c00

desktop: convert packages to clang
author David Demelier <markand@malikania.fr>
date Mon, 08 Apr 2019 20:15:00 +0200
parents c54ecf0588bc
children b3d11a5ed175
files desktop/dconf/dconf.sh desktop/dconf/patch-clang.patch desktop/libnotify/libnotify.sh desktop/startup-notification/startup-notification.sh
diffstat 4 files changed, 87 insertions(+), 3 deletions(-) [+]
line wrap: on
line diff
--- a/desktop/dconf/dconf.sh	Mon Apr 08 20:12:00 2019 +0200
+++ b/desktop/dconf/dconf.sh	Mon Apr 08 20:15:00 2019 +0200
@@ -23,7 +23,7 @@
 PKGDOWNLOAD="https://download.gnome.org/sources/$PKGNAME/0.32/$PKGNAME-$PKGVERSION.tar.xz"
 PKGDEPENDS="core/bash-completion:build dev/meson:build lib/glib"
 
-: ${CC:=gcc}
+: ${CC:=clang}
 : ${CFLAGS:=-O2}
 : ${LDFLAGS:=}
 
@@ -34,6 +34,8 @@
 	pushd $PKGNAME-$PKGVERSION
 
 	# TODO: enable documentation once docbook-xml is there.
+	# https://gitlab.gnome.org/GNOME/dconf/issues/47
+	patch -p1 < ../patch-clang.patch
 	CC="$CC" \
 	CFLAGS="$CFLAGS" \
 	LDFLAGS="$LDFLAGS" \
--- /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
--- a/desktop/libnotify/libnotify.sh	Mon Apr 08 20:12:00 2019 +0200
+++ b/desktop/libnotify/libnotify.sh	Mon Apr 08 20:15:00 2019 +0200
@@ -29,7 +29,7 @@
 
 : ${CC:=clang}
 : ${CFLAGS:=-O2}
-: ${CXX:=clang++}
+: ${CXX:=clanclang++}
 : ${CXXFLAGS:=-O2}
 : ${LDFLAGS:=}
 
--- a/desktop/startup-notification/startup-notification.sh	Mon Apr 08 20:12:00 2019 +0200
+++ b/desktop/startup-notification/startup-notification.sh	Mon Apr 08 20:15:00 2019 +0200
@@ -23,7 +23,7 @@
 PKGDOWNLOAD="http://www.freedesktop.org/software/$PKGNAME/releases/$PKGNAME-$PKGVERSION.tar.gz"
 PKGDEPENDS="x11/libx11 x11/libxcb x11/xcb-util"
 
-: ${CC:=gcc}
+: ${CC:=clang}
 : ${CFLAGS:=-O2}
 : ${LDFLAGS:=}
 : ${LIBS:=}