summaryrefslogtreecommitdiff
path: root/configure.ac
diff options
context:
space:
mode:
authorYusuke Endoh <mame@ruby-lang.org>2020-02-20 22:36:53 +0900
committerYusuke Endoh <mame@ruby-lang.org>2020-02-20 22:36:53 +0900
commitdf26d36e5ba0edc7ad031be9fb2047d68cd686c7 (patch)
treeda5f00c9becb9d724a6c2ea13bc25a929ba25f0d /configure.ac
parent3e12b658613a534f11a50b4a415c7c3e165bcfd1 (diff)
Prefer alignas() over _Alignas()
to allow Intel C++ compiler to read ruby.h. This is similar to 9930481a239fa7182429f3c3942ea033fb9b0320
Diffstat (limited to 'configure.ac')
-rw-r--r--configure.ac11
1 files changed, 8 insertions, 3 deletions
diff --git a/configure.ac b/configure.ac
index b0e09a5f85..83c8519806 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1359,10 +1359,11 @@ AS_IF([test "$rb_cv_va_args_macro" = yes], [
AC_CACHE_CHECK([for alignas() syntax], rb_cv_have_alignas, [
rb_cv_have_alignas=no
+# Prefer alignas over _Alignas to allow C++ compiler to read ruby.h
RUBY_WERROR_FLAG([
for attr in \
- "_Alignas(x)" \
"alignas(x)" \
+ "_Alignas(x)" \
"@<:@@<:@alignas(x)@:>@@:>@" \
"__declspec(aligned(x))" \
"__attribute__((__aligned__(x)))" \
@@ -1371,8 +1372,11 @@ do
# C11 _Alignas and GCC __attribute__((__aligned__)) behave
# slightly differently. What we want is GCC's. Check that
# here by something C11 does not allow (`struct ALIGNAS ...`)
- AC_TRY_COMPILE(
- [@%:@define ALIGNAS(x) $attr
+ AC_TRY_COMPILE([
+ @%:@ifdef HAVE_STDALIGN_H
+ @%:@include <stdalign.h>
+ @%:@endif
+ @%:@define ALIGNAS(x) $attr
struct ALIGNAS(128) conftest_tag { int foo; } foo; ], [],
[rb_cv_have_alignas="$attr"; break], [])
done
@@ -1383,6 +1387,7 @@ AS_IF([test "$rb_cv_have_alignas" != no], [
AC_CACHE_CHECK([for alignof() syntax], rb_cv_have_alignof,[
rb_cv_have_alignof=no
+# Prefer alignof over _Alignof to allow C++ compiler to read ruby.h
RUBY_WERROR_FLAG([
for expr in \
"alignof" \