Bug #20633
closedcompile error at vm_insnhelper.c when HAVE_DECL_ATOMIC_SIGNAL_FENCE is 0
Description
木村といいます。
最近導入された、vm_insnhelper.c 中での atomic_signal_fence()の呼び出し[1]が
config.hで ”#define HAVE_DECL_ATOMIC_SIGNAL_FENCE 0” のときコンパイルエラーになります。
おそらくコードの意図と異なると思うのでパッチ送ります。
compiling array.c
compiling vm.c
In file included from vm.c:514:
./vm_insnhelper.c:400:5: warning: implicit declaration of function 'atomic_signal_fence' is invalid in C99 [-Wimplicit-function-declaration]
atomic_signal_fence(memory_order_seq_cst);
^
./vm_insnhelper.c:400:25: error: use of undeclared identifier 'memory_order_seq_cst'
atomic_signal_fence(memory_order_seq_cst);
^
1 warning and 1 error generated.
[1] Add explicit compiler fence when pushing frames to ensure safe profiling
https://github.com/ruby/ruby/commit/64fef3b870a8ed8147654531aef4c065d8a730c6
Files
Updated by kimuraw (Wataru Kimura) about 1 month ago
- Status changed from Open to Closed
Applied in changeset git|7472fff7f1b5296fbfcde0e2b7411a1d87781f3f.
[Bug #20633] Fix the condition for atomic_signal_fence
AC_CHECK_DECLS
defines HAVE_DECL_SYMBOL
to 1 if declared, 0
otherwise, not undefined.
Updated by ivoanjo (Ivo Anjo) about 1 month ago
Thanks @kimuraw (Wataru Kimura) for fixing my mistake 😅
I've also opened the PRs to backport your fix to the Ruby 3.3 and 3.2 branches:
Updated by nagachika (Tomoyuki Chikanaga) about 1 month ago
- Backport changed from 3.1: UNKNOWN, 3.2: UNKNOWN, 3.3: UNKNOWN to 3.2: DONE, 3.3: REQUIRED
Thank you for reporting and kindly create backport pull requests!
merged into ruby_3_2.