 diff --git a/BUILD.gn b/BUILD.gn
-index 8895103222..fedab53463 100644
+index 8895103..69f8bf5 100644
 --- a/BUILD.gn
 +++ b/BUILD.gn
-@@ -134,7 +134,7 @@ config("internal_config") {
+@@ -137,25 +137,41 @@ config("internal_config") {
+   if (is_component_build) {
+     defines = [ "BUILDING_V8_SHARED" ]
+   }
++
++  if (!is_component_build && is_electron_build) {
++    defines = [
++      "BUILDING_V8_BASE_SHARED",
++      "BUILDING_V8_PLATFORM_SHARED",
++      "BUILDING_V8_SHARED",
++    ]
++  }
+ }
+ 
+ config("internal_config_base") {
+   visibility = [ ":*" ]  # Only targets in this file can depend on this.
  
    include_dirs = [ "." ]
++
++  if (!is_component_build && is_electron_build) {
++    defines = [
++      "BUILDING_V8_BASE_SHARED",
++      "BUILDING_V8_PLATFORM_SHARED",
++      "BUILDING_V8_SHARED",
++    ]
++  }
+ }
  
+ # This config should be applied to code using the libplatform.
+ config("libplatform_config") {
+   include_dirs = [ "include" ]
 -  if (is_component_build) {
 +  if (is_component_build || is_electron_build) {
-     defines = [ "BUILDING_V8_SHARED" ]
+     defines = [ "USING_V8_PLATFORM_SHARED" ]
    }
  }
-@@ -172,7 +172,7 @@ config("libsampler_config") {
+ 
+ # This config should be applied to code using the libbase.
+ config("libbase_config") {
+-  if (is_component_build) {
++  if (is_component_build || is_electron_build) {
+     defines = [ "USING_V8_BASE_SHARED" ]
+   }
+   libs = []
+@@ -172,7 +188,7 @@ config("libsampler_config") {
  # This config should only be applied to code using V8 and not any V8 code
  # itself.
  config("external_config") {

     defines = [ "USING_V8_SHARED" ]
   }
   include_dirs = [ "include" ]
@@ -2482,6 +2482,8 @@ if (current_toolchain == v8_snapshot_toolchain) {
 
     configs = [ ":internal_config" ]
 

   deps = [
     ":v8_libbase",
     "//build/config/sanitizers:deps",
@@ -2588,7 +2608,7 @@ group("v8_fuzzers") {
   ]
 }
 
