Title: [116449] trunk/Source
Revision
116449
Author
[email protected]
Date
2012-05-08 12:33:42 -0700 (Tue, 08 May 2012)

Log Message

Fix the SOFT_LINK_STAGED_FRAMEWORK_OPTIONAL macro so it passes the full path to dlopen.

dyld only considers libraries in the versioned framework path if their install name
matches the library that it is attempting to load. The path we were passing to
dlopen lacked the Versions/A component of the path so dyld did not recognize that
we wanted it to use the staged version if it is newer.

<rdar://problem/11406517>

Reviewed by Mark Rowe.

Source/WebCore:

* platform/mac/SoftLinking.h: Have SOFT_LINK_STAGED_FRAMEWORK_OPTIONAL take the
framework version as an argument and use it when constructing the path to dlopen.

Source/WebKit/mac:

* WebCoreSupport/WebInspectorClient.mm: Pass A to SOFT_LINK_STAGED_FRAMEWORK_OPTIONAL for the version.

Source/WebKit2:

* UIProcess/mac/WebInspectorProxyMac.mm: Pass A to SOFT_LINK_STAGED_FRAMEWORK_OPTIONAL for the version.
* WebProcess/WebPage/mac/WebInspectorMac.mm: Ditto.

Modified Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (116448 => 116449)


--- trunk/Source/WebCore/ChangeLog	2012-05-08 19:26:38 UTC (rev 116448)
+++ trunk/Source/WebCore/ChangeLog	2012-05-08 19:33:42 UTC (rev 116449)
@@ -1,3 +1,19 @@
+2012-05-08  Timothy Hatcher  <[email protected]>
+
+        Fix the SOFT_LINK_STAGED_FRAMEWORK_OPTIONAL macro so it passes the full path to dlopen.
+
+        dyld only considers libraries in the versioned framework path if their install name
+        matches the library that it is attempting to load. The path we were passing to
+        dlopen lacked the Versions/A component of the path so dyld did not recognize that
+        we wanted it to use the staged version if it is newer.
+
+        <rdar://problem/11406517>
+
+        Reviewed by Mark Rowe.
+
+        * platform/mac/SoftLinking.h: Have SOFT_LINK_STAGED_FRAMEWORK_OPTIONAL take the
+        framework version as an argument and use it when constructing the path to dlopen.
+
 2012-05-08  Rafael Brandao  <[email protected]>
 
         Build fix for Qt Snowleopard Release

Modified: trunk/Source/WebCore/platform/mac/SoftLinking.h (116448 => 116449)


--- trunk/Source/WebCore/platform/mac/SoftLinking.h	2012-05-08 19:26:38 UTC (rev 116448)
+++ trunk/Source/WebCore/platform/mac/SoftLinking.h	2012-05-08 19:33:42 UTC (rev 116449)
@@ -52,13 +52,13 @@
         return frameworkLibrary; \
     }
 
