File tree Expand file tree Collapse file tree 2 files changed +30
-8
lines changed Expand file tree Collapse file tree 2 files changed +30
-8
lines changed Original file line number Diff line number Diff line change 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' : [
Original file line number Diff line number Diff line change 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' : [
 
 
   
 
     
   
   
          
    
    
     
    
      
     
     
    You can’t perform that action at this time.
  
 
    
  
    
      
        
     
       
      
     
   
 
    
    
  
 
  
 
     
    
0 commit comments