<div dir="ltr">> <span style="color:rgb(34,34,34);font-family:arial,sans-serif;font-size:12.8px;font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial;float:none;display:inline"><span> </span>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).<br><br>I used to run libcxx tests for an arm baremetal toolchain I was building via semihosted QEMU. It was awkward and slow (especially for some of the std::*_distribution tests), but it worked.</span><div><span style="color:rgb(34,34,34);font-family:arial,sans-serif;font-size:12.8px;font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial;float:none;display:inline"><br></span></div><div><span style="color:rgb(34,34,34);font-family:arial,sans-serif;font-size:12.8px;font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial;float:none;display:inline"><br></span></div><div><span style="color:rgb(34,34,34);font-family:arial,sans-serif;font-size:12.8px;font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial;float:none;display:inline">Jon</span></div></div><div class="gmail_extra"><br><div class="gmail_quote">On Thu, Apr 5, 2018 at 7:55 PM, Eli Friedman via Phabricator <span dir="ltr"><<a href="mailto:reviews@reviews.llvm.org" target="_blank">reviews@reviews.llvm.org</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">efriedma updated this revision to Diff 141255.<br>
efriedma added a comment.<br>
<br>
Get rid of the test changes.<br>
<br>
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).<br>
<br>
<br>
Repository:<br>
  rCXX libc++<br>
<span class=""><br>
<a href="https://reviews.llvm.org/D41316" rel="noreferrer" target="_blank">https://reviews.llvm.org/<wbr>D41316</a><br>
<br>
Files:<br>
  CMakeLists.txt<br>
  include/__<a href="http://config_site.in" rel="noreferrer" target="_blank">config_site.in</a><br>
  include/random<br>
  src/random.cpp<br>
<br>
<br>
</span>Index: src/random.cpp<br>
==============================<wbr>==============================<wbr>=======<br>
--- src/random.cpp<br>
+++ src/random.cpp<br>
@@ -8,6 +8,7 @@<br>
 //===-------------------------<wbr>------------------------------<wbr>---------------===//<br>
<br>
 #include <__config><br>
+#ifndef _LIBCPP_HAS_NO_RANDOM_DEVICE<br>
<br>
 #if defined(_LIBCPP_USING_WIN32_<wbr>RANDOM)<br>
 // Must be defined before including stdlib.h to enable rand_s().<br>
@@ -177,3 +178,4 @@<br>
 }<br>
<br>
 _LIBCPP_END_NAMESPACE_STD<br>
+#endif // _LIBCPP_HAS_NO_RANDOM_DEVICE<br>
Index: include/random<br>
==============================<wbr>==============================<wbr>=======<br>
--- include/random<br>
+++ include/random<br>
@@ -3476,6 +3476,7 @@<br>
<br>
 typedef shuffle_order_engine<minstd_<wbr>rand0, 256>                         knuth_b;<br>
<br>
+#ifndef _LIBCPP_HAS_NO_RANDOM_DEVICE<br>
 // random_device<br>
<br>
 class _LIBCPP_TYPE_VIS random_device<br>
@@ -3511,6 +3512,7 @@<br>
     random_device(const random_device&); // = delete;<br>
     random_device& operator=(const random_device&); // = delete;<br>
 };<br>
+#endif // _LIBCPP_HAS_NO_RANDOM_DEVICE<br>
<br>
 // seed_seq<br>
<br>
Index: include/__<a href="http://config_site.in" rel="noreferrer" target="_blank">config_site.in</a><br>
==============================<wbr>==============================<wbr>=======<br>
--- include/__<a href="http://config_site.in" rel="noreferrer" target="_blank">config_site.in</a><br>
+++ include/__<a href="http://config_site.in" rel="noreferrer" target="_blank">config_site.in</a><br>
@@ -20,6 +20,7 @@<br>
 #cmakedefine _LIBCPP_HAS_NO_THREADS<br>
 #cmakedefine _LIBCPP_HAS_NO_MONOTONIC_CLOCK<br>
 #cmakedefine _LIBCPP_HAS_NO_THREAD_UNSAFE_<wbr>C_FUNCTIONS<br>
+#cmakedefine _LIBCPP_HAS_NO_RANDOM_DEVICE<br>
 #cmakedefine _LIBCPP_HAS_MUSL_LIBC<br>
 #cmakedefine _LIBCPP_HAS_THREAD_API_PTHREAD<br>
 #cmakedefine _LIBCPP_HAS_THREAD_API_<wbr>EXTERNAL<br>
Index: CMakeLists.txt<br>
==============================<wbr>==============================<wbr>=======<br>
--- CMakeLists.txt<br>
+++ CMakeLists.txt<br>
@@ -71,6 +71,7 @@<br>
 option(LIBCXX_ENABLE_<wbr>FILESYSTEM "Build filesystem as part of libc++experimental.a"<br>
     ${ENABLE_FILESYSTEM_DEFAULT})<br>
<span class=""> option(LIBCXX_INCLUDE_TESTS "Build the libc++ tests." ${LLVM_INCLUDE_TESTS})<br>
</span>+option(LIBCXX_ENABLE_RANDOM_<wbr>DEVICE "Build random_device class" ON)<br>
<br>
 # Benchmark options ------------------------------<wbr>-----------------------------<br>
 option(LIBCXX_INCLUDE_<wbr>BENCHMARKS "Build the libc++ benchmarks and their dependancies" ON)<br>
@@ -632,6 +633,7 @@<br>
 config_define_if_not(LIBCXX_<wbr>ENABLE_THREADS _LIBCPP_HAS_NO_THREADS)<br>
 config_define_if_not(LIBCXX_<wbr>ENABLE_MONOTONIC_CLOCK _LIBCPP_HAS_NO_MONOTONIC_<wbr>CLOCK)<br>
 config_define_if_not(LIBCXX_<wbr>ENABLE_THREAD_UNSAFE_C_<wbr>FUNCTIONS _LIBCPP_HAS_NO_THREAD_UNSAFE_<wbr>C_FUNCTIONS)<br>
+config_define_if_not(LIBCXX_<wbr>ENABLE_RANDOM_DEVICE _LIBCPP_HAS_NO_RANDOM_DEVICE)<br>
<br>
 config_define_if(LIBCXX_HAS_<wbr>PTHREAD_API _LIBCPP_HAS_THREAD_API_<wbr>PTHREAD)<br>
 config_define_if(LIBCXX_HAS_<wbr>EXTERNAL_THREAD_API _LIBCPP_HAS_THREAD_API_<wbr>EXTERNAL)<br>
<br>
<br>
</blockquote></div><br></div>