Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

Commit 17fde3f

Browse filesBrowse files
joyeecheungaduh95
authored andcommitted
build: build v8 with -fvisibility=hidden -fvisibility-inlines-hidden
PR-URL: #56290 Reviewed-By: Richard Lau <richard.lau@ibm.com> Reviewed-By: James M Snell <jasnell@gmail.com>
1 parent 59223a7 commit 17fde3f
Copy full SHA for 17fde3f

File tree

Expand file treeCollapse file tree

2 files changed

+30
-8
lines changed
Open diff view settings
Filter options
Expand file treeCollapse file tree

2 files changed

+30
-8
lines changed
Open diff view settings
Collapse file

‎node.gyp‎

Copy file name to clipboardExpand all lines: node.gyp
+13Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -491,6 +491,19 @@
491491
['clang==0 and OS!="win"', {
492492
'cflags': [ '-Wno-restrict', ],
493493
}],
494+
# TODO(joyeecheung): investigate if it breaks addons.
495+
# ['OS=="mac"', {
496+
# 'xcode_settings': {
497+
# 'GCC_SYMBOLS_PRIVATE_EXTERN': 'YES', # -fvisibility=hidden
498+
# 'GCC_INLINES_ARE_PRIVATE_EXTERN': 'YES' # -fvisibility-inlines-hidden
499+
# },
500+
# }],
501+
# ['OS!="win" or clang==1', {
502+
# 'cflags': [
503+
# '-fvisibility=hidden',
504+
# '-fvisibility-inlines-hidden'
505+
# ],
506+
# }],
494507
# Pointer authentication for ARM64.
495508
['target_arch=="arm64"', {
496509
'target_conditions': [
Collapse file

‎tools/v8_gypfiles/v8.gyp‎

Copy file name to clipboardExpand all lines: tools/v8_gypfiles/v8.gyp
+17-8Lines changed: 17 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -46,22 +46,31 @@
4646
}
4747
},
4848
'conditions': [
49-
['OS=="mac"', {
50-
# Hide symbols that are not explicitly exported with V8_EXPORT.
51-
# TODO(joyeecheung): enable it on other platforms. Currently gcc times out
52-
# or run out of memory with -fvisibility=hidden on some machines in the CI.
53-
'xcode_settings': {
54-
'GCC_SYMBOLS_PRIVATE_EXTERN': 'YES', # -fvisibility=hidden
55-
},
49+
# Build with -fvisibility=hidden and -fvisibility-inlines-hidden to avoid
50+
# including unnecessary internal symbols, which may lead to run-time fixups.
51+
# This is not done on AIX where symbols are exported by tools/create_expfile.sh
52+
# see https://github.com/nodejs/node/pull/56290#issuecomment-2582703109
53+
['OS!="aix"', {
5654
'defines': [
5755
'BUILDING_V8_SHARED', # Make V8_EXPORT visible.
58-
],
56+
]
5957
}],
6058
['node_shared=="true"', {
6159
'defines': [
6260
'V8_TLS_USED_IN_LIBRARY', # Enable V8_TLS_LIBRARY_MODE.
6361
],
6462
}],
63+
['OS=="mac"', {
64+
'xcode_settings': {
65+
'GCC_SYMBOLS_PRIVATE_EXTERN': 'YES', # -fvisibility=hidden
66+
'GCC_INLINES_ARE_PRIVATE_EXTERN': 'YES' # -fvisibility-inlines-hidden
67+
},
68+
}, 'OS!="aix" and (OS!="win" or clang==1)', {
69+
'cflags': [
70+
'-fvisibility=hidden',
71+
'-fvisibility-inlines-hidden'
72+
],
73+
}], # MSVC hides the non-public symbols by default so no need to configure it.
6574
],
6675
},
6776
'targets': [

0 commit comments

Comments
0 (0)
Morty Proxy This is a proxified and sanitized view of the page, visit original site.