Improve use of ExportMacros
authormcatanzaro@igalia.com <mcatanzaro@igalia.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Mon, 15 Jan 2018 23:49:02 +0000 (23:49 +0000)
committermcatanzaro@igalia.com <mcatanzaro@igalia.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Mon, 15 Jan 2018 23:49:02 +0000 (23:49 +0000)
https://bugs.webkit.org/show_bug.cgi?id=181652

Reviewed by Konstantin Tokarev.

Source/bmalloc:

Disable BEXPORT on Linux ports.

* bmalloc/BExport.h: Check for BUSE(EXPORT_MACROS).
* bmalloc/BPlatform.h: Add BUSE(EXPORT_MACROS) and define it on macOS and iOS.

Source/JavaScriptCore:

* API/JSBase.h: Update a comment.
* inspector/InspectorBackendDispatcher.h: Use a better, yet equivalent, WTF macro.
* runtime/JSExportMacros.h: Simplify the #defines in this file.

Source/WebCore:

Remove a comment.

* platform/PlatformExportMacros.h:

Source/WebCore/PAL:

Remove a comment.

* pal/ExportMacros.h:

Source/WTF:

* wtf/ExportMacros.h: Simplify the #defines in this file.
* wtf/Platform.h: Remove unneeded define. Remove comment that expects all ports to
  eventually enable the export macros. WPE will never want these. We don't currently want
  them for GTK either, though how we link GTK has been in flux recently.

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

14 files changed:
Source/JavaScriptCore/API/JSBase.h
Source/JavaScriptCore/ChangeLog
Source/JavaScriptCore/inspector/InspectorBackendDispatcher.h
Source/JavaScriptCore/runtime/JSExportMacros.h
Source/WTF/ChangeLog
Source/WTF/wtf/ExportMacros.h
Source/WTF/wtf/Platform.h
Source/WebCore/ChangeLog
Source/WebCore/PAL/ChangeLog
Source/WebCore/PAL/pal/ExportMacros.h
Source/WebCore/platform/PlatformExportMacros.h
Source/bmalloc/ChangeLog
Source/bmalloc/bmalloc/BExport.h
Source/bmalloc/bmalloc/BPlatform.h

index fe00a8d..61b5e8d 100644 (file)
@@ -76,7 +76,7 @@ typedef struct OpaqueJSValue* JSObjectRef;
 #endif
 
 /* JavaScript symbol exports */
-/* These rules should stay the same as in WebKit2/Shared/API/c/WKBase.h */
+/* These rules should stay the same as in WebKit/Shared/API/c/WKDeclarationSpecifiers.h */
 
 #undef JS_EXPORT
 #if defined(JS_NO_EXPORT)
index 82a1756..f8b68b1 100644 (file)
@@ -1,3 +1,14 @@
+2018-01-15  Michael Catanzaro  <mcatanzaro@igalia.com>
+
+        Improve use of ExportMacros
+        https://bugs.webkit.org/show_bug.cgi?id=181652
+
+        Reviewed by Konstantin Tokarev.
+
+        * API/JSBase.h: Update a comment.
+        * inspector/InspectorBackendDispatcher.h: Use a better, yet equivalent, WTF macro.
+        * runtime/JSExportMacros.h: Simplify the #defines in this file.
+
 2018-01-15  JF Bastien  <jfbastien@apple.com>
 
         Remove makePoisonedUnique
index 3f789f6..a34d1ce 100644 (file)
@@ -96,7 +96,7 @@ public:
     void reportProtocolError(std::optional<long> relatedRequestId, CommonErrorCode, const String& errorMessage);
 
     template<typename T>
-    WTF_HIDDEN_DECLARATION
+    WTF_INTERNAL
     T getPropertyValue(JSON::Object*, const String& name, bool* out_optionalValueFound, T defaultValue, std::function<bool(JSON::Value&, T&)>, const char* typeName);
 
     int getInteger(JSON::Object*, const String& name, bool* valueFound);
index ca31389..63ba63e 100644 (file)
@@ -31,7 +31,6 @@
 
 #include <wtf/ExportMacros.h>
 
-// See note in wtf/Platform.h for more info on EXPORT_MACROS.
 #if USE(EXPORT_MACROS)
 
 #if defined(BUILDING_JavaScriptCore) || defined(STATICALLY_LINKED_WITH_JavaScriptCore)
 #define JS_EXPORT_PRIVATE WTF_IMPORT
 #endif
 
