Index: src/kernel/qgplugin.h
===================================================================
--- qt-x11-free-3.3.4/src/kernel/qgplugin.h	(revision 423270)
+++ qt-x11-free-3.3.4/src/kernel/qgplugin.h	(working copy)
@@ -90,35 +90,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) QUnknownInterface* \
-                __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) QUnknownInterface* 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 QUnknownInterface* ucm_instantiate() \
+	    Q_EXTERN_C Q_EXPORT QUnknownInterface* Q_STDCALL ucm_instantiate() \
             Q_PLUGIN_INSTANTIATE( PLUGIN )
-#    endif
-
 #endif
 
 struct QUnknownInterface;
Index: src/tools/qglobal.h
===================================================================
---  qt-x11-free-3.3.4/src/tools/qglobal.h	(revision 423270)
+++  qt-x11-free-3.3.4/src/tools/qglobal.h	(working copy)
@@ -865,6 +865,10 @@
 #    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