[Qt] WTR and InjectedBundle should not link statically against JSC/WTF https://bugs...
authorhausmann@webkit.org <hausmann@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Fri, 18 Nov 2011 11:41:10 +0000 (11:41 +0000)
committerhausmann@webkit.org <hausmann@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Fri, 18 Nov 2011 11:41:10 +0000 (11:41 +0000)
Reviewed by Kenneth Rohde Christiansen.

.:

* Source/api.pri: On Linux, use a GNU LD version script to manage the
symbol exports, which includes the public WK1/WK2 API as well as a bunch
of private WTF symbols needed for WTR and the Injected Bundle.
* Source/qtwebkit-export.map: Added.

Tools:

* Tools.pro: Make WTR linux only for the moment.
* WebKitTestRunner/InjectedBundle/Target.pri: Remove static jsc/wtf linkage.
* WebKitTestRunner/Target.pri: Ditto.
* qmake/mkspecs/features/default_post.prf: Don't build the main webkit sources
with ELF visibility on Linux. Instead we're temporarily using an LD version script.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@100746 268f45cc-cd09-0410-ab3c-d52691b4dbfc

ChangeLog
Source/api.pri
Source/qtwebkit-export.map [new file with mode: 0644]
Tools/ChangeLog
Tools/Tools.pro
Tools/WebKitTestRunner/InjectedBundle/Target.pri
Tools/WebKitTestRunner/Target.pri
Tools/qmake/mkspecs/features/default_post.prf

index 3e0ea33..cde6c7c 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,15 @@
+2011-11-18  Simon Hausmann  <simon.hausmann@nokia.com>
+
+        [Qt] WTR and InjectedBundle should not link statically against JSC/WTF
+        https://bugs.webkit.org/show_bug.cgi?id=72697
+
+        Reviewed by Kenneth Rohde Christiansen.
+
+        * Source/api.pri: On Linux, use a GNU LD version script to manage the
+        symbol exports, which includes the public WK1/WK2 API as well as a bunch
+        of private WTF symbols needed for WTR and the Injected Bundle.
+        * Source/qtwebkit-export.map: Added.
+
 2011-11-17  Raphael Kubo da Costa  <kubo@profusion.mobi>
 
         [EFL] Clean up the use of DATA_DIR in the buildsystem
index 1519c6a..ef1d0d1 100644 (file)
@@ -218,3 +218,5 @@ plugin_backend_xlib {
     CONFIG *= link_pkgconfig
     PKGCONFIG += x11
 }
