diff options
author | Yusuke Endoh <mame@ruby-lang.org> | 2020-02-20 22:36:53 +0900 |
---|---|---|
committer | Yusuke Endoh <mame@ruby-lang.org> | 2020-02-20 22:36:53 +0900 |
commit | df26d36e5ba0edc7ad031be9fb2047d68cd686c7 (patch) | |
tree | da5f00c9becb9d724a6c2ea13bc25a929ba25f0d | |
parent | 3e12b658613a534f11a50b4a415c7c3e165bcfd1 (diff) | |
download | ruby-df26d36e5ba0edc7ad031be9fb2047d68cd686c7.tar.gz |
Prefer alignas() over _Alignas()
to allow Intel C++ compiler to read ruby.h.
This is similar to 9930481a239fa7182429f3c3942ea033fb9b0320
-rw-r--r-- | configure.ac | 11 |
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" \ |