From: halostatue@gmail.com
To: ruby-core@ruby-lang.org
Subject: [ruby-core:103260] [Ruby master Bug#17777] 2.6.7 fails to build on macOS: implicit declaration of function 'rb_native_mutex_destroy' is invalid in C99
Date: Tue, 06 Apr 2021 23:58:31 +0000 (UTC) [thread overview]
Message-ID: <redmine.journal-91343.20210406235831.772@ruby-lang.org> (raw)
In-Reply-To: redmine.issue-17777.20210405171425.772@ruby-lang.org
Issue #17777 has been updated by austin (Austin Ziegler).
Digging a bit deeper in to this second item; it looks like we’re doing `USE_HEADER_HACKS`, which means we’re loading `<ffi/ffi.h>` and using the compiler that came with Big Sur (based on Xcode 12), I see the following:
```c
#if FFI_LEGACY_CLOSURE_API
FFI_AVAILABLE_APPLE_2019 FFI_API ffi_status
ffi_prep_closure (ffi_closure*,
ffi_cif *,
void (*fun)(ffi_cif*,void*,void**,void*),
void *user_data)
#if defined(__GNUC__) && (((__GNUC__ * 100) + __GNUC_MINOR__) >= 405)
__attribute__((deprecated ("use ffi_prep_closure_loc instead")))
#elif defined(__GNUC__) && __GNUC__ >= 3
__attribute__((deprecated))
#endif
;
#endif
```
However, it looks like the 2.7 version of `fiddle` does a little more investigation:
```diff
--- ext/fiddle/extconf.rb 2021-04-05 07:48:34.000000000 -0400
+++ ../ruby-2.7.3/ext/fiddle/extconf.rb 2021-04-05 08:39:38.000000000 -0400
@@ -13,7 +13,7 @@
if have_header(ffi_header = 'ffi.h')
true
elsif have_header(ffi_header = 'ffi/ffi.h')
- $defs.push(format('-DUSE_HEADER_HACKS'))
+ $defs.push('-DUSE_HEADER_HACKS')
true
end and (have_library('ffi') || have_library('libffi'))
end or
@@ -114,8 +114,17 @@
if ver
ver = ver.gsub(/-rc\d+/, '') # If ver contains rc version, just ignored.
- ver = (ver.split('.') + [0,0])[0,3]
+ ver = (ver.split('.').map(&:to_i) + [0,0])[0,3]
$defs.push(%{-DRUBY_LIBFFI_MODVERSION=#{ '%d%03d%03d' % ver }})
+ warn "libffi_version: #{ver.join('.')}"
+end
+
+case
+when $mswin, $mingw, (ver && (ver <=> [3, 2]) >= 0)
+ $defs << "-DUSE_FFI_CLOSURE_ALLOC=1"
+when (ver && (ver <=> [3, 2]) < 0)
+else
+ have_func('ffi_closure_alloc', ffi_header)
end
have_header 'sys/mman.h'
@@ -142,7 +151,7 @@
if /^\#define\s+SIZEOF_#{type}\s+(SIZEOF_(.+)|\d+)/ =~ config
if size = $2 and size != 'VOIDP'
size = types.fetch(size) {size}
- $defs << format("-DTYPE_%s=TYPE_%s", signed||type, size)
+ $defs << "-DTYPE_#{signed||type}=TYPE_#{size}"
end
if signed
check_signedness(type.downcase, "stddef.h")
```
This is from 229c041f057.
----------------------------------------
Bug #17777: 2.6.7 fails to build on macOS: implicit declaration of function 'rb_native_mutex_destroy' is invalid in C99
https://bugs.ruby-lang.org/issues/17777#change-91343
* Author: Eregon (Benoit Daloze)
* Status: Open
* Priority: Normal
* ruby -v: 2.6.7
* Backport: 2.6: REQUIRED, 2.7: DONTNEED, 3.0: DONTNEED
----------------------------------------
https://github.com/ruby/ruby-builder/runs/2271346109?check_suite_focus=true#step:14:11253
```
vm.c:2295:9: error: implicit declaration of function 'rb_native_mutex_destroy' is invalid in C99
```
There is also a warning below that might be worth solving:
```
vm.c:2489:34: warning: expression does not compute the number of elements in this array; element type is 'const int', not 'VALUE' (aka 'unsigned long') [-Wsizeof-array-div]
sizeof(ec->machine.regs) / sizeof(VALUE));
~~~~~~~~~~~~~~~~ ^
vm.c:2489:34: note: place parentheses around the 'sizeof(VALUE)' expression to silence this warning
```
--
https://bugs.ruby-lang.org/
next prev parent reply other threads:[~2021-04-06 23:58 UTC|newest]
Thread overview: 17+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-04-05 17:14 [ruby-core:103241] [Ruby master Bug#17777] 2.6.7 fails to build on macOS: implicit declaration of function 'rb_native_mutex_destroy' is invalid in C99 eregontp
2021-04-05 17:17 ` [ruby-core:103242] " chris
2021-04-05 17:19 ` [ruby-core:103243] " eregontp
2021-04-06 2:37 ` [ruby-core:103246] " usa
2021-04-06 6:20 ` [ruby-core:103249] " udzura
2021-04-06 9:46 ` [ruby-core:103252] " xtkoba+ruby
2021-04-06 23:47 ` [ruby-core:103259] " halostatue
2021-04-06 23:58 ` halostatue [this message]
2021-04-07 0:00 ` [ruby-core:103261] " halostatue
2021-04-15 20:10 ` [ruby-core:103467] " halostatue
2021-04-16 5:25 ` [ruby-core:103471] " hsbt
2021-04-20 18:29 ` [ruby-core:103528] " tycho.braams
2021-04-20 19:13 ` [ruby-core:103530] " merch-redmine
2021-04-20 21:16 ` [ruby-core:103533] " tycho.braams
2021-04-21 5:10 ` [ruby-core:103536] " tdehnke
2021-04-21 16:18 ` [ruby-core:103542] " Austin Ziegler
2021-05-09 16:13 ` [ruby-core:103776] " usa
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-list from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
List information: https://www.ruby-lang.org/en/community/mailing-lists/
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=redmine.journal-91343.20210406235831.772@ruby-lang.org \
--to=ruby-core@ruby-lang.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).