Changeset 254417 in webkit
- Timestamp:
- Jan 12, 2020 4:21:42 PM (4 years ago)
- Location:
- trunk/Source/WTF
- Files:
-
- 4 edited
- 1 copied
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WTF/ChangeLog
r254413 r254417 1 2020-01-12 Sam Weinig <weinig@apple.com> 2 3 Platform.h is out of control Part 2: Split WTF_OS_* macro definitions out of Platform.h and into a new OS.h 4 https://bugs.webkit.org/show_bug.cgi?id=206138 5 6 Reviewed by Anders Carlsson. 7 8 As a another step towards cleaning up Platform.h, split out OS related 9 macros into their own file. 10 11 * WTF.xcodeproj/project.pbxproj: 12 * wtf/CMakeLists.txt: 13 * wtf/OS.h: Copied from Source/WTF/wtf/Platform.h. 14 * wtf/Platform.h: 15 1 16 2020-01-11 Myles C. Maxfield <mmaxfield@apple.com> 2 17 -
trunk/Source/WTF/WTF.xcodeproj/project.pbxproj
r254401 r254417 445 445 7C137943222326D500D7A824 /* README.md */ = {isa = PBXFileReference; lastKnownFileType = net.daringfireball.markdown; path = README.md; sourceTree = "<group>"; }; 446 446 7C3F72391D78811900674E26 /* Brigand.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Brigand.h; sourceTree = "<group>"; }; 447 7C8B633023CAC76D00BB4620 /* OS.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OS.h; sourceTree = "<group>"; }; 447 448 7C9692941F66306E00267A9E /* KeyValuePair.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = KeyValuePair.h; sourceTree = "<group>"; }; 448 449 7CA842E923C98CB700514CAF /* CPU.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CPU.h; sourceTree = "<group>"; }; … … 1107 1108 275DFB6B238BDF72001230E2 /* OptionSetHash.h */, 1108 1109 0F9495831C571CC900413A48 /* OrderMaker.h */, 1110 7C8B633023CAC76D00BB4620 /* OS.h */, 1109 1111 A8A472D7151A825B004123FF /* OSAllocator.h */, 1110 1112 7CBBA07319BB7FDC00BBF025 /* OSObjectPtr.h */, -
trunk/Source/WTF/wtf/CMakeLists.txt
r254401 r254417 150 150 NotFound.h 151 151 NumberOfCores.h 152 OS.h 152 153 OSAllocator.h 153 154 OSObjectPtr.h -
trunk/Source/WTF/wtf/OS.h
r254414 r254417 31 31 #include <wtf/Compiler.h> 32 32 33 /* Include CPU specific macros */ 34 #include <wtf/CPU.h> 35 36 /* ==== PLATFORM handles OS, operating environment, graphics API, and 37 CPU. This macro will be phased out in favor of platform adaptation 38 macros, policy decision macros, and top-level port definitions. ==== */ 39 #define PLATFORM(WTF_FEATURE) (defined WTF_PLATFORM_##WTF_FEATURE && WTF_PLATFORM_##WTF_FEATURE) 40 41 42 /* ==== Platform adaptation macros: these describe properties of the target environment. ==== */ 43 44 /* CPU() - the target CPU architecture */ 45 #define CPU(WTF_FEATURE) (defined WTF_CPU_##WTF_FEATURE && WTF_CPU_##WTF_FEATURE) 46 /* HAVE() - specific system features (headers, functions or similar) that are present or not */ 47 #define HAVE(WTF_FEATURE) (defined HAVE_##WTF_FEATURE && HAVE_##WTF_FEATURE) 48 /* OS() - underlying operating system; only to be used for mandated low-level services like 49 virtual memory, not to choose a GUI toolkit */ 50 #define OS(WTF_FEATURE) (defined WTF_OS_##WTF_FEATURE && WTF_OS_##WTF_FEATURE) 51 52 53 /* ==== Policy decision macros: these define policy choices for a particular port. ==== */ 54 55 /* USE() - use a particular third-party library or optional OS service */ 56 #define USE(WTF_FEATURE) (defined USE_##WTF_FEATURE && USE_##WTF_FEATURE) 57 /* ENABLE() - turn on a specific feature of WebKit */ 58 #define ENABLE(WTF_FEATURE) (defined ENABLE_##WTF_FEATURE && ENABLE_##WTF_FEATURE) 59 60 61 /* MIPS requires allocators to use aligned memory */ 62 #if CPU(MIPS) || CPU(MIPS64) 63 #define USE_ARENA_ALLOC_ALIGNMENT_INTEGER 1 64 #endif 65 66 /*ARMv5TE requires allocators to use aligned memory*/ 67 #if defined(__ARM_ARCH_5E__) || defined(__ARM_ARCH_5TE__) || defined(__ARM_ARCH_5TEJ__) 68 #define USE_ARENA_ALLOC_ALIGNMENT_INTEGER 1 69 #endif 70 71 /*ARMv5TE requires allocators to use aligned memory*/ 72 #if defined(__TARGET_ARCH_5E) || defined(__TARGET_ARCH_5TE) || defined(__TARGET_ARCH_5TEJ) 73 #define USE_ARENA_ALLOC_ALIGNMENT_INTEGER 1 74 #endif 75 76 #if CPU(ARM_NEON) 77 /* All NEON intrinsics usage can be disabled by this macro. */ 78 #define HAVE_ARM_NEON_INTRINSICS 1 79 #endif 80 81 /* FIXME: This should be renamed to WTF_CPU_ARM_IDIV_INSTRUCTIONS and moved to CPU.h */ 82 #if defined(__ARM_ARCH_EXT_IDIV__) || CPU(APPLE_ARMV7S) 83 #define HAVE_ARM_IDIV_INSTRUCTIONS 1 84 #endif 85 86 87 88 /* ==== OS() - underlying operating system; only to be used for mandated low-level services like 89 virtual memory, not to choose a GUI toolkit ==== */ 90 91 /* OS(AIX) - AIX */ 92 #ifdef _AIX 93 #define WTF_OS_AIX 1 94 #endif 95 96 /* OS(DARWIN) - Any Darwin-based OS, including Mac OS X and iPhone OS */ 97 #ifdef __APPLE__ 98 #define WTF_OS_DARWIN 1 99 33 #if defined(__APPLE__) 100 34 #include <Availability.h> 101 35 #include <AvailabilityMacros.h> … … 103 37 #endif 104 38 39 40 /* OS() - underlying operating system; only to be used for mandated low-level services like 41 virtual memory, not to choose a GUI toolkit */ 42 #define OS(WTF_FEATURE) (defined WTF_OS_##WTF_FEATURE && WTF_OS_##WTF_FEATURE) 43 44 45 /* ==== OS() - underlying operating system; only to be used for mandated low-level services like 46 virtual memory, not to choose a GUI toolkit ==== */ 47 48 /* OS(AIX) - AIX */ 49 #if defined(_AIX) 50 #define WTF_OS_AIX 1 51 #endif 52 53 /* OS(DARWIN) - Any Darwin-based OS, including macOS, iOS, macCatalyst, tvOS, and watchOS */ 54 #if defined(__APPLE__) 55 #define WTF_OS_DARWIN 1 56 #endif 57 105 58 /* OS(IOS_FAMILY) - iOS family, including iOS, macCatalyst, tvOS, watchOS */ 59 #if OS(DARWIN) && TARGET_OS_IPHONE 60 #define WTF_OS_IOS_FAMILY 1 61 #endif 62 106 63 /* OS(IOS) - iOS only, not including macCatalyst */ 107 /* OS(MAC_OS_X) - macOS (not including iOS family) */ 108 #if OS(DARWIN) 109 #if TARGET_OS_IOS && !(defined(TARGET_OS_MACCATALYST) && TARGET_OS_MACCATALYST) 64 #if OS(DARWIN) && (TARGET_OS_IOS && !(defined(TARGET_OS_MACCATALYST) && TARGET_OS_MACCATALYST)) 110 65 #define WTF_OS_IOS 1 111 66 #endif 112 #if TARGET_OS_IPHONE 113 #define WTF_OS_IOS_FAMILY 1 114 #elif TARGET_OS_MAC 67 68 /* FIXME: Rename this to drop the X, as that is no longer the name of the operating system. */ 69 /* OS(MAC_OS_X) - macOS (not including iOS family) */ 70 #if OS(DARWIN) && TARGET_OS_OSX 115 71 #define WTF_OS_MAC_OS_X 1 116 #endif117 72 #endif 118 73 … … 123 78 124 79 /* OS(FUCHSIA) - Fuchsia */ 125 #if def __Fuchsia__80 #if defined(__Fuchsia__) 126 81 #define WTF_OS_FUCHSIA 1 127 82 #endif 128 83 129 84 /* OS(HURD) - GNU/Hurd */ 130 #if def __GNU__85 #if defined(__GNU__) 131 86 #define WTF_OS_HURD 1 132 87 #endif 133 88 134 89 /* OS(LINUX) - Linux */ 135 #if def __linux__90 #if defined(__linux__) 136 91 #define WTF_OS_LINUX 1 137 92 #endif … … 143 98 144 99 /* OS(OPENBSD) - OpenBSD */ 145 #if def __OpenBSD__100 #if defined(__OpenBSD__) 146 101 #define WTF_OS_OPENBSD 1 147 102 #endif … … 152 107 #endif 153 108 154 #define WTF_OS_WIN ERROR "USE WINDOWS WITH OS NOT WIN"155 #define WTF_OS_MAC ERROR "USE MAC_OS_X WITH OS NOT MAC"156 109 157 110 /* OS(UNIX) - Any Unix-like system */ … … 170 123 #endif 171 124 172 /* Operating environments */173 125 126 /* Asserts, invariants for macro definitions */ 174 127 175 /* FIXME: Rename WTF_CPU_EFFECTIVE_ADDRESS_WIDTH to WTF_OS_EFFECTIVE_ADDRESS_WIDTH, as it is an OS feature, not a CPU feature. */ 176 #if CPU(ADDRESS64) 177 #if OS(DARWIN) && CPU(ARM64) 178 #define WTF_CPU_EFFECTIVE_ADDRESS_WIDTH 36 179 #else 180 /* We strongly assume that effective address width is <= 48 in 64bit architectures (e.g. NaN boxing). */ 181 #define WTF_CPU_EFFECTIVE_ADDRESS_WIDTH 48 182 #endif 183 #else 184 #define WTF_CPU_EFFECTIVE_ADDRESS_WIDTH 32 185 #endif 186 187 /* Export macro support. Detects the attributes available for shared library symbol export 188 decorations. */ 189 #if OS(WINDOWS) || (COMPILER_HAS_CLANG_DECLSPEC(dllimport) && COMPILER_HAS_CLANG_DECLSPEC(dllexport)) 190 #define USE_DECLSPEC_ATTRIBUTE 1 191 #define USE_VISIBILITY_ATTRIBUTE 0 192 #elif defined(__GNUC__) 193 #define USE_DECLSPEC_ATTRIBUTE 0 194 #define USE_VISIBILITY_ATTRIBUTE 1 195 #else 196 #define USE_DECLSPEC_ATTRIBUTE 0 197 #define USE_VISIBILITY_ATTRIBUTE 0 198 #endif 199 200 /* Standard libraries */ 201 #if defined(HAVE_FEATURES_H) && HAVE_FEATURES_H 202 /* If the included features.h is glibc's one, __GLIBC__ is defined. */ 203 #include <features.h> 204 #endif 205 206 /* FIXME: these are all mixes of OS, operating environment and policy choices. */ 207 /* PLATFORM(GTK) */ 208 /* PLATFORM(MAC) */ 209 /* PLATFORM(IOS) */ 210 /* PLATFORM(IOS_FAMILY) */ 211 /* PLATFORM(IOS_SIMULATOR) */ 212 /* PLATFORM(IOS_FAMILY_SIMULATOR) */ 213 /* PLATFORM(WIN) */ 214 #if defined(BUILDING_GTK__) 215 #define WTF_PLATFORM_GTK 1 216 #elif defined(BUILDING_WPE__) 217 #define WTF_PLATFORM_WPE 1 218 #elif defined(BUILDING_JSCONLY__) 219 /* JSCOnly does not provide PLATFORM() macro */ 220 #elif OS(MAC_OS_X) 221 #define WTF_PLATFORM_MAC 1 222 #elif OS(IOS_FAMILY) 223 #if OS(IOS) 224 #define WTF_PLATFORM_IOS 1 225 #endif 226 #define WTF_PLATFORM_IOS_FAMILY 1 227 #if TARGET_OS_SIMULATOR 228 #if OS(IOS) 229 #define WTF_PLATFORM_IOS_SIMULATOR 1 230 #endif 231 #define WTF_PLATFORM_IOS_FAMILY_SIMULATOR 1 232 #endif 233 #if defined(TARGET_OS_MACCATALYST) && TARGET_OS_MACCATALYST 234 #define WTF_PLATFORM_MACCATALYST 1 235 #endif 236 #elif OS(WINDOWS) 237 #define WTF_PLATFORM_WIN 1 238 #endif 239 240 /* PLATFORM(COCOA) */ 241 #if PLATFORM(MAC) || PLATFORM(IOS_FAMILY) 242 #define WTF_PLATFORM_COCOA 1 243 #endif 244 245 #if PLATFORM(COCOA) 246 #if defined __has_include && __has_include(<CoreFoundation/CFPriv.h>) 247 #define USE_APPLE_INTERNAL_SDK 1 248 #endif 249 #endif 250 251 /* PLATFORM(APPLETV) */ 252 #if defined(TARGET_OS_TV) && TARGET_OS_TV 253 #define WTF_PLATFORM_APPLETV 1 254 #endif 255 256 /* PLATFORM(WATCHOS) */ 257 #if defined(TARGET_OS_WATCH) && TARGET_OS_WATCH 258 #define WTF_PLATFORM_WATCHOS 1 259 #endif 260 261 /* Graphics engines */ 262 263 /* USE(CG) and PLATFORM(CI) */ 264 #if PLATFORM(COCOA) 265 #define USE_CG 1 266 #define USE_CA 1 267 #endif 268 269 #if PLATFORM(GTK) || PLATFORM(WPE) 270 #define USE_GLIB 1 271 #define USE_FREETYPE 1 272 #define USE_HARFBUZZ 1 273 #define USE_SOUP 1 274 #define USE_WEBP 1 275 #define USE_FILE_LOCK 1 276 #endif 277 278 #if PLATFORM(GTK) 279 #define GLIB_VERSION_MIN_REQUIRED GLIB_VERSION_2_36 280 #define GDK_VERSION_MIN_REQUIRED GDK_VERSION_3_6 281 #endif 282 283 #if PLATFORM(WPE) 284 #define GLIB_VERSION_MIN_REQUIRED GLIB_VERSION_2_40 285 #endif 286 287 #if USE(SOUP) 288 #define SOUP_VERSION_MIN_REQUIRED SOUP_VERSION_2_42 289 #endif 290 291 /* On Windows, use QueryPerformanceCounter by default */ 292 #if OS(WINDOWS) 293 #define USE_QUERY_PERFORMANCE_COUNTER 1 294 #endif 295 296 #if PLATFORM(COCOA) 297 298 #define HAVE_OUT_OF_PROCESS_LAYER_HOSTING 1 299 #define USE_CF 1 300 #define USE_FILE_LOCK 1 301 #define USE_FOUNDATION 1 302 #define USE_NETWORK_CFDATA_ARRAY_CALLBACK 1 303 304 /* Cocoa defines a series of platform macros for debugging. */ 305 /* Some of them are really annoying because they use common names (e.g. check()). */ 306 /* Disable those macros so that we are not limited in how we name methods and functions. */ 307 #undef __ASSERT_MACROS_DEFINE_VERSIONS_WITHOUT_UNDERSCORES 308 #define __ASSERT_MACROS_DEFINE_VERSIONS_WITHOUT_UNDERSCORES 0 309 310 #endif 311 312 #if PLATFORM(MAC) 313 314 #define HAVE_RUNLOOP_TIMER 1 315 #define HAVE_SEC_KEYCHAIN 1 316 #define HAVE_HISERVICES 1 317 #define USE_APPKIT 1 318 #define USE_PASSKIT 1 319 320 #if CPU(X86_64) 321 #define HAVE_NETWORK_EXTENSION 1 322 #define USE_PLUGIN_HOST_PROCESS 1 323 #endif 324 #endif /* PLATFORM(MAC) */ 325 326 #if PLATFORM(IOS_FAMILY) 327 328 #define HAVE_NETWORK_EXTENSION 1 329 #define HAVE_READLINE 1 330 #define USE_UIKIT_EDITING 1 331 #define USE_WEB_THREAD 1 332 333 #if CPU(ARM64) 334 #define ENABLE_JIT_CONSTANT_BLINDING 0 335 #endif 336 337 #if CPU(ARM_NEON) 338 #undef HAVE_ARM_NEON_INTRINSICS 339 #define HAVE_ARM_NEON_INTRINSICS 0 340 #endif 341 342 #endif /* PLATFORM(IOS_FAMILY) */ 343 344 #if !defined(HAVE_ACCESSIBILITY) 345 #if PLATFORM(COCOA) || PLATFORM(WIN) || PLATFORM(GTK) || PLATFORM(WPE) 346 #define HAVE_ACCESSIBILITY 1 347 #endif 348 #endif /* !defined(HAVE_ACCESSIBILITY) */ 349 350 /* FIXME: Remove after CMake build enabled on Darwin */ 351 #if OS(DARWIN) 352 #define HAVE_ERRNO_H 1 353 #define HAVE_LANGINFO_H 1 354 #define HAVE_LOCALTIME_R 1 355 #define HAVE_MMAP 1 356 #define HAVE_REGEX_H 1 357 #define HAVE_SIGNAL_H 1 358 #define HAVE_STAT_BIRTHTIME 1 359 #define HAVE_STRINGS_H 1 360 #define HAVE_STRNSTR 1 361 #define HAVE_SYS_PARAM_H 1 362 #define HAVE_SYS_TIME_H 1 363 #define HAVE_TM_GMTOFF 1 364 #define HAVE_TM_ZONE 1 365 #define HAVE_TIMEGM 1 366 #define HAVE_PTHREAD_MAIN_NP 1 367 368 #if CPU(X86_64) || CPU(ARM64) 369 #define HAVE_INT128_T 1 370 #endif 371 #endif /* OS(DARWIN) */ 372 373 #if OS(UNIX) 374 #define USE_PTHREADS 1 375 #endif /* OS(UNIX) */ 376 377 #if OS(UNIX) && !OS(FUCHSIA) 378 #define HAVE_RESOURCE_H 1 379 #define HAVE_PTHREAD_SETSCHEDPARAM 1 380 #endif 381 382 #if OS(DARWIN) 383 #define HAVE_DISPATCH_H 1 384 #define HAVE_MADV_FREE 1 385 #define HAVE_MADV_FREE_REUSE 1 386 #define HAVE_MADV_DONTNEED 1 387 #define HAVE_MERGESORT 1 388 #define HAVE_PTHREAD_SETNAME_NP 1 389 #define HAVE_READLINE 1 390 #define HAVE_SYS_TIMEB_H 1 391 #define HAVE_AUDIT_TOKEN 1 392 393 #if __has_include(<mach/mach_exc.defs>) && !PLATFORM(GTK) 394 #define HAVE_MACH_EXCEPTIONS 1 395 #endif 396 397 #if !PLATFORM(GTK) 398 #define USE_ACCELERATE 1 399 #endif 400 #if !PLATFORM(IOS_FAMILY) 401 #define HAVE_HOSTED_CORE_ANIMATION 1 402 #endif 403 404 #endif /* OS(DARWIN) */ 405 406 #if OS(DARWIN) || OS(FUCHSIA) || ((OS(FREEBSD) || defined(__GLIBC__) || defined(__BIONIC__)) && (CPU(X86) || CPU(X86_64) || CPU(ARM) || CPU(ARM64) || CPU(MIPS))) 407 #define HAVE_MACHINE_CONTEXT 1 408 #endif 409 410 #if OS(DARWIN) || (OS(LINUX) && defined(__GLIBC__) && !defined(__UCLIBC__) && !CPU(MIPS)) 411 #define HAVE_BACKTRACE 1 412 #endif 413 414 #if OS(DARWIN) || OS(LINUX) 415 #if PLATFORM(GTK) 416 #if defined(__GLIBC__) && !defined(__UCLIBC__) && !CPU(MIPS) 417 #define HAVE_BACKTRACE_SYMBOLS 1 418 #endif 419 #endif /* PLATFORM(GTK) */ 420 #define HAVE_DLADDR 1 421 #endif /* OS(DARWIN) || OS(LINUX) */ 422 423 424 /* ENABLE macro defaults */ 425 426 /* FIXME: move out all ENABLE() defines from here to FeatureDefines.h */ 427 428 #if USE(APPLE_INTERNAL_SDK) && __has_include(<WebKitAdditions/AdditionalPlatform.h>) 429 #include <WebKitAdditions/AdditionalPlatform.h> 430 #endif 431 432 #if USE(APPLE_INTERNAL_SDK) && __has_include(<WebKitAdditions/AdditionalFeatureDefines.h>) 433 #include <WebKitAdditions/AdditionalFeatureDefines.h> 434 #endif 435 436 /* Include feature macros */ 437 #include <wtf/FeatureDefines.h> 438 439 #if OS(WINDOWS) 440 #define USE_SYSTEM_MALLOC 1 441 #endif 442 443 444 #if !defined(USE_JSVALUE64) && !defined(USE_JSVALUE32_64) 445 #if CPU(ADDRESS64) || CPU(ARM64) 446 #define USE_JSVALUE64 1 447 #else 448 #define USE_JSVALUE32_64 1 449 #endif 450 #endif /* !defined(USE_JSVALUE64) && !defined(USE_JSVALUE32_64) */ 451 452 /* The JIT is enabled by default on all x86-64 & ARM64 platforms. */ 453 #if !defined(ENABLE_JIT) \ 454 && (CPU(X86_64) || CPU(ARM64)) \ 455 && !CPU(APPLE_ARMV7K) 456 #define ENABLE_JIT 1 457 #endif 458 459 #if USE(JSVALUE32_64) 460 #if (CPU(ARM_THUMB2) || CPU(MIPS)) && OS(LINUX) 461 /* On ARMv7 and MIPS on Linux the JIT is enabled unless explicitly disabled. */ 462 #if !defined(ENABLE_JIT) 463 #define ENABLE_JIT 1 464 #endif 465 #else 466 /* Disable JIT and force C_LOOP on all other 32bit architectures. */ 467 #undef ENABLE_JIT 468 #define ENABLE_JIT 0 469 #undef ENABLE_C_LOOP 470 #define ENABLE_C_LOOP 1 471 #endif 472 #endif 473 474 #if !defined(ENABLE_C_LOOP) 475 #if ENABLE(JIT) \ 476 || CPU(X86_64) || (CPU(ARM64) && !defined(__ILP32__)) 477 #define ENABLE_C_LOOP 0 478 #else 479 #define ENABLE_C_LOOP 1 480 #endif 481 #endif 482 483 /* The FTL *does not* work on 32-bit platforms. Disable it even if someone asked us to enable it. */ 484 #if USE(JSVALUE32_64) 485 #undef ENABLE_FTL_JIT 486 #define ENABLE_FTL_JIT 0 487 #endif 488 489 /* The FTL is disabled on the iOS simulator, mostly for simplicity. */ 490 #if PLATFORM(IOS_FAMILY_SIMULATOR) 491 #undef ENABLE_FTL_JIT 492 #define ENABLE_FTL_JIT 0 493 #endif 494 495 /* If possible, try to enable a disassembler. This is optional. We proceed in two 496 steps: first we try to find some disassembler that we can use, and then we 497 decide if the high-level disassembler API can be enabled. */ 498 #if !defined(USE_UDIS86) && ENABLE(JIT) && CPU(X86_64) && !USE(CAPSTONE) 499 #define USE_UDIS86 1 500 #endif 501 502 #if !defined(USE_ARM64_DISASSEMBLER) && ENABLE(JIT) && CPU(ARM64) && !USE(CAPSTONE) 503 #define USE_ARM64_DISASSEMBLER 1 504 #endif 505 506 #if !defined(ENABLE_DISASSEMBLER) && (USE(UDIS86) || USE(ARM64_DISASSEMBLER) || (ENABLE(JIT) && USE(CAPSTONE))) 507 #define ENABLE_DISASSEMBLER 1 508 #endif 509 510 #if !defined(ENABLE_DFG_JIT) && ENABLE(JIT) 511 /* Enable the DFG JIT on X86 and X86_64. */ 512 #if CPU(X86_64) && (OS(DARWIN) || OS(LINUX) || OS(FREEBSD) || OS(HURD) || OS(WINDOWS)) 513 #define ENABLE_DFG_JIT 1 514 #endif 515 /* Enable the DFG JIT on ARMv7. Only tested on iOS, Linux, and FreeBSD. */ 516 #if (CPU(ARM_THUMB2) || CPU(ARM64)) && (PLATFORM(IOS_FAMILY) || OS(LINUX) || OS(FREEBSD)) 517 #define ENABLE_DFG_JIT 1 518 #endif 519 /* Enable the DFG JIT on MIPS. */ 520 #if CPU(MIPS) 521 #define ENABLE_DFG_JIT 1 522 #endif 523 #endif 524 525 /* Concurrent JS only works on 64-bit platforms because it requires that 526 values get stored to atomically. This is trivially true on 64-bit platforms, 527 but not true at all on 32-bit platforms where values are composed of two 528 separate sub-values. */ 529 #if ENABLE(JIT) && USE(JSVALUE64) 530 #define ENABLE_CONCURRENT_JS 1 531 #endif 532 533 #if __has_include(<System/pthread_machdep.h>) 534 #define HAVE_FAST_TLS 1 535 #endif 536 537 #if (CPU(X86_64) || CPU(ARM64)) && HAVE(FAST_TLS) 538 #define ENABLE_FAST_TLS_JIT 1 539 #endif 540 541 #if CPU(X86) || CPU(X86_64) || CPU(ARM_THUMB2) || CPU(ARM64) || CPU(MIPS) 542 #define ENABLE_MASM_PROBE 1 543 #else 544 #define ENABLE_MASM_PROBE 0 545 #endif 546 547 #if !ENABLE(JIT) 548 #undef ENABLE_MASM_PROBE 549 #define ENABLE_MASM_PROBE 0 550 #endif 551 552 /* If the baseline jit is not available, then disable upper tiers as well. 553 The MacroAssembler::probe() is also required for supporting the upper tiers. */ 554 #if !ENABLE(JIT) || !ENABLE(MASM_PROBE) 555 #undef ENABLE_DFG_JIT 556 #undef ENABLE_FTL_JIT 557 #define ENABLE_DFG_JIT 0 558 #define ENABLE_FTL_JIT 0 559 #endif 560 561 /* If the DFG jit is not available, then disable upper tiers as well: */ 562 #if !ENABLE(DFG_JIT) 563 #undef ENABLE_FTL_JIT 564 #define ENABLE_FTL_JIT 0 565 #endif 566 567 /* This controls whether B3 is built. B3 is needed for FTL JIT and WebAssembly */ 568 #if ENABLE(FTL_JIT) 569 #define ENABLE_B3_JIT 1 570 #endif 571 572 #if !defined(ENABLE_WEBASSEMBLY) 573 #if ENABLE(B3_JIT) && PLATFORM(COCOA) && CPU(ADDRESS64) 574 #define ENABLE_WEBASSEMBLY 1 575 #else 576 #define ENABLE_WEBASSEMBLY 0 577 #endif 578 #endif 579 580 /* The SamplingProfiler is the probabilistic and low-overhead profiler used by 581 * JSC to measure where time is spent inside a JavaScript program. 582 * In configurations other than Windows and Darwin, because layout of mcontext_t depends on standard libraries (like glibc), 583 * sampling profiler is enabled if WebKit uses pthreads and glibc. */ 584 #if !defined(ENABLE_SAMPLING_PROFILER) 585 #if !ENABLE(C_LOOP) && (OS(WINDOWS) || HAVE(MACHINE_CONTEXT)) 586 #define ENABLE_SAMPLING_PROFILER 1 587 #else 588 #define ENABLE_SAMPLING_PROFILER 0 589 #endif 590 #endif 591 592 #if ENABLE(WEBASSEMBLY) && HAVE(MACHINE_CONTEXT) 593 #define ENABLE_WEBASSEMBLY_FAST_MEMORY 1 594 #endif 595 596 /* Counts uses of write barriers using sampling counters. Be sure to also 597 set ENABLE_SAMPLING_COUNTERS to 1. */ 598 #if !defined(ENABLE_WRITE_BARRIER_PROFILING) 599 #define ENABLE_WRITE_BARRIER_PROFILING 0 600 #endif 601 602 /* Logs all allocation-related activity that goes through fastMalloc or the 603 JSC GC (both cells and butterflies). Also logs marking. Note that this 604 isn't a completely accurate view of the heap since it doesn't include all 605 butterfly resize operations, doesn't tell you what is going on with weak 606 references (other than to tell you when they're marked), and doesn't 607 track direct mmap() allocations or things like JIT allocation. */ 608 #if !defined(ENABLE_ALLOCATION_LOGGING) 609 #define ENABLE_ALLOCATION_LOGGING 0 610 #endif 611 612 /* Enable verification that that register allocations are not made within generated control flow. 613 Turned on for debug builds. */ 614 #if !defined(ENABLE_DFG_REGISTER_ALLOCATION_VALIDATION) && ENABLE(DFG_JIT) 615 #if !defined(NDEBUG) 616 #define ENABLE_DFG_REGISTER_ALLOCATION_VALIDATION 1 617 #else 618 #define ENABLE_DFG_REGISTER_ALLOCATION_VALIDATION 0 619 #endif 620 #endif 621 622 /* Configure the JIT */ 623 #if CPU(X86) && COMPILER(MSVC) 624 #define JSC_HOST_CALL __fastcall 625 #elif CPU(X86) && COMPILER(GCC_COMPATIBLE) 626 #define JSC_HOST_CALL __attribute__ ((fastcall)) 627 #else 628 #define JSC_HOST_CALL 629 #endif 630 631 #if CPU(X86) && OS(WINDOWS) 632 #define CALLING_CONVENTION_IS_STDCALL 1 633 #ifndef CDECL 634 #if COMPILER(MSVC) 635 #define CDECL __cdecl 636 #else 637 #define CDECL __attribute__ ((__cdecl)) 638 #endif 639 #endif 640 #else 641 #define CALLING_CONVENTION_IS_STDCALL 0 642 #endif 643 644 #if CPU(X86) 645 #define WTF_COMPILER_SUPPORTS_FASTCALL_CALLING_CONVENTION 1 646 #ifndef FASTCALL 647 #if COMPILER(MSVC) 648 #define FASTCALL __fastcall 649 #else 650 #define FASTCALL __attribute__ ((fastcall)) 651 #endif 652 #endif 653 #else 654 #define WTF_COMPILER_SUPPORTS_FASTCALL_CALLING_CONVENTION 0 655 #endif 656 657 #if ENABLE(JIT) && CALLING_CONVENTION_IS_STDCALL 658 #define JIT_OPERATION CDECL 659 #else 660 #define JIT_OPERATION 661 #endif 662 663 #if PLATFORM(IOS_FAMILY) && CPU(ARM64) && (!ENABLE(FAST_JIT_PERMISSIONS) || !CPU(ARM64E)) 664 #define ENABLE_SEPARATED_WX_HEAP 1 665 #else 666 #define ENABLE_SEPARATED_WX_HEAP 0 667 #endif 668 669 /* Configure the interpreter */ 670 #if COMPILER(GCC_COMPATIBLE) 671 #define HAVE_COMPUTED_GOTO 1 672 #endif 673 674 /* Determine if we need to enable Computed Goto Opcodes or not: */ 675 #if HAVE(COMPUTED_GOTO) || !ENABLE(C_LOOP) 676 #define ENABLE_COMPUTED_GOTO_OPCODES 1 677 #endif 678 679 #if !defined(USE_LLINT_EMBEDDED_OPCODE_ID) && !ENABLE(C_LOOP) && !COMPILER(MSVC) && \ 680 (CPU(X86) || CPU(X86_64) || CPU(ARM64) || (CPU(ARM_THUMB2) && OS(DARWIN))) 681 /* This feature works by embedding the OpcodeID in the 32 bit just before the generated LLint code 682 that executes each opcode. It cannot be supported by the CLoop since there's no way to embed the 683 OpcodeID word in the CLoop's switch statement cases. It is also currently not implemented for MSVC. 684 */ 685 #define USE_LLINT_EMBEDDED_OPCODE_ID 1 686 #endif 687 688 /* Use __builtin_frame_address(1) to get CallFrame* */ 689 #if COMPILER(GCC_COMPATIBLE) && (CPU(ARM64) || CPU(X86_64)) 690 #define USE_BUILTIN_FRAME_ADDRESS 1 691 #endif 692 693 /* Regular Expression Tracing - Set to 1 to trace RegExp's in jsc. Results dumped at exit */ 694 #define ENABLE_REGEXP_TRACING 0 695 696 /* Yet Another Regex Runtime - turned on by default for JIT enabled ports. */ 697 #if !defined(ENABLE_YARR_JIT) && ENABLE(JIT) 698 #define ENABLE_YARR_JIT 1 699 700 /* Setting this flag compares JIT results with interpreter results. */ 701 #define ENABLE_YARR_JIT_DEBUG 0 702 #endif 703 704 #if ENABLE(YARR_JIT) 705 #if CPU(ARM64) || (CPU(X86_64) && !OS(WINDOWS)) 706 /* Enable JIT'ing Regular Expressions that have nested parenthesis and back references. */ 707 #define ENABLE_YARR_JIT_ALL_PARENS_EXPRESSIONS 1 708 #define ENABLE_YARR_JIT_BACKREFERENCES 1 709 #endif 710 #endif 711 712 /* If either the JIT or the RegExp JIT is enabled, then the Assembler must be 713 enabled as well: */ 714 #if ENABLE(JIT) || ENABLE(YARR_JIT) || !ENABLE(C_LOOP) 715 #if defined(ENABLE_ASSEMBLER) && !ENABLE_ASSEMBLER 716 #error "Cannot enable the JIT or RegExp JIT without enabling the Assembler" 717 #else 718 #undef ENABLE_ASSEMBLER 719 #define ENABLE_ASSEMBLER 1 720 #endif 721 #endif 722 723 /* If the Disassembler is enabled, then the Assembler must be enabled as well: */ 724 #if ENABLE(DISASSEMBLER) 725 #if defined(ENABLE_ASSEMBLER) && !ENABLE_ASSEMBLER 726 #error "Cannot enable the Disassembler without enabling the Assembler" 727 #else 728 #undef ENABLE_ASSEMBLER 729 #define ENABLE_ASSEMBLER 1 730 #endif 731 #endif 732 733 /* ASSERT_ENABLED should be true if we want the current compilation unit to 734 do debug assertion checks unconditionally (e.g. treat a debug ASSERT 735 like a RELEASE_ASSERT. 736 */ 737 #ifndef ASSERT_ENABLED 738 #ifdef NDEBUG 739 #define ASSERT_ENABLED 0 740 #else 741 #define ASSERT_ENABLED 1 742 #endif 743 #endif 744 745 #ifndef ENABLE_EXCEPTION_SCOPE_VERIFICATION 746 #define ENABLE_EXCEPTION_SCOPE_VERIFICATION ASSERT_ENABLED 747 #endif 748 749 #if ENABLE(DFG_JIT) && HAVE(MACHINE_CONTEXT) && (CPU(X86_64) || CPU(ARM64)) 750 #define ENABLE_SIGNAL_BASED_VM_TRAPS 1 751 #endif 752 753 /* CSS Selector JIT Compiler */ 754 #if !defined(ENABLE_CSS_SELECTOR_JIT) 755 #if (CPU(X86_64) || CPU(ARM64) || (CPU(ARM_THUMB2) && PLATFORM(IOS_FAMILY))) && ENABLE(JIT) && (OS(DARWIN) || PLATFORM(GTK) || PLATFORM(WPE)) 756 #define ENABLE_CSS_SELECTOR_JIT 1 757 #else 758 #define ENABLE_CSS_SELECTOR_JIT 0 759 #endif 760 #endif 761 762 #if CPU(ARM64E) && OS(DARWIN) 763 #define HAVE_FJCVTZS_INSTRUCTION 1 764 #endif 765 766 #if PLATFORM(IOS) 767 #define HAVE_APP_LINKS 1 768 #define USE_PASSKIT 1 769 #define USE_QUICK_LOOK 1 770 #define USE_SYSTEM_PREVIEW 1 771 #endif 772 773 #if PLATFORM(IOS_FAMILY) && !PLATFORM(MACCATALYST) 774 #define HAVE_CELESTIAL 1 775 #define HAVE_CORE_ANIMATION_RENDER_SERVER 1 776 #endif 777 778 #if PLATFORM(IOS_FAMILY) && !PLATFORM(MACCATALYST) && !PLATFORM(APPLETV) 779 #define HAVE_PARENTAL_CONTROLS_WITH_UNBLOCK_HANDLER 1 780 #endif 781 782 #if PLATFORM(COCOA) 783 784 #define USE_AVFOUNDATION 1 785 #define USE_PROTECTION_SPACE_AUTH_CALLBACK 1 786 787 #if !PLATFORM(WATCHOS) && !PLATFORM(APPLETV) && !PLATFORM(MACCATALYST) 788 #define ENABLE_DATA_DETECTION 1 789 #endif 790 791 /* FIXME: Enable HAVE_PARENTAL_CONTROLS for watchOS Simulator once rdar://problem/54608386 is resolved */ 792 #if !PLATFORM(APPLETV) && (!PLATFORM(WATCHOS) || !PLATFORM(IOS_FAMILY_SIMULATOR)) 793 #define HAVE_PARENTAL_CONTROLS 1 794 #endif 795 796 #if !PLATFORM(APPLETV) 797 #define HAVE_AVKIT 1 798 #endif 799 800 #if ENABLE(WEBGL) 801 /* USE_ANGLE=1 uses ANGLE for the WebGL backend. 802 It replaces USE_OPENGL, USE_OPENGL_ES and USE_EGL. */ 803 #if PLATFORM(MAC) || (PLATFORM(MACCATALYST) && __has_include(<OpenGL/OpenGL.h>)) 804 #define USE_OPENGL 1 805 #define USE_OPENGL_ES 0 806 #define USE_ANGLE 0 807 #else 808 #define USE_OPENGL 0 809 #define USE_OPENGL_ES 1 810 #define USE_ANGLE 0 811 #endif 812 #if PLATFORM(COCOA) 813 #ifndef GL_SILENCE_DEPRECATION 814 #define GL_SILENCE_DEPRECATION 1 815 #endif 816 #if USE(OPENGL) && !defined(HAVE_OPENGL_4) 817 #define HAVE_OPENGL_4 1 818 #endif 819 #if USE(OPENGL_ES) && !defined(HAVE_OPENGL_ES_3) 820 #define HAVE_OPENGL_ES_3 1 821 #endif 822 #endif 823 #if USE_ANGLE && (USE_OPENGL || USE_OPENGL_ES) 824 #error USE_ANGLE is incompatible with USE_OPENGL and USE_OPENGL_ES 825 #endif 826 #endif 827 828 #define USE_METAL 1 829 830 #if ENABLE(ACCESSIBILITY) 831 #define USE_ACCESSIBILITY_CONTEXT_MENUS 1 832 #endif 833 834 #endif 835 836 #if ENABLE(WEBGL) 837 #if !defined(USE_ANGLE) 838 #define USE_ANGLE 0 839 #endif 840 841 #if (USE_ANGLE && (USE_OPENGL || USE_OPENGL_ES || (defined(USE_EGL) && USE_EGL))) && !USE(TEXTURE_MAPPER) 842 #error USE_ANGLE is incompatible with USE_OPENGL, USE_OPENGL_ES and USE_EGL 843 #endif 844 #endif 845 846 #if USE(TEXTURE_MAPPER) && ENABLE(GRAPHICS_CONTEXT_GL) && !defined(USE_TEXTURE_MAPPER_GL) 847 #define USE_TEXTURE_MAPPER_GL 1 848 #endif 849 850 #if CPU(ARM_THUMB2) || CPU(ARM64) 851 #define ENABLE_BRANCH_COMPACTION 1 852 #endif 853 854 #if !defined(ENABLE_THREADING_LIBDISPATCH) && HAVE(DISPATCH_H) 855 #define ENABLE_THREADING_LIBDISPATCH 1 856 #elif !defined(ENABLE_THREADING_OPENMP) && defined(_OPENMP) 857 #define ENABLE_THREADING_OPENMP 1 858 #elif !defined(THREADING_GENERIC) 859 #define ENABLE_THREADING_GENERIC 1 860 #endif 861 862 #if USE(GLIB) 863 #include <wtf/glib/GTypedefs.h> 864 #endif 865 866 #if !defined(USE_EXPORT_MACROS) && (PLATFORM(COCOA) || OS(WINDOWS)) 867 #define USE_EXPORT_MACROS 1 868 #endif 869 870 #if PLATFORM(GTK) || PLATFORM(WPE) 871 #define USE_UNIX_DOMAIN_SOCKETS 1 872 #endif 873 874 #if !defined(USE_IMLANG_FONT_LINK2) 875 #define USE_IMLANG_FONT_LINK2 1 876 #endif 877 878 #if !defined(ENABLE_GC_VALIDATION) && !defined(NDEBUG) 879 #define ENABLE_GC_VALIDATION 1 880 #endif 881 882 #if !defined(ENABLE_BINDING_INTEGRITY) && !OS(WINDOWS) 883 #define ENABLE_BINDING_INTEGRITY 1 884 #endif 885 886 #if !defined(ENABLE_TREE_DEBUGGING) 887 #if !defined(NDEBUG) 888 #define ENABLE_TREE_DEBUGGING 1 889 #else 890 #define ENABLE_TREE_DEBUGGING 0 891 #endif 892 #endif 893 894 /* 895 * Enable this to put each IsoHeap and other allocation categories into their own malloc heaps, so that tools like vmmap can show how big each heap is. 896 * Turn BENABLE_MALLOC_HEAP_BREAKDOWN on in bmalloc together when using this. 897 */ 898 #if !defined(ENABLE_MALLOC_HEAP_BREAKDOWN) 899 #define ENABLE_MALLOC_HEAP_BREAKDOWN 0 900 #endif 901 902 #if PLATFORM(COCOA) 903 #define USE_COREMEDIA 1 904 #define USE_VIDEOTOOLBOX 1 905 #define HAVE_AVFOUNDATION_VIDEO_OUTPUT 1 906 #define HAVE_CORE_VIDEO 1 907 #define HAVE_MEDIA_PLAYER 1 908 #endif 909 910 #if PLATFORM(COCOA) 911 #define HAVE_AVFOUNDATION_MEDIA_SELECTION_GROUP 1 912 #endif 913 914 #if PLATFORM(COCOA) 915 #define HAVE_AVFOUNDATION_LEGIBLE_OUTPUT_SUPPORT 1 916 #define HAVE_MEDIA_ACCESSIBILITY_FRAMEWORK 1 917 #endif 918 919 #if PLATFORM(COCOA) 920 #define HAVE_AVFOUNDATION_LOADER_DELEGATE 1 921 #endif 922 923 #if !PLATFORM(WIN) 924 #define USE_REQUEST_ANIMATION_FRAME_DISPLAY_MONITOR 1 925 #endif 926 927 #if PLATFORM(MAC) || PLATFORM(MACCATALYST) 928 #define HAVE_APPLE_GRAPHICS_CONTROL 1 929 #define HAVE_NSCURSOR 1 930 #endif 931 932 #if PLATFORM(MAC) 933 #define USE_COREAUDIO 1 934 #endif 935 936 #if !defined(USE_ZLIB) 937 #define USE_ZLIB 1 938 #endif 939 940 #ifndef HAVE_QOS_CLASSES 941 #if PLATFORM(COCOA) 942 #define HAVE_QOS_CLASSES 1 943 #endif 944 #endif 945 946 #ifndef HAVE_VOUCHERS 947 #if PLATFORM(COCOA) 948 #define HAVE_VOUCHERS 1 949 #endif 950 #endif 951 952 #define USE_GRAMMAR_CHECKING 1 953 954 #if PLATFORM(COCOA) || PLATFORM(GTK) 955 #define USE_UNIFIED_TEXT_CHECKING 1 956 #endif 957 #if PLATFORM(MAC) 958 #define USE_AUTOMATIC_TEXT_REPLACEMENT 1 959 #endif 960 961 #if PLATFORM(MAC) 962 /* Some platforms provide UI for suggesting autocorrection. */ 963 #define USE_AUTOCORRECTION_PANEL 1 964 #endif 965 966 #if PLATFORM(COCOA) 967 /* Some platforms use spelling and autocorrection markers to provide visual cue. On such platform, if word with marker is edited, we need to remove the marker. */ 968 #define USE_MARKER_REMOVAL_UPON_EDITING 1 969 #endif 970 971 #if PLATFORM(MAC) 972 #define USE_INSERTION_UNDO_GROUPING 1 973 #endif 974 975 #if PLATFORM(COCOA) 976 #define HAVE_AVASSETREADER 1 977 #endif 978 979 #if PLATFORM(COCOA) 980 #define USE_AUDIO_SESSION 1 981 #endif 982 983 #if PLATFORM(COCOA) 984 #define HAVE_IOSURFACE 1 985 #endif 986 987 #if PLATFORM(IOS_FAMILY) && !PLATFORM(IOS_FAMILY_SIMULATOR) 988 #define HAVE_IOSURFACE_COREIMAGE_SUPPORT 1 989 #endif 990 991 #if PLATFORM(IOS_FAMILY) && !PLATFORM(IOS_FAMILY_SIMULATOR) && !PLATFORM(MACCATALYST) 992 #define HAVE_IOSURFACE_ACCELERATOR 1 993 #endif 994 995 #if PLATFORM(COCOA) 996 #define ENABLE_RESOURCE_USAGE 1 997 #endif 998 999 #if PLATFORM(GTK) || PLATFORM(WPE) 1000 #undef ENABLE_OPENTYPE_VERTICAL 1001 #define ENABLE_OPENTYPE_VERTICAL 1 1002 #endif 1003 1004 #if COMPILER(MSVC) 1005 #undef __STDC_FORMAT_MACROS 1006 #define __STDC_FORMAT_MACROS 1007 #undef __STDC_LIMIT_MACROS 1008 #define __STDC_LIMIT_MACROS 1009 #endif 1010 1011 #if PLATFORM(MAC) 1012 #define HAVE_NS_ACTIVITY 1 1013 #endif 1014 1015 /* Disable SharedArrayBuffers until Spectre security concerns are mitigated. */ 1016 #define ENABLE_SHARED_ARRAY_BUFFER 0 1017 1018 #if (OS(DARWIN) && USE(CG)) || (USE(FREETYPE) && !PLATFORM(GTK)) || (PLATFORM(WIN) && (USE(CG) || USE(CAIRO))) 1019 #undef ENABLE_OPENTYPE_MATH 1020 #define ENABLE_OPENTYPE_MATH 1 1021 #endif 1022 1023 /* Set TARGET_OS_IPHONE to 0 by default to allow using it as a guard 1024 * in cross-platform the same way as it is used in OS(DARWIN) code. */ 1025 #if !defined(TARGET_OS_IPHONE) && !OS(DARWIN) 1026 #define TARGET_OS_IPHONE 0 1027 #endif 1028 1029 #if PLATFORM(COCOA) 1030 #define USE_MEDIATOOLBOX 1 1031 #endif 1032 1033 #if PLATFORM(COCOA) 1034 #define USE_OS_LOG 1 1035 #if USE(APPLE_INTERNAL_SDK) 1036 #define USE_OS_STATE 1 1037 #endif 1038 #endif 1039 1040 #if PLATFORM(COCOA) 1041 #define HAVE_SEC_TRUST_SERIALIZATION 1 1042 #endif 1043 1044 #if !defined(WTF_DEFAULT_EVENT_LOOP) 1045 #define WTF_DEFAULT_EVENT_LOOP 1 1046 #endif 1047 1048 #if WTF_DEFAULT_EVENT_LOOP 1049 #if USE(GLIB) 1050 /* Use GLib's event loop abstraction. Primarily GTK port uses it. */ 1051 #define USE_GLIB_EVENT_LOOP 1 1052 #elif OS(WINDOWS) 1053 /* Use Windows message pump abstraction. 1054 * Even if the port is AppleWin, we use the Windows message pump system for the event loop, 1055 * so that USE(WINDOWS_EVENT_LOOP) && USE(CF) can be true. 1056 * And PLATFORM(WIN) and PLATFORM(GTK) are exclusive. If the port is GTK, 1057 * PLATFORM(WIN) should be false. And in that case, GLib's event loop is used. 1058 */ 1059 #define USE_WINDOWS_EVENT_LOOP 1 1060 #elif PLATFORM(COCOA) 1061 /* OS X and IOS. Use CoreFoundation & GCD abstraction. */ 1062 #define USE_COCOA_EVENT_LOOP 1 1063 #else 1064 #define USE_GENERIC_EVENT_LOOP 1 1065 #endif 1066 #endif 1067 1068 #if PLATFORM(COCOA) 1069 #define USE_MEDIAREMOTE 1 1070 #endif 1071 1072 #if COMPILER(MSVC) 1073 /* Enable strict runtime stack buffer checks. */ 1074 #pragma strict_gs_check(on) 1075 #endif 1076 1077 #if PLATFORM(MAC) 1078 #define HAVE_TOUCH_BAR 1 1079 #define USE_DICTATION_ALTERNATIVES 1 1080 1081 #if defined(__LP64__) 1082 #define ENABLE_WEB_PLAYBACK_CONTROLS_MANAGER 1 1083 #endif 1084 #endif /* PLATFORM(MAC) */ 1085 1086 #if PLATFORM(COCOA) && ENABLE(WEB_RTC) 1087 #define USE_LIBWEBRTC 1 1088 #endif 1089 1090 #if PLATFORM(MAC) || PLATFORM(IOS) || PLATFORM(MACCATALYST) || USE(GCRYPT) 1091 #define HAVE_RSA_PSS 1 1092 #endif 1093 1094 #if (PLATFORM(MAC) && USE(APPLE_INTERNAL_SDK) && __MAC_OS_X_VERSION_MIN_REQUIRED >= 101500) || PLATFORM(IOS_FAMILY) 1095 #define USE_SOURCE_APPLICATION_AUDIT_DATA 1 1096 #endif 1097 1098 #if (PLATFORM(MAC) && __MAC_OS_X_VERSION_MIN_REQUIRED >= 101500) || (PLATFORM(IOS_FAMILY) && __IPHONE_OS_VERSION_MIN_REQUIRED >= 130000) 1099 #define HAVE_HSTS_STORAGE_PATH 1 1100 #endif 1101 1102 #if (PLATFORM(MAC) && __MAC_OS_X_VERSION_MIN_REQUIRED >= 101400) || PLATFORM(IOS) || PLATFORM(MACCATALYST) 1103 #define HAVE_URL_FORMATTING 1 1104 #endif 1105 1106 #if !OS(WINDOWS) 1107 #define HAVE_STACK_BOUNDS_FOR_NEW_THREAD 1 1108 #endif 1109 1110 #if PLATFORM(MAC) || PLATFORM(IOS) || PLATFORM(MACCATALYST) 1111 #define HAVE_AVCONTENTKEYSESSION 1 1112 #endif 1113 1114 #if (PLATFORM(MAC) && __MAC_OS_X_VERSION_MIN_REQUIRED >= 101400) || PLATFORM(IOS) || PLATFORM(MACCATALYST) 1115 #define HAVE_SEC_KEY_PROXY 1 1116 #endif 1117 1118 #if PLATFORM(COCOA) && USE(CA) 1119 #define USE_IOSURFACE_CANVAS_BACKING_STORE 1 1120 #endif 1121 1122 /* FIXME: Should this be enabled or IOS_FAMILY, not just IOS? */ 1123 #if (PLATFORM(MAC) && __MAC_OS_X_VERSION_MIN_REQUIRED >= 101400) || PLATFORM(IOS) 1124 #define HAVE_FOUNDATION_WITH_SAVE_COOKIES_WITH_COMPLETION_HANDLER 1 1125 #endif 1126 1127 /* FIXME: Should this be enabled for IOS_FAMILY, not just IOS? */ 1128 #if (PLATFORM(MAC) && __MAC_OS_X_VERSION_MIN_REQUIRED >= 101400) || PLATFORM(IOS) 1129 #define HAVE_FOUNDATION_WITH_SAME_SITE_COOKIE_SUPPORT 1 1130 #endif 1131 1132 #if PLATFORM(MAC) && __MAC_OS_X_VERSION_MAX_ALLOWED < 101400 1133 #define HAVE_NSHTTPCOOKIESTORAGE__INITWITHIDENTIFIER_WITH_INACCURATE_NULLABILITY 1 1134 #endif 1135 1136 #if PLATFORM(COCOA) 1137 #define HAVE_CFNETWORK_WITH_CONTENT_ENCODING_SNIFFING_OVERRIDE 1 1138 /* The override isn't needed on iOS family, as the default behavior is to not sniff. */ 1139 /* FIXME: This should probably be enabled on 10.13.2 and newer, not just 10.14 and newer. */ 1140 #if PLATFORM(MAC) && __MAC_OS_X_VERSION_MIN_REQUIRED >= 101400 1141 #define USE_CFNETWORK_CONTENT_ENCODING_SNIFFING_OVERRIDE 1 1142 #endif 1143 #endif 1144 1145 #if (PLATFORM(MAC) && __MAC_OS_X_VERSION_MIN_REQUIRED >= 101400) || (PLATFORM(IOS_FAMILY) && __IPHONE_OS_VERSION_MIN_REQUIRED >= 130000) || PLATFORM(GTK) 1146 #define HAVE_OS_DARK_MODE_SUPPORT 1 1147 #endif 1148 1149 #if PLATFORM(MAC) && __MAC_OS_X_VERSION_MIN_REQUIRED >= 101400 1150 #define HAVE_CG_FONT_RENDERING_GET_FONT_SMOOTHING_DISABLED 1 1151 #endif 1152 1153 #if (PLATFORM(MAC) && __MAC_OS_X_VERSION_MIN_REQUIRED >= 101500) || PLATFORM(IOS_FAMILY) 1154 #define HAVE_CA_WHERE_ADDITIVE_TRANSFORMS_ARE_REVERSED 1 1155 #endif 1156 1157 #ifdef __APPLE__ 1158 #define HAVE_FUNC_USLEEP 1 1159 #endif 1160 1161 #if PLATFORM(MAC) || PLATFORM(WPE) 1162 /* FIXME: This really needs a descriptive name, this "new theme" was added in 2008. */ 1163 #define USE_NEW_THEME 1 1164 #endif 1165 1166 #if PLATFORM(MAC) 1167 #define HAVE_WINDOW_SERVER_OCCLUSION_NOTIFICATIONS 1 1168 #endif 1169 1170 #if PLATFORM(COCOA) 1171 #define HAVE_SEC_ACCESS_CONTROL 1 1172 #endif 1173 1174 #if PLATFORM(IOS) 1175 /* FIXME: SafariServices.framework exists on macOS. It is only used by WebKit on iOS, so the behavior is correct, but the name is misleading. */ 1176 #define HAVE_SAFARI_SERVICES_FRAMEWORK 1 1177 #endif 1178 1179 #if PLATFORM(MAC) || PLATFORM(IOS) || PLATFORM(WATCHOS) 1180 #define HAVE_SAFE_BROWSING 1 1181 #endif 1182 1183 #if PLATFORM(IOS) 1184 #define HAVE_LINK_PREVIEW 1 1185 #endif 1186 1187 #if PLATFORM(COCOA) 1188 /* FIXME: This is a USE style macro, as it triggers the use of CFURLConnection framework stubs. */ 1189 /* FIXME: Is this still necessary? CFURLConnection isn't used on Cocoa platforms any more. */ 1190 #define ENABLE_SEC_ITEM_SHIM 1 1191 #endif 1192 1193 #if (PLATFORM(IOS_FAMILY) || (PLATFORM(MAC) && __MAC_OS_X_VERSION_MIN_REQUIRED >= 101400)) 1194 #define HAVE_ACCESSIBILITY_SUPPORT 1 1195 #endif 1196 1197 #if PLATFORM(IOS_FAMILY) && __IPHONE_OS_VERSION_MIN_REQUIRED >= 130000 && __IPHONE_OS_VERSION_MAX_ALLOWED >= 130100 1198 #define HAVE_ACCESSIBILITY_BUNDLES_PATH 1 1199 #endif 1200 1201 #if PLATFORM(MAC) 1202 #define ENABLE_FULL_KEYBOARD_ACCESS 1 1203 #endif 1204 1205 #if ((PLATFORM(COCOA) || PLATFORM(PLAYSTATION) || PLATFORM(WPE)) && ENABLE(ASYNC_SCROLLING)) || PLATFORM(GTK) 1206 #define ENABLE_KINETIC_SCROLLING 1 1207 #endif 1208 1209 #if PLATFORM(IOS_FAMILY) || (PLATFORM(MAC) && __MAC_OS_X_VERSION_MIN_REQUIRED >= 101400) 1210 #define HAVE_AUTHORIZATION_STATUS_FOR_MEDIA_TYPE 1 1211 #endif 1212 1213 #if (PLATFORM(MAC) && (__MAC_OS_X_VERSION_MIN_REQUIRED >= 101400 && __MAC_OS_X_VERSION_MAX_ALLOWED >= 101404)) || (PLATFORM(IOS) && __IPHONE_OS_VERSION_MIN_REQUIRED >= 120000 && __IPHONE_OS_VERSION_MAX_ALLOWED >= 120200) || PLATFORM(WATCHOS) || PLATFORM(APPLETV) 1214 #define HAVE_CFNETWORK_OVERRIDE_SESSION_COOKIE_ACCEPT_POLICY 1 1215 #endif 1216 1217 #if (PLATFORM(MAC) && __MAC_OS_X_VERSION_MIN_REQUIRED >= 101500) || (PLATFORM(IOS_FAMILY) && __IPHONE_OS_VERSION_MIN_REQUIRED >= 130000) 1218 #define HAVE_CFNETWORK_NSURLSESSION_STRICTRUSTEVALUATE 1 1219 #endif 1220 1221 #if (PLATFORM(MAC) && __MAC_OS_X_VERSION_MIN_REQUIRED >= 101500) || PLATFORM(IOS_FAMILY) 1222 #define HAVE_CFNETWORK_NEGOTIATED_SSL_PROTOCOL_CIPHER 1 1223 #endif 1224 1225 #if (PLATFORM(MAC) && __MAC_OS_X_VERSION_MIN_REQUIRED >= 101600) || (PLATFORM(IOS_FAMILY) && __IPHONE_OS_VERSION_MIN_REQUIRED >= 140000) 1226 #define HAVE_CFNETWORK_METRICS_APIS_V4 1 1227 #endif 1228 1229 #if PLATFORM(MAC) && __MAC_OS_X_VERSION_MIN_REQUIRED >= 101500 1230 #define HAVE_CSCHECKFIXDISABLE 1 1231 #endif 1232 1233 #if (PLATFORM(MAC) && __MAC_OS_X_VERSION_MIN_REQUIRED >= 101400) || PLATFORM(IOS_FAMILY) 1234 #define HAVE_SANDBOX_ISSUE_MACH_EXTENSION_TO_PROCESS_BY_AUDIT_TOKEN 1 1235 #endif 1236 1237 #if (PLATFORM(MAC) && __MAC_OS_X_VERSION_MIN_REQUIRED >= 101400) || PLATFORM(IOS_FAMILY) 1238 #define HAVE_SANDBOX_ISSUE_READ_EXTENSION_TO_PROCESS_BY_AUDIT_TOKEN 1 1239 #endif 1240 1241 #if (PLATFORM(MAC) && __MAC_OS_X_VERSION_MIN_REQUIRED >= 101500) || (PLATFORM(IOS_FAMILY) && __IPHONE_OS_VERSION_MIN_REQUIRED >= 130000) 1242 #define HAVE_MDNS_FAST_REGISTRATION 1 1243 #endif 1244 1245 #if PLATFORM(MAC) 1246 #define ENABLE_MONOSPACE_FONT_EXCEPTION (__MAC_OS_X_VERSION_MIN_REQUIRED < 101500) 1247 #elif PLATFORM(IOS_FAMILY) 1248 #define ENABLE_MONOSPACE_FONT_EXCEPTION (__IPHONE_OS_VERSION_MIN_REQUIRED < 130000) 1249 #endif 1250 1251 #if (PLATFORM(MAC) && __MAC_OS_X_VERSION_MIN_REQUIRED >= 101400) || PLATFORM(IOS_FAMILY) 1252 #define HAVE_DISALLOWABLE_USER_INSTALLED_FONTS 1 1253 #endif 1254 1255 #if (PLATFORM(MAC) && __MAC_OS_X_VERSION_MIN_REQUIRED >= 101500) || (PLATFORM(IOS_FAMILY) && __IPHONE_OS_VERSION_MIN_REQUIRED >= 130000) 1256 #define HAVE_CTFONTCREATEFORCHARACTERSWITHLANGUAGEANDOPTION 1 1257 #endif 1258 1259 #if PLATFORM(IOS_FAMILY) && __IPHONE_OS_VERSION_MIN_REQUIRED >= 130000 1260 #define HAVE_ARKIT_QUICK_LOOK_PREVIEW_ITEM 1 1261 #endif 1262 1263 #if PLATFORM(IOS_FAMILY) && __IPHONE_OS_VERSION_MIN_REQUIRED >= 130000 1264 #define HAVE_UI_WK_DOCUMENT_CONTEXT 1 1265 #endif 1266 1267 #if PLATFORM(MACCATALYST) 1268 #define ENABLE_PLATFORM_DRIVEN_TEXT_CHECKING 1 1269 #define HAVE_HOVER_GESTURE_RECOGNIZER 1 1270 #define HAVE_UI_PARALLAX_TRANSITION_GESTURE_RECOGNIZER 1 1271 #endif 1272 1273 #if (PLATFORM(MAC) && __MAC_OS_X_VERSION_MIN_REQUIRED >= 101500) || PLATFORM(IOS_FAMILY) 1274 #define HAVE_ALLOWS_SENSITIVE_LOGGING 1 1275 #endif 1276 1277 #if (PLATFORM(MAC) && __MAC_OS_X_VERSION_MIN_REQUIRED >= 101500) || PLATFORM(IOS_FAMILY) 1278 #define HAVE_FAIRPLAYSTREAMING_CENC_INITDATA 1 1279 #endif 1280 1281 #if (PLATFORM(IOS) && __IPHONE_OS_VERSION_MIN_REQUIRED >= 130000) || PLATFORM(WATCHOS) || PLATFORM(APPLETV) 1282 #define HAVE_UI_SCROLL_VIEW_INDICATOR_FLASHING_SPI 1 1283 #endif 1284 1285 #if (PLATFORM(IOS) && __IPHONE_OS_VERSION_MIN_REQUIRED >= 130000) || PLATFORM(WATCHOS) || PLATFORM(APPLETV) 1286 #define HAVE_APP_LINKS_WITH_ISENABLED 1 1287 #endif 1288 1289 #if (PLATFORM(IOS) && __IPHONE_OS_VERSION_MIN_REQUIRED >= 130000) 1290 #define HAVE_ROUTE_SHARING_POLICY_LONG_FORM_VIDEO 1 1291 #endif 1292 1293 #if (PLATFORM(IOS) && __IPHONE_OS_VERSION_MIN_REQUIRED >= 120000 && !PLATFORM(IOS_SIMULATOR)) 1294 #define HAVE_DEVICE_MANAGEMENT 1 1295 #endif 1296 1297 #if PLATFORM(MAC) && __MAC_OS_X_VERSION_MAX_ALLOWED < 101500 1298 #define USE_REALPATH_FOR_DLOPEN_PREFLIGHT 1 1299 #endif 1300 1301 #if (PLATFORM(MAC) && __MAC_OS_X_VERSION_MIN_REQUIRED >= 101500) || (PLATFORM(IOS_FAMILY) && __IPHONE_OS_VERSION_MIN_REQUIRED >= 130000) || PLATFORM(WATCHOS) || PLATFORM(APPLETV) 1302 #define HAVE_NSURLSESSION_WEBSOCKET 1 1303 #endif 1304 1305 #if (PLATFORM(MAC) && __MAC_OS_X_VERSION_MIN_REQUIRED >= 101500) || (PLATFORM(IOS) && __IPHONE_OS_VERSION_MIN_REQUIRED >= 130000) || PLATFORM(WATCHOS) || PLATFORM(APPLETV) 1306 #define HAVE_AVPLAYER_RESOURCE_CONSERVATION_LEVEL 1 1307 #endif 1308 1309 #if (PLATFORM(MAC) && __MAC_OS_X_VERSION_MIN_REQUIRED >= 101400) || (PLATFORM(IOS) && __IPHONE_OS_VERSION_MIN_REQUIRED >= 120000) || PLATFORM(WATCHOS) || PLATFORM(APPLETV) 1310 #define HAVE_CORETEXT_AUTO_OPTICAL_SIZING 1 1311 #endif 1312 1313 #if (PLATFORM(MAC) && __MAC_OS_X_VERSION_MIN_REQUIRED < 101500) || (PLATFORM(IOS) && __IPHONE_OS_VERSION_MIN_REQUIRED < 130000) 1314 #define HAVE_NSFONT_WITH_OPTICAL_SIZING_BUG 1 1315 #endif 1316 1317 #if (PLATFORM(IOS) || (PLATFORM(MAC) && __MAC_OS_X_VERSION_MIN_REQUIRED >= 101500)) 1318 #define HAVE_APP_SSO 1 1319 #endif 1320 1321 #if (PLATFORM(IOS) && __IPHONE_OS_VERSION_MIN_REQUIRED >= 130000 || PLATFORM(MAC) && __MAC_OS_X_VERSION_MIN_REQUIRED >= 101500) || PLATFORM(WATCHOS) || PLATFORM(APPLETV) || PLATFORM(MACCATALYST) 1322 #define HAVE_TLS_PROTOCOL_VERSION_T 1 1323 #endif 1324 1325 #if PLATFORM(IOS) || (PLATFORM(MAC) && __MAC_OS_X_VERSION_MIN_REQUIRED >= 101400) || PLATFORM(WATCHOS) || PLATFORM(APPLETV) || PLATFORM(MACCATALYST) 1326 #define HAVE_SEC_TRUST_EVALUATE_WITH_ERROR 1 1327 #endif 1328 1329 #if PLATFORM(IOS) || PLATFORM(MACCATALYST) 1330 #define USE_UICONTEXTMENU 1 1331 #endif 1332 1333 #if PLATFORM(MAC) && __MAC_OS_X_VERSION_MIN_REQUIRED >= 101500 1334 #define HAVE_SUBVIEWS_IVAR_SPI 1 1335 #endif 1336 1337 #if PLATFORM(MAC) && __MAC_OS_X_VERSION_MAX_ALLOWED < 101500 1338 #define HAVE_SUBVIEWS_IVAR_DECLARED_BY_SDK 1 1339 #endif 1340 1341 #if PLATFORM(MAC) || (PLATFORM(IOS_FAMILY) && __IPHONE_OS_VERSION_MIN_REQUIRED >= 110000) || PLATFORM(WATCHOS) || PLATFORM(APPLETV) 1342 #define USE_PLATFORM_SYSTEM_FALLBACK_LIST 1 1343 #endif 1344 1345 #if PLATFORM(MAC) && __MAC_OS_X_VERSION_MAX_ALLOWED >= 101500 1346 #define HAVE_AX_CLIENT_TYPE 1 1347 #endif 1348 1349 #if (PLATFORM(MAC) && __MAC_OS_X_VERSION_MIN_REQUIRED >= 101500) || (PLATFORM(IOS) && __IPHONE_OS_VERSION_MIN_REQUIRED >= 130000) || PLATFORM(WATCHOS) || PLATFORM(APPLETV) 1350 #define HAVE_DESIGN_SYSTEM_UI_FONTS 1 1351 #endif 1352 1353 #if (PLATFORM(MAC) && __MAC_OS_X_VERSION_MIN_REQUIRED >= 101400) || (PLATFORM(IOS) && !PLATFORM(IOS_SIMULATOR)) 1354 #define HAVE_DEVICE_IDENTITY 1 1355 #endif 1356 1357 #if (PLATFORM(MAC) && __MAC_OS_X_VERSION_MIN_REQUIRED >= 101500) || PLATFORM(IOS_FAMILY) 1358 #define HAVE_DATA_PROTECTION_KEYCHAIN 1 1359 #endif 1360 1361 #if (PLATFORM(MAC) && __MAC_OS_X_VERSION_MIN_REQUIRED >= 101500) || (PLATFORM(IOS_FAMILY) && !PLATFORM(IOS_FAMILY_SIMULATOR)) 1362 #define HAVE_NEAR_FIELD 1 1363 #endif 1364 1365 #if PLATFORM(IOS_FAMILY) || (!(defined(USE_SYSTEM_MALLOC) && USE_SYSTEM_MALLOC) && (OS(LINUX) && (PLATFORM(GTK) || PLATFORM(WPE)))) 1366 #define USE_BMALLOC_MEMORY_FOOTPRINT_API 1 1367 #endif 1368 1369 #if (PLATFORM(MAC) && __MAC_OS_X_VERSION_MIN_REQUIRED >= 101400) || PLATFORM(IOS_FAMILY) 1370 #define HAVE_OS_SIGNPOST 1 1371 #endif 128 #define WTF_OS_WIN ERROR "USE WINDOWS WITH OS NOT WIN" 129 #define WTF_OS_MAC ERROR "USE MAC_OS_X WITH OS NOT MAC" -
trunk/Source/WTF/wtf/Platform.h
r254401 r254417 34 34 #include <wtf/CPU.h> 35 35 36 /* Include underlying operating system specific macros */ 37 #include <wtf/OS.h> 38 36 39 /* ==== PLATFORM handles OS, operating environment, graphics API, and 37 40 CPU. This macro will be phased out in favor of platform adaptation … … 42 45 /* ==== Platform adaptation macros: these describe properties of the target environment. ==== */ 43 46 44 /* CPU() - the target CPU architecture */45 #define CPU(WTF_FEATURE) (defined WTF_CPU_##WTF_FEATURE && WTF_CPU_##WTF_FEATURE)46 47 /* HAVE() - specific system features (headers, functions or similar) that are present or not */ 47 48 #define HAVE(WTF_FEATURE) (defined HAVE_##WTF_FEATURE && HAVE_##WTF_FEATURE) 48 /* OS() - underlying operating system; only to be used for mandated low-level services like49 virtual memory, not to choose a GUI toolkit */50 #define OS(WTF_FEATURE) (defined WTF_OS_##WTF_FEATURE && WTF_OS_##WTF_FEATURE)51 49 52 50 … … 85 83 86 84 87 88 /* ==== OS() - underlying operating system; only to be used for mandated low-level services like89 virtual memory, not to choose a GUI toolkit ==== */90 91 /* OS(AIX) - AIX */92 #ifdef _AIX93 #define WTF_OS_AIX 194 #endif95 96 /* OS(DARWIN) - Any Darwin-based OS, including Mac OS X and iPhone OS */97 #ifdef __APPLE__98 #define WTF_OS_DARWIN 199 100 #include <Availability.h>101 #include <AvailabilityMacros.h>102 #include <TargetConditionals.h>103 #endif104 105 /* OS(IOS_FAMILY) - iOS family, including iOS, macCatalyst, tvOS, watchOS */106 /* OS(IOS) - iOS only, not including macCatalyst */107 /* OS(MAC_OS_X) - macOS (not including iOS family) */108 #if OS(DARWIN)109 #if TARGET_OS_IOS && !(defined(TARGET_OS_MACCATALYST) && TARGET_OS_MACCATALYST)110 #define WTF_OS_IOS 1111 #endif112 #if TARGET_OS_IPHONE113 #define WTF_OS_IOS_FAMILY 1114 #elif TARGET_OS_MAC115 #define WTF_OS_MAC_OS_X 1116 #endif117 #endif118 119 /* OS(FREEBSD) - FreeBSD */120 #if defined(__FreeBSD__) || defined(__DragonFly__) || defined(__FreeBSD_kernel__)121 #define WTF_OS_FREEBSD 1122 #endif123 124 /* OS(FUCHSIA) - Fuchsia */125 #ifdef __Fuchsia__126 #define WTF_OS_FUCHSIA 1127 #endif128 129 /* OS(HURD) - GNU/Hurd */130 #ifdef __GNU__131 #define WTF_OS_HURD 1132 #endif133 134 /* OS(LINUX) - Linux */135 #ifdef __linux__136 #define WTF_OS_LINUX 1137 #endif138 139 /* OS(NETBSD) - NetBSD */140 #if defined(__NetBSD__)141 #define WTF_OS_NETBSD 1142 #endif143 144 /* OS(OPENBSD) - OpenBSD */145 #ifdef __OpenBSD__146 #define WTF_OS_OPENBSD 1147 #endif148 149 /* OS(WINDOWS) - Any version of Windows */150 #if defined(WIN32) || defined(_WIN32)151 #define WTF_OS_WINDOWS 1152 #endif153 154 #define WTF_OS_WIN ERROR "USE WINDOWS WITH OS NOT WIN"155 #define WTF_OS_MAC ERROR "USE MAC_OS_X WITH OS NOT MAC"156 157 /* OS(UNIX) - Any Unix-like system */158 #if OS(AIX) \159 || OS(DARWIN) \160 || OS(FREEBSD) \161 || OS(FUCHSIA) \162 || OS(HURD) \163 || OS(LINUX) \164 || OS(NETBSD) \165 || OS(OPENBSD) \166 || defined(unix) \167 || defined(__unix) \168 || defined(__unix__)169 #define WTF_OS_UNIX 1170 #endif171 85 172 86 /* Operating environments */
Note: See TracChangeset
for help on using the changeset viewer.