forked from OSchip/llvm-project
[libc++] Partially revert 346ef5e587
This moves the macro definitions back to __config, but keeps the
improved documentation. 346ef5e587
had broken the MinGW build.
This commit is contained in:
parent
2477e69c6d
commit
beff71520b
|
@ -333,6 +333,50 @@
|
|||
# define _LIBCPP_SHORT_WCHAR 1
|
||||
#endif
|
||||
|
||||
// Libc++ supports various implementations of std::random_device.
|
||||
//
|
||||
// _LIBCPP_USING_DEV_RANDOM
|
||||
// Read entropy from the given file, by default `/dev/urandom`.
|
||||
// If a token is provided, it is assumed to be the path to a file
|
||||
// to read entropy from. This is the default behavior if nothing
|
||||
// else is specified. This implementation requires storing state
|
||||
// inside `std::random_device`.
|
||||
//
|
||||
// _LIBCPP_USING_ARC4_RANDOM
|
||||
// Use arc4random(). This allows obtaining random data even when
|
||||
// using sandboxing mechanisms. On some platforms like Apple, this
|
||||
// is the recommended source of entropy for user-space programs.
|
||||
// When this option is used, the token passed to `std::random_device`'s
|
||||
// constructor *must* be "/dev/urandom" -- anything else is an error.
|
||||
//
|
||||
// _LIBCPP_USING_GETENTROPY
|
||||
// Use getentropy().
|
||||
// When this option is used, the token passed to `std::random_device`'s
|
||||
// constructor *must* be "/dev/urandom" -- anything else is an error.
|
||||
//
|
||||
// _LIBCPP_USING_NACL_RANDOM
|
||||
// NaCl's sandbox (which PNaCl also runs in) doesn't allow filesystem access,
|
||||
// including accesses to the special files under `/dev`. This implementation
|
||||
// uses the NaCL syscall `nacl_secure_random_init()` to get entropy.
|
||||
// When this option is used, the token passed to `std::random_device`'s
|
||||
// constructor *must* be "/dev/urandom" -- anything else is an error.
|
||||
//
|
||||
// _LIBCPP_USING_WIN32_RANDOM
|
||||
// Use rand_s(), for use on Windows.
|
||||
// When this option is used, the token passed to `std::random_device`'s
|
||||
// constructor *must* be "/dev/urandom" -- anything else is an error.
|
||||
#if defined(__OpenBSD__)
|
||||
# define _LIBCPP_USING_ARC4_RANDOM
|
||||
#elif defined(__Fuchsia__) || defined(__wasi__)
|
||||
# define _LIBCPP_USING_GETENTROPY
|
||||
#elif defined(__native_client__)
|
||||
# define _LIBCPP_USING_NACL_RANDOM
|
||||
#elif defined(_LIBCPP_WIN32API)
|
||||
# define _LIBCPP_USING_WIN32_RANDOM
|
||||
#else
|
||||
# define _LIBCPP_USING_DEV_RANDOM
|
||||
#endif
|
||||
|
||||
#if !defined(_LIBCPP_LITTLE_ENDIAN) && !defined(_LIBCPP_BIG_ENDIAN)
|
||||
# include <endian.h>
|
||||
# if __BYTE_ORDER == __LITTLE_ENDIAN
|
||||
|
|
|
@ -23,50 +23,6 @@ _LIBCPP_BEGIN_NAMESPACE_STD
|
|||
|
||||
#if !defined(_LIBCPP_HAS_NO_RANDOM_DEVICE)
|
||||
|
||||
// Libc++ supports various implementations of std::random_device.
|
||||
//
|
||||
// _LIBCPP_USING_DEV_RANDOM
|
||||
// Read entropy from the given file, by default `/dev/urandom`.
|
||||
// If a token is provided, it is assumed to be the path to a file
|
||||
// to read entropy from. This is the default behavior if nothing
|
||||
// else is specified. This implementation requires storing state
|
||||
// inside `std::random_device`.
|
||||
//
|
||||
// _LIBCPP_USING_ARC4_RANDOM
|
||||
// Use arc4random(). This allows obtaining random data even when
|
||||
// using sandboxing mechanisms. On some platforms like Apple, this
|
||||
// is the recommended source of entropy for user-space programs.
|
||||
// When this option is used, the token passed to `std::random_device`'s
|
||||
// constructor *must* be "/dev/urandom" -- anything else is an error.
|
||||
//
|
||||
// _LIBCPP_USING_GETENTROPY
|
||||
// Use getentropy().
|
||||
// When this option is used, the token passed to `std::random_device`'s
|
||||
// constructor *must* be "/dev/urandom" -- anything else is an error.
|
||||
//
|
||||
// _LIBCPP_USING_NACL_RANDOM
|
||||
// NaCl's sandbox (which PNaCl also runs in) doesn't allow filesystem access,
|
||||
// including accesses to the special files under `/dev`. This implementation
|
||||
// uses the NaCL syscall `nacl_secure_random_init()` to get entropy.
|
||||
// When this option is used, the token passed to `std::random_device`'s
|
||||
// constructor *must* be "/dev/urandom" -- anything else is an error.
|
||||
//
|
||||
// _LIBCPP_USING_WIN32_RANDOM
|
||||
// Use rand_s(), for use on Windows.
|
||||
// When this option is used, the token passed to `std::random_device`'s
|
||||
// constructor *must* be "/dev/urandom" -- anything else is an error.
|
||||
#if defined(__OpenBSD__)
|
||||
# define _LIBCPP_USING_ARC4_RANDOM
|
||||
#elif defined(__Fuchsia__) || defined(__wasi__)
|
||||
# define _LIBCPP_USING_GETENTROPY
|
||||
#elif defined(__native_client__)
|
||||
# define _LIBCPP_USING_NACL_RANDOM
|
||||
#elif defined(_LIBCPP_WIN32API)
|
||||
# define _LIBCPP_USING_WIN32_RANDOM
|
||||
#else
|
||||
# define _LIBCPP_USING_DEV_RANDOM
|
||||
#endif
|
||||
|
||||
class _LIBCPP_TYPE_VIS random_device
|
||||
{
|
||||
#ifdef _LIBCPP_USING_DEV_RANDOM
|
||||
|
|
Loading…
Reference in New Issue