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