-#define JS_EXPORT_HIDDEN WTF_HIDDEN
+// FIXME: We should replace JS_EXPORTDATA with JS_EXPORT_PRIVATE.
 #define JS_EXPORTDATA JS_EXPORT_PRIVATE
-#define JS_EXPORTCLASS JS_EXPORT_PRIVATE
 
 #else // !USE(EXPORT_MACROS)
 
-#if USE(DECLSPEC_ATTRIBUTE)
-
-#if defined(BUILDING_JavaScriptCore) || defined(STATICALLY_LINKED_WITH_JavaScriptCore)
-#define JS_EXPORTDATA __declspec(dllexport)
-#else
-#define JS_EXPORTDATA __declspec(dllimport)
-#endif
-
-#define JS_EXPORTCLASS JS_EXPORTDATA
-
-#else // !PLATFORM...
-
 #define JS_EXPORTDATA
-#define JS_EXPORTCLASS
-
-#endif // !PLATFORM...
-
 #define JS_EXPORT_PRIVATE
-#define JS_EXPORT_HIDDEN
 
 #endif // USE(EXPORT_MACROS)
index 7af2d69..b1064b2 100644 (file)
@@ -1,3 +1,15 @@
+2018-01-15  Michael Catanzaro  <mcatanzaro@igalia.com>
+
+        Improve use of ExportMacros
+        https://bugs.webkit.org/show_bug.cgi?id=181652
+
+        Reviewed by Konstantin Tokarev.
+
+        * wtf/ExportMacros.h: Simplify the #defines in this file.
+        * wtf/Platform.h: Remove unneeded define. Remove comment that expects all ports to
+          eventually enable the export macros. WPE will never want these. We don't currently want
+          them for GTK either, though how we link GTK has been in flux recently.
+
 2018-01-15  JF Bastien  <jfbastien@apple.com>
 
         Remove makePoisonedUnique
index 52ff18f..e4895a4 100644 (file)
 
 #endif
 
-#if defined(BUILDING_WTF) || defined(STATICALLY_LINKED_WITH_WTF)
-#define WTF_IS_LINKED_IN_SAME_BINARY 1
-#endif
-
-// See note in wtf/Platform.h for more info on EXPORT_MACROS.
 #if USE(EXPORT_MACROS)
 
 #define WTF_EXPORT WTF_EXPORT_DECLARATION
 #define WTF_IMPORT WTF_IMPORT_DECLARATION
 #define WTF_HIDDEN WTF_IMPORT_DECLARATION
 
-// FIXME: When all ports are using the export macros, we should replace
-// WTF_EXPORTDATA with WTF_EXPORT_PRIVATE macros.
-#if defined(WTF_IS_LINKED_IN_SAME_BINARY)
-#define WTF_EXPORTDATA WTF_EXPORT
-#else
-#define WTF_EXPORTDATA WTF_IMPORT
-#endif
-
-#else // !USE(EXPORT_MACROS)
-
-#if USE(DECLSPEC_ATTRIBUTE)
 #if defined(BUILDING_WTF) || defined(STATICALLY_LINKED_WITH_WTF)
-#define WTF_EXPORTDATA __declspec(dllexport)
+#define WTF_EXPORT_PRIVATE WTF_EXPORT
 #else
-#define WTF_EXPORTDATA __declspec(dllimport)
-#endif
-#else // !OS(WINDOWS) || COMPILER(GCC_OR_CLANG)
-#define WTF_EXPORTDATA
+#define WTF_EXPORT_PRIVATE WTF_IMPORT
 #endif
 
-#define WTF_EXPORTCLASS WTF_EXPORTDATA
+#else // !USE(EXPORT_MACROS)
 
 #define WTF_EXPORT
 #define WTF_IMPORT
 #define WTF_HIDDEN
+#define WTF_EXPORT_PRIVATE
 
 #endif // USE(EXPORT_MACROS)
 
-#if defined(WTF_IS_LINKED_IN_SAME_BINARY)
-#define WTF_EXPORT_PRIVATE WTF_EXPORT
-#else
-#define WTF_EXPORT_PRIVATE WTF_IMPORT
-#endif
-
+// FIXME: We should replace WTF_EXPORTDATA and WTF_EXPORT_STRING_API with WTF_EXPORT_PRIVATE.
+#define WTF_EXPORTDATA WTF_EXPORT_PRIVATE
 #define WTF_EXPORT_STRING_API WTF_EXPORT_PRIVATE
