diff --git a/patches/v8/.patches b/patches/v8/.patches index 9f562e8893d2b..3329248c1d418 100644 --- a/patches/v8/.patches +++ b/patches/v8/.patches @@ -8,3 +8,4 @@ workaround_an_undefined_symbol_error.patch do_not_export_private_v8_symbols_on_windows.patch revert_cleanup_switch_offset_of_to_offsetof_where_possible.patch objects_fix_memory_leak_in_prototypeusers_add.patch +fix_build_deprecated_attirbute_for_older_msvc_versions.patch diff --git a/patches/v8/fix_build_deprecated_attirbute_for_older_msvc_versions.patch b/patches/v8/fix_build_deprecated_attirbute_for_older_msvc_versions.patch new file mode 100644 index 0000000000000..7b47093bf29f6 --- /dev/null +++ b/patches/v8/fix_build_deprecated_attirbute_for_older_msvc_versions.patch @@ -0,0 +1,43 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Deepak Mohan +Date: Tue, 28 Jan 2020 15:48:03 -0800 +Subject: fix: usage of c++ [[deprecated]] attirbute for older msvc versions + +VS 2015 update 3 has a bug where [[deprecated]] attribute cannot +be applied to constructor declarations, this is fixed in 2017 and +higher versions, but native module compiling with this version +will have an issue. + +diff --git a/include/v8config.h b/include/v8config.h +index 40d23c35c186e4def1fcf59c28527de292d9fd7a..7d1ef7b5bf0ff6693b8a04afc1e319219c14e230 100644 +--- a/include/v8config.h ++++ b/include/v8config.h +@@ -388,10 +388,13 @@ + # define V8_NOINLINE /* NOT SUPPORTED */ + #endif + +- + // A macro (V8_DEPRECATED) to mark classes or functions as deprecated. + #if defined(V8_DEPRECATION_WARNINGS) +-# define V8_DEPRECATED(message) [[deprecated(message)]] ++# if defined(_MSC_VER) && _MSC_VER <= 1900 ++# define V8_DEPRECATED(message) __declspec(deprecated(message)) ++# else ++# define V8_DEPRECATED(message) [[deprecated(message)]] ++# endif + #else + # define V8_DEPRECATED(message) + #endif +@@ -399,7 +402,11 @@ + + // A macro (V8_DEPRECATE_SOON) to make it easier to see what will be deprecated. + #if defined(V8_IMMINENT_DEPRECATION_WARNINGS) +-# define V8_DEPRECATE_SOON(message) [[deprecated(message)]] ++# if defined(_MSC_VER) && _MSC_VER <= 1900 ++# define V8_DEPRECATE_SOON(message) __declspec(deprecated(message)) ++# else ++# define V8_DEPRECATE_SOON(message) [[deprecated(message)]] ++# endif + #else + # define V8_DEPRECATE_SOON(message) + #endif