1 | // |
2 | // Platform_POSIX.h |
3 | // |
4 | // Library: Foundation |
5 | // Package: Core |
6 | // Module: Platform |
7 | // |
8 | // Platform and architecture identification macros |
9 | // and platform-specific definitions for various POSIX platforms |
10 | // |
11 | // Copyright (c) 2004-2006, Applied Informatics Software Engineering GmbH. |
12 | // and Contributors. |
13 | // |
14 | // SPDX-License-Identifier: BSL-1.0 |
15 | // |
16 | |
17 | |
18 | #ifndef Foundation_Platform_POSIX_INCLUDED |
19 | #define Foundation_Platform_POSIX_INCLUDED |
20 | |
21 | |
22 | // |
23 | // PA-RISC based HP-UX platforms have some issues... |
24 | // |
25 | #if defined(hpux) || defined(_hpux) |
26 | #if defined(__hppa) || defined(__hppa__) |
27 | #define POCO_NO_SYS_SELECT_H 1 |
28 | #if defined(__HP_aCC) |
29 | #define POCO_NO_TEMPLATE_ICOMPARE 1 |
30 | #endif |
31 | #endif |
32 | #endif |
33 | |
34 | |
35 | // |
36 | // Thread-safety of local static initialization |
37 | // |
38 | #if __cplusplus >= 201103L || __GNUC__ >= 4 || defined(__clang__) |
39 | #ifndef POCO_LOCAL_STATIC_INIT_IS_THREADSAFE |
40 | #define POCO_LOCAL_STATIC_INIT_IS_THREADSAFE 1 |
41 | #endif |
42 | #endif |
43 | |
44 | |
45 | // |
46 | // No syslog.h on QNX/BB10 |
47 | // |
48 | #if defined(__QNXNTO__) |
49 | #define POCO_NO_SYSLOGCHANNEL |
50 | #endif |
51 | |
52 | |
53 | // |
54 | // C++14 support |
55 | // |
56 | |
57 | // Enable C++14 support for AppleClang 503.x (Clang 3.4) |
58 | #if defined(__clang__) && defined(__apple_build_version__) && (__apple_build_version__ >= 5030038) && !defined(POCO_ENABLE_CPP14) && !defined(POCO_DISABLE_CPP14) |
59 | #define POCO_ENABLE_CPP14 |
60 | #endif |
61 | |
62 | // Enable C++14 support for Clang 3.4 |
63 | #if defined(__clang__) && !defined(__apple_build_version__) && (__clang_major__ > 3 || (__clang_major__ == 3 && __clang_minor__ >= 4)) && !defined(POCO_ENABLE_CPP14) && !defined(POCO_DISABLE_CPP14) |
64 | #define POCO_ENABLE_CPP14 |
65 | #endif |
66 | |
67 | // Enable C++14 support for GCC 4.9.2 |
68 | #if defined(__GNUC__) && (__GNUC__ > 4 || (__GNUC__ == 4 && (__GNUC_MINOR__ > 9 || (__GNUC_MINOR__ == 9 && __GNUC_PATCHLEVEL__ >= 2)))) && !defined(POCO_ENABLE_CPP14) && !defined(POCO_DISABLE_CPP14) |
69 | #define POCO_ENABLE_CPP14 |
70 | #endif |
71 | |
72 | |
73 | #endif // Foundation_Platform_POSIX_INCLUDED |
74 | |