-
Notifications
You must be signed in to change notification settings - Fork 194
Description
Hello all! I've seen this issue #1400 which groups native C extensions failing, but i didn't want to pollute that thread with what might be a stupid question. I've just for the first time tried to install truffleruby-1.0.0-rc5
to play around with, because i'm excited about the prospect of using it for our real Rails app (eventually). I'm using rbenv
and i'm on macOS 10.11.6, have installed llvm@4
from Homebrew.
When i try to install all of our Gemfile, of course a lot of things break. But in particular i'm curious about therubyracer
(trying version 0.12.3) because on the compatibility list https://www.graalvm.org/docs/reference-manual/compatibility/#therubyracer it says that it does install, however i'm getting the following stack trace from running gem install therubyracer
:
$ gem install therubyracer
Building native extensions. This could take a while...
ERROR: Error installing therubyracer:
ERROR: Failed to build gem native extension.
current directory: /opt/rubies/truffleruby-1.0.0-rc5/lib/ruby/gems/2.4.0/gems/therubyracer-0.12.3/ext/v8
/opt/rubies/truffleruby-1.0.0-rc5/bin/truffleruby -r ./siteconf20180809-38262-12vqb7.rb extconf.rb
checking for -lpthread... yes
checking for -lobjc... yes
creating Makefile
current directory: /opt/rubies/truffleruby-1.0.0-rc5/lib/ruby/gems/2.4.0/gems/therubyracer-0.12.3/ext/v8
make "DESTDIR=" clean
current directory: /opt/rubies/truffleruby-1.0.0-rc5/lib/ruby/gems/2.4.0/gems/therubyracer-0.12.3/ext/v8
make "DESTDIR="
compiling accessor.cc
clang-4.0: warning: argument unused during compilation: '-rdynamic' [-Wunused-command-line-argument]
In file included from accessor.cc:1:
In file included from ./rr.h:5:
In file included from /opt/rubies/truffleruby-1.0.0-rc5/lib/cext/include/ruby.h:33:
/opt/rubies/truffleruby-1.0.0-rc5/lib/cext/include/ruby/ruby.h:827:1: warning: empty struct has size 0 in C, size 1 in C++ [-Wextern-c-compat]
struct RBasic {
^
In file included from accessor.cc:1:
In file included from ./rr.h:8:
/opt/rubies/truffleruby-1.0.0-rc5/lib/cext/include/ruby/encoding.h:281:1: warning: empty struct has size 0 in C, size 1 in C++ [-Wextern-c-compat]
struct rb_econv_t {};
^
2 warnings generated.
compiling array.cc
clang-4.0: warning: argument unused during compilation: '-rdynamic' [-Wunused-command-line-argument]
In file included from array.cc:1:
In file included from ./rr.h:5:
In file included from /opt/rubies/truffleruby-1.0.0-rc5/lib/cext/include/ruby.h:33:
/opt/rubies/truffleruby-1.0.0-rc5/lib/cext/include/ruby/ruby.h:827:1: warning: empty struct has size 0 in C, size 1 in C++ [-Wextern-c-compat]
struct RBasic {
^
In file included from array.cc:1:
In file included from ./rr.h:8:
/opt/rubies/truffleruby-1.0.0-rc5/lib/cext/include/ruby/encoding.h:281:1: warning: empty struct has size 0 in C, size 1 in C++ [-Wextern-c-compat]
struct rb_econv_t {};
^
2 warnings generated.
compiling backref.cc
clang-4.0: warning: argument unused during compilation: '-rdynamic' [-Wunused-command-line-argument]
In file included from backref.cc:1:
In file included from ./rr.h:5:
In file included from /opt/rubies/truffleruby-1.0.0-rc5/lib/cext/include/ruby.h:33:
/opt/rubies/truffleruby-1.0.0-rc5/lib/cext/include/ruby/ruby.h:827:1: warning: empty struct has size 0 in C, size 1 in C++ [-Wextern-c-compat]
struct RBasic {
^
In file included from backref.cc:1:
In file included from ./rr.h:8:
/opt/rubies/truffleruby-1.0.0-rc5/lib/cext/include/ruby/encoding.h:281:1: warning: empty struct has size 0 in C, size 1 in C++ [-Wextern-c-compat]
struct rb_econv_t {};
^
2 warnings generated.
compiling constants.cc
clang-4.0: warning: argument unused during compilation: '-rdynamic' [-Wunused-command-line-argument]
In file included from constants.cc:1:
In file included from ./rr.h:5:
In file included from /opt/rubies/truffleruby-1.0.0-rc5/lib/cext/include/ruby.h:33:
/opt/rubies/truffleruby-1.0.0-rc5/lib/cext/include/ruby/ruby.h:827:1: warning: empty struct has size 0 in C, size 1 in C++ [-Wextern-c-compat]
struct RBasic {
^
In file included from constants.cc:1:
In file included from ./rr.h:8:
/opt/rubies/truffleruby-1.0.0-rc5/lib/cext/include/ruby/encoding.h:281:1: warning: empty struct has size 0 in C, size 1 in C++ [-Wextern-c-compat]
struct rb_econv_t {};
^
2 warnings generated.
compiling constraints.cc
clang-4.0: warning: argument unused during compilation: '-rdynamic' [-Wunused-command-line-argument]
In file included from constraints.cc:1:
In file included from ./rr.h:5:
In file included from /opt/rubies/truffleruby-1.0.0-rc5/lib/cext/include/ruby.h:33:
/opt/rubies/truffleruby-1.0.0-rc5/lib/cext/include/ruby/ruby.h:827:1: warning: empty struct has size 0 in C, size 1 in C++ [-Wextern-c-compat]
struct RBasic {
^
In file included from constraints.cc:1:
In file included from ./rr.h:8:
/opt/rubies/truffleruby-1.0.0-rc5/lib/cext/include/ruby/encoding.h:281:1: warning: empty struct has size 0 in C, size 1 in C++ [-Wextern-c-compat]
struct rb_econv_t {};
^
2 warnings generated.
compiling context.cc
clang-4.0: warning: argument unused during compilation: '-rdynamic' [-Wunused-command-line-argument]
In file included from context.cc:1:
In file included from ./rr.h:5:
In file included from /opt/rubies/truffleruby-1.0.0-rc5/lib/cext/include/ruby.h:33:
/opt/rubies/truffleruby-1.0.0-rc5/lib/cext/include/ruby/ruby.h:827:1: warning: empty struct has size 0 in C, size 1 in C++ [-Wextern-c-compat]
struct RBasic {
^
In file included from context.cc:1:
In file included from ./rr.h:8:
/opt/rubies/truffleruby-1.0.0-rc5/lib/cext/include/ruby/encoding.h:281:1: warning: empty struct has size 0 in C, size 1 in C++ [-Wextern-c-compat]
struct rb_econv_t {};
^
2 warnings generated.
compiling date.cc
clang-4.0: warning: argument unused during compilation: '-rdynamic' [-Wunused-command-line-argument]
In file included from date.cc:1:
In file included from ./rr.h:5:
In file included from /opt/rubies/truffleruby-1.0.0-rc5/lib/cext/include/ruby.h:33:
/opt/rubies/truffleruby-1.0.0-rc5/lib/cext/include/ruby/ruby.h:827:1: warning: empty struct has size 0 in C, size 1 in C++ [-Wextern-c-compat]
struct RBasic {
^
In file included from date.cc:1:
In file included from ./rr.h:8:
/opt/rubies/truffleruby-1.0.0-rc5/lib/cext/include/ruby/encoding.h:281:1: warning: empty struct has size 0 in C, size 1 in C++ [-Wextern-c-compat]
struct rb_econv_t {};
^
2 warnings generated.
compiling exception.cc
clang-4.0: warning: argument unused during compilation: '-rdynamic' [-Wunused-command-line-argument]
In file included from exception.cc:1:
In file included from ./rr.h:5:
In file included from /opt/rubies/truffleruby-1.0.0-rc5/lib/cext/include/ruby.h:33:
/opt/rubies/truffleruby-1.0.0-rc5/lib/cext/include/ruby/ruby.h:827:1: warning: empty struct has size 0 in C, size 1 in C++ [-Wextern-c-compat]
struct RBasic {
^
In file included from exception.cc:1:
In file included from ./rr.h:8:
/opt/rubies/truffleruby-1.0.0-rc5/lib/cext/include/ruby/encoding.h:281:1: warning: empty struct has size 0 in C, size 1 in C++ [-Wextern-c-compat]
struct rb_econv_t {};
^
2 warnings generated.
compiling external.cc
clang-4.0: warning: argument unused during compilation: '-rdynamic' [-Wunused-command-line-argument]
In file included from external.cc:1:
In file included from ./rr.h:5:
In file included from /opt/rubies/truffleruby-1.0.0-rc5/lib/cext/include/ruby.h:33:
/opt/rubies/truffleruby-1.0.0-rc5/lib/cext/include/ruby/ruby.h:827:1: warning: empty struct has size 0 in C, size 1 in C++ [-Wextern-c-compat]
struct RBasic {
^
In file included from external.cc:1:
In file included from ./rr.h:8:
/opt/rubies/truffleruby-1.0.0-rc5/lib/cext/include/ruby/encoding.h:281:1: warning: empty struct has size 0 in C, size 1 in C++ [-Wextern-c-compat]
struct rb_econv_t {};
^
2 warnings generated.
compiling function.cc
clang-4.0: warning: argument unused during compilation: '-rdynamic' [-Wunused-command-line-argument]
In file included from function.cc:1:
In file included from ./rr.h:5:
In file included from /opt/rubies/truffleruby-1.0.0-rc5/lib/cext/include/ruby.h:33:
/opt/rubies/truffleruby-1.0.0-rc5/lib/cext/include/ruby/ruby.h:827:1: warning: empty struct has size 0 in C, size 1 in C++ [-Wextern-c-compat]
struct RBasic {
^
In file included from function.cc:1:
In file included from ./rr.h:8:
/opt/rubies/truffleruby-1.0.0-rc5/lib/cext/include/ruby/encoding.h:281:1: warning: empty struct has size 0 in C, size 1 in C++ [-Wextern-c-compat]
struct rb_econv_t {};
^
2 warnings generated.
compiling gc.cc
clang-4.0: warning: argument unused during compilation: '-rdynamic' [-Wunused-command-line-argument]
In file included from gc.cc:1:
In file included from ./rr.h:5:
In file included from /opt/rubies/truffleruby-1.0.0-rc5/lib/cext/include/ruby.h:33:
/opt/rubies/truffleruby-1.0.0-rc5/lib/cext/include/ruby/ruby.h:827:1: warning: empty struct has size 0 in C, size 1 in C++ [-Wextern-c-compat]
struct RBasic {
^
In file included from gc.cc:1:
In file included from ./rr.h:8:
/opt/rubies/truffleruby-1.0.0-rc5/lib/cext/include/ruby/encoding.h:281:1: warning: empty struct has size 0 in C, size 1 in C++ [-Wextern-c-compat]
struct rb_econv_t {};
^
2 warnings generated.
compiling handles.cc
clang-4.0: warning: argument unused during compilation: '-rdynamic' [-Wunused-command-line-argument]
In file included from handles.cc:1:
In file included from ./rr.h:5:
In file included from /opt/rubies/truffleruby-1.0.0-rc5/lib/cext/include/ruby.h:33:
/opt/rubies/truffleruby-1.0.0-rc5/lib/cext/include/ruby/ruby.h:827:1: warning: empty struct has size 0 in C, size 1 in C++ [-Wextern-c-compat]
struct RBasic {
^
In file included from handles.cc:1:
In file included from ./rr.h:8:
/opt/rubies/truffleruby-1.0.0-rc5/lib/cext/include/ruby/encoding.h:281:1: warning: empty struct has size 0 in C, size 1 in C++ [-Wextern-c-compat]
struct rb_econv_t {};
^
2 warnings generated.
compiling heap.cc
clang-4.0: warning: argument unused during compilation: '-rdynamic' [-Wunused-command-line-argument]
In file included from heap.cc:1:
In file included from ./rr.h:5:
In file included from /opt/rubies/truffleruby-1.0.0-rc5/lib/cext/include/ruby.h:33:
/opt/rubies/truffleruby-1.0.0-rc5/lib/cext/include/ruby/ruby.h:827:1: warning: empty struct has size 0 in C, size 1 in C++ [-Wextern-c-compat]
struct RBasic {
^
In file included from heap.cc:1:
In file included from ./rr.h:8:
/opt/rubies/truffleruby-1.0.0-rc5/lib/cext/include/ruby/encoding.h:281:1: warning: empty struct has size 0 in C, size 1 in C++ [-Wextern-c-compat]
struct rb_econv_t {};
^
2 warnings generated.
compiling init.cc
clang-4.0: warning: argument unused during compilation: '-rdynamic' [-Wunused-command-line-argument]
In file included from init.cc:1:
In file included from ./rr.h:5:
In file included from /opt/rubies/truffleruby-1.0.0-rc5/lib/cext/include/ruby.h:33:
/opt/rubies/truffleruby-1.0.0-rc5/lib/cext/include/ruby/ruby.h:827:1: warning: empty struct has size 0 in C, size 1 in C++ [-Wextern-c-compat]
struct RBasic {
^
In file included from init.cc:1:
In file included from ./rr.h:8:
/opt/rubies/truffleruby-1.0.0-rc5/lib/cext/include/ruby/encoding.h:281:1: warning: empty struct has size 0 in C, size 1 in C++ [-Wextern-c-compat]
struct rb_econv_t {};
^
init.cc:11:20: warning: empty parentheses interpreted as a function declaration [-Wvexing-parse]
v8::Locker lock();
^~
init.cc:11:20: note: remove parentheses to declare a variable
v8::Locker lock();
^~
init.cc:11:16: warning: 'lock' has C-linkage specified, but returns user-defined type 'v8::Locker' which is incompatible with C [-Wreturn-type-c-linkage]
v8::Locker lock();
^
4 warnings generated.
compiling invocation.cc
clang-4.0: warning: argument unused during compilation: '-rdynamic' [-Wunused-command-line-argument]
In file included from invocation.cc:1:
In file included from ./rr.h:5:
In file included from /opt/rubies/truffleruby-1.0.0-rc5/lib/cext/include/ruby.h:33:
/opt/rubies/truffleruby-1.0.0-rc5/lib/cext/include/ruby/ruby.h:827:1: warning: empty struct has size 0 in C, size 1 in C++ [-Wextern-c-compat]
struct RBasic {
^
In file included from invocation.cc:1:
In file included from ./rr.h:8:
/opt/rubies/truffleruby-1.0.0-rc5/lib/cext/include/ruby/encoding.h:281:1: warning: empty struct has size 0 in C, size 1 in C++ [-Wextern-c-compat]
struct rb_econv_t {};
^
2 warnings generated.
compiling locker.cc
clang-4.0: warning: argument unused during compilation: '-rdynamic' [-Wunused-command-line-argument]
In file included from locker.cc:1:
In file included from ./rr.h:5:
In file included from /opt/rubies/truffleruby-1.0.0-rc5/lib/cext/include/ruby.h:33:
/opt/rubies/truffleruby-1.0.0-rc5/lib/cext/include/ruby/ruby.h:827:1: warning: empty struct has size 0 in C, size 1 in C++ [-Wextern-c-compat]
struct RBasic {
^
In file included from locker.cc:1:
In file included from ./rr.h:8:
/opt/rubies/truffleruby-1.0.0-rc5/lib/cext/include/ruby/encoding.h:281:1: warning: empty struct has size 0 in C, size 1 in C++ [-Wextern-c-compat]
struct rb_econv_t {};
^
2 warnings generated.
compiling message.cc
clang-4.0: warning: argument unused during compilation: '-rdynamic' [-Wunused-command-line-argument]
In file included from message.cc:1:
In file included from ./rr.h:5:
In file included from /opt/rubies/truffleruby-1.0.0-rc5/lib/cext/include/ruby.h:33:
/opt/rubies/truffleruby-1.0.0-rc5/lib/cext/include/ruby/ruby.h:827:1: warning: empty struct has size 0 in C, size 1 in C++ [-Wextern-c-compat]
struct RBasic {
^
In file included from message.cc:1:
In file included from ./rr.h:8:
/opt/rubies/truffleruby-1.0.0-rc5/lib/cext/include/ruby/encoding.h:281:1: warning: empty struct has size 0 in C, size 1 in C++ [-Wextern-c-compat]
struct rb_econv_t {};
^
2 warnings generated.
compiling object.cc
clang-4.0: warning: argument unused during compilation: '-rdynamic' [-Wunused-command-line-argument]
In file included from object.cc:1:
In file included from ./rr.h:5:
In file included from /opt/rubies/truffleruby-1.0.0-rc5/lib/cext/include/ruby.h:33:
/opt/rubies/truffleruby-1.0.0-rc5/lib/cext/include/ruby/ruby.h:827:1: warning: empty struct has size 0 in C, size 1 in C++ [-Wextern-c-compat]
struct RBasic {
^
In file included from object.cc:1:
In file included from ./rr.h:8:
/opt/rubies/truffleruby-1.0.0-rc5/lib/cext/include/ruby/encoding.h:281:1: warning: empty struct has size 0 in C, size 1 in C++ [-Wextern-c-compat]
struct rb_econv_t {};
^
object.cc:94:10: error: no matching conversion for functional-style cast from 'v8::PropertyAttribute' to 'rr::PropertyAttribute'
return PropertyAttribute(Object(self)->GetPropertyAttributes(Value(key)));
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
./rr.h:447:7: note: candidate constructor (the implicit copy constructor) not viable: no known conversion from 'v8::PropertyAttribute' to 'const rr::PropertyAttribute' for 1st argument
class PropertyAttribute: public Enum<v8::PropertyAttribute> {
^
./rr.h:449:10: note: candidate constructor not viable: no known conversion from 'v8::PropertyAttribute' to 'VALUE' (aka 'void *') for 1st argument
inline PropertyAttribute(VALUE value) : Enum<v8::PropertyAttribute>(value, v8::None) {}
^
2 warnings and 1 error generated.
make: *** [Makefile:179: object.bc] Error 1
make failed, exit code 2
Gem files will remain installed in /opt/rubies/truffleruby-1.0.0-rc5/lib/ruby/gems/2.4.0/gems/therubyracer-0.12.3 for inspection.
Results logged to /opt/rubies/truffleruby-1.0.0-rc5/lib/ruby/gems/2.4.0/extensions/x86_64-darwin/2.4.0/therubyracer-0.12.3/gem_make.out
Let me know if i should provide any other details.