From: Cheng Zhao Date: Fri, 27 Jan 2017 09:51:20 +0000 (+0900) Subject: Fix missing of symbols issue on Release build X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=82d796ded460494285d40dcc0faa40c8bc6d1613;p=platform%2Fframework%2Fweb%2Fcrosswalk-tizen.git Fix missing of symbols issue on Release build --- diff --git a/atom/node/osfhandle.cc b/atom/node/osfhandle.cc index 33403dc..022acf1 100644 --- a/atom/node/osfhandle.cc +++ b/atom/node/osfhandle.cc @@ -6,6 +6,9 @@ #include +#include "v8-profiler.h" +#include "v8-inspector.h" + namespace node { int open_osfhandle(intptr_t osfhandle, int flags) { @@ -16,4 +19,12 @@ int close(int fd) { return _close(fd); } +void ReferenceSymbols() { + // Following symbols are used by electron.exe but got stripped by compiler, + // for some reason, adding them to ForceSymbolReferences does not work, + // probably because of VC++ bugs. + v8::TracingCpuProfiler::Create(nullptr); + reinterpret_cast(nullptr)->unmuteMetrics(0); +} + } // namespace node diff --git a/atom/node/osfhandle.h b/atom/node/osfhandle.h index 3933236..1427bb8 100644 --- a/atom/node/osfhandle.h +++ b/atom/node/osfhandle.h @@ -21,6 +21,9 @@ namespace node { __declspec(dllexport) int open_osfhandle(intptr_t osfhandle, int flags); __declspec(dllexport) int close(int fd); +// A trick to force referencing symbols. +__declspec(dllexport) void ReferenceSymbols(); + } // namespace node #endif // ATOM_NODE_OSFHANDLE_H_ diff --git a/common.gypi b/common.gypi index 7bd2df8..ca143b1 100644 --- a/common.gypi +++ b/common.gypi @@ -155,13 +155,15 @@ '-ldbghelp.lib', '-lshlwapi.lib', ], - # Fix the linking error with icu. + # Force referencing symbols of ICU and v8_inspector to make sure + # they are included in the final DLL. 'conditions': [ ['libchromiumcontent_component==0', { 'variables': { 'conditions': [ ['target_arch=="ia32"', { 'reference_symbols': [ + # ICU symbols: '_u_errorName_58', '_ubidi_setPara_58', '_ucsdet_getName_58', @@ -177,6 +179,7 @@ ], }, { 'reference_symbols': [ + # ICU symbols: 'u_errorName_58', 'ubidi_setPara_58', 'ucsdet_getName_58', @@ -188,6 +191,9 @@ 'usearch_setPattern_58', '?createInstance@Transliterator@icu_58@@SAPEAV12@AEBVUnicodeString@2@W4UTransDirection@@AEAW4UErrorCode@@@Z', '??0MeasureFormat@icu_58@@QEAA@AEBVLocale@1@W4UMeasureFormatWidth@@AEAW4UErrorCode@@@Z', + # v8_inspector symbols: + '?DOM@ReasonEnum@Paused@API@Debugger@protocol@v8_inspector@@3PEBDEB', + '?canDispatchMethod@V8InspectorSession@v8_inspector@@SA_NAEBVStringView@2@@Z', ], }], ], diff --git a/script/lib/config.py b/script/lib/config.py index 68536a7..161295d 100644 --- a/script/lib/config.py +++ b/script/lib/config.py @@ -9,7 +9,7 @@ import sys BASE_URL = os.getenv('LIBCHROMIUMCONTENT_MIRROR') or \ 'https://s3.amazonaws.com/github-janky-artifacts/libchromiumcontent' LIBCHROMIUMCONTENT_COMMIT = os.getenv('LIBCHROMIUMCONTENT_COMMIT') or \ - '0360b49dc59dcaad80bc056c9c9678273d4200e6' + '628ae34823d133842faf8f45c2b2741e4ca74e53' PLATFORM = { 'cygwin': 'win32', diff --git a/vendor/brightray b/vendor/brightray index e7ef0ea..2804925 160000 --- a/vendor/brightray +++ b/vendor/brightray @@ -1 +1 @@ -Subproject commit e7ef0ea4e7d45549128d6304c2faf732daedca2d +Subproject commit 280492556cfcdf56274d18bccb4f9560f43a2a91