-
-#define WTF_EXPORT_HIDDEN WTF_HIDDEN
-
-#define HIDDEN_INLINE WTF_EXPORT_HIDDEN inline
index c315ee2..8b64ad1 100644 (file)
 #include <wtf/glib/GTypedefs.h>
 #endif
 
-/* FIXME: This define won't be needed once #27551 is fully landed. However,
-   since most ports try to support sub-project independence, adding new headers
-   to WTF causes many ports to break, and so this way we can address the build
-   breakages one port at a time. */
 #if !defined(USE_EXPORT_MACROS) && (PLATFORM(COCOA) || OS(WINDOWS))
 #define USE_EXPORT_MACROS 1
 #endif
 
-#if !defined(USE_EXPORT_MACROS_FOR_TESTING) && (PLATFORM(GTK) || OS(WINDOWS))
-#define USE_EXPORT_MACROS_FOR_TESTING 1
-#endif
-
 #if PLATFORM(GTK) || PLATFORM(WPE)
 #define USE_UNIX_DOMAIN_SOCKETS 1
 #endif
index ec4aa55..6cf0d7f 100644 (file)
@@ -1,3 +1,14 @@
+2018-01-15  Michael Catanzaro  <mcatanzaro@igalia.com>
+
+        Improve use of ExportMacros
+        https://bugs.webkit.org/show_bug.cgi?id=181652
+
+        Reviewed by Konstantin Tokarev.
+
+        Remove a comment.
+
+        * platform/PlatformExportMacros.h:
+
 2018-01-15  Konstantin Tokarev  <annulen@yandex.ru>
 
         image-rendering should affect scaling of border-image
index 64b5435..018e0ae 100644 (file)
@@ -1,3 +1,14 @@
+2018-01-15  Michael Catanzaro  <mcatanzaro@igalia.com>
+
+        Improve use of ExportMacros
+        https://bugs.webkit.org/show_bug.cgi?id=181652
+
+        Reviewed by Konstantin Tokarev.
+
+        Remove a comment.
+
+        * pal/ExportMacros.h:
+
 2018-01-11  Keith Miller  <keith_miller@apple.com>
 
         Rename ENABLE_ASYNC_ITERATION to ENABLE_JS_ASYNC_ITERATION
index a39c898..30330cd 100644 (file)
@@ -31,7 +31,6 @@
 
 #include <wtf/ExportMacros.h>
 
-// See note in wtf/Platform.h for more info on EXPORT_MACROS.
 #if USE(EXPORT_MACROS)
 
 #if defined(BUILDING_PAL) || defined(STATICALLY_LINKED_WITH_PAL)
index 407468d..1ccaa59 100644 (file)
@@ -31,7 +31,6 @@
 
 #include <wtf/ExportMacros.h>
 
-// See note in wtf/Platform.h for more info on EXPORT_MACROS.
 #if USE(EXPORT_MACROS)
 
 #if !PLATFORM(WIN)
index 0739394..c233b66 100644 (file)
@@ -1,3 +1,15 @@
+2018-01-15  Michael Catanzaro  <mcatanzaro@igalia.com>
+
+        Improve use of ExportMacros
+        https://bugs.webkit.org/show_bug.cgi?id=181652
+
+        Reviewed by Konstantin Tokarev.
+
+        Disable BEXPORT on Linux ports.
+
+        * bmalloc/BExport.h: Check for BUSE(EXPORT_MACROS).
+        * bmalloc/BPlatform.h: Add BUSE(EXPORT_MACROS) and define it on macOS and iOS.
+
 2017-12-20  Ting-Wei Lan  <lantw44@gmail.com>
 
         Include stdio.h before using stderr and _IONBF
index 38e2b3b..34a6071 100644 (file)
 
 #pragma once
 
-#define BEXPORT __attribute__((visibility("default")))
+#include "BPlatform.h"
 
+#if BUSE(EXPORT_MACROS)
+#define BEXPORT __attribute__((visibility("default")))
+#else
+#define BEXPORT
+#endif
index 0bb453f..0d0d8bb 100644 (file)
 #define BUSE_OS_LOG 1
 #endif
 
+#if !defined(BUSE_EXPORT_MACROS) && (BPLATFORM(MAC) || BPLATFORM(IOS))
+#define BUSE_EXPORT_MACROS 1
+#endif
+
 /* BUNUSED_PARAM */
 #if !defined(BUNUSED_PARAM)
 #define BUNUSED_PARAM(variable) (void)variable