Fix the build after r157478.
authormrowe@apple.com <mrowe@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Wed, 16 Oct 2013 07:32:42 +0000 (07:32 +0000)
committermrowe@apple.com <mrowe@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Wed, 16 Oct 2013 07:32:42 +0000 (07:32 +0000)
Rubber-stamped by Tim Horton.

Due to the way WebCore.exp.in is used, it can't be used to export a differing set of symbols
for different architectures. We often work around this by tweaking code slightly to avoid
needing to export different symbols. However, in this case the symbol name itself encodes an
architecture-specific detail and there's no clear way to avoid the requirement to export it.

To deal with this case we turn to ld's support for wildcards in the symbol export list.

* WebCore.exp.in: Use wildcards in place of the number that represents by how much "this"
should be adjusted when calling through the vtable thunk. Also sort the remainder of the file.
* make-export-file-generator: Don't attempt to verify symbol names that contain wildcard characters.

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

Source/WebCore/ChangeLog
Source/WebCore/WebCore.exp.in
Source/WebCore/make-export-file-generator

index 4c33260..088862a 100644 (file)
@@ -1,3 +1,20 @@
+2013-10-16  Mark Rowe  <mrowe@apple.com>
+
+        Fix the build after r157478.
+
+        Rubber-stamped by Tim Horton.
+
+        Due to the way WebCore.exp.in is used, it can't be used to export a differing set of symbols
+        for different architectures. We often work around this by tweaking code slightly to avoid
+        needing to export different symbols. However, in this case the symbol name itself encodes an
+        architecture-specific detail and there's no clear way to avoid the requirement to export it.
+
+        To deal with this case we turn to ld's support for wildcards in the symbol export list.
+
+        * WebCore.exp.in: Use wildcards in place of the number that represents by how much "this"
+        should be adjusted when calling through the vtable thunk. Also sort the remainder of the file.
+        * make-export-file-generator: Don't attempt to verify symbol names that contain wildcard characters.
+
 2013-10-15  Tim Horton  <timothy_horton@apple.com>
 
         Two more exports for 32-bit build fix.
index 7177af0..fe4f61b 100644 (file)
@@ -433,6 +433,10 @@ __ZN7WebCore15BackForwardList8backItemEv
 __ZN7WebCore15BackForwardList8capacityEv
 __ZN7WebCore15BackForwardList9goForwardEv
 __ZN7WebCore15BackForwardListC1EPNS_4PageE
+__ZN7WebCore15CertificateInfo19setCertificateChainEPK9__CFArray
+__ZN7WebCore15CertificateInfoC1EPK9__CFArray
+__ZN7WebCore15CertificateInfoC1Ev
+__ZN7WebCore15CertificateInfoD1Ev
 __ZN7WebCore15DOMWrapperWorld13clearWrappersEv
 __ZN7WebCore15DOMWrapperWorldD1Ev
 __ZN7WebCore15DatabaseManager10initializeERKN3WTF6StringE
@@ -482,8 +486,6 @@ __ZN7WebCore15GraphicsContext9drawImageEPNS_5ImageENS_10ColorSpaceERKNS_8IntPoin
 __ZN7WebCore15GraphicsContext9setShadowERKNS_9FloatSizeEfRKNS_5ColorENS_10ColorSpaceE
 __ZN7WebCore15GraphicsContext9translateEff
 __ZN7WebCore15GraphicsContextD1Ev
-__ZN7WebCore15GraphicsLayerCAC2EPNS_19GraphicsLayerClientE
-__ZN7WebCore15GraphicsLayerCAD2Ev
 __ZN7WebCore15GraphicsLayerCA10initializeEv
 __ZN7WebCore15GraphicsLayerCA10setFiltersERKNS_16FilterOperationsE
 __ZN7WebCore15GraphicsLayerCA10setOpacityEf
@@ -542,11 +544,13 @@ __ZN7WebCore15GraphicsLayerCA40platformCALayerSetNeedsToRevalidateTilesEv
 __ZN7WebCore15GraphicsLayerCA7setNameERKN3WTF6StringE
 __ZN7WebCore15GraphicsLayerCA7setSizeERKNS_9FloatSizeE
 __ZN7WebCore15GraphicsLayerCA8addChildEPNS_13GraphicsLayerE
