[PATCH] D41316: [libcxx] Allow random_device to be built optionally
Eli Friedman via Phabricator via cfe-commits
cfe-commits at lists.llvm.org
Thu Apr 5 18:55:57 PDT 2018
efriedma updated this revision to Diff 141255.
efriedma added a comment.
Get rid of the test changes.
They were broken in multiple ways, and weren't really useful anyway because the targets where you would want to use this can't run the libcxx testsuite anyway (because they don't have an operating system to run the test programs under).
Repository:
rCXX libc++
https://reviews.llvm.org/D41316
Files:
CMakeLists.txt
include/__config_site.in
include/random
src/random.cpp
Index: src/random.cpp
===================================================================
--- src/random.cpp
+++ src/random.cpp
@@ -8,6 +8,7 @@
//===----------------------------------------------------------------------===//
#include <__config>
+#ifndef _LIBCPP_HAS_NO_RANDOM_DEVICE
#if defined(_LIBCPP_USING_WIN32_RANDOM)
// Must be defined before including stdlib.h to enable rand_s().
@@ -177,3 +178,4 @@
}
_LIBCPP_END_NAMESPACE_STD
+#endif // _LIBCPP_HAS_NO_RANDOM_DEVICE
Index: include/random
===================================================================
--- include/random
+++ include/random
@@ -3476,6 +3476,7 @@
typedef shuffle_order_engine<minstd_rand0, 256> knuth_b;
+#ifndef _LIBCPP_HAS_NO_RANDOM_DEVICE
// random_device
class _LIBCPP_TYPE_VIS random_device
@@ -3511,6 +3512,7 @@
random_device(const random_device&); // = delete;
random_device& operator=(const random_device&); // = delete;
};
+#endif // _LIBCPP_HAS_NO_RANDOM_DEVICE
// seed_seq
Index: include/__config_site.in
===================================================================
--- include/__config_site.in
+++ include/__config_site.in
@@ -20,6 +20,7 @@
#cmakedefine _LIBCPP_HAS_NO_THREADS
#cmakedefine _LIBCPP_HAS_NO_MONOTONIC_CLOCK
#cmakedefine _LIBCPP_HAS_NO_THREAD_UNSAFE_C_FUNCTIONS
+#cmakedefine _LIBCPP_HAS_NO_RANDOM_DEVICE
#cmakedefine _LIBCPP_HAS_MUSL_LIBC
#cmakedefine _LIBCPP_HAS_THREAD_API_PTHREAD
#cmakedefine _LIBCPP_HAS_THREAD_API_EXTERNAL
Index: CMakeLists.txt
===================================================================
--- CMakeLists.txt
+++ CMakeLists.txt
@@ -71,6 +71,7 @@
option(LIBCXX_ENABLE_FILESYSTEM "Build filesystem as part of libc++experimental.a"
${ENABLE_FILESYSTEM_DEFAULT})
option(LIBCXX_INCLUDE_TESTS "Build the libc++ tests." ${LLVM_INCLUDE_TESTS})
+option(LIBCXX_ENABLE_RANDOM_DEVICE "Build random_device class" ON)
# Benchmark options -----------------------------------------------------------
option(LIBCXX_INCLUDE_BENCHMARKS "Build the libc++ benchmarks and their dependancies" ON)
@@ -632,6 +633,7 @@
config_define_if_not(LIBCXX_ENABLE_THREADS _LIBCPP_HAS_NO_THREADS)
config_define_if_not(LIBCXX_ENABLE_MONOTONIC_CLOCK _LIBCPP_HAS_NO_MONOTONIC_CLOCK)
config_define_if_not(LIBCXX_ENABLE_THREAD_UNSAFE_C_FUNCTIONS _LIBCPP_HAS_NO_THREAD_UNSAFE_C_FUNCTIONS)
+config_define_if_not(LIBCXX_ENABLE_RANDOM_DEVICE _LIBCPP_HAS_NO_RANDOM_DEVICE)
config_define_if(LIBCXX_HAS_PTHREAD_API _LIBCPP_HAS_THREAD_API_PTHREAD)
config_define_if(LIBCXX_HAS_EXTERNAL_THREAD_API _LIBCPP_HAS_THREAD_API_EXTERNAL)
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D41316.141255.patch
Type: text/x-patch
Size: 2605 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20180406/b7e0e0f3/attachment-0001.bin>
More information about the cfe-commits
mailing list