build: Remove building against a shared V8

This action is to encourage packagers to not build against a
shared V8 library since even minor bumps of V8 can create issues.

PR-URL: https://github.com/iojs/io.js/pull/1331
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
This commit is contained in:
Johan Bergström 2015-04-03 10:13:43 +11:00
parent d72e50a57c
commit d726a177ed
4 changed files with 16 additions and 63 deletions

32
configure vendored
View File

@ -148,26 +148,6 @@ parser.add_option('--shared-openssl-libpath',
dest='shared_openssl_libpath', dest='shared_openssl_libpath',
help='a directory to search for the shared OpenSSL DLLs') help='a directory to search for the shared OpenSSL DLLs')
parser.add_option('--shared-v8',
action='store_true',
dest='shared_v8',
help='link to a shared V8 DLL instead of static linking')
parser.add_option('--shared-v8-includes',
action='store',
dest='shared_v8_includes',
help='directory containing V8 header files')
parser.add_option('--shared-v8-libname',
action='store',
dest='shared_v8_libname',
help='alternative lib name to link to (default: \'v8\')')
parser.add_option('--shared-v8-libpath',
action='store',
dest='shared_v8_libpath',
help='a directory to search for the shared V8 DLL')
parser.add_option('--shared-zlib', parser.add_option('--shared-zlib',
action='store_true', action='store_true',
dest='shared_zlib', dest='shared_zlib',
@ -656,24 +636,12 @@ def configure_libuv(o):
def configure_v8(o): def configure_v8(o):
o['variables']['node_shared_v8'] = b(options.shared_v8)
o['variables']['v8_enable_gdbjit'] = 1 if options.gdb else 0 o['variables']['v8_enable_gdbjit'] = 1 if options.gdb else 0
o['variables']['v8_no_strict_aliasing'] = 1 # Work around compiler bugs. o['variables']['v8_no_strict_aliasing'] = 1 # Work around compiler bugs.
o['variables']['v8_optimized_debug'] = 0 # Compile with -O0 in debug builds. o['variables']['v8_optimized_debug'] = 0 # Compile with -O0 in debug builds.
o['variables']['v8_random_seed'] = 0 # Use a random seed for hash tables. o['variables']['v8_random_seed'] = 0 # Use a random seed for hash tables.
o['variables']['v8_use_snapshot'] = b(options.with_snapshot) o['variables']['v8_use_snapshot'] = b(options.with_snapshot)
# assume shared_v8 if one of these is set?
if options.shared_v8_libpath:
o['libraries'] += ['-L%s' % options.shared_v8_libpath]
if options.shared_v8_libname:
o['libraries'] += ['-l%s' % options.shared_v8_libname]
elif options.shared_v8:
o['libraries'] += ['-lv8', '-lv8_platform']
if options.shared_v8_includes:
o['include_dirs'] += [options.shared_v8_includes]
def configure_openssl(o): def configure_openssl(o):
o['variables']['node_use_openssl'] = b(not options.without_ssl) o['variables']['node_use_openssl'] = b(not options.without_ssl)
o['variables']['node_shared_openssl'] = b(options.shared_openssl) o['variables']['node_shared_openssl'] = b(options.shared_openssl)

View File

@ -594,7 +594,6 @@ An example of the possible output looks like:
node_shared_cares: 'false', node_shared_cares: 'false',
node_shared_http_parser: 'false', node_shared_http_parser: 'false',
node_shared_libuv: 'false', node_shared_libuv: 'false',
node_shared_v8: 'false',
node_shared_zlib: 'false', node_shared_zlib: 'false',
node_use_dtrace: 'false', node_use_dtrace: 'false',
node_use_openssl: 'true', node_use_openssl: 'true',

View File

@ -6,7 +6,6 @@
'node_use_etw%': 'false', 'node_use_etw%': 'false',
'node_use_perfctr%': 'false', 'node_use_perfctr%': 'false',
'node_has_winsdk%': 'false', 'node_has_winsdk%': 'false',
'node_shared_v8%': 'false',
'node_shared_zlib%': 'false', 'node_shared_zlib%': 'false',
'node_shared_http_parser%': 'false', 'node_shared_http_parser%': 'false',
'node_shared_libuv%': 'false', 'node_shared_libuv%': 'false',
@ -81,14 +80,17 @@
'dependencies': [ 'dependencies': [
'node_js2c#host', 'node_js2c#host',
'deps/cares/cares.gyp:cares' 'deps/cares/cares.gyp:cares',
'deps/v8/tools/gyp/v8.gyp:v8',
'deps/v8/tools/gyp/v8.gyp:v8_libplatform'
], ],
'include_dirs': [ 'include_dirs': [
'src', 'src',
'tools/msvs/genfiles', 'tools/msvs/genfiles',
'deps/uv/src/ares', 'deps/uv/src/ares',
'<(SHARED_INTERMEDIATE_DIR)' # for node_natives.h '<(SHARED_INTERMEDIATE_DIR)', # for node_natives.h
'deps/v8' # include/v8_platform.h
], ],
'sources': [ 'sources': [
@ -163,6 +165,8 @@
'src/util-inl.h', 'src/util-inl.h',
'src/util.cc', 'src/util.cc',
'deps/http_parser/http_parser.h', 'deps/http_parser/http_parser.h',
'deps/v8/include/v8.h',
'deps/v8/include/v8-debug.h',
'<(SHARED_INTERMEDIATE_DIR)/node_natives.h', '<(SHARED_INTERMEDIATE_DIR)/node_natives.h',
# javascript files to make for an even more pleasant IDE experience # javascript files to make for an even more pleasant IDE experience
'<@(library_files)', '<@(library_files)',
@ -306,19 +310,6 @@
], ],
}, },
}], }],
[ 'node_shared_v8=="false"', {
'sources': [
'deps/v8/include/v8.h',
'deps/v8/include/v8-debug.h',
],
'dependencies': [
'deps/v8/tools/gyp/v8.gyp:v8',
'deps/v8/tools/gyp/v8.gyp:v8_libplatform',
],
# libplatform/libplatform.h includes include/v8platform.h
'include_dirs': [ 'deps/v8' ],
}],
[ 'node_shared_zlib=="false"', { [ 'node_shared_zlib=="false"', {
'dependencies': [ 'deps/zlib/zlib.gyp:zlib' ], 'dependencies': [ 'deps/zlib/zlib.gyp:zlib' ],
}], }],
@ -381,17 +372,13 @@
], ],
}], }],
[ 'OS=="freebsd" or OS=="linux"', { [ 'OS=="freebsd" or OS=="linux"', {
'ldflags': [ '-Wl,-z,noexecstack' ], 'ldflags': [ '-Wl,-z,noexecstack',
'-Wl,--whole-archive <(V8_BASE)',
'-Wl,--no-whole-archive' ]
}], }],
[ 'OS=="sunos"', { [ 'OS=="sunos"', {
'ldflags': [ '-Wl,-M,/usr/lib/ld/map.noexstk' ], 'ldflags': [ '-Wl,-M,/usr/lib/ld/map.noexstk' ],
}], }],
[
'OS in "linux freebsd" and node_shared_v8=="false"', {
'ldflags': [
'-Wl,--whole-archive <(V8_BASE) -Wl,--no-whole-archive',
],
}],
], ],
'msvs_settings': { 'msvs_settings': {
'VCManifestTool': { 'VCManifestTool': {
@ -619,14 +606,14 @@
{ {
'target_name': 'cctest', 'target_name': 'cctest',
'type': 'executable', 'type': 'executable',
'dependencies': [ 'deps/gtest/gtest.gyp:gtest' ], 'dependencies': [
'conditions': [ 'deps/gtest/gtest.gyp:gtest',
[ 'node_shared_v8=="false"', { 'deps/v8/tools/gyp/v8.gyp:v8',
'dependencies': [ 'deps/v8/tools/gyp/v8.gyp:v8' ], 'deps/v8/tools/gyp/v8.gyp:v8_libplatform'
}],
], ],
'include_dirs': [ 'include_dirs': [
'src', 'src',
'deps/v8/include'
], ],
'defines': [ 'defines': [
# gtest's ASSERT macros conflict with our own. # gtest's ASSERT macros conflict with our own.

View File

@ -168,6 +168,7 @@ def files(action):
], 'include/node/') ], 'include/node/')
subdir_files('deps/cares/include', 'include/node/', action) subdir_files('deps/cares/include', 'include/node/', action)
subdir_files('deps/v8/include', 'include/node/', action)
if 'false' == variables.get('node_shared_libuv'): if 'false' == variables.get('node_shared_libuv'):
subdir_files('deps/uv/include', 'include/node/', action) subdir_files('deps/uv/include', 'include/node/', action)
@ -176,8 +177,6 @@ def files(action):
subdir_files('deps/openssl/openssl/include/openssl', 'include/node/openssl/', action) subdir_files('deps/openssl/openssl/include/openssl', 'include/node/openssl/', action)
action(['deps/openssl/config/opensslconf.h'], 'include/node/openssl/') action(['deps/openssl/config/opensslconf.h'], 'include/node/openssl/')
if 'false' == variables.get('node_shared_v8'):
subdir_files('deps/v8/include', 'include/node/', action)
if 'false' == variables.get('node_shared_zlib'): if 'false' == variables.get('node_shared_zlib'):
action([ action([