Skip to content

Unable to install rbtree3 0.5.0 with TruffleRuby 19.3.1 #1884

@jaimerave

Description

@jaimerave

When trying to install rbtree3 (https://github.com/kyrylo/rbtree3) I get the following error:

gem install rbtree3
Building native extensions. This could take a while...
ERROR:  Error installing rbtree3:
	ERROR: Failed to build gem native extension.

    current directory: /Users/rave/.rbenv/versions/truffleruby-19.3.1/lib/gems/gems/rbtree3-0.5.0
/Users/rave/.rbenv/versions/truffleruby-19.3.1/bin/truffleruby -I /Users/rave/.rbenv/versions/truffleruby-19.3.1/lib/mri -r ./siteconf20200120-36381-1333t0f.rb extconf.rb
checking for rb_exec_recursive() in ruby.h... yes
creating Makefile

current directory: /Users/rave/.rbenv/versions/truffleruby-19.3.1/lib/gems/gems/rbtree3-0.5.0
make "DESTDIR=" clean

current directory: /Users/rave/.rbenv/versions/truffleruby-19.3.1/lib/gems/gems/rbtree3-0.5.0
make "DESTDIR="
compiling dict.c
compiling rbtree.c
rbtree.c:412:5: error: no member named 'flags' in 'struct RBasic'
    FL_UNSET(self, RBTREE_PROC_DEFAULT);
    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/Users/rave/.rbenv/versions/truffleruby-19.3.1/lib/cext/include/ruby/ruby.h:1337:23: note: expanded from macro 'FL_UNSET'
#define FL_UNSET(x,f) RB_FL_UNSET(x,f)
                      ^~~~~~~~~~~~~~~~
/Users/rave/.rbenv/versions/truffleruby-19.3.1/lib/cext/include/ruby/ruby.h:1303:43: note: expanded from macro 'RB_FL_UNSET'
#define RB_FL_UNSET(x,f) (RB_FL_ABLE(x) ? RB_FL_UNSET_RAW(x, f) : (void)0)
                                          ^~~~~~~~~~~~~~~~~~~~~
/Users/rave/.rbenv/versions/truffleruby-19.3.1/lib/cext/include/ruby/ruby.h:1302:48: note: expanded from macro 'RB_FL_UNSET_RAW'
#define RB_FL_UNSET_RAW(x,f) (void)(RBASIC(x)->flags &= ~(VALUE)(f))
                                    ~~~~~~~~~  ^
rbtree.c:412:5: error: invalid argument type 'VALUE' (aka 'void *') to unary expression
    FL_UNSET(self, RBTREE_PROC_DEFAULT);
    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/Users/rave/.rbenv/versions/truffleruby-19.3.1/lib/cext/include/ruby/ruby.h:1337:23: note: expanded from macro 'FL_UNSET'
#define FL_UNSET(x,f) RB_FL_UNSET(x,f)
                      ^~~~~~~~~~~~~~~~
/Users/rave/.rbenv/versions/truffleruby-19.3.1/lib/cext/include/ruby/ruby.h:1303:43: note: expanded from macro 'RB_FL_UNSET'
#define RB_FL_UNSET(x,f) (RB_FL_ABLE(x) ? RB_FL_UNSET_RAW(x, f) : (void)0)
                                          ^~~~~~~~~~~~~~~~~~~~~
/Users/rave/.rbenv/versions/truffleruby-19.3.1/lib/cext/include/ruby/ruby.h:1302:57: note: expanded from macro 'RB_FL_UNSET_RAW'
#define RB_FL_UNSET_RAW(x,f) (void)(RBASIC(x)->flags &= ~(VALUE)(f))
                                                        ^~~~~~~~~~~
rbtree.c:665:9: error: no member named 'flags' in 'struct RBasic'
        FL_UNSET(self, RBTREE_PROC_DEFAULT);
        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/Users/rave/.rbenv/versions/truffleruby-19.3.1/lib/cext/include/ruby/ruby.h:1337:23: note: expanded from macro 'FL_UNSET'
#define FL_UNSET(x,f) RB_FL_UNSET(x,f)
                      ^~~~~~~~~~~~~~~~
/Users/rave/.rbenv/versions/truffleruby-19.3.1/lib/cext/include/ruby/ruby.h:1303:43: note: expanded from macro 'RB_FL_UNSET'
#define RB_FL_UNSET(x,f) (RB_FL_ABLE(x) ? RB_FL_UNSET_RAW(x, f) : (void)0)
                                          ^~~~~~~~~~~~~~~~~~~~~
/Users/rave/.rbenv/versions/truffleruby-19.3.1/lib/cext/include/ruby/ruby.h:1302:48: note: expanded from macro 'RB_FL_UNSET_RAW'
#define RB_FL_UNSET_RAW(x,f) (void)(RBASIC(x)->flags &= ~(VALUE)(f))
                                    ~~~~~~~~~  ^
rbtree.c:665:9: error: invalid argument type 'VALUE' (aka 'void *') to unary expression
        FL_UNSET(self, RBTREE_PROC_DEFAULT);
        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/Users/rave/.rbenv/versions/truffleruby-19.3.1/lib/cext/include/ruby/ruby.h:1337:23: note: expanded from macro 'FL_UNSET'
#define FL_UNSET(x,f) RB_FL_UNSET(x,f)
                      ^~~~~~~~~~~~~~~~
/Users/rave/.rbenv/versions/truffleruby-19.3.1/lib/cext/include/ruby/ruby.h:1303:43: note: expanded from macro 'RB_FL_UNSET'
#define RB_FL_UNSET(x,f) (RB_FL_ABLE(x) ? RB_FL_UNSET_RAW(x, f) : (void)0)
                                          ^~~~~~~~~~~~~~~~~~~~~
/Users/rave/.rbenv/versions/truffleruby-19.3.1/lib/cext/include/ruby/ruby.h:1302:57: note: expanded from macro 'RB_FL_UNSET_RAW'
#define RB_FL_UNSET_RAW(x,f) (void)(RBASIC(x)->flags &= ~(VALUE)(f))
                                                        ^~~~~~~~~~~
4 errors generated.
make: *** [rbtree.o] Error 1

make failed, exit code 2

Gem files will remain installed in /Users/rave/.rbenv/versions/truffleruby-19.3.1/lib/gems/gems/rbtree3-0.5.0 for inspection.
Results logged to /Users/rave/.rbenv/versions/truffleruby-19.3.1/lib/gems/extensions/x86_64-darwin/19.3.1/rbtree3-0.5.0/gem_make.out

Works fine in MRI 2.6.5

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions