On 9 September 2012 20:43, Gerald Pfeifer <ger...@pfeifer.com> wrote: > On Sun, 9 Sep 2012, Jonathan Wakely wrote: >> I've committed the patch from >> http://gcc.gnu.org/ml/gcc-patches/2012-09/msg00466.html (with some >> fixes to the changelog entry) >> >> 2012-09-09 Ulrich Drepper <drep...@gmail.com> >> Dominique d'Humieres <domi...@lps.ens.fr> >> Jack Howarth <howa...@bromo.med.uc.edu> >> >> PR bootstrap/54419 >> * acinclude.m4: Define GLIBCXX_CHECK_X86_RDRAND. >> * configure.ac: Use GLIBCXX_CHECK_X86_RDRAND to test for rdrand >> support in assembler. >> * src/c++11/random.cc (__x86_rdrand): Depend on _GLIBCXX_X86_RDRAND. >> (random_device::_M_init): Likewise. >> (random_device::_M_getval): Likewise. >> * configure: Regenerated. >> * config.h.in: Regenerated. > > amd64-unknown-freebsd8.3 doesn't like this, I'm afraid: > > configure: visibility supported: yes > checking for rdrand support in assembler... eval: ${+...}: Bad substitution > gmake[2]: *** [configure-stage1-target-libstdc++-v3] Error 2 > > Note, this is BSD sh, not bash. I'll admit that I had a look, and > did not find the culprit right away.
Yes, I don't know why it didn't show up in testing, but that patch was not correct, it failed on netbsd too. Fixed by this patch. Tested x86_64-linux and x86_64-netbsd, committed to trunk. Also, Jack, why is the variable called ac_cv_x86_rdrand rather than glibcxx_x86_rdrand to be consistent with every other variable in libstdc++-v3/acinclude.m4? And why _GLIBCXX_X86_RDRAND not something like _GLIBCXX_HAVE_AS_X86_RDRAND? The bootstrap failure is fixed, but I think we should change those names.
commit 1594fd2acc7453aeed22cec16dff41e0dc490eee Author: Jonathan Wakely <jwakely....@gmail.com> Date: Sun Sep 9 20:00:16 2012 +0100 PR bootstrap/54419 * acinclude.m4 (GLIBCXX_CHECK_X86_RDRAND): Remove stray character. * configure: Regenerated. diff --git a/libstdc++-v3/acinclude.m4 b/libstdc++-v3/acinclude.m4 index 267302d..c9b8d37 100644 --- a/libstdc++-v3/acinclude.m4 +++ b/libstdc++-v3/acinclude.m4 @@ -3363,7 +3363,7 @@ dnl dnl Check whether rdrand is supported in the assembler. AC_DEFUN([GLIBCXX_CHECK_X86_RDRAND], [ AC_MSG_CHECKING([for rdrand support in assembler]) - AC_CACHE_VAL($ac_cv_x86_rdrand, [ + AC_CACHE_VAL(ac_cv_x86_rdrand, [ ac_cv_x86_rdrand=no case "$target" in i?86-*-* | \