no-sse2 patch: Fix V8 dual build on i686
* Add the dependency on the SSE2 build to a target QtWebEngine actually uses. * Also handle v8_build_shared in the V8 inspector, so the symbols actually get exported.
This commit is contained in:
parent
2e9fc1cac1
commit
0df1d88b1a
@ -136,22 +136,23 @@ diff -Nur qtwebengine-opensource-src-5.9.0/src/3rdparty/chromium/cc/BUILD.gn qtw
|
|||||||
static_library("test_support") {
|
static_library("test_support") {
|
||||||
testonly = true
|
testonly = true
|
||||||
sources = [
|
sources = [
|
||||||
diff -Nur qtwebengine-opensource-src-5.9.0/src/3rdparty/chromium/chrome/renderer/BUILD.gn qtwebengine-opensource-src-5.9.0-no-sse2/src/3rdparty/chromium/chrome/renderer/BUILD.gn
|
diff -Nur qtwebengine-opensource-src-5.9.0/src/3rdparty/chromium/content/renderer/BUILD.gn qtwebengine-opensource-src-5.9.0-no-sse2/src/3rdparty/chromium/content/renderer/BUILD.gn
|
||||||
--- qtwebengine-opensource-src-5.9.0/src/3rdparty/chromium/chrome/renderer/BUILD.gn 2017-05-18 16:51:44.000000000 +0200
|
--- qtwebengine-opensource-src-5.9.0/src/3rdparty/chromium/content/renderer/BUILD.gn 2017-05-18 16:51:44.000000000 +0200
|
||||||
+++ qtwebengine-opensource-src-5.9.0-no-sse2/src/3rdparty/chromium/chrome/renderer/BUILD.gn 2017-06-10 02:12:19.472150369 +0200
|
+++ qtwebengine-opensource-src-5.9.0-no-sse2/src/3rdparty/chromium/content/renderer/BUILD.gn 2017-06-12 14:19:26.095936011 +0200
|
||||||
@@ -136,6 +136,12 @@
|
@@ -468,6 +468,13 @@
|
||||||
"//v8:v8",
|
"//ui/surface",
|
||||||
|
"//v8",
|
||||||
]
|
]
|
||||||
|
+
|
||||||
+ if (current_cpu == "x86") {
|
+ if (current_cpu == "x86") {
|
||||||
+ deps += [
|
+ deps += [
|
||||||
+ "//v8:v8(//build/toolchain/linux:x86_sse2)",
|
+ "//v8(//build/toolchain/linux:x86_sse2)",
|
||||||
+ ]
|
+ ]
|
||||||
+ }
|
+ }
|
||||||
+
|
+
|
||||||
configs += [ "//build/config/compiler:wexit_time_destructors" ]
|
allow_circular_includes_from = []
|
||||||
|
|
||||||
if (enable_nacl) {
|
if (use_aura && !use_qt) {
|
||||||
diff -Nur qtwebengine-opensource-src-5.9.0/src/3rdparty/chromium/media/base/BUILD.gn qtwebengine-opensource-src-5.9.0-no-sse2/src/3rdparty/chromium/media/base/BUILD.gn
|
diff -Nur qtwebengine-opensource-src-5.9.0/src/3rdparty/chromium/media/base/BUILD.gn qtwebengine-opensource-src-5.9.0-no-sse2/src/3rdparty/chromium/media/base/BUILD.gn
|
||||||
--- qtwebengine-opensource-src-5.9.0/src/3rdparty/chromium/media/base/BUILD.gn 2017-05-18 16:51:44.000000000 +0200
|
--- qtwebengine-opensource-src-5.9.0/src/3rdparty/chromium/media/base/BUILD.gn 2017-05-18 16:51:44.000000000 +0200
|
||||||
+++ qtwebengine-opensource-src-5.9.0-no-sse2/src/3rdparty/chromium/media/base/BUILD.gn 2017-06-08 22:49:57.484256877 +0200
|
+++ qtwebengine-opensource-src-5.9.0-no-sse2/src/3rdparty/chromium/media/base/BUILD.gn 2017-06-08 22:49:57.484256877 +0200
|
||||||
@ -2702,29 +2703,8 @@ diff -Nur qtwebengine-opensource-src-5.9.0/src/3rdparty/chromium/third_party/web
|
|||||||
#endif
|
#endif
|
||||||
diff -Nur qtwebengine-opensource-src-5.9.0/src/3rdparty/chromium/v8/BUILD.gn qtwebengine-opensource-src-5.9.0-no-sse2/src/3rdparty/chromium/v8/BUILD.gn
|
diff -Nur qtwebengine-opensource-src-5.9.0/src/3rdparty/chromium/v8/BUILD.gn qtwebengine-opensource-src-5.9.0-no-sse2/src/3rdparty/chromium/v8/BUILD.gn
|
||||||
--- qtwebengine-opensource-src-5.9.0/src/3rdparty/chromium/v8/BUILD.gn 2017-05-18 16:51:44.000000000 +0200
|
--- qtwebengine-opensource-src-5.9.0/src/3rdparty/chromium/v8/BUILD.gn 2017-05-18 16:51:44.000000000 +0200
|
||||||
+++ qtwebengine-opensource-src-5.9.0-no-sse2/src/3rdparty/chromium/v8/BUILD.gn 2017-06-12 01:48:06.425611303 +0200
|
+++ qtwebengine-opensource-src-5.9.0-no-sse2/src/3rdparty/chromium/v8/BUILD.gn 2017-06-12 14:15:23.270523710 +0200
|
||||||
@@ -73,6 +73,9 @@
|
@@ -117,7 +117,7 @@
|
||||||
# If true, doesn't compile debug symbols into v8base reducing the
|
|
||||||
# size of the binary and increasing the speed of gdb.
|
|
||||||
remove_v8base_debug_symbols = false
|
|
||||||
+
|
|
||||||
+ # Whether to build V8 as a shared library
|
|
||||||
+ v8_build_shared = false
|
|
||||||
}
|
|
||||||
|
|
||||||
# Set project-specific defaults for some args if not provided in args.gn. The
|
|
||||||
@@ -99,6 +102,10 @@
|
|
||||||
if (v8_enable_disassembler == "") {
|
|
||||||
v8_enable_disassembler = is_debug && !v8_optimized_debug
|
|
||||||
}
|
|
||||||
+if (v8_current_cpu == "x86" || v8_current_cpu == "x87") {
|
|
||||||
+ # build V8 shared on x86 so we can swap x87 vs. SSE2 builds
|
|
||||||
+ v8_build_shared = true
|
|
||||||
+}
|
|
||||||
|
|
||||||
# Specifies if the target build is a simulator build. Comparing target cpu
|
|
||||||
# with v8 target cpu to not affect simulator builds for making cross-compile
|
|
||||||
@@ -117,7 +124,7 @@
|
|
||||||
|
|
||||||
include_dirs = [ "." ]
|
include_dirs = [ "." ]
|
||||||
|
|
||||||
@ -2733,7 +2713,7 @@ diff -Nur qtwebengine-opensource-src-5.9.0/src/3rdparty/chromium/v8/BUILD.gn qtw
|
|||||||
defines = [ "BUILDING_V8_SHARED" ]
|
defines = [ "BUILDING_V8_SHARED" ]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -131,14 +138,14 @@
|
@@ -131,14 +131,14 @@
|
||||||
# This config should be applied to code using the libplatform.
|
# This config should be applied to code using the libplatform.
|
||||||
config("libplatform_config") {
|
config("libplatform_config") {
|
||||||
include_dirs = [ "include" ]
|
include_dirs = [ "include" ]
|
||||||
@ -2750,7 +2730,7 @@ diff -Nur qtwebengine-opensource-src-5.9.0/src/3rdparty/chromium/v8/BUILD.gn qtw
|
|||||||
defines = [ "USING_V8_BASE_SHARED" ]
|
defines = [ "USING_V8_BASE_SHARED" ]
|
||||||
}
|
}
|
||||||
libs = []
|
libs = []
|
||||||
@@ -155,7 +162,7 @@
|
@@ -155,7 +155,7 @@
|
||||||
# This config should only be applied to code using V8 and not any V8 code
|
# This config should only be applied to code using V8 and not any V8 code
|
||||||
# itself.
|
# itself.
|
||||||
config("external_config") {
|
config("external_config") {
|
||||||
@ -2759,7 +2739,7 @@ diff -Nur qtwebengine-opensource-src-5.9.0/src/3rdparty/chromium/v8/BUILD.gn qtw
|
|||||||
defines = [ "USING_V8_SHARED" ]
|
defines = [ "USING_V8_SHARED" ]
|
||||||
}
|
}
|
||||||
include_dirs = [ "include" ]
|
include_dirs = [ "include" ]
|
||||||
@@ -331,6 +338,9 @@
|
@@ -331,6 +331,9 @@
|
||||||
cflags += [ "/arch:SSE2" ]
|
cflags += [ "/arch:SSE2" ]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -2769,7 +2749,7 @@ diff -Nur qtwebengine-opensource-src-5.9.0/src/3rdparty/chromium/v8/BUILD.gn qtw
|
|||||||
if (v8_current_cpu == "x64") {
|
if (v8_current_cpu == "x64") {
|
||||||
defines += [ "V8_TARGET_ARCH_X64" ]
|
defines += [ "V8_TARGET_ARCH_X64" ]
|
||||||
if (is_win) {
|
if (is_win) {
|
||||||
@@ -2274,7 +2284,7 @@
|
@@ -2274,7 +2277,7 @@
|
||||||
|
|
||||||
defines = []
|
defines = []
|
||||||
|
|
||||||
@ -2778,7 +2758,7 @@ diff -Nur qtwebengine-opensource-src-5.9.0/src/3rdparty/chromium/v8/BUILD.gn qtw
|
|||||||
defines = [ "BUILDING_V8_BASE_SHARED" ]
|
defines = [ "BUILDING_V8_BASE_SHARED" ]
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -2364,7 +2374,7 @@
|
@@ -2364,7 +2367,7 @@
|
||||||
|
|
||||||
configs = [ ":internal_config_base" ]
|
configs = [ ":internal_config_base" ]
|
||||||
|
|
||||||
@ -2787,7 +2767,7 @@ diff -Nur qtwebengine-opensource-src-5.9.0/src/3rdparty/chromium/v8/BUILD.gn qtw
|
|||||||
defines = [ "BUILDING_V8_PLATFORM_SHARED" ]
|
defines = [ "BUILDING_V8_PLATFORM_SHARED" ]
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -2507,7 +2517,26 @@
|
@@ -2507,7 +2510,26 @@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -2815,6 +2795,31 @@ diff -Nur qtwebengine-opensource-src-5.9.0/src/3rdparty/chromium/v8/BUILD.gn qtw
|
|||||||
v8_component("v8") {
|
v8_component("v8") {
|
||||||
sources = [
|
sources = [
|
||||||
"src/v8dll-main.cc",
|
"src/v8dll-main.cc",
|
||||||
|
diff -Nur qtwebengine-opensource-src-5.9.0/src/3rdparty/chromium/v8/gni/v8.gni qtwebengine-opensource-src-5.9.0-no-sse2/src/3rdparty/chromium/v8/gni/v8.gni
|
||||||
|
--- qtwebengine-opensource-src-5.9.0/src/3rdparty/chromium/v8/gni/v8.gni 2017-05-18 16:51:44.000000000 +0200
|
||||||
|
+++ qtwebengine-opensource-src-5.9.0-no-sse2/src/3rdparty/chromium/v8/gni/v8.gni 2017-06-12 14:15:47.965158851 +0200
|
||||||
|
@@ -30,6 +30,9 @@
|
||||||
|
# Enable ECMAScript Internationalization API. Enabling this feature will
|
||||||
|
# add a dependency on the ICU library.
|
||||||
|
v8_enable_i18n_support = true
|
||||||
|
+
|
||||||
|
+ # Whether to build V8 as a shared library
|
||||||
|
+ v8_build_shared = false
|
||||||
|
}
|
||||||
|
|
||||||
|
if (v8_use_external_startup_data == "") {
|
||||||
|
@@ -42,6 +45,11 @@
|
||||||
|
v8_enable_backtrace = is_debug && !v8_optimized_debug
|
||||||
|
}
|
||||||
|
|
||||||
|
+if (v8_current_cpu == "x86" || v8_current_cpu == "x87") {
|
||||||
|
+ # build V8 shared on x86 so we can swap x87 vs. SSE2 builds
|
||||||
|
+ v8_build_shared = true
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
# Points to // in v8 stand-alone or to //v8/ in chromium. We need absolute
|
||||||
|
# paths for all configs in templates as they are shared in different
|
||||||
|
# subdirectories.
|
||||||
diff -Nur qtwebengine-opensource-src-5.9.0/src/3rdparty/chromium/v8/make-v8-sse2-gyp.sh qtwebengine-opensource-src-5.9.0-no-sse2/src/3rdparty/chromium/v8/make-v8-sse2-gyp.sh
|
diff -Nur qtwebengine-opensource-src-5.9.0/src/3rdparty/chromium/v8/make-v8-sse2-gyp.sh qtwebengine-opensource-src-5.9.0-no-sse2/src/3rdparty/chromium/v8/make-v8-sse2-gyp.sh
|
||||||
--- qtwebengine-opensource-src-5.9.0/src/3rdparty/chromium/v8/make-v8-sse2-gyp.sh 1970-01-01 01:00:00.000000000 +0100
|
--- qtwebengine-opensource-src-5.9.0/src/3rdparty/chromium/v8/make-v8-sse2-gyp.sh 1970-01-01 01:00:00.000000000 +0100
|
||||||
+++ qtwebengine-opensource-src-5.9.0-no-sse2/src/3rdparty/chromium/v8/make-v8-sse2-gyp.sh 2017-06-08 22:50:09.496075706 +0200
|
+++ qtwebengine-opensource-src-5.9.0-no-sse2/src/3rdparty/chromium/v8/make-v8-sse2-gyp.sh 2017-06-08 22:50:09.496075706 +0200
|
||||||
@ -2875,6 +2880,30 @@ diff -Nur qtwebengine-opensource-src-5.9.0/src/3rdparty/chromium/v8/make-v8-sse2
|
|||||||
+ -e "s/\.bin/_sse2.bin/g" \
|
+ -e "s/\.bin/_sse2.bin/g" \
|
||||||
+ -e "s#^\( *\)\('target_name': 'v8_sse2',\)#\1\2\n\1'product_name': 'v8',\n\1'product_dir': '<(PRODUCT_DIR)/lib/sse2',#g" \
|
+ -e "s#^\( *\)\('target_name': 'v8_sse2',\)#\1\2\n\1'product_name': 'v8',\n\1'product_dir': '<(PRODUCT_DIR)/lib/sse2',#g" \
|
||||||
+ v8.gyp >>v8_sse2.gyp
|
+ v8.gyp >>v8_sse2.gyp
|
||||||
|
diff -Nur qtwebengine-opensource-src-5.9.0/src/3rdparty/chromium/v8/src/inspector/BUILD.gn qtwebengine-opensource-src-5.9.0-no-sse2/src/3rdparty/chromium/v8/src/inspector/BUILD.gn
|
||||||
|
--- qtwebengine-opensource-src-5.9.0/src/3rdparty/chromium/v8/src/inspector/BUILD.gn 2017-05-18 16:51:44.000000000 +0200
|
||||||
|
+++ qtwebengine-opensource-src-5.9.0-no-sse2/src/3rdparty/chromium/v8/src/inspector/BUILD.gn 2017-06-12 14:16:16.955730521 +0200
|
||||||
|
@@ -106,7 +106,7 @@
|
||||||
|
"/wd4996", # Deprecated function call.
|
||||||
|
]
|
||||||
|
}
|
||||||
|
- if (is_component_build) {
|
||||||
|
+ if (is_component_build || v8_build_shared) {
|
||||||
|
defines = [ "BUILDING_V8_SHARED" ]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
diff -Nur qtwebengine-opensource-src-5.9.0/src/3rdparty/chromium/v8/test/cctest/BUILD.gn qtwebengine-opensource-src-5.9.0-no-sse2/src/3rdparty/chromium/v8/test/cctest/BUILD.gn
|
||||||
|
--- qtwebengine-opensource-src-5.9.0/src/3rdparty/chromium/v8/test/cctest/BUILD.gn 2017-05-18 16:51:44.000000000 +0200
|
||||||
|
+++ qtwebengine-opensource-src-5.9.0-no-sse2/src/3rdparty/chromium/v8/test/cctest/BUILD.gn 2017-06-12 14:16:45.945302206 +0200
|
||||||
|
@@ -335,7 +335,7 @@
|
||||||
|
|
||||||
|
defines = []
|
||||||
|
|
||||||
|
- if (is_component_build) {
|
||||||
|
+ if (is_component_build || v8_build_shared) {
|
||||||
|
# cctest can't be built against a shared library, so we
|
||||||
|
# need to depend on the underlying static target in that case.
|
||||||
|
deps += [ "../..:v8_maybe_snapshot" ]
|
||||||
diff -Nur qtwebengine-opensource-src-5.9.0/src/core/core_module.pro qtwebengine-opensource-src-5.9.0-no-sse2/src/core/core_module.pro
|
diff -Nur qtwebengine-opensource-src-5.9.0/src/core/core_module.pro qtwebengine-opensource-src-5.9.0-no-sse2/src/core/core_module.pro
|
||||||
--- qtwebengine-opensource-src-5.9.0/src/core/core_module.pro 2017-05-19 06:22:04.000000000 +0200
|
--- qtwebengine-opensource-src-5.9.0/src/core/core_module.pro 2017-05-19 06:22:04.000000000 +0200
|
||||||
+++ qtwebengine-opensource-src-5.9.0-no-sse2/src/core/core_module.pro 2017-06-12 00:25:07.241337485 +0200
|
+++ qtwebengine-opensource-src-5.9.0-no-sse2/src/core/core_module.pro 2017-06-12 00:25:07.241337485 +0200
|
||||||
|
Loading…
Reference in New Issue
Block a user