1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
|
From a84920f307cd4c5661f09dc41e562ff949d6779c Mon Sep 17 00:00:00 2001
From: Davide Pesavento <davidepesa@gmail.com>
Date: Sun, 28 Jul 2013 23:40:16 -0700
Subject: [PATCH] libqmfclient: export a few private classes used by messageserver.
Since version 4.7.0, gcc constraints the ELF visibility of template
instantiations to the visibility of its template arguments (see
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=35688).
Therefore all explicit instantiations of QPrivatelyImplemented<> in
qmailinstantiations.cpp are now hidden, because the template arguments
are private classes that have hidden visibility.
This commit restores pre-gcc-4.7 behavior by exporting the symbols
required to build messageserver successfully.
Change-Id: I7c0ae91a56cac390f1e73418af486578da665a94
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Robin Burchell <robin+qt@viroteck.net>
---
src/libraries/qmfclient/qmailmessage_p.h | 8 ++++----
1 files changed, 4 insertions(+), 4 deletions(-)
diff --git a/src/libraries/qmfclient/qmailmessage_p.h b/src/libraries/qmfclient/qmailmessage_p.h
index 256c6b4..8a93432 100644
--- a/src/libraries/qmfclient/qmailmessage_p.h
+++ b/src/libraries/qmfclient/qmailmessage_p.h
@@ -59,7 +59,7 @@
// These classes are implemented via qmailmessage.cpp and qmailinstantiations.cpp
-class QMailMessageHeaderFieldPrivate : public QPrivateImplementationBase
+class QMF_EXPORT QMailMessageHeaderFieldPrivate : public QPrivateImplementationBase
{
public:
QMailMessageHeaderFieldPrivate();
@@ -127,7 +127,7 @@ private:
};
-class QMailMessageBodyPrivate : public QPrivateImplementationBase
+class QMF_EXPORT QMailMessageBodyPrivate : public QPrivateImplementationBase
{
public:
QMailMessageBodyPrivate();
@@ -169,7 +169,7 @@ private:
};
-class QMailMessagePartContainerPrivate : public QPrivateImplementationBase
+class QMF_EXPORT QMailMessagePartContainerPrivate : public QPrivateImplementationBase
{
public:
template<typename Derived>
@@ -356,7 +356,7 @@ private:
};
-class QMailMessageMetaDataPrivate : public QPrivateImplementationBase
+class QMF_EXPORT QMailMessageMetaDataPrivate : public QPrivateImplementationBase
{
public:
QMailMessageMetaDataPrivate();
--
1.7.1
|