aboutsummaryrefslogtreecommitdiffstats
path: root/configure.ac
diff options
context:
space:
mode:
authorNobuyoshi Nakada <nobu@ruby-lang.org>2022-11-06 19:32:50 +0900
committerNobuyoshi Nakada <nobu@ruby-lang.org>2022-11-06 19:32:50 +0900
commitfc842c9ccc2059e20ec6487b6678e6b71cbd77e1 (patch)
tree9df18655d3d582acbd08c64345e39d22a468c160 /configure.ac
parent9627aab82524e71b702479b4fa5e24b36cced398 (diff)
downloadruby-fc842c9ccc2059e20ec6487b6678e6b71cbd77e1.tar.gz
Check `rustc` with the target
Diffstat (limited to 'configure.ac')
-rw-r--r--configure.ac34
1 files changed, 22 insertions, 12 deletions
diff --git a/configure.ac b/configure.ac
index 8c176db836..85e1359f5b 100644
--- a/configure.ac
+++ b/configure.ac
@@ -3736,17 +3736,28 @@ AC_SUBST(MJIT_SUPPORT)
AC_CHECK_PROG(RUSTC, [rustc], [rustc], [no]) dnl no ac_tool_prefix
dnl check if we can build YJIT on this target platform
-AS_CASE(["$target_cpu-$target_os"],
- [arm64-darwin*|aarch64-darwin*|x86_64-darwin*], [
- YJIT_TARGET_OK=yes
+AS_CASE(["$target_cpu"],
+ [arm64|aarch64], [
+ YJIT_TARGET=aarch64
+ ],
+ [x86_64], [
+ YJIT_TARGET="$target_cpu"
+ ],
+ [YJIT_TARGET=]
+)
+AS_CASE(["$YJIT_TARGET:$target_os"],
+ [:*], [ # unsupported CPU
+ ],
+ [darwin*], [
+ YJIT_TARGET=${YJIT_TARGET}-apple-darwin
],
- [arm64-*linux*|aarch64-*linux*|x86_64-*linux*], [
- YJIT_TARGET_OK=yes
+ [linux-android], [ # no target_vendor
+ YJIT_TARGET=${YJIT_TARGET}-${target_os}
],
- [arm64-*bsd*|aarch64-*bsd*|x86_64-*bsd*], [
- YJIT_TARGET_OK=yes
+ [*linux*], [
+ YJIT_TARGET=${YJIT_TARGET}-${target_vendor}-${target_os}
],
- [YJIT_TARGET_OK=no]
+ [YJIT_TARGET=]
)
dnl build YJIT in release mode if rustc >= 1.58.0 is present and we are on a supported platform
@@ -3754,12 +3765,12 @@ AC_ARG_ENABLE(yjit,
AS_HELP_STRING([--enable-yjit],
[enable experimental in-process JIT compiler that requires Rust build tools [default=no]]),
[YJIT_SUPPORT=$enableval],
- [AS_CASE(["$enable_jit_support:$YJIT_TARGET_OK:$RUSTC"],
- [no:*|yes:no:*|yes:yes:no], [
+ [AS_CASE(["$enable_jit_support:$YJIT_TARGET:$RUSTC"],
+ [no:*|yes::*|yes:*:no], [
YJIT_SUPPORT=no
],
[yes:yes:*], [
- AS_IF([ echo "fn main() { let x = 1; format!(\"{x}\"); }" | $RUSTC - --emit asm=/dev/null ],
+ AS_IF([ echo "fn main() { let x = 1; format!(\"{x}\"); }" | $RUSTC - --target=$YJIT_TARGET --emit asm=/dev/null ],
[YJIT_SUPPORT=yes],
[YJIT_SUPPORT=no]
)
@@ -3772,7 +3783,6 @@ AC_ARG_ENABLE(yjit,
CARGO=
CARGO_BUILD_ARGS=
YJIT_LIBS=
-AS_IF([test "$cross_compiling" = yes], [YJIT_SUPPORT=no])
AS_CASE(["${YJIT_SUPPORT}"],
[yes|dev|stats|dev_nodebug], [
AS_IF([test x"$enable_jit_support" = "xno"],