Project

General

Profile

Actions

Bug #20633

closed

compile error at vm_insnhelper.c when HAVE_DECL_ATOMIC_SIGNAL_FENCE is 0

Added by kimuraw (Wataru Kimura) 4 days ago. Updated 2 days ago.

Status:
Closed
Assignee:
-
Target version:
-
ruby -v:
[ruby-dev:<unknown>]

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

patch-vm_insnhelper.c.diff (535 Bytes) patch-vm_insnhelper.c.diff kimuraw (Wataru Kimura), 07/13/2024 10:31 AM
Actions #1

Updated by kimuraw (Wataru Kimura) 4 days 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.

Actions #2

Updated by ivoanjo (Ivo Anjo) 2 days 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:

Actions #3

Updated by nagachika (Tomoyuki Chikanaga) 2 days 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.

Actions

Also available in: Atom PDF

Like0
Like1Like0Like0