2022-12-22 22:07:19 +00:00
|
|
|
From ecc2a2e70e44fa76a75b12d0893bc1702b72a1b4 Mon Sep 17 00:00:00 2001
|
|
|
|
From: Ian Lance Taylor <iant@golang.org>
|
|
|
|
Date: Mon, 19 Dec 2022 10:37:06 -0800
|
|
|
|
Subject: [PATCH] libgo: check for makecontext in -lucontext
|
|
|
|
MIME-Version: 1.0
|
|
|
|
Content-Type: text/plain; charset=UTF-8
|
|
|
|
Content-Transfer-Encoding: 8bit
|
2022-10-13 22:13:10 +00:00
|
|
|
|
2022-12-22 22:07:19 +00:00
|
|
|
Patch from Sören Tempel.
|
|
|
|
|
|
|
|
Change-Id: I74b4052cc7aca19224afd6d9a2739c3fae46b722
|
|
|
|
Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/458396
|
|
|
|
Reviewed-by: Cherry Mui <cherryyz@google.com>
|
|
|
|
Reviewed-by: Than McIntosh <thanm@google.com>
|
2022-10-13 22:13:10 +00:00
|
|
|
---
|
2022-12-22 22:07:19 +00:00
|
|
|
libgo/configure | 57 ++++++++++++++++++++++++++++++++++++++++++++++
|
|
|
|
libgo/configure.ac | 3 +++
|
|
|
|
2 files changed, 60 insertions(+)
|
2022-10-13 22:13:10 +00:00
|
|
|
|
2022-12-22 22:07:19 +00:00
|
|
|
diff --git a/libgo/configure b/libgo/configure
|
|
|
|
index 460fdad7..a607dbff 100755
|
|
|
|
--- a/libgo/configure
|
|
|
|
+++ b/libgo/configure
|
|
|
|
@@ -14818,6 +14818,63 @@ fi
|
|
|
|
|
2022-10-13 22:13:10 +00:00
|
|
|
|
|
|
|
|
2022-12-22 22:07:19 +00:00
|
|
|
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing makecontext" >&5
|
|
|
|
+$as_echo_n "checking for library containing makecontext... " >&6; }
|
|
|
|
+if ${ac_cv_search_makecontext+:} false; then :
|
|
|
|
+ $as_echo_n "(cached) " >&6
|
|
|
|
+else
|
|
|
|
+ ac_func_search_save_LIBS=$LIBS
|
|
|
|
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
|
|
|
|
+/* end confdefs.h. */
|
|
|
|
+
|
|
|
|
+/* Override any GCC internal prototype to avoid an error.
|
|
|
|
+ Use char because int might match the return type of a GCC
|
|
|
|
+ builtin and then its argument prototype would still apply. */
|
|
|
|
+#ifdef __cplusplus
|
|
|
|
+extern "C"
|
|
|
|
+#endif
|
|
|
|
+char makecontext ();
|
|
|
|
+int
|
|
|
|
+main ()
|
|
|
|
+{
|
|
|
|
+return makecontext ();
|
|
|
|
+ ;
|
|
|
|
+ return 0;
|
|
|
|
+}
|
|
|
|
+_ACEOF
|
|
|
|
+for ac_lib in '' ucontext; do
|
|
|
|
+ if test -z "$ac_lib"; then
|
|
|
|
+ ac_res="none required"
|
|
|
|
+ else
|
|
|
|
+ ac_res=-l$ac_lib
|
|
|
|
+ LIBS="-l$ac_lib $ac_func_search_save_LIBS"
|
|
|
|
+ fi
|
|
|
|
+ if ac_fn_c_try_link "$LINENO"; then :
|
|
|
|
+ ac_cv_search_makecontext=$ac_res
|
|
|
|
+fi
|
|
|
|
+rm -f core conftest.err conftest.$ac_objext \
|
|
|
|
+ conftest$ac_exeext
|
|
|
|
+ if ${ac_cv_search_makecontext+:} false; then :
|
|
|
|
+ break
|
|
|
|
+fi
|
|
|
|
+done
|
|
|
|
+if ${ac_cv_search_makecontext+:} false; then :
|
|
|
|
+
|
|
|
|
+else
|
|
|
|
+ ac_cv_search_makecontext=no
|
|
|
|
+fi
|
|
|
|
+rm conftest.$ac_ext
|
|
|
|
+LIBS=$ac_func_search_save_LIBS
|
|
|
|
+fi
|
|
|
|
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_makecontext" >&5
|
|
|
|
+$as_echo "$ac_cv_search_makecontext" >&6; }
|
|
|
|
+ac_res=$ac_cv_search_makecontext
|
|
|
|
+if test "$ac_res" != no; then :
|
|
|
|
+ test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"
|
2022-10-13 22:13:10 +00:00
|
|
|
+
|
2022-12-22 22:07:19 +00:00
|
|
|
+fi
|
|
|
|
+
|
|
|
|
+
|
|
|
|
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing sched_yield" >&5
|
|
|
|
$as_echo_n "checking for library containing sched_yield... " >&6; }
|
|
|
|
if ${ac_cv_search_sched_yield+:} false; then :
|
|
|
|
diff --git a/libgo/configure.ac b/libgo/configure.ac
|
|
|
|
index 09554a37..a59aa091 100644
|
|
|
|
--- a/libgo/configure.ac
|
|
|
|
+++ b/libgo/configure.ac
|
|
|
|
@@ -570,6 +570,9 @@ PTHREAD_LIBS=
|
|
|
|
AC_CHECK_LIB([pthread], [pthread_create], PTHREAD_LIBS=-lpthread)
|
|
|
|
AC_SUBST(PTHREAD_LIBS)
|
2022-10-13 22:13:10 +00:00
|
|
|
|
2022-12-22 22:07:19 +00:00
|
|
|
+dnl Test if -lucontext is required for makecontext.
|
|
|
|
+AC_SEARCH_LIBS([makecontext], [ucontext])
|
|
|
|
+
|
|
|
|
dnl Test if -lrt is required for sched_yield or nanosleep or clock_gettime.
|
|
|
|
AC_SEARCH_LIBS([sched_yield], [rt])
|
|
|
|
AC_SEARCH_LIBS([nanosleep], [rt])
|