Commit fb6007e
committed
fix(ios): export the public V8 API from the prebuilt archives
The matrix build sets v8_monolithic=false, which stopped triggering the
gni/v8.gni swap from Chromium's default -fvisibility=hidden to default
visibility. Every symbol in the shipped archives became private-external,
so NativeScript.framework exports no v8:: symbols and plugins that link
the public V8 API through it (e.g. @nativescript/canvas) fail the app
link with undefined v8::* symbols on runtime 9.x.
v8_expose_public_symbols=true defines BUILDING_V8_SHARED, giving the
V8_EXPORT surface (~2.7k symbols incl. cppgc and the v8::internal
helpers referenced by inline header code) default visibility while
keeping internals hidden and dead-strippable: ~+0.5 MB per slice versus
~+3.4 MB for restoring global default visibility.
Android is unaffected: it builds with v8_monolithic=true, which still
triggers the visibility swap.1 parent 9041230 commit fb6007e
1 file changed
Lines changed: 9 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
71 | 71 | | |
72 | 72 | | |
73 | 73 | | |
| 74 | + | |
| 75 | + | |
| 76 | + | |
| 77 | + | |
| 78 | + | |
| 79 | + | |
| 80 | + | |
| 81 | + | |
74 | 82 | | |
75 | 83 | | |
76 | 84 | | |
| |||
92 | 100 | | |
93 | 101 | | |
94 | 102 | | |
| 103 | + | |
95 | 104 | | |
96 | 105 | | |
97 | 106 | | |
| |||
0 commit comments