+
+linux-g++*: QMAKE_LFLAGS += -Wl,--version-script=$$PWD/qtwebkit-export.map
diff --git a/Source/qtwebkit-export.map b/Source/qtwebkit-export.map
new file mode 100644 (file)
index 0000000..058afe2
--- /dev/null
@@ -0,0 +1,118 @@
+qwk_1.0 {
+    global:
+    WK*;
+    JSValueToObject;
+    JSObjectGetProperty;
+    JSValueIsObjectOfClass;
+    JSObjectSetProperty;
+    JSValueMakeString;
+    JSValueIsObject;
+    JSStringCreateWithUTF8CString;
+    JSValueToNumber;
+    JSStringRelease;
+    JSValueToStringCopy;
+    JSStringRetain;
+    JSClassRetain;
+    JSObjectGetPrivate;
+    JSObjectMake;
+    JSValueMakeBoolean;
+    JSClassCreate;
+    JSValueMakeNull;
+    JSValueToBoolean;
+    JSValueMakeNumber;
+    JSObjectCallAsFunction;
+    JSValueMakeUndefined;
+    JSClassRelease;
+    JSStringIsEqualToUTF8CString;
+    JSStringGetUTF8CString;
+    JSContextGetGlobalObject;
+    kJSClassDefinitionEmpty;
+    JSValueIsNumber;
+    JSObjectGetPropertyAtIndex;
+    JSValueIsString;
+    JSStringGetLength;
+    JSStringGetCharactersPtr;
+    JSStringCreateWithCharacters;
+    JSValueUnprotect;
+    JSValueProtect;
+    JSEvaluateScript;
+    _WKContextSetAdditionalPluginsDirectory;
+    WTFReportBacktrace;
+    extern "C++" {
+        # WebKit 1 API
+        *QGraphicsWebView;
+        non-virtual?thunk?to?QGraphicsWebView*;
+        QGraphicsWebView::*;
+        *QWebDatabase;
+        non-virtual?thunk?to?QWebDatabase*;
+        QWebDatabase::*;
+        *QWebElement;
+        non-virtual?thunk?to?QWebElement*;
+        QWebElement::*;
+        *QWebElementCollection;
+        non-virtual?thunk?to?QWebElementCollection*;
+        QWebElementCollection::*;
+        *QWebHitTestResult;
+        non-virtual?thunk?to?QWebHitTestResult*;
+        QWebHitTestResult::*;
+        *QWebFrame;
+        non-virtual?thunk?to?QWebFrame*;
+        QWebFrame::*;
+        *QWebPage;
+        non-virtual?thunk?to?QWebPage*;
+        QWebPage::*;
+        *QWebView;
+        non-virtual?thunk?to?QWebView*;
+        QWebView::*;
+        *QWebSettings;
+        non-virtual?thunk?to?QWebSettings*;
+        QWebSettings::*;
+        *QWebInspector;
+        non-virtual?thunk?to?QWebInspector*;
+        QWebInspector::*;
+        *DumpRenderTreeSupportQt;
+        non-virtual?thunk?to?DumpRenderTreeSupportQt*;
+        DumpRenderTreeSupportQt::*;
+        *QWebPluginFactory;
+        non-virtual?thunk?to?QWebPluginFactory*;
+        QWebPluginFactory::*;
+        *QWebHistory;
+        non-virtual?thunk?to?QWebHistory*;
+        QWebHistory::*;
+        *QWebHistoryItem;
+        non-virtual?thunk?to?QWebHistoryItem*;
+        QWebHistoryItem::*;
+        *QWebSecurityOrigin;
+        non-virtual?thunk?to?QWebSecurityOrigin*;
+        QWebSecurityOrigin::*;
+        *QWebHistoryInterface;
+        non-virtual?thunk?to?QWebHistoryInterface*;
+        QWebHistoryInterface::*;
+        qWebKit*Version*;
+        "operator<<(QDataStream&, QWebHistory const&)";
+        "operator>>(QDataStream&, QWebHistory&)";
+
+        # WebKit 2 Helpers
+        WebKit::WebProcessMainQt*;
+        WTF::fastMalloc*;
+        WTF::fastFree*;
+        WTF::fastZeroedMalloc*;
+
+        # WebKit 2 API
+        *QQuickWebView;
+        non-virtual?thunk?to?QQuickWebView*;
+        QQuickWebView::*;
+        *QQuickWebViewPrivate;
+        non-virtual?thunk?to?QQuickWebViewPrivate*;
+        QQuickWebViewPrivate::*;
+        *QQuickWebViewPrivateExtension;
+        non-virtual?thunk?to?QQuickWebViewPrivateExtension*;
+        QQuickWebViewPrivateExtension::*;
+
+        # WebKit 2 C API mangled in C++
+        WKStringCopyQString*;
+        WKStringCreateWithQString*;
+        WKImageCreateQImage*;
+    };
+    local: *;
+};
index 6f007d2..6ee155f 100644 (file)
@@ -1,3 +1,16 @@
+2011-11-18  Simon Hausmann  <simon.hausmann@nokia.com>
+
+        [Qt] WTR and InjectedBundle should not link statically against JSC/WTF
+        https://bugs.webkit.org/show_bug.cgi?id=72697
+
+        Reviewed by Kenneth Rohde Christiansen.
+
+        * Tools.pro: Make WTR linux only for the moment.
+        * WebKitTestRunner/InjectedBundle/Target.pri: Remove static jsc/wtf linkage.
+        * WebKitTestRunner/Target.pri: Ditto.
+        * qmake/mkspecs/features/default_post.prf: Don't build the main webkit sources
+        with ELF visibility on Linux. Instead we're temporarily using an LD version script.
+
 2011-11-18  Kenneth Rohde Christiansen  <kenneth@webkit.org>
 
         [Qt] Change default size of the MiniBrowser
index 5c2d0df..3716e64 100644 (file)
@@ -15,7 +15,7 @@ SUBDIRS += DumpRenderTree/qt/ImageDiff.pro
 
 !no_webkit2 {
     SUBDIRS += MiniBrowser/qt/MiniBrowser.pro
-    SUBDIRS += WebKitTestRunner/WebKitTestRunner.pro
+    linux-g++*: SUBDIRS += WebKitTestRunner/WebKitTestRunner.pro
 }
 
 !win32:contains(DEFINES, ENABLE_NETSCAPE_PLUGIN_API=1) {
index ed8fbad..41d19ee 100644 (file)
@@ -53,9 +53,10 @@ DESTDIR = $${ROOT_BUILD_DIR}/lib
 QT += declarative widgets
 
 load(features)
+load(javascriptcore)
 load(webcore)
 
-CONFIG += plugin javascriptcore qtwebkit
+CONFIG += plugin qtwebkit
 
 INCLUDEPATH += \
     $$PWD/.. \
index 092f820..d60e89d 100644 (file)
@@ -28,9 +28,10 @@ DESTDIR = $${ROOT_BUILD_DIR}/bin
 QT = core gui widgets network declarative testlib
 
 load(features)
+load(javascriptcore)
 load(webkit2)
 
-CONFIG += javascriptcore qtwebkit
+CONFIG += qtwebkit
 
 !embedded: PKGCONFIG += fontconfig
 
index 82a3bbd..e26bb0d 100644 (file)
@@ -131,7 +131,7 @@ contains(TEMPLATE, lib) {
     win32-msvc*|win32-icc: INCLUDEPATH += $$ROOT_WEBKIT_DIR/Source/JavaScriptCore/os-win32
 
     !plugin {
-        contains(QT_CONFIG, reduce_exports):CONFIG += hide_symbols
+        !linux-g++*:contains(QT_CONFIG, reduce_exports):CONFIG += hide_symbols
         unix:contains(QT_CONFIG, reduce_relocations):CONFIG += bsymbolic_functions
     }
 }