diff --git a/libstdc++-v3/acinclude.m4 b/libstdc++-v3/acinclude.m4 index 4adfdf646acbcb63c9c8bb5199d17ac5c9970366..30bd92d37f236ee0fbec757df75004e02df197eb 100644 --- a/libstdc++-v3/acinclude.m4 +++ b/libstdc++-v3/acinclude.m4 @@ -4839,7 +4839,7 @@ AC_DEFUN([GLIBCXX_CHECK_GETENTROPY], [ AC_LANG_CPLUSPLUS AC_MSG_CHECKING([for getentropy]) AC_CACHE_VAL(glibcxx_cv_getentropy, [ - AC_TRY_COMPILE( + GCC_TRY_COMPILE_OR_LINK( [#include <unistd.h>], [unsigned i; ::getentropy(&i, sizeof(i));], @@ -4862,7 +4862,7 @@ AC_DEFUN([GLIBCXX_CHECK_ARC4RANDOM], [ AC_LANG_CPLUSPLUS AC_MSG_CHECKING([for arc4random]) AC_CACHE_VAL(glibcxx_cv_arc4random, [ - AC_TRY_COMPILE( + GCC_TRY_COMPILE_OR_LINK( [#include <stdlib.h>], [unsigned i = ::arc4random();], [glibcxx_cv_arc4random=yes], [glibcxx_cv_arc4random=no]) diff --git a/libstdc++-v3/configure b/libstdc++-v3/configure index 3a572475546f1d8eab8b7b2629eeb33d8bb22134..3eb391f409f269cfcd16cdc02957a1bbb20dd73f 100755 --- a/libstdc++-v3/configure +++ b/libstdc++-v3/configure @@ -75445,7 +75445,8 @@ $as_echo_n "checking for getentropy... " >&6; } $as_echo_n "(cached) " >&6 else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext + if test x$gcc_no_link = xyes; then + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <unistd.h> int @@ -75463,6 +75464,30 @@ else glibcxx_cv_getentropy=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +else + if test x$gcc_no_link = xyes; then + as_fn_error $? "Link tests are not allowed after GCC_NO_EXECUTABLES." "$LINENO" 5 +fi +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include <unistd.h> +int +main () +{ +unsigned i; + ::getentropy(&i, sizeof(i)); + ; + return 0; +} +_ACEOF +if ac_fn_cxx_try_link "$LINENO"; then : + glibcxx_cv_getentropy=yes +else + glibcxx_cv_getentropy=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +fi fi @@ -75496,7 +75521,8 @@ $as_echo_n "checking for arc4random... " >&6; } $as_echo_n "(cached) " >&6 else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext + if test x$gcc_no_link = xyes; then + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <stdlib.h> int @@ -75513,6 +75539,29 @@ else glibcxx_cv_arc4random=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +else + if test x$gcc_no_link = xyes; then + as_fn_error $? "Link tests are not allowed after GCC_NO_EXECUTABLES." "$LINENO" 5 +fi +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include <stdlib.h> +int +main () +{ +unsigned i = ::arc4random(); + ; + return 0; +} +_ACEOF +if ac_fn_cxx_try_link "$LINENO"; then : + glibcxx_cv_arc4random=yes +else + glibcxx_cv_arc4random=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +fi fi