mirror of
https://github.com/zebrajr/node.git
synced 2025-12-06 00:20:08 +01:00
build: build v8 with -fvisibility=hidden -fvisibility-inlines-hidden
PR-URL: https://github.com/nodejs/node/pull/56290 Reviewed-By: Richard Lau <richard.lau@ibm.com> Reviewed-By: James M Snell <jasnell@gmail.com>
This commit is contained in:
parent
48f3c8e4f2
commit
3437e1c4bd
13
node.gyp
13
node.gyp
|
|
@ -491,6 +491,19 @@
|
|||
['clang==0 and OS!="win"', {
|
||||
'cflags': [ '-Wno-restrict', ],
|
||||
}],
|
||||
# TODO(joyeecheung): investigate if it breaks addons.
|
||||
# ['OS=="mac"', {
|
||||
# 'xcode_settings': {
|
||||
# 'GCC_SYMBOLS_PRIVATE_EXTERN': 'YES', # -fvisibility=hidden
|
||||
# 'GCC_INLINES_ARE_PRIVATE_EXTERN': 'YES' # -fvisibility-inlines-hidden
|
||||
# },
|
||||
# }],
|
||||
# ['OS!="win" or clang==1', {
|
||||
# 'cflags': [
|
||||
# '-fvisibility=hidden',
|
||||
# '-fvisibility-inlines-hidden'
|
||||
# ],
|
||||
# }],
|
||||
# Pointer authentication for ARM64.
|
||||
['target_arch=="arm64"', {
|
||||
'target_conditions': [
|
||||
|
|
|
|||
|
|
@ -46,22 +46,31 @@
|
|||
}
|
||||
},
|
||||
'conditions': [
|
||||
['OS=="mac"', {
|
||||
# Hide symbols that are not explicitly exported with V8_EXPORT.
|
||||
# TODO(joyeecheung): enable it on other platforms. Currently gcc times out
|
||||
# or run out of memory with -fvisibility=hidden on some machines in the CI.
|
||||
'xcode_settings': {
|
||||
'GCC_SYMBOLS_PRIVATE_EXTERN': 'YES', # -fvisibility=hidden
|
||||
},
|
||||
# Build with -fvisibility=hidden and -fvisibility-inlines-hidden to avoid
|
||||
# including unnecessary internal symbols, which may lead to run-time fixups.
|
||||
# This is not done on AIX where symbols are exported by tools/create_expfile.sh
|
||||
# see https://github.com/nodejs/node/pull/56290#issuecomment-2582703109
|
||||
['OS!="aix"', {
|
||||
'defines': [
|
||||
'BUILDING_V8_SHARED', # Make V8_EXPORT visible.
|
||||
],
|
||||
]
|
||||
}],
|
||||
['node_shared=="true"', {
|
||||
'defines': [
|
||||
'V8_TLS_USED_IN_LIBRARY', # Enable V8_TLS_LIBRARY_MODE.
|
||||
],
|
||||
}],
|
||||
['OS=="mac"', {
|
||||
'xcode_settings': {
|
||||
'GCC_SYMBOLS_PRIVATE_EXTERN': 'YES', # -fvisibility=hidden
|
||||
'GCC_INLINES_ARE_PRIVATE_EXTERN': 'YES' # -fvisibility-inlines-hidden
|
||||
},
|
||||
}, 'OS!="aix" and (OS!="win" or clang==1)', {
|
||||
'cflags': [
|
||||
'-fvisibility=hidden',
|
||||
'-fvisibility-inlines-hidden'
|
||||
],
|
||||
}], # MSVC hides the non-public symbols by default so no need to configure it.
|
||||
],
|
||||
},
|
||||
'targets': [
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user