summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTimothy Pearson <kb9vqf@pearsoncomputing.net>2012-01-08 21:59:07 -0600
committerTimothy Pearson <kb9vqf@pearsoncomputing.net>2012-01-08 21:59:07 -0600
commit2ae2f3f719ab9316eb2addef265c78ab81327516 (patch)
tree58511ab39204ff6a35f45f892cf3510c9aba0174
parente9c23befee596e80f840ff9a1a1a3b849972f211 (diff)
downloadtqt3-2ae2f3f7.tar.gz
tqt3-2ae2f3f7.zip
Update tqt3 to support gcc visibility
This closes Bug 696
-rwxr-xr-xconfigure1
-rw-r--r--mkspecs/linux-g++/qmake.conf2
-rw-r--r--src/kernel/qapplication_x11.cpp4
-rw-r--r--src/kernel/qgplugin.h36
-rw-r--r--src/kernel/qtextengine_p.h2
-rw-r--r--src/tools/qglobal.h4
-rw-r--r--tools/designer/shared/domtool.h2
-rw-r--r--tools/designer/uilib/qwidgetfactory.cpp6
-rw-r--r--tools/designer/uilib/qwidgetfactory.h2
9 files changed, 24 insertions, 35 deletions
diff --git a/configure b/configure
index 00fc6f14..5db0b0ae 100755
--- a/configure
+++ b/configure
@@ -1080,6 +1080,7 @@ done
[ -d $outpath/src/tools ] || mkdir -p $outpath/src/tools
cat > $outpath/src/tools/qconfig.cpp.new <<EOF
/* Install paths from configure */
+#include "qglobal.h"
static const char QT_INSTALL_PREFIX [267] = "qt_nstpath=$QT_INSTALL_PREFIX";
static const char QT_INSTALL_BINS [267] = "qt_binpath=$QT_INSTALL_BINS";
diff --git a/mkspecs/linux-g++/qmake.conf b/mkspecs/linux-g++/qmake.conf
index cac70f78..037bcd96 100644
--- a/mkspecs/linux-g++/qmake.conf
+++ b/mkspecs/linux-g++/qmake.conf
@@ -16,7 +16,7 @@ QMAKE_YACCFLAGS = -d
QMAKE_YACCFLAGS_MANGLE = -p $base -b $base
QMAKE_YACC_HEADER = $base.tab.h
QMAKE_YACC_SOURCE = $base.tab.c
-QMAKE_CFLAGS = -pipe -g
+QMAKE_CFLAGS = -pipe -g -fvisibility=hidden -fvisibility-inlines-hidden
QMAKE_CFLAGS_DEPS = -M
QMAKE_CFLAGS_WARN_ON = -Wall -W
QMAKE_CFLAGS_WARN_OFF = -w
diff --git a/src/kernel/qapplication_x11.cpp b/src/kernel/qapplication_x11.cpp
index 54c91f48..5011351b 100644
--- a/src/kernel/qapplication_x11.cpp
+++ b/src/kernel/qapplication_x11.cpp
@@ -337,7 +337,7 @@ static long qt_mode_switch_remove_mask = 0;
// flags for extensions for special Languages, currently only for RTL languages
static bool qt_use_rtl_extensions = FALSE;
-bool qt_hebrew_keyboard_hack = FALSE;
+Q_EXPORT bool qt_hebrew_keyboard_hack = FALSE;
static Window mouseActWindow = 0; // window where mouse is
static int mouseButtonPressed = 0; // last mouse button pressed
@@ -3851,7 +3851,7 @@ void qt_leave_modal( TQWidget *widget )
}
-bool qt_try_modal( TQWidget *widget, XEvent *event )
+Q_EXPORT bool qt_try_modal( TQWidget *widget, XEvent *event )
{
if (qt_xdnd_dragging) {
// allow mouse events while DnD is active
diff --git a/src/kernel/qgplugin.h b/src/kernel/qgplugin.h
index 36ecd3ea..354122bc 100644
--- a/src/kernel/qgplugin.h
+++ b/src/kernel/qgplugin.h
@@ -93,35 +93,19 @@
return i->iface(); \
}
-# ifdef Q_WS_WIN
-# ifdef Q_CC_BOR
-# define Q_EXPORT_PLUGIN(PLUGIN) \
- Q_PLUGIN_VERIFICATION_DATA \
- Q_EXTERN_C __declspec(dllexport) \
- const char * __stdcall qt_ucm_query_verification_data() \
- { return qt_ucm_verification_data; } \
- Q_EXTERN_C __declspec(dllexport) TQUnknownInterface* \
- __stdcall ucm_instantiate() \
- Q_PLUGIN_INSTANTIATE( PLUGIN )
-# else
-# define Q_EXPORT_PLUGIN(PLUGIN) \
- Q_PLUGIN_VERIFICATION_DATA \
- Q_EXTERN_C __declspec(dllexport) \
- const char *qt_ucm_query_verification_data() \
- { return qt_ucm_verification_data; } \
- Q_EXTERN_C __declspec(dllexport) TQUnknownInterface* ucm_instantiate() \
- Q_PLUGIN_INSTANTIATE( PLUGIN )
-# endif
-# else
-# define Q_EXPORT_PLUGIN(PLUGIN) \
+#if defined(Q_WS_WIN) && defined(Q_CC_BOR)
+# define Q_STDCALL __stdcall
+#else
+# define Q_STDCALL
+#endif
+
+#define Q_EXPORT_PLUGIN(PLUGIN) \
Q_PLUGIN_VERIFICATION_DATA \
- Q_EXTERN_C \
- const char *qt_ucm_query_verification_data() \
+ Q_EXTERN_C Q_EXPORT \
+ const char * Q_STDCALL qt_ucm_query_verification_data() \
{ return qt_ucm_verification_data; } \
- Q_EXTERN_C TQUnknownInterface* ucm_instantiate() \
+ Q_EXTERN_C Q_EXPORT TQUnknownInterface* Q_STDCALL ucm_instantiate() \
Q_PLUGIN_INSTANTIATE( PLUGIN )
-# endif
-
#endif
struct TQUnknownInterface;
diff --git a/src/kernel/qtextengine_p.h b/src/kernel/qtextengine_p.h
index a50ce901..4858672c 100644
--- a/src/kernel/qtextengine_p.h
+++ b/src/kernel/qtextengine_p.h
@@ -292,7 +292,7 @@ private:
class TQFontPrivate;
-class TQTextEngine {
+class Q_EXPORT TQTextEngine {
public:
TQTextEngine( const TQString &str, TQFontPrivate *f );
~TQTextEngine();
diff --git a/src/tools/qglobal.h b/src/tools/qglobal.h
index cf0e1e44..74dab69e 100644
--- a/src/tools/qglobal.h
+++ b/src/tools/qglobal.h
@@ -887,6 +887,10 @@ class TQDataStream;
# define Q_TEMPLATE_EXTERN
# undef Q_DISABLE_COPY /* avoid unresolved externals */
# endif
+#elif defined(Q_CC_GNU) && __GNUC__ - 0 >= 4
+# define Q_EXPORT __attribute__((visibility("default")))
+# undef QT_MAKEDLL /* ignore these for other platforms */
+# undef QT_DLL
#else
# undef QT_MAKEDLL /* ignore these for other platforms */
# undef QT_DLL
diff --git a/tools/designer/shared/domtool.h b/tools/designer/shared/domtool.h
index 5f9211b6..e8f38b3f 100644
--- a/tools/designer/shared/domtool.h
+++ b/tools/designer/shared/domtool.h
@@ -40,7 +40,7 @@
class TQDomElement;
class TQDomDocument;
-class DomTool : public TQt
+class Q_EXPORT DomTool : public TQt
{
public:
static TQVariant readProperty( const TQDomElement& e, const TQString& name, const TQVariant& defValue );
diff --git a/tools/designer/uilib/qwidgetfactory.cpp b/tools/designer/uilib/qwidgetfactory.cpp
index fcd1bf2d..ef143d46 100644
--- a/tools/designer/uilib/qwidgetfactory.cpp
+++ b/tools/designer/uilib/qwidgetfactory.cpp
@@ -120,13 +120,13 @@ static TQPluginManager<WidgetInterface> *widgetInterfaceManager = 0;
static TQMap<TQString, bool> *availableWidgetMap = 0;
static TQStringList *availableWidgetList = 0;
-TQMap<TQWidget*, TQString> *qwf_forms = 0;
+Q_EXPORT TQMap<TQWidget*, TQString> *qwf_forms = 0;
TQString *qwf_language = 0;
-bool qwf_execute_code = TRUE;
+Q_EXPORT bool qwf_execute_code = TRUE;
bool qwf_stays_on_top = FALSE;
TQString qwf_currFileName = "";
TQObject *qwf_form_object = 0;
-TQString *qwf_plugin_dir = 0;
+Q_EXPORT TQString *qwf_plugin_dir = 0;
static void setupPluginDir()
{
diff --git a/tools/designer/uilib/qwidgetfactory.h b/tools/designer/uilib/qwidgetfactory.h
index d58e9e14..bd39623e 100644
--- a/tools/designer/uilib/qwidgetfactory.h
+++ b/tools/designer/uilib/qwidgetfactory.h
@@ -55,7 +55,7 @@ class TQWidget;
class TQWidgetFactoryPrivate;
class UibStrTable;
-class TQWidgetFactory
+class Q_EXPORT TQWidgetFactory
{
public:
TQWidgetFactory();