Where Online Learning is simpler!
The C and C++ Include Header Files
/usr/include/node/common.gypi
$ cat -n /usr/include/node/common.gypi 1 { 2 'variables': { 3 'configuring_node%': 0, 4 'asan%': 0, 5 'ubsan%': 0, 6 'visibility%': 'hidden', # V8's visibility setting 7 'target_arch%': 'ia32', # set v8's target architecture 8 'host_arch%': 'ia32', # set v8's host architecture 9 'want_separate_host_toolset%': 0, # V8 should not build target and host 10 'library%': 'static_library', # allow override to 'shared_library' for DLL/.so builds 11 'component%': 'static_library', # NB. these names match with what V8 expects 12 'msvs_multi_core_compile': '0', # we do enable multicore compiles, but not using the V8 way 13 'enable_pgo_generate%': '0', 14 'enable_pgo_use%': '0', 15 'python%': 'python', 16 17 'node_shared%': 'false', 18 'force_dynamic_crt%': 0, 19 'node_use_v8_platform%': 'true', 20 'node_use_bundled_v8%': 'true', 21 'node_module_version%': '', 22 'node_with_ltcg%': '', 23 'node_shared_openssl%': 'false', 24 25 'node_tag%': '', 26 'uv_library%': 'static_library', 27 28 'clang%': 0, 29 'error_on_warn%': 'false', 30 'suppress_all_error_on_warn%': 'false', 31 'control_flow_guard%': 'false', 32 33 'openssl_product': '<(STATIC_LIB_PREFIX)openssl<(STATIC_LIB_SUFFIX)', 34 'openssl_no_asm%': 0, 35 36 # Don't use ICU data file (icudtl.dat) from V8, we use our own. 37 'icu_use_data_file_flag%': 0, 38 39 # Reset this number to 0 on major V8 upgrades. 40 # Increment by one for each non-official patch applied to deps/v8. 41 'v8_embedder_string': '-node.26', 42 43 ##### V8 defaults for Node.js ##### 44 45 # Turn on SipHash for hash seed generation, addresses HashWick 46 'v8_use_siphash': 'true', 47 48 # These are more relevant for V8 internal development. 49 # Refs: https://github.com/nodejs/node/issues/23122 50 # Refs: https://github.com/nodejs/node/issues/23167 51 # Enable compiler warnings when using V8_DEPRECATED apis from V8 code. 52 'v8_deprecation_warnings': 0, 53 # Enable compiler warnings when using V8_DEPRECATE_SOON apis from V8 code. 54 'v8_imminent_deprecation_warnings': 0, 55 56 # Enable disassembler for `--print-code` v8 options 57 'v8_enable_disassembler': 1, 58 59 # Sets -dOBJECT_PRINT. 60 'v8_enable_object_print%': 1, 61 62 # https://github.com/nodejs/node/pull/22920/files#r222779926 63 'v8_enable_handle_zapping': 0, 64 65 # Disable pointer compression. Can be enabled at build time via configure 66 # options but default values are required here as this file is also used by 67 # node-gyp to build addons. 68 'v8_enable_pointer_compression%': 0, 69 'v8_enable_31bit_smis_on_64bit_arch%': 0, 70 71 # Disable v8 hugepage by default. 72 'v8_enable_hugepage%': 0, 73 74 # This is more of a V8 dev setting 75 # https://github.com/nodejs/node/pull/22920/files#r222779926 76 'v8_enable_fast_mksnapshot': 0, 77 78 'v8_win64_unwinding_info': 1, 79 80 # Variables controlling external defines exposed in public headers. 81 'v8_enable_conservative_stack_scanning%': 0, 82 'v8_enable_direct_local%': 0, 83 'v8_enable_map_packing%': 0, 84 'v8_enable_pointer_compression_shared_cage%': 0, 85 'v8_enable_external_code_space%': 0, 86 'v8_enable_sandbox%': 0, 87 'v8_enable_v8_checks%': 0, 88 'v8_enable_zone_compression%': 0, 89 'v8_use_perfetto': 0, 90 'tsan%': 0, 91 92 ##### end V8 defaults ##### 93 94 'conditions': [ 95 ['OS == "win"', { 96 'os_posix': 0, 97 'v8_postmortem_support%': 0, 98 'obj_dir': '<(PRODUCT_DIR)/obj', 99 'v8_base': '<(PRODUCT_DIR)/lib/libv8_snapshot.a', 100 }, { 101 'os_posix': 1, 102 'v8_postmortem_support%': 1, 103 }], 104 ['GENERATOR == "ninja"', { 105 'obj_dir': '<(PRODUCT_DIR)/obj', 106 'v8_base': '<(PRODUCT_DIR)/obj/tools/v8_gypfiles/libv8_snapshot.a', 107 }, { 108 'obj_dir%': '<(PRODUCT_DIR)/obj.target', 109 'v8_base': '<(PRODUCT_DIR)/obj.target/tools/v8_gypfiles/libv8_snapshot.a', 110 }], 111 ['OS=="mac"', { 112 'obj_dir%': '<(PRODUCT_DIR)/obj.target', 113 'v8_base': '<(PRODUCT_DIR)/libv8_snapshot.a', 114 }], 115 # V8 pointer compression only supports 64bit architectures. 116 ['target_arch in "arm ia32 mips mipsel ppc"', { 117 'v8_enable_pointer_compression': 0, 118 'v8_enable_31bit_smis_on_64bit_arch': 0, 119 'v8_enable_external_code_space': 0, 120 'v8_enable_sandbox': 0 121 }], 122 ['target_arch in "ppc64 s390x"', { 123 'v8_enable_backtrace': 1, 124 }], 125 ['OS=="linux" or OS=="openharmony"', { 126 'node_section_ordering_info%': '' 127 }], 128 ['OS == "zos"', { 129 # use ICU data file on z/OS 130 'icu_use_data_file_flag%': 1 131 }] 132 ], 133 }, 134 135 'target_defaults': { 136 'default_configuration': 'Release', 137 'configurations': { 138 'Debug': { 139 'variables': { 140 'v8_enable_handle_zapping': 1, 141 'conditions': [ 142 ['node_shared != "true"', { 143 'MSVC_runtimeType': 1, # MultiThreadedDebug (/MTd) 144 }, { 145 'MSVC_runtimeType': 3, # MultiThreadedDebugDLL (/MDd) 146 }], 147 ], 148 }, 149 'defines': [ 'DEBUG', '_DEBUG' ], 150 'cflags': [ '-g', '-O0' ], 151 'conditions': [ 152 ['OS in "aix os400"', { 153 'cflags': [ '-gxcoff' ], 154 'ldflags': [ '-Wl,-bbigtoc' ], 155 }], 156 ['OS == "android"', { 157 'cflags': [ '-fPIC' ], 158 'ldflags': [ '-fPIC' ] 159 }], 160 ['clang==1', { 161 'msbuild_toolset': 'ClangCL', 162 }], 163 ], 164 'msvs_settings': { 165 'VCCLCompilerTool': { 166 'BasicRuntimeChecks': 3, # /RTC1 167 'MinimalRebuild': 'false', 168 'OmitFramePointers': 'false', 169 'Optimization': 0, # /Od, no optimization 170 'RuntimeLibrary': '<(MSVC_runtimeType)', 171 }, 172 'VCLinkerTool': { 173 'LinkIncremental': 2, # enable incremental linking 174 }, 175 }, 176 'xcode_settings': { 177 'GCC_OPTIMIZATION_LEVEL': '0', # stop gyp from defaulting to -Os 178 }, 179 }, 180 'Release': { 181 'variables': { 182 'v8_enable_handle_zapping': 0, 183 'pgo_generate': ' -fprofile-generate ', 184 'pgo_use': ' -fprofile-use -fprofile-correction ', 185 'conditions': [ 186 ['node_shared != "true"', { 187 'MSVC_runtimeType': 0 # MultiThreaded (/MT) 188 }, { 189 'MSVC_runtimeType': 2 # MultiThreadedDLL (/MD) 190 }], 191 ['clang==1', { 192 'lto': ' -flto ', # Clang 193 }, { 194 'lto': ' -flto=4 -fuse-linker-plugin -ffat-lto-objects ', # GCC 195 }], 196 ], 197 }, 198 'cflags': [ '-O3' ], 199 'conditions': [ 200 ['enable_lto=="true"', { 201 'cflags': ['<(lto)'], 202 'ldflags': ['<(lto)'], 203 'xcode_settings': { 204 'LLVM_LTO': 'YES', 205 }, 206 }], 207 ['OS=="linux" or OS=="openharmony"', { 208 'conditions': [ 209 ['node_section_ordering_info!=""', { 210 'cflags': [ 211 '-fuse-ld=gold', 212 '-ffunction-sections', 213 ], 214 'ldflags': [ 215 '-fuse-ld=gold', 216 '-Wl,--section-ordering-file=<(node_section_ordering_info)', 217 ], 218 }], 219 ], 220 }], 221 ['OS=="solaris"', { 222 # pull in V8's postmortem metadata 223 'ldflags': [ '-Wl,-z,allextract' ] 224 }], 225 ['OS=="zos"', { 226 # increase performance, number from experimentation 227 'cflags': [ '-qINLINE=::150:100000' ] 228 }], 229 ['OS!="mac" and OS!="win" and OS!="zos"', { 230 # -fno-omit-frame-pointer is necessary for the --perf_basic_prof 231 # flag to work correctly. perf(1) gets confused about JS stack 232 # frames otherwise, even with --call-graph dwarf. 233 'cflags': [ '-fno-omit-frame-pointer' ], 234 }], 235 ['OS=="linux" or OS=="openharmony"', { 236 'conditions': [ 237 ['enable_pgo_generate=="true"', { 238 'cflags': ['<(pgo_generate)'], 239 'ldflags': ['<(pgo_generate)'], 240 },], 241 ['enable_pgo_use=="true"', { 242 'cflags': ['<(pgo_use)'], 243 'ldflags': ['<(pgo_use)'], 244 },], 245 ], 246 },], 247 ['OS == "android"', { 248 'cflags': [ '-fPIC', '-I<(android_ndk_path)/sources/android/cpufeatures' ], 249 'ldflags': [ '-fPIC' ] 250 }], 251 ['clang==1', { 252 'msbuild_toolset': 'ClangCL', 253 }], 254 ], 255 'msvs_settings': { 256 'VCCLCompilerTool': { 257 'conditions': [ 258 ['target_arch=="arm64"', { 259 'FloatingPointModel': 1 # /fp:strict 260 }] 261 ], 262 'EnableFunctionLevelLinking': 'true', 263 'EnableIntrinsicFunctions': 'true', 264 'FavorSizeOrSpeed': 1, # /Ot, favor speed over size 265 'InlineFunctionExpansion': 2, # /Ob2, inline anything eligible 266 'OmitFramePointers': 'true', 267 'Optimization': 3, # /Ox, full optimization 268 'RuntimeLibrary': '<(MSVC_runtimeType)', 269 'RuntimeTypeInfo': 'false', 270 } 271 }, 272 'xcode_settings': { 273 'GCC_OPTIMIZATION_LEVEL': '3', # stop gyp from defaulting to -Os 274 }, 275 } 276 }, 277 278 # Defines these mostly for node-gyp to pickup. 279 'defines': [ 280 '_GLIBCXX_USE_CXX11_ABI=1', 281 # This help forks when building Node.js on a 32-bit arch as 282 # libuv is always compiled with _FILE_OFFSET_BITS=64 283 '_FILE_OFFSET_BITS=64' 284 ], 285 286 # Forcibly disable -Werror. We support a wide range of compilers, it's 287 # simply not feasible to squelch all warnings, never mind that the 288 # libraries in deps/ are not under our control. 289 'conditions': [ 290 [ 'error_on_warn=="false"', { 291 'cflags!': ['-Werror'], 292 }, '(_target_name!="<(node_lib_target_name)" or ' 293 '_target_name!="<(node_core_target_name)")', { 294 'cflags!': ['-Werror'], 295 }], 296 ], 297 'msvs_settings': { 298 'VCCLCompilerTool': { 299 # TODO(targos): Remove condition and always use LanguageStandard options 300 # once node-gyp supports them. 301 'conditions': [ 302 ['clang==1', { 303 'LanguageStandard': 'stdcpp20', 304 'LanguageStandard_C': 'stdc11', 305 'AdditionalOptions': [ 306 '/Zc:__cplusplus', 307 # The following option reduces the "error C1060: compiler is out of heap space" 308 '/Zm2000', 309 ], 310 }, { 311 'AdditionalOptions': [ 312 '/Zc:__cplusplus', 313 # The following option enables c++20 on Windows. This is needed for V8 v12.4+ 314 '-std:c++20', 315 # The following option reduces the "error C1060: compiler is out of heap space" 316 '/Zm2000', 317 ], 318 }], 319 ['control_flow_guard=="true"', { 320 'AdditionalOptions': [ 321 '/guard:cf', # Control Flow Guard 322 ], 323 }], 324 ], 325 'BufferSecurityCheck': 'true', 326 'DebugInformationFormat': 1, # /Z7 embed info in .obj files 327 'ExceptionHandling': 0, # /EHsc 328 'MultiProcessorCompilation': 'true', 329 'StringPooling': 'true', # pool string literals 330 'SuppressStartupBanner': 'true', 331 'WarnAsError': 'false', 332 'WarningLevel': 3, # /W3 333 }, 334 'VCLinkerTool': { 335 'target_conditions': [ 336 ['_type=="executable"', { 337 'SubSystem': 1, # /SUBSYSTEM:CONSOLE 338 }], 339 ], 340 'conditions': [ 341 ['target_arch=="ia32"', { 342 'TargetMachine' : 1, # /MACHINE:X86 343 }], 344 ['target_arch=="x64"', { 345 'TargetMachine' : 17, # /MACHINE:X64 346 }], 347 ['target_arch=="arm64"', { 348 'TargetMachine' : 0, # NotSet. MACHINE:ARM64 is inferred from the input files. 349 }], 350 ['control_flow_guard=="true"', { 351 'AdditionalOptions': [ 352 '/guard:cf', # Control Flow Guard 353 ], 354 }], 355 ], 356 'GenerateDebugInformation': 'true', 357 'SuppressStartupBanner': 'true', 358 }, 359 }, 360 # Disable warnings: 361 # - "C4251: class needs to have dll-interface" 362 # - "C4275: non-DLL-interface used as base for DLL-interface" 363 # Over 10k of these warnings are generated when compiling node, 364 # originating from v8.h. Most of them are false positives. 365 # See also: https://github.com/nodejs/node/pull/15570 366 # TODO: re-enable when Visual Studio fixes these upstream. 367 # 368 # - "C4267: conversion from 'size_t' to 'int'" 369 # Many any originate from our dependencies, and their sheer number 370 # drowns out other, more legitimate warnings. 371 # - "C4244: conversion from 'type1' to 'type2', possible loss of data" 372 # Ususaly safe. Disable for `dep`, enable for `src` 373 'msvs_disabled_warnings': [4351, 4355, 4800, 4251, 4275, 4244, 4267], 374 'msvs_cygwin_shell': 0, # prevent actions from trying to use cygwin 375 376 'conditions': [ 377 [ 'configuring_node', { 378 'msvs_configuration_attributes': { 379 'OutputDirectory': '<(DEPTH)/out/$(Configuration)/', 380 'IntermediateDirectory': '$(OutDir)obj/$(ProjectName)/' 381 }, 382 }], 383 [ 'target_arch=="x64"', { 384 'msvs_configuration_platform': 'x64', 385 }], 386 [ 'target_arch=="arm64"', { 387 'msvs_configuration_platform': 'arm64', 388 }], 389 ['asan == 1 and OS != "mac" and OS != "zos"', { 390 'cflags+': [ 391 '-fno-omit-frame-pointer', 392 '-fsanitize=address', 393 '-fsanitize-address-use-after-scope', 394 ], 395 'defines': [ 'LEAK_SANITIZER', 'V8_USE_ADDRESS_SANITIZER' ], 396 'cflags!': [ '-fomit-frame-pointer' ], 397 'ldflags': [ '-fsanitize=address' ], 398 }], 399 ['asan == 1 and OS == "mac"', { 400 'xcode_settings': { 401 'OTHER_CFLAGS+': [ 402 '-fno-omit-frame-pointer', 403 '-gline-tables-only', 404 '-fsanitize=address', 405 '-DLEAK_SANITIZER' 406 ], 407 'OTHER_CFLAGS!': [ 408 '-fomit-frame-pointer', 409 ], 410 }, 411 'target_conditions': [ 412 ['_type!="static_library"', { 413 'xcode_settings': {'OTHER_LDFLAGS': ['-fsanitize=address']}, 414 }], 415 ], 416 }], 417 ['ubsan == 1 and OS != "mac" and OS != "zos"', { 418 'cflags+': [ 419 '-fno-omit-frame-pointer', 420 '-fsanitize=undefined', 421 ], 422 'defines': [ 'UNDEFINED_SANITIZER'], 423 'cflags!': [ '-fno-omit-frame-pointer' ], 424 'ldflags': [ '-fsanitize=undefined' ], 425 }], 426 ['ubsan == 1 and OS == "mac"', { 427 'xcode_settings': { 428 'OTHER_CFLAGS+': [ 429 '-fno-omit-frame-pointer', 430 '-fsanitize=undefined', 431 '-DUNDEFINED_SANITIZER' 432 ], 433 }, 434 'target_conditions': [ 435 ['_type!="static_library"', { 436 'xcode_settings': {'OTHER_LDFLAGS': ['-fsanitize=undefined']}, 437 }], 438 ], 439 }], 440 # The defines bellow must include all things from the external_v8_defines 441 # list in v8/BUILD.gn. 442 ['v8_enable_v8_checks == 1', { 443 'defines': ['V8_ENABLE_CHECKS'], 444 }], 445 ['v8_enable_pointer_compression == 1', { 446 'defines': ['V8_COMPRESS_POINTERS'], 447 }], 448 ['v8_enable_pointer_compression_shared_cage == 1', { 449 'defines': ['V8_COMPRESS_POINTERS_IN_SHARED_CAGE'], 450 }], 451 ['v8_enable_pointer_compression == 1 and v8_enable_pointer_compression_shared_cage != 1', { 452 'defines': ['V8_COMPRESS_POINTERS_IN_ISOLATE_CAGE'], 453 }], 454 ['v8_enable_pointer_compression == 1 or v8_enable_31bit_smis_on_64bit_arch == 1', { 455 'defines': ['V8_31BIT_SMIS_ON_64BIT_ARCH'], 456 }], 457 ['v8_enable_zone_compression == 1', { 458 'defines': ['V8_COMPRESS_ZONES',], 459 }], 460 ['v8_enable_sandbox == 1', { 461 'defines': ['V8_ENABLE_SANDBOX',], 462 }], 463 ['v8_enable_external_code_space == 1', { 464 'defines': ['V8_EXTERNAL_CODE_SPACE',], 465 }], 466 ['v8_deprecation_warnings == 1', { 467 'defines': ['V8_DEPRECATION_WARNINGS',], 468 }], 469 ['v8_imminent_deprecation_warnings == 1', { 470 'defines': ['V8_IMMINENT_DEPRECATION_WARNINGS',], 471 }], 472 ['v8_use_perfetto == 1', { 473 'defines': ['V8_USE_PERFETTO',], 474 }], 475 ['v8_enable_map_packing == 1', { 476 'defines': ['V8_MAP_PACKING',], 477 }], 478 ['tsan == 1', { 479 'defines': ['V8_IS_TSAN',], 480 }], 481 ['v8_enable_conservative_stack_scanning == 1', { 482 'defines': ['V8_ENABLE_CONSERVATIVE_STACK_SCANNING',], 483 }], 484 ['v8_enable_direct_local == 1', { 485 'defines': ['V8_ENABLE_DIRECT_LOCAL',], 486 }], 487 ['OS == "win"', { 488 'defines': [ 489 'WIN32', 490 # we don't really want VC++ warning us about 491 # how dangerous C functions are... 492 '_CRT_SECURE_NO_DEPRECATE', 493 # ... or that C implementations shouldn't use 494 # POSIX names 495 '_CRT_NONSTDC_NO_DEPRECATE', 496 # Make sure the STL doesn't try to use exceptions 497 '_HAS_EXCEPTIONS=0', 498 'BUILDING_V8_SHARED=1', 499 'BUILDING_UV_SHARED=1', 500 # Stop
from defining macros that conflict with 501 # std::min() and std::max(). We don't use
(much) 502 # but we still inherit it from uv.h. 503 'NOMINMAX', 504 ], 505 }], 506 [ 'OS in "linux freebsd openbsd solaris aix os400 openharmony"', { 507 'cflags': [ '-pthread' ], 508 'ldflags': [ '-pthread' ], 509 }], 510 [ 'OS in "linux freebsd openbsd solaris android aix os400 cloudabi openharmony"', { 511 'cflags': [ '-Wall', '-Wextra', '-Wno-unused-parameter', ], 512 'cflags_cc': [ 513 '-fno-rtti', 514 '-fno-exceptions', 515 '-fno-strict-aliasing', 516 '-std=gnu++17', 517 ], 518 'defines': [ '__STDC_FORMAT_MACROS' ], 519 'ldflags': [ '-rdynamic' ], 520 'target_conditions': [ 521 # The 1990s toolchain on SmartOS can't handle thin archives. 522 ['_type=="static_library" and OS=="solaris"', { 523 'standalone_static_library': 1, 524 }], 525 ['OS=="openbsd"', { 526 'cflags': [ '-I/usr/local/include' ], 527 'ldflags': [ '-Wl,-z,wxneeded' ], 528 }], 529 ['_toolset=="host"', { 530 'conditions': [ 531 [ 'host_arch=="ia32"', { 532 'cflags': [ '-m32' ], 533 'ldflags': [ '-m32' ], 534 }], 535 [ 'host_arch=="x64"', { 536 'cflags': [ '-m64' ], 537 'ldflags': [ '-m64' ], 538 }], 539 [ 'host_arch=="ppc" and OS not in "aix os400"', { 540 'cflags': [ '-m32' ], 541 'ldflags': [ '-m32' ], 542 }], 543 [ 'host_arch=="ppc64" and OS not in "aix os400"', { 544 'cflags': [ '-m64', '-mminimal-toc' ], 545 'ldflags': [ '-m64' ], 546 }], 547 [ 'host_arch=="s390x" and OS=="linux"', { 548 'cflags': [ '-m64', '-march=z196' ], 549 'ldflags': [ '-m64', '-march=z196' ], 550 }], 551 ], 552 }], 553 ['_toolset=="target"', { 554 'conditions': [ 555 [ 'target_arch=="ia32"', { 556 'cflags': [ '-m32' ], 557 'ldflags': [ '-m32' ], 558 }], 559 [ 'target_arch=="x64"', { 560 'cflags': [ '-m64' ], 561 'ldflags': [ '-m64' ], 562 }], 563 [ 'target_arch=="ppc" and OS not in "aix os400"', { 564 'cflags': [ '-m32' ], 565 'ldflags': [ '-m32' ], 566 }], 567 [ 'target_arch=="ppc64" and OS not in "aix os400"', { 568 'cflags': [ '-m64', '-mminimal-toc' ], 569 'ldflags': [ '-m64' ], 570 }], 571 [ 'target_arch=="s390x" and OS=="linux"', { 572 'cflags': [ '-m64', '-march=z196' ], 573 'ldflags': [ '-m64', '-march=z196' ], 574 }], 575 ], 576 }], 577 ], 578 'conditions': [ 579 [ 'OS=="solaris"', { 580 'cflags': [ '-pthreads' ], 581 'ldflags': [ '-pthreads' ], 582 'cflags!': [ '-pthread' ], 583 'ldflags!': [ '-pthread' ], 584 }], 585 [ 'node_shared=="true"', { 586 'cflags': [ '-fPIC' ], 587 }], 588 ], 589 }], 590 [ 'OS in "aix os400"', { 591 'variables': { 592 # Used to differentiate `AIX` and `OS400`(IBM i). 593 'aix_variant_name': '(gcc_major)/pthread/ppc64:/opt/freeware/lib/gcc/powerpc-ibm-aix7.2.0.0/>(gcc_major)/pthread/ppc64:/opt/freeware/lib/pthread/ppc64', 622 ], 623 }], 624 ], 625 }], 626 ['OS=="android"', { 627 'target_conditions': [ 628 ['_toolset=="target"', { 629 'defines': [ '_GLIBCXX_USE_C99_MATH' ], 630 'libraries': [ '-llog' ], 631 }], 632 ['_toolset=="host"', { 633 'cflags': [ '-pthread' ], 634 'ldflags': [ '-pthread' ], 635 }], 636 ], 637 }], 638 ['OS=="mac"', { 639 'defines': ['_DARWIN_USE_64_BIT_INODE=1'], 640 'xcode_settings': { 641 'ALWAYS_SEARCH_USER_PATHS': 'NO', 642 'GCC_CW_ASM_SYNTAX': 'NO', # No -fasm-blocks 643 'GCC_DYNAMIC_NO_PIC': 'NO', # No -mdynamic-no-pic 644 # (Equivalent to -fPIC) 645 'GCC_ENABLE_CPP_EXCEPTIONS': 'NO', # -fno-exceptions 646 'GCC_ENABLE_CPP_RTTI': 'NO', # -fno-rtti 647 'GCC_ENABLE_PASCAL_STRINGS': 'NO', # No -mpascal-strings 648 'GCC_STRICT_ALIASING': 'NO', # -fno-strict-aliasing 649 'PREBINDING': 'NO', # No -Wl,-prebind 650 'MACOSX_DEPLOYMENT_TARGET': '11.0', # -mmacosx-version-min=11.0 651 'USE_HEADERMAP': 'NO', 652 'WARNING_CFLAGS': [ 653 '-Wall', 654 '-Wendif-labels', 655 '-W', 656 '-Wno-unused-parameter', 657 ], 658 }, 659 'target_conditions': [ 660 ['_type!="static_library"', { 661 'xcode_settings': { 662 'OTHER_LDFLAGS': [ 663 '-Wl,-search_paths_first' 664 ], 665 }, 666 }], 667 ], 668 'conditions': [ 669 ['target_arch=="ia32"', { 670 'xcode_settings': {'ARCHS': ['i386']}, 671 }], 672 ['target_arch=="x64"', { 673 'xcode_settings': {'ARCHS': ['x86_64']}, 674 }], 675 ['target_arch=="arm64"', { 676 'xcode_settings': { 677 'ARCHS': ['arm64'], 678 'OTHER_LDFLAGS!': [ 679 '-Wl,-no_pie', 680 ], 681 }, 682 }], 683 ['clang==1', { 684 'xcode_settings': { 685 'GCC_VERSION': 'com.apple.compilers.llvm.clang.1_0', 686 'CLANG_CXX_LANGUAGE_STANDARD': 'gnu++17', # -std=gnu++17 687 'CLANG_CXX_LIBRARY': 'libc++', 688 }, 689 }], 690 ], 691 }], 692 ['OS=="freebsd"', { 693 'ldflags': [ 694 '-Wl,--export-dynamic', 695 ], 696 }], 697 # if node is built as an executable, 698 # the openssl mechanism for keeping itself "dload"-ed to ensure proper 699 # atexit cleanup does not apply 700 ['node_shared_openssl!="true" and node_shared!="true"', { 701 'defines': [ 702 # `OPENSSL_NO_PINSHARED` prevents openssl from dload 703 # current node executable, 704 # see https://github.com/nodejs/node/pull/21848 705 # or https://github.com/nodejs/node/issues/27925 706 'OPENSSL_NO_PINSHARED' 707 ], 708 }], 709 ['node_shared_openssl!="true"', { 710 # `OPENSSL_THREADS` is defined via GYP for openSSL for all architectures. 711 'defines': [ 712 'OPENSSL_THREADS', 713 ], 714 }], 715 ['node_shared_openssl!="true" and openssl_no_asm==1', { 716 'defines': [ 717 'OPENSSL_NO_ASM', 718 ], 719 }], 720 ['OS == "zos"', { 721 'defines': [ 722 '_XOPEN_SOURCE_EXTENDED', 723 '_XOPEN_SOURCE=600', 724 '_UNIX03_THREADS', 725 '_UNIX03_WITHDRAWN', 726 '_UNIX03_SOURCE', 727 '_OPEN_SYS_SOCK_IPV6', 728 '_OPEN_SYS_FILE_EXT=1', 729 '_POSIX_SOURCE', 730 '_OPEN_SYS', 731 '_OPEN_SYS_IF_EXT', 732 '_OPEN_SYS_SOCK_IPV6', 733 '_OPEN_MSGQ_EXT', 734 '_LARGE_TIME_API', 735 '_ALL_SOURCE', 736 '_AE_BIMODAL=1', 737 '__IBMCPP_TR1__', 738 'NODE_PLATFORM="os390"', 739 'PATH_MAX=1024', 740 '_ENHANCED_ASCII_EXT=0xFFFFFFFF', 741 '_Export=extern', 742 '__static_assert=static_assert', 743 ], 744 'cflags': [ 745 '-q64', 746 '-Wc,DLL', 747 '-Wa,GOFF', 748 '-qARCH=10', 749 '-qASCII', 750 '-qTUNE=12', 751 '-qENUM=INT', 752 '-qEXPORTALL', 753 '-qASM', 754 ], 755 'cflags_cc': [ 756 '-qxclang=-std=c++14', 757 ], 758 'ldflags': [ 759 '-q64', 760 ], 761 # for addons due to v8config.h include of "zos-base.h": 762 'include_dirs': ['<(zoslib_include_dir)'], 763 }], 764 ], 765 } 766 }
Contact us
|
About us
|
Term of use
|
Copyright © 2000-2025 MyWebUniversity.com ™