[前][次][番号順一覧][スレッド一覧]

ruby-changes:68191

From: Nobuyoshi <ko1@a...>
Date: Fri, 1 Oct 2021 21:48:19 +0900 (JST)
Subject: [ruby-changes:68191] 0ad3ed5e0e (master): Checks for CPU specific header on universal build

https://git.ruby-lang.org/ruby.git/commit/?id=0ad3ed5e0e

From 0ad3ed5e0e6e6239fbc348f730b3f298ef4e944c Mon Sep 17 00:00:00 2001
From: Nobuyoshi Nakada <nobu@r...>
Date: Fri, 1 Oct 2021 20:25:30 +0900
Subject: Checks for CPU specific header on universal build

---
 configure.ac                   |  1 +
 tool/m4/ruby_universal_arch.m4 | 32 ++++++++++++++++++++++++++++++++
 2 files changed, 33 insertions(+)

diff --git a/configure.ac b/configure.ac
index d62bce4d92..b65ccf4b31 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1283,6 +1283,7 @@ AC_CHECK_HEADERS(utime.h) https://github.com/ruby/ruby/blob/trunk/configure.ac#L1283
 AS_CASE("$target_cpu", [x64|x86_64|i[3-6]86*], [
   AC_CHECK_HEADERS(x86intrin.h)
 ])
+RUBY_UNIVERSAL_CHECK_HEADER([x86_64, i386], x86intrin.h)
 
 AC_ARG_WITH([gmp],
   [AS_HELP_STRING([--without-gmp],
diff --git a/tool/m4/ruby_universal_arch.m4 b/tool/m4/ruby_universal_arch.m4
index a2ee9e02be..375cdd98d2 100644
--- a/tool/m4/ruby_universal_arch.m4
+++ b/tool/m4/ruby_universal_arch.m4
@@ -88,3 +88,35 @@ AS_IF([test "x${ARCH_FLAG}" != x], [ https://github.com/ruby/ruby/blob/trunk/tool/m4/ruby_universal_arch.m4#L88
 ])
 # RUBY_UNIVERSAL_ARCH end
 ])dnl
+dnl
+AC_DEFUN([RUBY_UNIVERSAL_CHECK_HEADER_COND], [ dnl
+  AC_CACHE_CHECK([for $2 when $1], [$3],
+    AC_COMPILE_IFELSE([AC_LANG_PROGRAM(
+        [AC_INCLUDES_DEFAULT([$6])[
+          @%:@if ]$1[
+          @%:@include <]$2[>
+          @%:@endif]], [[]])],
+      [AS_VAR_SET($3, yes)],
+      [AS_VAR_SET($3, no)]))
+  AS_VAR_IF([$3], [yes], [dnl
+    printf "@%:@if %s\n" "$1" >>confdefs.h
+    AC_DEFINE_UNQUOTED(HAVE_[]AS_TR_CPP($2), 1)dnl
+    printf "@%:@endif\n" >>confdefs.h dnl
+  $4], [$5])
+])dnl
+dnl
+# RUBY_UNIVERSAL_CHECK_HEADER(CPU-LIST, HEADER,
+#                      [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND],
+#                      [INCLUDES = DEFAULT-INCLUDES])
+AC_DEFUN([RUBY_UNIVERSAL_CHECK_HEADER], [ dnl
+  m4_if([$# dnl
+  ], [0], [], [ dnl
+    m4_foreach([rb_Header], [$1],
+      [AS_CASE([",$target_archs,"], [*,]rb_Header[,*],
+        [RUBY_UNIVERSAL_CHECK_HEADER_COND]([defined(__[]rb_Header[]__)],
+          [$2], [rb_cv_header_[]AS_TR_SH($2)_on_[]AS_TR_SH(rb_Header)],
+          [$3], [$4], [$5])
+        )
+      ])
+  ])dnl
+])dnl
-- 
cgit v1.2.1


--
ML: ruby-changes@q...
Info: http://www.atdot.net/~ko1/quickml/

[前][次][番号順一覧][スレッド一覧]