-__ZN7WebCore15PlatformCALayerD2Ev
+__ZN7WebCore15GraphicsLayerCAC2EPNS_19GraphicsLayerClientE
+__ZN7WebCore15GraphicsLayerCAD2Ev
 __ZN7WebCore15HitTestLocation12rectForPointERKNS_11LayoutPointEjjjj
 __ZN7WebCore15JSDOMWindowBase8commonVMEv
 __ZN7WebCore15PasteboardImageC1Ev
 __ZN7WebCore15PasteboardImageD1Ev
+__ZN7WebCore15PlatformCALayerD2Ev
 __ZN7WebCore15ProtectionSpaceC1ERKN3WTF6StringEiNS_25ProtectionSpaceServerTypeES4_NS_35ProtectionSpaceAuthenticationSchemeE
 __ZN7WebCore15ProtectionSpaceC1Ev
 __ZN7WebCore15ResourceRequest21httpPipeliningEnabledEv
@@ -823,11 +827,6 @@ __ZN7WebCore23AuthenticationChallenge23setAuthenticationClientEPNS_20Authenticat
 __ZN7WebCore23AuthenticationChallengeC1ERKNS_15ProtectionSpaceERKNS_10CredentialEjRKNS_16ResourceResponseERKNS_13ResourceErrorE
 __ZN7WebCore23MutableStylePropertySet25ensureCSSStyleDeclarationEv
 __ZN7WebCore23MutableStylePropertySetD1Ev
-__ZN7WebCore15CertificateInfo19setCertificateChainEPK9__CFArray
-__ZN7WebCore15CertificateInfoC1EPK9__CFArray
-__ZN7WebCore15CertificateInfoC1Ev
-__ZN7WebCore15CertificateInfoD1Ev
-__ZNK7WebCore15CertificateInfo16certificateChainEv
 __ZN7WebCore23SynchronousLoaderClient24platformBadResponseErrorEv
 __ZN7WebCore23dataForURLComponentTypeEP5NSURLl
 __ZN7WebCore23decodeHostNameWithRangeEP8NSString8_NSRange
@@ -1523,6 +1522,7 @@ __ZNK7WebCore15AffineTransform7inverseEv
 __ZNK7WebCore15AffineTransform7mapRectERKNS_9FloatRectE
 __ZNK7WebCore15AffineTransform8mapPointERKNS_10FloatPointE
 __ZNK7WebCore15AffineTransform8mapPointERKNS_8IntPointE
+__ZNK7WebCore15CertificateInfo16certificateChainEv
 __ZNK7WebCore15FocusController18focusedOrMainFrameEv
 __ZNK7WebCore15GraphicsContext15platformContextEv
 __ZNK7WebCore15GraphicsContext16paintingDisabledEv
@@ -1536,22 +1536,6 @@ __ZNK7WebCore15GraphicsLayerCA25shouldRepaintOnSizeChangeEv
 __ZNK7WebCore15GraphicsLayerCA26backingStoreMemoryEstimateEv
 __ZNK7WebCore15GraphicsLayerCA30visibleRectChangeRequiresFlushERKNS_9FloatRectE
 __ZNK7WebCore15GraphicsLayerCA33platformCALayerShowRepaintCounterEPNS_15PlatformCALayerE
