Projet_SETI_RISC-V/riscv-gnu-toolchain/gcc/libphobos/libdruntime/core/sys/posix/config.d
2023-03-06 14:48:14 +01:00

234 lines
6.4 KiB
D

/**
* D header file for POSIX.
*
* Copyright: Copyright Sean Kelly 2005 - 2009.
* License: $(HTTP www.boost.org/LICENSE_1_0.txt, Boost License 1.0).
* Authors: Sean Kelly,
Alex Rønne Petersen
* Standards: The Open Group Base Specifications Issue 6, IEEE Std 1003.1, 2004 Edition
*/
/* Copyright Sean Kelly 2005 - 2009.
* Distributed under the Boost Software License, Version 1.0.
* (See accompanying file LICENSE or copy at
* http://www.boost.org/LICENSE_1_0.txt)
*/
module core.sys.posix.config;
public import core.stdc.config;
version (Posix):
extern (C) nothrow @nogc:
@system:
enum _XOPEN_SOURCE = 600;
enum _POSIX_SOURCE = true;
enum _POSIX_C_SOURCE = 200112L;
version (CRuntime_Glibc)
{
// man 7 feature_test_macros
// http://www.gnu.org/software/libc/manual/html_node/Feature-Test-Macros.html
enum _GNU_SOURCE = false;
enum _DEFAULT_SOURCE = false;
enum _ATFILE_SOURCE = false;
// _BSD_SOURCE and _SVID_SOURCE are deprecated aliases for _DEFAULT_SOURCE.
deprecated("use _DEFAULT_SOURCE")
{
enum _BSD_SOURCE = false;
enum _SVID_SOURCE = false;
}
enum _FILE_OFFSET_BITS = 64;
// <sys/cdefs.h>
enum __REDIRECT = false;
enum _REENTRANT = true; // set by compiler when linking -pthread
// deduced <features.h>
enum __USE_FILE_OFFSET64 = _FILE_OFFSET_BITS == 64;
enum __USE_LARGEFILE = __USE_FILE_OFFSET64 && !__REDIRECT;
enum __USE_LARGEFILE64 = __USE_FILE_OFFSET64 && !__REDIRECT;
deprecated("use _XOPEN_SOURCE >= 600")
{
enum __USE_XOPEN2K = _XOPEN_SOURCE >= 600;
enum __USE_XOPEN2KXSI = _XOPEN_SOURCE >= 600;
}
deprecated("use _XOPEN_SOURCE >= 700")
{
enum __USE_XOPEN2K8 = _XOPEN_SOURCE >= 700;
enum __USE_XOPEN2K8XSI = _XOPEN_SOURCE >= 700;
}
deprecated("use _DEFAULT_SOURCE")
enum __USE_MISC = _DEFAULT_SOURCE;
deprecated("use _ATFILE_SOURCE")
enum __USE_ATFILE = _ATFILE_SOURCE;
deprecated("use _GNU_SOURCE")
enum __USE_GNU = _GNU_SOURCE;
deprecated("use _REENTRANT")
enum __USE_REENTRANT = _REENTRANT;
version (D_LP64)
enum __WORDSIZE = 64;
else
enum __WORDSIZE = 32;
}
else version (CRuntime_Musl)
{
enum _GNU_SOURCE = false;
enum _DEFAULT_SOURCE = false;
enum _ATFILE_SOURCE = false;
// off_t is always 64 bits on Musl
enum _FILE_OFFSET_BITS = 64;
// Not present in Musl sources
enum __REDIRECT = false;
// Those three are irrelevant for Musl as it always uses 64 bits off_t
enum __USE_FILE_OFFSET64 = _FILE_OFFSET_BITS == 64;
enum __USE_LARGEFILE = __USE_FILE_OFFSET64 && !__REDIRECT;
enum __USE_LARGEFILE64 = __USE_FILE_OFFSET64 && !__REDIRECT;
version (D_LP64)
enum __WORDSIZE = 64;
else
enum __WORDSIZE = 32;
}
else version (CRuntime_UClibc)
{
enum _GNU_SOURCE = false;
enum _DEFAULT_SOURCE = false;
enum _ATFILE_SOURCE = false;
enum _FILE_OFFSET_BITS = 64;
enum __REDIRECT = false;
enum _REENTRANT = true;
enum __USE_FILE_OFFSET64 = _FILE_OFFSET_BITS == 64;
enum __USE_LARGEFILE = __USE_FILE_OFFSET64 && !__REDIRECT;
enum __USE_LARGEFILE64 = __USE_FILE_OFFSET64 && !__REDIRECT;
deprecated("use _XOPEN_SOURCE >= 600")
{
enum __USE_XOPEN2K = _XOPEN_SOURCE >= 600;
enum __USE_XOPEN2KXSI = _XOPEN_SOURCE >= 600;
}
deprecated("use _XOPEN_SOURCE >= 700")
{
enum __USE_XOPEN2K8 = _XOPEN_SOURCE >= 700;
enum __USE_XOPEN2K8XSI = _XOPEN_SOURCE >= 700;
}
deprecated("use _DEFAULT_SOURCE")
enum __USE_MISC = _DEFAULT_SOURCE;
deprecated("use _ATFILE_SOURCE")
enum __USE_ATFILE = _ATFILE_SOURCE;
deprecated("use _GNU_SOURCE")
enum __USE_GNU = _GNU_SOURCE;
deprecated("use _REENTRANT")
enum __USE_REENTRANT = _REENTRANT;
version (D_LP64)
enum __WORDSIZE = 64;
else
enum __WORDSIZE = 32;
}
else version (CRuntime_Bionic)
{
enum _GNU_SOURCE = false;
enum _DEFAULT_SOURCE = false;
enum _ATFILE_SOURCE = false;
enum __USE_FILE_OFFSET64 = false; // see https://android.googlesource.com/platform/bionic/+/master/docs/32-bit-abi.md
deprecated("use _GNU_SOURCE")
enum __USE_GNU = _GNU_SOURCE;
version (D_LP64)
enum __WORDSIZE = 64;
else
enum __WORDSIZE = 32;
}
else version (OpenBSD)
{
version (Alpha)
{
enum _ALIGNBYTES = 7;
enum _STACKALIGNBYTES = 7;
enum _MAX_PAGE_SHIFT = 13;
}
else version (X86_64)
{
enum _ALIGNBYTES = c_long.sizeof - 1;
enum _STACKALIGNBYTES = 15;
enum _MAX_PAGE_SHIFT = 12;
}
else version (AArch64)
{
enum _ALIGNBYTES = c_long.sizeof - 1;
enum _STACKALIGNBYTES = 15;
enum _MAX_PAGE_SHIFT = 12;
}
else version (ARM)
{
enum _ALIGNBYTES = 7;
enum _STACKALIGNBYTES = 7;
enum _MAX_PAGE_SHIFT = 12;
}
else version (HPPA)
{
enum _ALIGNBYTES = 7;
enum _STACKALIGNBYTES = 7;
enum _MAX_PAGE_SHIFT = 12;
}
else version (X86)
{
enum _ALIGNBYTES = 3;
enum _STACKALIGNBYTES = 15;
enum _MAX_PAGE_SHIFT = 12;
}
else version (PPC)
{
enum _ALIGNBYTES = 7;
enum _STACKALIGNBYTES = 15;
enum _MAX_PAGE_SHIFT = 12;
}
else version (SPARC64)
{
enum _ALIGNBYTES = 15;
enum _STACKALIGNBYTES = 15;
enum _MAX_PAGE_SHIFT = 13;
}
else
static assert(false, "Architecture not supported.");
}
else version (Solaris)
{
enum _FILE_OFFSET_BITS = 64;
enum __REDIRECT = false;
enum __USE_FILE_OFFSET64 = _FILE_OFFSET_BITS == 64;
enum __USE_LARGEFILE = __USE_FILE_OFFSET64 && !__REDIRECT;
enum __USE_LARGEFILE64 = __USE_FILE_OFFSET64 && !__REDIRECT;
deprecated("use _XOPEN_SOURCE >= 600")
{
enum __USE_XOPEN2K = _XOPEN_SOURCE >= 600;
enum __USE_XOPEN2KXSI = _XOPEN_SOURCE >= 600;
}
deprecated("use _XOPEN_SOURCE >= 700")
{
enum __USE_XOPEN2K8 = _XOPEN_SOURCE >= 700;
enum __USE_XOPEN2K8XSI = _XOPEN_SOURCE >= 700;
}
version (D_LP64)
enum __WORDSIZE = 64;
else
enum __WORDSIZE = 32;
}