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