-
-#if CPU(X86_64)
-__ZThn496_N7WebCore15GraphicsLayerCA28platformCALayerPaintContentsERNS_15GraphicsContextERKNS_7IntRectE
-__ZThn496_N7WebCore15GraphicsLayerCA31platformCALayerAnimationStartedEd
-__ZThn496_N7WebCore15GraphicsLayerCA32platformCALayerDeviceScaleFactorEv
-__ZThn496_N7WebCore15GraphicsLayerCA40platformCALayerSetNeedsToRevalidateTilesEv
-__ZThn496_NK7WebCore15GraphicsLayerCA33platformCALayerShowRepaintCounterEPNS_15PlatformCALayerE
-#else
-__ZThn440_N7WebCore15GraphicsLayerCA40platformCALayerSetNeedsToRevalidateTilesEv
-__ZThn440_N7WebCore15GraphicsLayerCA31platformCALayerAnimationStartedEd
-__ZThn440_NK7WebCore15GraphicsLayerCA33platformCALayerShowRepaintCounterEPNS_15PlatformCALayerE
-__ZThn440_N7WebCore15GraphicsLayerCA28platformCALayerPaintContentsERNS_15GraphicsContextERKNS_7IntRectE
-__ZThn440_N7WebCore15GraphicsLayerCA32platformCALayerDeviceScaleFactorEv
-#endif
-
-__ZTVN7WebCore15PlatformCALayerE
 __ZNK7WebCore15ProgressTracker17estimatedProgressEv
 __ZNK7WebCore15ProtectionSpace10serverTypeEv
 __ZNK7WebCore15ProtectionSpace26receivesCredentialSecurelyEv
@@ -1767,8 +1751,8 @@ __ZNK7WebCore8Settings20pictographFontFamilyE11UScriptCode
 __ZNK7WebCore9DOMWindow27pendingUnloadEventListenersEv
 __ZNK7WebCore9FloatQuad11boundingBoxEv
 __ZNK7WebCore9FloatRect10intersectsERKS0_
-__ZNK7WebCore9FloatSize6isZeroEv
 __ZNK7WebCore9FloatRectcv6CGRectEv
+__ZNK7WebCore9FloatSize6isZeroEv
 __ZNK7WebCore9FrameTree10childCountEv
 __ZNK7WebCore9FrameTree12traverseNextEPKNS_5FrameE
 __ZNK7WebCore9FrameTree14isDescendantOfEPKNS_5FrameE
@@ -1805,11 +1789,17 @@ __ZNK7WebCore9TreeScope14getElementByIdERKN3WTF12AtomicStringE
 __ZTVN7WebCore12ChromeClientE
 __ZTVN7WebCore14LoaderStrategyE
 __ZTVN7WebCore14StaticNodeListE
+__ZTVN7WebCore15PlatformCALayerE
 __ZTVN7WebCore15StorageStrategyE
 __ZTVN7WebCore16DatabaseStrategyE
 __ZTVN7WebCore16IconDatabaseBaseE
 __ZTVN7WebCore17FrameLoaderClientE
 __ZTVN7WebCore28InspectorFrontendClientLocal8SettingsE
+__ZThn???_N7WebCore15GraphicsLayerCA28platformCALayerPaintContentsERNS_15GraphicsContextERKNS_7IntRectE
+__ZThn???_N7WebCore15GraphicsLayerCA31platformCALayerAnimationStartedEd
+__ZThn???_N7WebCore15GraphicsLayerCA32platformCALayerDeviceScaleFactorEv
+__ZThn???_N7WebCore15GraphicsLayerCA40platformCALayerSetNeedsToRevalidateTilesEv
+__ZThn???_NK7WebCore15GraphicsLayerCA33platformCALayerShowRepaintCounterEPNS_15PlatformCALayerE
 _filenameByFixingIllegalCharacters
 _hasCaseInsensitivePrefix
 _hasCaseInsensitiveSubstring
index d161072..617363c 100755 (executable)
@@ -40,12 +40,22 @@ TEMPLATE = <<-EOF
 
 #if !OS(WINDOWS)
 #include <cxxabi.h>
+
+static bool symbolCanBeValidated(const char* symbol)
+{
+    // Symbols containing wildcards cannot be validated.
+    if (strchr(symbol, '?') || strchr(symbol, '*'))
+        return false;
+
+    // Other C++ symbols can be.
+    return !strncmp(symbol, "__Z", strlen("__Z"));
+}
 #endif
 
 static void validateAndPrint(const char* symbol)
 {
 #if !OS(WINDOWS)
-    if (!strncmp(symbol, "__Z", strlen("__Z"))) {
+    if (symbolCanBeValidated(symbol)) {
       char* demangledName = abi::__cxa_demangle(symbol + 1, nullptr, nullptr, nullptr);
       if (!demangledName) {
         fprintf(stderr, "ERROR: \\"%s\\" is not a valid C++ mangled name.\\n", symbol);