Skip to content

Commit

Permalink
fix: compilation of native modules on windows with older msvc versions (
Browse files Browse the repository at this point in the history
  • Loading branch information
deepak1556 committed Jan 30, 2020
1 parent 38d908e commit b3fdb24
Show file tree
Hide file tree
Showing 2 changed files with 44 additions and 0 deletions.
1 change: 1 addition & 0 deletions patches/v8/.patches
Expand Up @@ -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
@@ -0,0 +1,43 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Deepak Mohan <hop2deep@gmail.com>
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

0 comments on commit b3fdb24

Please sign in to comment.