aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorGravatar Carl Worth <cworth@cworth.org>2011-05-11 13:23:13 -0700
committerGravatar Carl Worth <cworth@cworth.org>2011-05-11 13:27:15 -0700
commitd5523ead90b6be2b07d4af745b8ed9b980a6b9f1 (patch)
tree0e1e0c5f1e06256f2bdae80d6f006622d220478f
parent2f3a76c569e5efad54520613315c0d29512ce69c (diff)
Mark some structures in the library interface with visibility=default attribute.
As of gcc 4.6, there are new warnings from -Wattributes along the lines of: warning: ‘_notmuch_messages’ declared with greater visibility than the type of its field ‘_notmuch_messages::iterator’ [-Wattributes] To squelch these, we decorate all such containing structs with __attribute__((visibility("default"))). We take care to let only the C++ compiler see this, (since the C compiler would otherwise warn about ignored visibility attributes on types).
-rw-r--r--lib/message.cc2
-rw-r--r--lib/notmuch-private.h8
-rw-r--r--lib/query.cc2
-rw-r--r--lib/thread.cc2
4 files changed, 10 insertions, 4 deletions
diff --git a/lib/message.cc b/lib/message.cc
index a5a65e21..4b59fa91 100644
--- a/lib/message.cc
+++ b/lib/message.cc
@@ -25,7 +25,7 @@
#include <gmime/gmime.h>
-struct _notmuch_message {
+struct visible _notmuch_message {
notmuch_database_t *notmuch;
Xapian::docid doc_id;
int frozen;
diff --git a/lib/notmuch-private.h b/lib/notmuch-private.h
index 0856751c..02e24ee8 100644
--- a/lib/notmuch-private.h
+++ b/lib/notmuch-private.h
@@ -81,6 +81,12 @@ _internal_error (const char *format, ...) PRINTF_ATTRIBUTE (1, 2);
#define unused(x) x __attribute__ ((unused))
+#ifdef __cplusplus
+# define visible __attribute__((visibility("default")))
+#else
+# define visible
+#endif
+
/* Thanks to Andrew Tridgell's (SAMBA's) talloc for this definition of
* unlikely. The talloc source code comes to us via the GNU LGPL v. 3.
*/
@@ -405,7 +411,7 @@ typedef struct _notmuch_message_list {
* somewhere with some nasty C++ objects in it. We'll try to maintain
* ignorance of that here. (See notmuch_mset_messages_t in query.cc)
*/
-struct _notmuch_messages {
+struct visible _notmuch_messages {
notmuch_bool_t is_of_list_type;
notmuch_message_node_t *iterator;
};
diff --git a/lib/query.cc b/lib/query.cc
index 07e695b9..6f02b04b 100644
--- a/lib/query.cc
+++ b/lib/query.cc
@@ -44,7 +44,7 @@ struct _notmuch_doc_id_set {
#define DOCIDSET_WORD(bit) ((bit) / sizeof (unsigned int))
#define DOCIDSET_BIT(bit) ((bit) % sizeof (unsigned int))
-struct _notmuch_threads {
+struct visible _notmuch_threads {
notmuch_query_t *query;
/* The ordered list of doc ids matched by the query. */
diff --git a/lib/thread.cc b/lib/thread.cc
index ace5ce7f..0435ee6d 100644
--- a/lib/thread.cc
+++ b/lib/thread.cc
@@ -24,7 +24,7 @@
#include <gmime/gmime.h>
#include <glib.h> /* GHashTable */
-struct _notmuch_thread {
+struct visible _notmuch_thread {
notmuch_database_t *notmuch;
char *thread_id;
char *subject;