This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug bootstrap/54419] [4.8 Regression] Compiling libstdc++-v3/src/c++11/random.cc fails on platforms not knowing rdrand


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.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]