From 94519caa659d6e33a951b049a0f3a015bdc69b55 Mon Sep 17 00:00:00 2001 From: Jan-E Date: Wed, 16 Nov 2016 12:23:54 +0100 Subject: [PATCH 1/4] Fix config.w32 for V8 version 5.2, 5.3, 5.4 --- config.w32 | 39 ++++++++++++++++++++++++++++++++++----- 1 file changed, 34 insertions(+), 5 deletions(-) diff --git a/config.w32 b/config.w32 index 04d14ac..988e947 100644 --- a/config.w32 +++ b/config.w32 @@ -7,11 +7,7 @@ function v8js_zeroPad(num, places) { } if (PHP_V8JS != "no") { - if (CHECK_LIB("v8_libplatform.lib", "v8js") && - CHECK_LIB("v8_libbase.lib", "v8js") && - CHECK_LIB("winmm.lib", "v8js") && - - CHECK_LIB("v8.lib", "v8js") && + if (CHECK_LIB("winmm.lib", "v8js") && CHECK_HEADER_ADD_INCLUDE("v8.h", "CFLAGS_V8JS")) { ADD_FLAG("CFLAGS_V8JS", "/EHcs"); @@ -46,6 +42,39 @@ if (PHP_V8JS != "no") { var v8api = v8major + v8js_zeroPad(v8minor, 3) + v8js_zeroPad(v8build, 3); var v8ver = v8major + "." + v8minor + "." + v8build + "." + v8patch; + if (v8api >= 5003000) { + // For SymLoadModule64 e.a. + // #include in src\base\win32-headers.h + // Adds dependency on dbghelp.dll + CHECK_LIB("dbghelp.lib", "v8js"); + } + if (v8api >= 5004000) { + // For PathRemoveFileSpecW + /* + v8_libbase.lib(stack_trace_win.obj) : + error LNK2019: unresolved external symbol + __imp_PathRemoveFileSpecW referenced in function "bool __cdecl + v8::base::debug::`anonymous namespace'::InitializeSymbols(void)" + (?InitializeSymbols@?A0x38ef2142@debug@base@v8@@YA_NXZ) + */ + CHECK_LIB("Shlwapi.lib", "v8js"); + } + if (v8api >= 5002000) { + CHECK_LIB("v8.dll.lib", "v8js"); + // created by 'cd obj\v8_libplatform && lib /out:v8_libplatform.lib *.obj' + CHECK_LIB("v8_libplatform.lib", "v8js"); + // created by 'cd obj\v8_libbase && lib /out:v8_libbase.lib *.obj' + CHECK_LIB("v8_libbase.lib", "v8js"); + } else if (v8api >= 5006000) { + CHECK_LIB("v8.dll.lib", "v8js"); + CHECK_LIB("v8_libplatform.dll.lib", "v8js"); + CHECK_LIB("v8_libbase.dll.lib", "v8js"); + } else { + CHECK_LIB("v8.lib", "v8js"); + CHECK_LIB("v8_libplatform.lib", "v8js"); + CHECK_LIB("v8_libbase.lib", "v8js"); + } + AC_DEFINE("PHP_V8_API_VERSION", v8api, "", false); AC_DEFINE("PHP_V8_VERSION", v8ver, "", true); From ebb9a0bc7021fdef347cf0328ef1105580e8e4fa Mon Sep 17 00:00:00 2001 From: Jan-E Date: Wed, 16 Nov 2016 12:34:09 +0100 Subject: [PATCH 2/4] Make check for 5.6 working --- config.w32 | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/config.w32 b/config.w32 index 988e947..a2444f6 100644 --- a/config.w32 +++ b/config.w32 @@ -59,16 +59,16 @@ if (PHP_V8JS != "no") { */ CHECK_LIB("Shlwapi.lib", "v8js"); } - if (v8api >= 5002000) { + if (v8api >= 5006000) { + CHECK_LIB("v8.dll.lib", "v8js"); + CHECK_LIB("v8_libplatform.dll.lib", "v8js"); + CHECK_LIB("v8_libbase.dll.lib", "v8js"); + } else if (v8api >= 5002000) { CHECK_LIB("v8.dll.lib", "v8js"); // created by 'cd obj\v8_libplatform && lib /out:v8_libplatform.lib *.obj' CHECK_LIB("v8_libplatform.lib", "v8js"); // created by 'cd obj\v8_libbase && lib /out:v8_libbase.lib *.obj' CHECK_LIB("v8_libbase.lib", "v8js"); - } else if (v8api >= 5006000) { - CHECK_LIB("v8.dll.lib", "v8js"); - CHECK_LIB("v8_libplatform.dll.lib", "v8js"); - CHECK_LIB("v8_libbase.dll.lib", "v8js"); } else { CHECK_LIB("v8.lib", "v8js"); CHECK_LIB("v8_libplatform.lib", "v8js"); From ac5ba6d68ec242d18bcb0a4afef7de1900517e44 Mon Sep 17 00:00:00 2001 From: Jan-E Date: Thu, 17 Nov 2016 11:18:01 +0100 Subject: [PATCH 3/4] Put additional libs after the main libs --- config.w32 | 27 ++++++++++----------------- 1 file changed, 10 insertions(+), 17 deletions(-) diff --git a/config.w32 b/config.w32 index a2444f6..a84d34d 100644 --- a/config.w32 +++ b/config.w32 @@ -42,23 +42,6 @@ if (PHP_V8JS != "no") { var v8api = v8major + v8js_zeroPad(v8minor, 3) + v8js_zeroPad(v8build, 3); var v8ver = v8major + "." + v8minor + "." + v8build + "." + v8patch; - if (v8api >= 5003000) { - // For SymLoadModule64 e.a. - // #include in src\base\win32-headers.h - // Adds dependency on dbghelp.dll - CHECK_LIB("dbghelp.lib", "v8js"); - } - if (v8api >= 5004000) { - // For PathRemoveFileSpecW - /* - v8_libbase.lib(stack_trace_win.obj) : - error LNK2019: unresolved external symbol - __imp_PathRemoveFileSpecW referenced in function "bool __cdecl - v8::base::debug::`anonymous namespace'::InitializeSymbols(void)" - (?InitializeSymbols@?A0x38ef2142@debug@base@v8@@YA_NXZ) - */ - CHECK_LIB("Shlwapi.lib", "v8js"); - } if (v8api >= 5006000) { CHECK_LIB("v8.dll.lib", "v8js"); CHECK_LIB("v8_libplatform.dll.lib", "v8js"); @@ -74,6 +57,16 @@ if (PHP_V8JS != "no") { CHECK_LIB("v8_libplatform.lib", "v8js"); CHECK_LIB("v8_libbase.lib", "v8js"); } + if (v8api >= 5003000) { + // For SymLoadModule64 e.a. + // #include in src\base\win32-headers.h + // Adds dependency on dbghelp.dll + CHECK_LIB("dbghelp.lib", "v8js"); + } + if (v8api >= 5004000) { + // For PathRemoveFileSpecW in v8_libbase.lib(stack_trace_win) + CHECK_LIB("Shlwapi.lib", "v8js"); + } AC_DEFINE("PHP_V8_API_VERSION", v8api, "", false); AC_DEFINE("PHP_V8_VERSION", v8ver, "", true); From afe9bdb480b812b3dae5f0ef1629a3dc822e548b Mon Sep 17 00:00:00 2001 From: Jan-E Date: Thu, 17 Nov 2016 11:20:10 +0100 Subject: [PATCH 4/4] Remove ref to 5.6.0 for now, cause it dosn;t compile anyway --- config.w32 | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/config.w32 b/config.w32 index a84d34d..070fd44 100644 --- a/config.w32 +++ b/config.w32 @@ -42,11 +42,7 @@ if (PHP_V8JS != "no") { var v8api = v8major + v8js_zeroPad(v8minor, 3) + v8js_zeroPad(v8build, 3); var v8ver = v8major + "." + v8minor + "." + v8build + "." + v8patch; - if (v8api >= 5006000) { - CHECK_LIB("v8.dll.lib", "v8js"); - CHECK_LIB("v8_libplatform.dll.lib", "v8js"); - CHECK_LIB("v8_libbase.dll.lib", "v8js"); - } else if (v8api >= 5002000) { + if (v8api >= 5002000) { CHECK_LIB("v8.dll.lib", "v8js"); // created by 'cd obj\v8_libplatform && lib /out:v8_libplatform.lib *.obj' CHECK_LIB("v8_libplatform.lib", "v8js");