-#define SOFT_LINK_STAGED_FRAMEWORK_OPTIONAL(framework, unstagedLocation) \
+#define SOFT_LINK_STAGED_FRAMEWORK_OPTIONAL(framework, unstagedLocation, version) \
     static void* framework##Library() \
     { \
         static void* frameworkLibrary = ^{ \
-            void* result = dlopen("/System/Library/" #unstagedLocation "/" #framework ".framework/" #framework, RTLD_LAZY); \
+            void* result = dlopen("/System/Library/" #unstagedLocation "/" #framework ".framework/Versions/" #version "/" #framework, RTLD_LAZY); \
             if (!result) \
-                result = dlopen("/System/Library/StagedFrameworks/Safari/" #framework ".framework/" #framework, RTLD_LAZY); \
+                result = dlopen("/System/Library/StagedFrameworks/Safari/" #framework ".framework/Versions/" #version "/" #framework, RTLD_LAZY); \
             return result; \
         }(); \
         return frameworkLibrary; \

Modified: trunk/Source/WebKit/mac/ChangeLog (116448 => 116449)


--- trunk/Source/WebKit/mac/ChangeLog	2012-05-08 19:26:38 UTC (rev 116448)
+++ trunk/Source/WebKit/mac/ChangeLog	2012-05-08 19:33:42 UTC (rev 116449)
@@ -1,3 +1,13 @@
+2012-05-08  Timothy Hatcher  <[email protected]>
+
+        Fix the SOFT_LINK_STAGED_FRAMEWORK_OPTIONAL macro so it passes the full path to dlopen.
+
+        <rdar://problem/11406517>
+
+        Reviewed by Mark Rowe.
+
+        * WebCoreSupport/WebInspectorClient.mm: Pass A to SOFT_LINK_STAGED_FRAMEWORK_OPTIONAL for the version.
+
 2012-05-07  Andy Estes  <[email protected]>
 
         ENABLE_IFRAME_SEAMLESS should be part of FEATURE_DEFINES.

Modified: trunk/Source/WebKit/mac/WebCoreSupport/WebInspectorClient.mm (116448 => 116449)


--- trunk/Source/WebKit/mac/WebCoreSupport/WebInspectorClient.mm	2012-05-08 19:26:38 UTC (rev 116448)
+++ trunk/Source/WebKit/mac/WebCoreSupport/WebInspectorClient.mm	2012-05-08 19:33:42 UTC (rev 116449)
@@ -47,7 +47,7 @@
 #import <WebKitSystemInterface.h>
 #import <wtf/PassOwnPtr.h>
 
-SOFT_LINK_STAGED_FRAMEWORK_OPTIONAL(WebInspector, PrivateFrameworks)
+SOFT_LINK_STAGED_FRAMEWORK_OPTIONAL(WebInspector, PrivateFrameworks, A)
 
 using namespace WebCore;
 

Modified: trunk/Source/WebKit2/ChangeLog (116448 => 116449)


--- trunk/Source/WebKit2/ChangeLog	2012-05-08 19:26:38 UTC (rev 116448)
+++ trunk/Source/WebKit2/ChangeLog	2012-05-08 19:33:42 UTC (rev 116449)
@@ -1,3 +1,14 @@
+2012-05-08  Timothy Hatcher  <[email protected]>
+
+        Fix the SOFT_LINK_STAGED_FRAMEWORK_OPTIONAL macro so it passes the full path to dlopen.
+
+        <rdar://problem/11406517>
+
+        Reviewed by Mark Rowe.
+
+        * UIProcess/mac/WebInspectorProxyMac.mm: Pass A to SOFT_LINK_STAGED_FRAMEWORK_OPTIONAL for the version.
+        * WebProcess/WebPage/mac/WebInspectorMac.mm: Ditto.
+
 2012-05-08  Jesus Sanchez-Palencia  <[email protected]>
 
         [WK2] Integrate Page Visibility state change and WK2 Suspend/Resume API

Modified: trunk/Source/WebKit2/UIProcess/mac/WebInspectorProxyMac.mm (116448 => 116449)


--- trunk/Source/WebKit2/UIProcess/mac/WebInspectorProxyMac.mm	2012-05-08 19:26:38 UTC (rev 116448)
+++ trunk/Source/WebKit2/UIProcess/mac/WebInspectorProxyMac.mm	2012-05-08 19:33:42 UTC (rev 116449)
@@ -42,7 +42,7 @@
 #import <WebCore/SoftLinking.h>
 #import <wtf/text/WTFString.h>
 
-SOFT_LINK_STAGED_FRAMEWORK_OPTIONAL(WebInspector, PrivateFrameworks)
+SOFT_LINK_STAGED_FRAMEWORK_OPTIONAL(WebInspector, PrivateFrameworks, A)
 
 using namespace WebCore;
 using namespace WebKit;

Modified: trunk/Source/WebKit2/WebProcess/WebPage/mac/WebInspectorMac.mm (116448 => 116449)


--- trunk/Source/WebKit2/WebProcess/WebPage/mac/WebInspectorMac.mm	2012-05-08 19:26:38 UTC (rev 116448)
+++ trunk/Source/WebKit2/WebProcess/WebPage/mac/WebInspectorMac.mm	2012-05-08 19:33:42 UTC (rev 116449)
@@ -28,7 +28,7 @@
 
 #import <WebCore/SoftLinking.h>
 
-SOFT_LINK_STAGED_FRAMEWORK_OPTIONAL(WebInspector, PrivateFrameworks)
+SOFT_LINK_STAGED_FRAMEWORK_OPTIONAL(WebInspector, PrivateFrameworks, A)
 
 namespace WebKit {
 
_______________________________________________
webkit-changes mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo.cgi/webkit-changes

Reply via email to