Reputation: 51
ruby '2.5.0' gem 'rails', '~> 5.1.2' bundle version 1.17.3 MAC OS version MAC OS Big Sur 11.6
Solutions tried already 1)gem install thrift -- --with-cppflags="-D_FORTIFY_SOURCE=0 -Wno-shift-negative-value" 2)gem install thrift -v '0.9.3.0' -- --with-cppflags='-D_FORTIFY_SOURCE=0'
Gem::Ext::BuildError: ERROR: Failed to build gem native extension.
current directory: /Users/ijain/.rvm/gems/ruby-2.5.0/gems/thrift-0.9.3.0/ext
/Users/ijain/.rvm/rubies/ruby-2.5.0/bin/ruby -I /Users/ijain/.rvm/rubies/ruby-2.5.0/lib/ruby/site_ruby/2.5.0 -r
./siteconf20211001-29299-1tv02zv.rb extconf.rb --with-cflags\=-Wno-implicit-function-declaration
checking for strlcpy() in string.h... yes
creating Makefile
current directory: /Users/ijain/.rvm/gems/ruby-2.5.0/gems/thrift-0.9.3.0/ext
make DESTDIR\= clean
current directory: /Users/ijain/.rvm/gems/ruby-2.5.0/gems/thrift-0.9.3.0/ext
make DESTDIR\=
compiling binary_protocol_accelerated.c
binary_protocol_accelerated.c:404:68: error: '(' and '{' tokens introducing statement expression appear in different macro
expansion contexts [-Werror,-Wcompound-token-split-by-macro]
VALUE thrift_binary_protocol_class = rb_const_get(thrift_module, rb_intern("BinaryProtocol"));
^~~~~~~~~~~~~~~~~~~~~~~~~~~
/Users/ijain/.rvm/rubies/ruby-2.5.0/include/ruby-2.5.0/ruby/ruby.h:1755:23: note: expanded from macro 'rb_intern'
__extension__ (RUBY_CONST_ID_CACHE((ID), (str))) : \
^
binary_protocol_accelerated.c:404:68: note: '{' token is here
VALUE thrift_binary_protocol_class = rb_const_get(thrift_module, rb_intern("BinaryProtocol"));
^~~~~~~~~~~~~~~~~~~~~~~~~~~
/Users/ijain/.rvm/rubies/ruby-2.5.0/include/ruby-2.5.0/ruby/ruby.h:1755:24: note: expanded from macro 'rb_intern'
__extension__ (RUBY_CONST_ID_CACHE((ID), (str))) : \
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/Users/ijain/.rvm/rubies/ruby-2.5.0/include/ruby-2.5.0/ruby/ruby.h:1740:5: note: expanded from macro 'RUBY_CONST_ID_CACHE'
{ \
^
binary_protocol_accelerated.c:404:68: error: '}' and ')' tokens terminating statement expression appear in different macro
expansion contexts [-Werror,-Wcompound-token-split-by-macro]
VALUE thrift_binary_protocol_class = rb_const_get(thrift_module, rb_intern("BinaryProtocol"));
^~~~~~~~~~~~~~~~~~~~~~~~~~~
/Users/ijain/.rvm/rubies/ruby-2.5.0/include/ruby-2.5.0/ruby/ruby.h:1755:24: note: expanded from macro 'rb_intern'
__extension__ (RUBY_CONST_ID_CACHE((ID), (str))) : \
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/Users/ijain/.rvm/rubies/ruby-2.5.0/include/ruby-2.5.0/ruby/ruby.h:1745:5: note: expanded from macro 'RUBY_CONST_ID_CACHE'
}
^
binary_protocol_accelerated.c:404:68: note: ')' token is here
VALUE thrift_binary_protocol_class = rb_const_get(thrift_module, rb_intern("BinaryProtocol"));
^~~~~~~~~~~~~~~~~~~~~~~~~~~
/Users/ijain/.rvm/rubies/ruby-2.5.0/include/ruby-2.5.0/ruby/ruby.h:1755:56: note: expanded from macro 'rb_intern'
__extension__ (RUBY_CONST_ID_CACHE((ID), (str))) : \ ```
Upvotes: 4
Views: 3894
Reputation: 101
try gem install thrift -- --with-cppflags="-Wno-compound-token-split-by-macro"
https://github.com/ruby/ruby/pull/4504#issuecomment-929696628
Upvotes: 10