File v8-hide-private-symbols.patch of Package nodejs-electron
Do not export v8 symbols that are used only in unit tests but not exposed in headers.
This reduces the size of the electron binary by 2MB.
--- src/v8/src/base/macros.h.old 2023-09-29 08:54:55.701965801 +0200
+++ src/v8/src/base/macros.h 2023-10-03 11:54:02.305086047 +0200
@@ -399,13 +399,18 @@ bool is_inbounds(float_t v) {
// Setup for Linux shared library export.
#if V8_HAS_ATTRIBUTE_VISIBILITY
+#if defined(HIDE_PRIVATE_SYMBOLS)
+#define V8_EXPORT_PRIVATE __attribute__((visibility("hidden")))
+#define V8_EXPORT_ENUM V8_EXPORT_PRIVATE
+#else
#ifdef BUILDING_V8_SHARED
#define V8_EXPORT_PRIVATE __attribute__((visibility("default")))
#define V8_EXPORT_ENUM V8_EXPORT_PRIVATE
#else
#define V8_EXPORT_PRIVATE
#define V8_EXPORT_ENUM
#endif
+#endif // HIDE_PRIVATE_SYMBOLS
#else
#define V8_EXPORT_PRIVATE
#define V8_EXPORT_ENUM
This should also be hidden, see https://github.com/electron/electron/pull/40624
--- src/v8/src/trap-handler/trap-handler.h.orig 2023-11-22 21:11:42.771625500 +0100
+++ src/v8/src/trap-handler/trap-handler.h 2023-11-30 20:57:23.411956500 +0100
@@ -54,11 +54,11 @@ namespace trap_handler {
#if defined(BUILDING_V8_SHARED) && defined(V8_OS_WIN)
#define TH_EXPORT_PRIVATE __declspec(dllexport)
#elif defined(BUILDING_V8_SHARED)
-#define TH_EXPORT_PRIVATE __attribute__((visibility("default")))
+#define TH_EXPORT_PRIVATE __attribute__((visibility("hidden")))
#elif defined(USING_V8_SHARED) && defined(V8_OS_WIN)
#define TH_EXPORT_PRIVATE __declspec(dllimport)
#else
-#define TH_EXPORT_PRIVATE
+#define TH_EXPORT_PRIVATE __attribute__((visibility("hidden")))
#endif
#define TH_CHECK(condition) \