Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
freebsd
GitHub Repository: freebsd/freebsd-src
Path: blob/main/contrib/llvm-project/libcxx/include/__configuration/platform.h
35259 views
1
// -*- C++ -*-
2
//===----------------------------------------------------------------------===//
3
//
4
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
5
// See https://llvm.org/LICENSE.txt for license information.
6
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
7
//
8
//===----------------------------------------------------------------------===//
9
10
#ifndef _LIBCPP___CONFIGURATION_PLATFORM_H
11
#define _LIBCPP___CONFIGURATION_PLATFORM_H
12
13
#include <__config_site>
14
15
#ifndef _LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER
16
# pragma GCC system_header
17
#endif
18
19
#if defined(__ELF__)
20
# define _LIBCPP_OBJECT_FORMAT_ELF 1
21
#elif defined(__MACH__)
22
# define _LIBCPP_OBJECT_FORMAT_MACHO 1
23
#elif defined(_WIN32)
24
# define _LIBCPP_OBJECT_FORMAT_COFF 1
25
#elif defined(__wasm__)
26
# define _LIBCPP_OBJECT_FORMAT_WASM 1
27
#elif defined(_AIX)
28
# define _LIBCPP_OBJECT_FORMAT_XCOFF 1
29
#else
30
// ... add new file formats here ...
31
#endif
32
33
// Need to detect which libc we're using if we're on Linux.
34
#if defined(__linux__)
35
# include <features.h>
36
# if defined(__GLIBC_PREREQ)
37
# define _LIBCPP_GLIBC_PREREQ(a, b) __GLIBC_PREREQ(a, b)
38
# else
39
# define _LIBCPP_GLIBC_PREREQ(a, b) 0
40
# endif // defined(__GLIBC_PREREQ)
41
#endif // defined(__linux__)
42
43
#ifndef __BYTE_ORDER__
44
# error \
45
"Your compiler doesn't seem to define __BYTE_ORDER__, which is required by libc++ to know the endianness of your target platform"
46
#endif
47
48
#if __BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__
49
# define _LIBCPP_LITTLE_ENDIAN
50
#elif __BYTE_ORDER__ == __ORDER_BIG_ENDIAN__
51
# define _LIBCPP_BIG_ENDIAN
52
#endif // __BYTE_ORDER__ == __ORDER_BIG_ENDIAN__
53
54
#endif // _LIBCPP___CONFIGURATION_PLATFORM_H
55
56