This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug bootstrap/54419] [4.8 Regression] Compiling libstdc++-v3/src/c++11/random.cc fails on platforms not knowing rdrand
- From: "jakub at gcc dot gnu.org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: Thu, 06 Sep 2012 14:17:18 +0000
- Subject: [Bug bootstrap/54419] [4.8 Regression] Compiling libstdc++-v3/src/c++11/random.cc fails on platforms not knowing rdrand
- Auto-submitted: auto-generated
- References: <bug-54419-4@http.gcc.gnu.org/bugzilla/>
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54419
--- Comment #40 from Jakub Jelinek <jakub at gcc dot gnu.org> 2012-09-06 14:15:29 UTC ---
(In reply to comment #39)
> The attached revised patch is Ulrich's original with the change of the test in
> configure.ac from...
>
> AC_TRY_COMPILE(, [void f(void){asm("rdrand %eax");}],
> [ac_cv_x86_rdrand=yes], [ac_cv_x86_rdrand=no])
>
> to
>
> AC_TRY_COMPILE(,[asm("rdrand %eax");],
> [ac_cv_x86_rdrand=yes], [ac_cv_x86_rdrand=no])
>
> and the additional missing conditional on the definition of _GLIBCXX_X86_RDRAND
> ...
>
> @@ -118,7 +118,7 @@ namespace std _GLIBCXX_VISIBILITY(defaul
> random_device::result_type
> random_device::_M_getval()
> {
> -#if (defined __i386__ || defined __x86_64__)
> +#if (defined __i386__ || defined __x86_64__) && defined _GLIBCXX_X86_RDRAND
> if (! _M_file)
> return __x86_rdrand();
> #endif
>
> in libstdc++-v3/src/c++11/random.cc.
Looks ok to me, but patches should be mailed with ChangeLog entry to
gcc-patches and libstdc++ mailing lists.
--- Comment #41 from Jakub Jelinek <jakub at gcc dot gnu.org> 2012-09-06 14:17:18 UTC ---
Ah, actually not completely, the
#if defined __i386__ || defined __x86_64__ && defined _GLIBCXX_X86_RDRAND
line in your patch is wrong, there should be () like in the other two
preprocessor conditionals.