[ 
https://issues.apache.org/jira/browse/THRIFT-5473?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Fernando Alvarez Junco updated THRIFT-5473:
-------------------------------------------
    Description: 
I get a compile error when trying to install the gem thrift v0.15.0

I found one 
[bugtracker|https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=255910] 
mentioning the same problem and pointing to the flag 
-Wcompound-token-split-by-macro that seems to be enabled by default starting on 
the version 12 of clang.

Also a patch is provided in the mentioned bugtracker.

 

The error output is:
{code:java}
Gem::Ext::BuildError: ERROR: Failed to build gem native extension.    current 
directory: 
/Users/user/.asdf/installs/ruby/2.7.4/lib/ruby/gems/2.7.0/gems/thrift-0.15.0/ext
/Users/user/.asdf/installs/ruby/2.7.4/bin/ruby -I 
/Users/user/.asdf/installs/ruby/2.7.4/lib/ruby/2.7.0 -r 
./siteconf20211018-75929-1w556gv.rb extconf.rb
checking for strlcpy() in string.h... yes
creating Makefilecurrent directory: 
/Users/user/.asdf/installs/ruby/2.7.4/lib/ruby/gems/2.7.0/gems/thrift-0.15.0/ext
make "DESTDIR=" cleancurrent directory: 
/Users/user/.asdf/installs/ruby/2.7.4/lib/ruby/gems/2.7.0/gems/thrift-0.15.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/user/.asdf/installs/ruby/2.7.4/include/ruby-2.7.0/ruby/ruby.h:1847: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/user/.asdf/installs/ruby/2.7.4/include/ruby-2.7.0/ruby/ruby.h:1847:24: 
note: expanded from macro 'rb_intern'
        __extension__ (RUBY_CONST_ID_CACHE((ID), (str))) : \
                       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/Users/user/.asdf/installs/ruby/2.7.4/include/ruby-2.7.0/ruby/ruby.h:1832: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/user/.asdf/installs/ruby/2.7.4/include/ruby-2.7.0/ruby/ruby.h:1847:24: 
note: expanded from macro 'rb_intern'
        __extension__ (RUBY_CONST_ID_CACHE((ID), (str))) : \
                       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/Users/user/.asdf/installs/ruby/2.7.4/include/ruby-2.7.0/ruby/ruby.h:1837: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/user/.asdf/installs/ruby/2.7.4/include/ruby-2.7.0/ruby/ruby.h:1847:56: 
note: expanded from macro 'rb_intern'
        __extension__ (RUBY_CONST_ID_CACHE((ID), (str))) : \
                                                       ^
binary_protocol_accelerated.c:406:68: error: '(' and '{' tokens introducing 
statement expression appear in different macro expansion contexts 
[-Werror,-Wcompound-token-split-by-macro]
  VERSION_1 = rb_num2ll(rb_const_get(thrift_binary_protocol_class, 
rb_intern("VERSION_1")));
                                                                   
^~~~~~~~~~~~~~~~~~~~~~
/Users/user/.asdf/installs/ruby/2.7.4/include/ruby-2.7.0/ruby/ruby.h:1847:23: 
note: expanded from macro 'rb_intern'
        __extension__ (RUBY_CONST_ID_CACHE((ID), (str))) : \
                      ^
binary_protocol_accelerated.c:406:68: note: '{' token is here
  VERSION_1 = rb_num2ll(rb_const_get(thrift_binary_protocol_class, 
rb_intern("VERSION_1")));
                                                                   
^~~~~~~~~~~~~~~~~~~~~~
/Users/user/.asdf/installs/ruby/2.7.4/include/ruby-2.7.0/ruby/ruby.h:1847:24: 
note: expanded from macro 'rb_intern'
        __extension__ (RUBY_CONST_ID_CACHE((ID), (str))) : \
                       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/Users/user/.asdf/installs/ruby/2.7.4/include/ruby-2.7.0/ruby/ruby.h:1832:5: 
note: expanded from macro 'RUBY_CONST_ID_CACHE'
    {                                                   \
    ^
binary_protocol_accelerated.c:406:68: error: '}' and ')' tokens terminating 
statement expression appear in different macro expansion contexts 
[-Werror,-Wcompound-token-split-by-macro]
  VERSION_1 = rb_num2ll(rb_const_get(thrift_binary_protocol_class, 
rb_intern("VERSION_1")));
                                                                   
^~~~~~~~~~~~~~~~~~~~~~
/Users/user/.asdf/installs/ruby/2.7.4/include/ruby-2.7.0/ruby/ruby.h:1847:24: 
note: expanded from macro 'rb_intern'
        __extension__ (RUBY_CONST_ID_CACHE((ID), (str))) : \
                       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/Users/user/.asdf/installs/ruby/2.7.4/include/ruby-2.7.0/ruby/ruby.h:1837:5: 
note: expanded from macro 'RUBY_CONST_ID_CACHE'
    }
    ^
binary_protocol_accelerated.c:406:68: note: ')' token is here
  VERSION_1 = rb_num2ll(rb_const_get(thrift_binary_protocol_class, 
rb_intern("VERSION_1")));
                                                                   
^~~~~~~~~~~~~~~~~~~~~~
/Users/user/.asdf/installs/ruby/2.7.4/include/ruby-2.7.0/ruby/ruby.h:1847:56: 
note: expanded from macro 'rb_intern'
        __extension__ (RUBY_CONST_ID_CACHE((ID), (str))) : \
                                                       ^
binary_protocol_accelerated.c:407:71: error: '(' and '{' tokens introducing 
statement expression appear in different macro expansion contexts 
[-Werror,-Wcompound-token-split-by-macro]
  VERSION_MASK = rb_num2ll(rb_const_get(thrift_binary_protocol_class, 
rb_intern("VERSION_MASK")));
                                                                      
^~~~~~~~~~~~~~~~~~~~~~~~~
/Users/user/.asdf/installs/ruby/2.7.4/include/ruby-2.7.0/ruby/ruby.h:1847:23: 
note: expanded from macro 'rb_intern'
        __extension__ (RUBY_CONST_ID_CACHE((ID), (str))) : \
                      ^
binary_protocol_accelerated.c:407:71: note: '{' token is here
  VERSION_MASK = rb_num2ll(rb_const_get(thrift_binary_protocol_class, 
rb_intern("VERSION_MASK")));
                                                                      
^~~~~~~~~~~~~~~~~~~~~~~~~
/Users/user/.asdf/installs/ruby/2.7.4/include/ruby-2.7.0/ruby/ruby.h:1847:24: 
note: expanded from macro 'rb_intern'
        __extension__ (RUBY_CONST_ID_CACHE((ID), (str))) : \
                       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/Users/user/.asdf/installs/ruby/2.7.4/include/ruby-2.7.0/ruby/ruby.h:1832:5: 
note: expanded from macro 'RUBY_CONST_ID_CACHE'
    {                                                   \
    ^
binary_protocol_accelerated.c:407:71: error: '}' and ')' tokens terminating 
statement expression appear in different macro expansion contexts 
[-Werror,-Wcompound-token-split-by-macro]
  VERSION_MASK = rb_num2ll(rb_const_get(thrift_binary_protocol_class, 
rb_intern("VERSION_MASK")));
                                                                      
^~~~~~~~~~~~~~~~~~~~~~~~~
/Users/user/.asdf/installs/ruby/2.7.4/include/ruby-2.7.0/ruby/ruby.h:1847:24: 
note: expanded from macro 'rb_intern'
        __extension__ (RUBY_CONST_ID_CACHE((ID), (str))) : \
                       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/Users/user/.asdf/installs/ruby/2.7.4/include/ruby-2.7.0/ruby/ruby.h:1837:5: 
note: expanded from macro 'RUBY_CONST_ID_CACHE'
    }
    ^
binary_protocol_accelerated.c:407:71: note: ')' token is here
  VERSION_MASK = rb_num2ll(rb_const_get(thrift_binary_protocol_class, 
rb_intern("VERSION_MASK")));
                                                                      
^~~~~~~~~~~~~~~~~~~~~~~~~
/Users/user/.asdf/installs/ruby/2.7.4/include/ruby-2.7.0/ruby/ruby.h:1847:56: 
note: expanded from macro 'rb_intern'
        __extension__ (RUBY_CONST_ID_CACHE((ID), (str))) : \
                                                       ^
binary_protocol_accelerated.c:408:68: error: '(' and '{' tokens introducing 
statement expression appear in different macro expansion contexts 
[-Werror,-Wcompound-token-split-by-macro]
  TYPE_MASK = rb_num2ll(rb_const_get(thrift_binary_protocol_class, 
rb_intern("TYPE_MASK")));
                                                                   
^~~~~~~~~~~~~~~~~~~~~~
/Users/user/.asdf/installs/ruby/2.7.4/include/ruby-2.7.0/ruby/ruby.h:1847:23: 
note: expanded from macro 'rb_intern'
        __extension__ (RUBY_CONST_ID_CACHE((ID), (str))) : \
                      ^
binary_protocol_accelerated.c:408:68: note: '{' token is here
  TYPE_MASK = rb_num2ll(rb_const_get(thrift_binary_protocol_class, 
rb_intern("TYPE_MASK")));
                                                                   
^~~~~~~~~~~~~~~~~~~~~~
/Users/user/.asdf/installs/ruby/2.7.4/include/ruby-2.7.0/ruby/ruby.h:1847:24: 
note: expanded from macro 'rb_intern'
        __extension__ (RUBY_CONST_ID_CACHE((ID), (str))) : \
                       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/Users/user/.asdf/installs/ruby/2.7.4/include/ruby-2.7.0/ruby/ruby.h:1832:5: 
note: expanded from macro 'RUBY_CONST_ID_CACHE'
    {                                                   \
    ^
binary_protocol_accelerated.c:408:68: error: '}' and ')' tokens terminating 
statement expression appear in different macro expansion contexts 
[-Werror,-Wcompound-token-split-by-macro]
  TYPE_MASK = rb_num2ll(rb_const_get(thrift_binary_protocol_class, 
rb_intern("TYPE_MASK")));
                                                                   
^~~~~~~~~~~~~~~~~~~~~~
/Users/user/.asdf/installs/ruby/2.7.4/include/ruby-2.7.0/ruby/ruby.h:1847:24: 
note: expanded from macro 'rb_intern'
        __extension__ (RUBY_CONST_ID_CACHE((ID), (str))) : \
                       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/Users/user/.asdf/installs/ruby/2.7.4/include/ruby-2.7.0/ruby/ruby.h:1837:5: 
note: expanded from macro 'RUBY_CONST_ID_CACHE'
    }
    ^
binary_protocol_accelerated.c:408:68: note: ')' token is here
  TYPE_MASK = rb_num2ll(rb_const_get(thrift_binary_protocol_class, 
rb_intern("TYPE_MASK")));
                                                                   
^~~~~~~~~~~~~~~~~~~~~~
/Users/user/.asdf/installs/ruby/2.7.4/include/ruby-2.7.0/ruby/ruby.h:1847:56: 
note: expanded from macro 'rb_intern'
        __extension__ (RUBY_CONST_ID_CACHE((ID), (str))) : \
                                                       ^
binary_protocol_accelerated.c:459:18: error: '(' and '{' tokens introducing 
statement expression appear in different macro expansion contexts 
[-Werror,-Wcompound-token-split-by-macro]
  rbuf_ivar_id = rb_intern("@rbuf");
                 ^~~~~~~~~~~~~~~~~~
/Users/user/.asdf/installs/ruby/2.7.4/include/ruby-2.7.0/ruby/ruby.h:1847:23: 
note: expanded from macro 'rb_intern'
        __extension__ (RUBY_CONST_ID_CACHE((ID), (str))) : \
                      ^
binary_protocol_accelerated.c:459:18: note: '{' token is here
  rbuf_ivar_id = rb_intern("@rbuf");
                 ^~~~~~~~~~~~~~~~~~
/Users/user/.asdf/installs/ruby/2.7.4/include/ruby-2.7.0/ruby/ruby.h:1847:24: 
note: expanded from macro 'rb_intern'
        __extension__ (RUBY_CONST_ID_CACHE((ID), (str))) : \
                       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/Users/user/.asdf/installs/ruby/2.7.4/include/ruby-2.7.0/ruby/ruby.h:1832:5: 
note: expanded from macro 'RUBY_CONST_ID_CACHE'
    {                                                   \
    ^
binary_protocol_accelerated.c:459:18: error: '}' and ')' tokens terminating 
statement expression appear in different macro expansion contexts 
[-Werror,-Wcompound-token-split-by-macro]
  rbuf_ivar_id = rb_intern("@rbuf");
                 ^~~~~~~~~~~~~~~~~~
/Users/user/.asdf/installs/ruby/2.7.4/include/ruby-2.7.0/ruby/ruby.h:1847:24: 
note: expanded from macro 'rb_intern'
        __extension__ (RUBY_CONST_ID_CACHE((ID), (str))) : \
                       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/Users/user/.asdf/installs/ruby/2.7.4/include/ruby-2.7.0/ruby/ruby.h:1837:5: 
note: expanded from macro 'RUBY_CONST_ID_CACHE'
    }
    ^
binary_protocol_accelerated.c:459:18: note: ')' token is here
  rbuf_ivar_id = rb_intern("@rbuf");
                 ^~~~~~~~~~~~~~~~~~
/Users/user/.asdf/installs/ruby/2.7.4/include/ruby-2.7.0/ruby/ruby.h:1847:56: 
note: expanded from macro 'rb_intern'
        __extension__ (RUBY_CONST_ID_CACHE((ID), (str))) : \
                                                       ^
10 errors generated.
make: *** [binary_protocol_accelerated.o] Error 1make failed, exit code 2Gem 
files will remain installed in 
/Users/user/.asdf/installs/ruby/2.7.4/lib/ruby/gems/2.7.0/gems/thrift-0.15.0 
for inspection.
Results logged to 
/Users/user/.asdf/installs/ruby/2.7.4/lib/ruby/gems/2.7.0/extensions/x86_64-darwin-20/2.7.0/thrift-0.15.0/gem_make.out{code}

  was:
I get a compile error when trying to install the gem thrift v0.15.0

I found one 
[bugtracker|https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=255910] 
mentioning the same problem and pointing to the flag 
-Wcompound-token-split-by-macro that seems to be enabled by default starting on 
the version 12 of clang.

 

The error output is:
{code:java}
Gem::Ext::BuildError: ERROR: Failed to build gem native extension.    current 
directory: 
/Users/user/.asdf/installs/ruby/2.7.4/lib/ruby/gems/2.7.0/gems/thrift-0.15.0/ext
/Users/user/.asdf/installs/ruby/2.7.4/bin/ruby -I 
/Users/user/.asdf/installs/ruby/2.7.4/lib/ruby/2.7.0 -r 
./siteconf20211018-75929-1w556gv.rb extconf.rb
checking for strlcpy() in string.h... yes
creating Makefilecurrent directory: 
/Users/user/.asdf/installs/ruby/2.7.4/lib/ruby/gems/2.7.0/gems/thrift-0.15.0/ext
make "DESTDIR=" cleancurrent directory: 
/Users/user/.asdf/installs/ruby/2.7.4/lib/ruby/gems/2.7.0/gems/thrift-0.15.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/user/.asdf/installs/ruby/2.7.4/include/ruby-2.7.0/ruby/ruby.h:1847: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/user/.asdf/installs/ruby/2.7.4/include/ruby-2.7.0/ruby/ruby.h:1847:24: 
note: expanded from macro 'rb_intern'
        __extension__ (RUBY_CONST_ID_CACHE((ID), (str))) : \
                       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/Users/user/.asdf/installs/ruby/2.7.4/include/ruby-2.7.0/ruby/ruby.h:1832: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/user/.asdf/installs/ruby/2.7.4/include/ruby-2.7.0/ruby/ruby.h:1847:24: 
note: expanded from macro 'rb_intern'
        __extension__ (RUBY_CONST_ID_CACHE((ID), (str))) : \
                       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/Users/user/.asdf/installs/ruby/2.7.4/include/ruby-2.7.0/ruby/ruby.h:1837: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/user/.asdf/installs/ruby/2.7.4/include/ruby-2.7.0/ruby/ruby.h:1847:56: 
note: expanded from macro 'rb_intern'
        __extension__ (RUBY_CONST_ID_CACHE((ID), (str))) : \
                                                       ^
binary_protocol_accelerated.c:406:68: error: '(' and '{' tokens introducing 
statement expression appear in different macro expansion contexts 
[-Werror,-Wcompound-token-split-by-macro]
  VERSION_1 = rb_num2ll(rb_const_get(thrift_binary_protocol_class, 
rb_intern("VERSION_1")));
                                                                   
^~~~~~~~~~~~~~~~~~~~~~
/Users/user/.asdf/installs/ruby/2.7.4/include/ruby-2.7.0/ruby/ruby.h:1847:23: 
note: expanded from macro 'rb_intern'
        __extension__ (RUBY_CONST_ID_CACHE((ID), (str))) : \
                      ^
binary_protocol_accelerated.c:406:68: note: '{' token is here
  VERSION_1 = rb_num2ll(rb_const_get(thrift_binary_protocol_class, 
rb_intern("VERSION_1")));
                                                                   
^~~~~~~~~~~~~~~~~~~~~~
/Users/user/.asdf/installs/ruby/2.7.4/include/ruby-2.7.0/ruby/ruby.h:1847:24: 
note: expanded from macro 'rb_intern'
        __extension__ (RUBY_CONST_ID_CACHE((ID), (str))) : \
                       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/Users/user/.asdf/installs/ruby/2.7.4/include/ruby-2.7.0/ruby/ruby.h:1832:5: 
note: expanded from macro 'RUBY_CONST_ID_CACHE'
    {                                                   \
    ^
binary_protocol_accelerated.c:406:68: error: '}' and ')' tokens terminating 
statement expression appear in different macro expansion contexts 
[-Werror,-Wcompound-token-split-by-macro]
  VERSION_1 = rb_num2ll(rb_const_get(thrift_binary_protocol_class, 
rb_intern("VERSION_1")));
                                                                   
^~~~~~~~~~~~~~~~~~~~~~
/Users/user/.asdf/installs/ruby/2.7.4/include/ruby-2.7.0/ruby/ruby.h:1847:24: 
note: expanded from macro 'rb_intern'
        __extension__ (RUBY_CONST_ID_CACHE((ID), (str))) : \
                       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/Users/user/.asdf/installs/ruby/2.7.4/include/ruby-2.7.0/ruby/ruby.h:1837:5: 
note: expanded from macro 'RUBY_CONST_ID_CACHE'
    }
    ^
binary_protocol_accelerated.c:406:68: note: ')' token is here
  VERSION_1 = rb_num2ll(rb_const_get(thrift_binary_protocol_class, 
rb_intern("VERSION_1")));
                                                                   
^~~~~~~~~~~~~~~~~~~~~~
/Users/user/.asdf/installs/ruby/2.7.4/include/ruby-2.7.0/ruby/ruby.h:1847:56: 
note: expanded from macro 'rb_intern'
        __extension__ (RUBY_CONST_ID_CACHE((ID), (str))) : \
                                                       ^
binary_protocol_accelerated.c:407:71: error: '(' and '{' tokens introducing 
statement expression appear in different macro expansion contexts 
[-Werror,-Wcompound-token-split-by-macro]
  VERSION_MASK = rb_num2ll(rb_const_get(thrift_binary_protocol_class, 
rb_intern("VERSION_MASK")));
                                                                      
^~~~~~~~~~~~~~~~~~~~~~~~~
/Users/user/.asdf/installs/ruby/2.7.4/include/ruby-2.7.0/ruby/ruby.h:1847:23: 
note: expanded from macro 'rb_intern'
        __extension__ (RUBY_CONST_ID_CACHE((ID), (str))) : \
                      ^
binary_protocol_accelerated.c:407:71: note: '{' token is here
  VERSION_MASK = rb_num2ll(rb_const_get(thrift_binary_protocol_class, 
rb_intern("VERSION_MASK")));
                                                                      
^~~~~~~~~~~~~~~~~~~~~~~~~
/Users/user/.asdf/installs/ruby/2.7.4/include/ruby-2.7.0/ruby/ruby.h:1847:24: 
note: expanded from macro 'rb_intern'
        __extension__ (RUBY_CONST_ID_CACHE((ID), (str))) : \
                       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/Users/user/.asdf/installs/ruby/2.7.4/include/ruby-2.7.0/ruby/ruby.h:1832:5: 
note: expanded from macro 'RUBY_CONST_ID_CACHE'
    {                                                   \
    ^
binary_protocol_accelerated.c:407:71: error: '}' and ')' tokens terminating 
statement expression appear in different macro expansion contexts 
[-Werror,-Wcompound-token-split-by-macro]
  VERSION_MASK = rb_num2ll(rb_const_get(thrift_binary_protocol_class, 
rb_intern("VERSION_MASK")));
                                                                      
^~~~~~~~~~~~~~~~~~~~~~~~~
/Users/user/.asdf/installs/ruby/2.7.4/include/ruby-2.7.0/ruby/ruby.h:1847:24: 
note: expanded from macro 'rb_intern'
        __extension__ (RUBY_CONST_ID_CACHE((ID), (str))) : \
                       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/Users/user/.asdf/installs/ruby/2.7.4/include/ruby-2.7.0/ruby/ruby.h:1837:5: 
note: expanded from macro 'RUBY_CONST_ID_CACHE'
    }
    ^
binary_protocol_accelerated.c:407:71: note: ')' token is here
  VERSION_MASK = rb_num2ll(rb_const_get(thrift_binary_protocol_class, 
rb_intern("VERSION_MASK")));
                                                                      
^~~~~~~~~~~~~~~~~~~~~~~~~
/Users/user/.asdf/installs/ruby/2.7.4/include/ruby-2.7.0/ruby/ruby.h:1847:56: 
note: expanded from macro 'rb_intern'
        __extension__ (RUBY_CONST_ID_CACHE((ID), (str))) : \
                                                       ^
binary_protocol_accelerated.c:408:68: error: '(' and '{' tokens introducing 
statement expression appear in different macro expansion contexts 
[-Werror,-Wcompound-token-split-by-macro]
  TYPE_MASK = rb_num2ll(rb_const_get(thrift_binary_protocol_class, 
rb_intern("TYPE_MASK")));
                                                                   
^~~~~~~~~~~~~~~~~~~~~~
/Users/user/.asdf/installs/ruby/2.7.4/include/ruby-2.7.0/ruby/ruby.h:1847:23: 
note: expanded from macro 'rb_intern'
        __extension__ (RUBY_CONST_ID_CACHE((ID), (str))) : \
                      ^
binary_protocol_accelerated.c:408:68: note: '{' token is here
  TYPE_MASK = rb_num2ll(rb_const_get(thrift_binary_protocol_class, 
rb_intern("TYPE_MASK")));
                                                                   
^~~~~~~~~~~~~~~~~~~~~~
/Users/user/.asdf/installs/ruby/2.7.4/include/ruby-2.7.0/ruby/ruby.h:1847:24: 
note: expanded from macro 'rb_intern'
        __extension__ (RUBY_CONST_ID_CACHE((ID), (str))) : \
                       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/Users/user/.asdf/installs/ruby/2.7.4/include/ruby-2.7.0/ruby/ruby.h:1832:5: 
note: expanded from macro 'RUBY_CONST_ID_CACHE'
    {                                                   \
    ^
binary_protocol_accelerated.c:408:68: error: '}' and ')' tokens terminating 
statement expression appear in different macro expansion contexts 
[-Werror,-Wcompound-token-split-by-macro]
  TYPE_MASK = rb_num2ll(rb_const_get(thrift_binary_protocol_class, 
rb_intern("TYPE_MASK")));
                                                                   
^~~~~~~~~~~~~~~~~~~~~~
/Users/user/.asdf/installs/ruby/2.7.4/include/ruby-2.7.0/ruby/ruby.h:1847:24: 
note: expanded from macro 'rb_intern'
        __extension__ (RUBY_CONST_ID_CACHE((ID), (str))) : \
                       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/Users/user/.asdf/installs/ruby/2.7.4/include/ruby-2.7.0/ruby/ruby.h:1837:5: 
note: expanded from macro 'RUBY_CONST_ID_CACHE'
    }
    ^
binary_protocol_accelerated.c:408:68: note: ')' token is here
  TYPE_MASK = rb_num2ll(rb_const_get(thrift_binary_protocol_class, 
rb_intern("TYPE_MASK")));
                                                                   
^~~~~~~~~~~~~~~~~~~~~~
/Users/user/.asdf/installs/ruby/2.7.4/include/ruby-2.7.0/ruby/ruby.h:1847:56: 
note: expanded from macro 'rb_intern'
        __extension__ (RUBY_CONST_ID_CACHE((ID), (str))) : \
                                                       ^
binary_protocol_accelerated.c:459:18: error: '(' and '{' tokens introducing 
statement expression appear in different macro expansion contexts 
[-Werror,-Wcompound-token-split-by-macro]
  rbuf_ivar_id = rb_intern("@rbuf");
                 ^~~~~~~~~~~~~~~~~~
/Users/user/.asdf/installs/ruby/2.7.4/include/ruby-2.7.0/ruby/ruby.h:1847:23: 
note: expanded from macro 'rb_intern'
        __extension__ (RUBY_CONST_ID_CACHE((ID), (str))) : \
                      ^
binary_protocol_accelerated.c:459:18: note: '{' token is here
  rbuf_ivar_id = rb_intern("@rbuf");
                 ^~~~~~~~~~~~~~~~~~
/Users/user/.asdf/installs/ruby/2.7.4/include/ruby-2.7.0/ruby/ruby.h:1847:24: 
note: expanded from macro 'rb_intern'
        __extension__ (RUBY_CONST_ID_CACHE((ID), (str))) : \
                       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/Users/user/.asdf/installs/ruby/2.7.4/include/ruby-2.7.0/ruby/ruby.h:1832:5: 
note: expanded from macro 'RUBY_CONST_ID_CACHE'
    {                                                   \
    ^
binary_protocol_accelerated.c:459:18: error: '}' and ')' tokens terminating 
statement expression appear in different macro expansion contexts 
[-Werror,-Wcompound-token-split-by-macro]
  rbuf_ivar_id = rb_intern("@rbuf");
                 ^~~~~~~~~~~~~~~~~~
/Users/user/.asdf/installs/ruby/2.7.4/include/ruby-2.7.0/ruby/ruby.h:1847:24: 
note: expanded from macro 'rb_intern'
        __extension__ (RUBY_CONST_ID_CACHE((ID), (str))) : \
                       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/Users/user/.asdf/installs/ruby/2.7.4/include/ruby-2.7.0/ruby/ruby.h:1837:5: 
note: expanded from macro 'RUBY_CONST_ID_CACHE'
    }
    ^
binary_protocol_accelerated.c:459:18: note: ')' token is here
  rbuf_ivar_id = rb_intern("@rbuf");
                 ^~~~~~~~~~~~~~~~~~
/Users/user/.asdf/installs/ruby/2.7.4/include/ruby-2.7.0/ruby/ruby.h:1847:56: 
note: expanded from macro 'rb_intern'
        __extension__ (RUBY_CONST_ID_CACHE((ID), (str))) : \
                                                       ^
10 errors generated.
make: *** [binary_protocol_accelerated.o] Error 1make failed, exit code 2Gem 
files will remain installed in 
/Users/user/.asdf/installs/ruby/2.7.4/lib/ruby/gems/2.7.0/gems/thrift-0.15.0 
for inspection.
Results logged to 
/Users/user/.asdf/installs/ruby/2.7.4/lib/ruby/gems/2.7.0/extensions/x86_64-darwin-20/2.7.0/thrift-0.15.0/gem_make.out{code}


> Build error on ruby gem v0.15.0 on clang v13.0.0
> ------------------------------------------------
>
>                 Key: THRIFT-5473
>                 URL: https://issues.apache.org/jira/browse/THRIFT-5473
>             Project: Thrift
>          Issue Type: Bug
>          Components: C++ - Compiler, Ruby - Compiler, Ruby - Library
>    Affects Versions: 0.15.0
>         Environment:  
> {code:java}
> > ruby -v
> ruby 2.7.4p191 (2021-07-07 revision a21a3b7d23) [x86_64-darwin20]
> {code}
>  
> {code:java}
> > gcc -v
> Configured with: --prefix=/Applications/Xcode.app/Contents/Developer/usr 
> --with-gxx-include-dir=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/c++/4.2.1
> Apple clang version 13.0.0 (clang-1300.0.29.3)
> Target: x86_64-apple-darwin20.6.0
> Thread model: posix
> InstalledDir: 
> /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin{code}
>  
>  
>  
>            Reporter: Fernando Alvarez Junco
>            Priority: Major
>
> I get a compile error when trying to install the gem thrift v0.15.0
> I found one 
> [bugtracker|https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=255910] 
> mentioning the same problem and pointing to the flag 
> -Wcompound-token-split-by-macro that seems to be enabled by default starting 
> on the version 12 of clang.
> Also a patch is provided in the mentioned bugtracker.
>  
> The error output is:
> {code:java}
> Gem::Ext::BuildError: ERROR: Failed to build gem native extension.    current 
> directory: 
> /Users/user/.asdf/installs/ruby/2.7.4/lib/ruby/gems/2.7.0/gems/thrift-0.15.0/ext
> /Users/user/.asdf/installs/ruby/2.7.4/bin/ruby -I 
> /Users/user/.asdf/installs/ruby/2.7.4/lib/ruby/2.7.0 -r 
> ./siteconf20211018-75929-1w556gv.rb extconf.rb
> checking for strlcpy() in string.h... yes
> creating Makefilecurrent directory: 
> /Users/user/.asdf/installs/ruby/2.7.4/lib/ruby/gems/2.7.0/gems/thrift-0.15.0/ext
> make "DESTDIR=" cleancurrent directory: 
> /Users/user/.asdf/installs/ruby/2.7.4/lib/ruby/gems/2.7.0/gems/thrift-0.15.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/user/.asdf/installs/ruby/2.7.4/include/ruby-2.7.0/ruby/ruby.h:1847: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/user/.asdf/installs/ruby/2.7.4/include/ruby-2.7.0/ruby/ruby.h:1847:24: 
> note: expanded from macro 'rb_intern'
>         __extension__ (RUBY_CONST_ID_CACHE((ID), (str))) : \
>                        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> /Users/user/.asdf/installs/ruby/2.7.4/include/ruby-2.7.0/ruby/ruby.h:1832: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/user/.asdf/installs/ruby/2.7.4/include/ruby-2.7.0/ruby/ruby.h:1847:24: 
> note: expanded from macro 'rb_intern'
>         __extension__ (RUBY_CONST_ID_CACHE((ID), (str))) : \
>                        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> /Users/user/.asdf/installs/ruby/2.7.4/include/ruby-2.7.0/ruby/ruby.h:1837: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/user/.asdf/installs/ruby/2.7.4/include/ruby-2.7.0/ruby/ruby.h:1847:56: 
> note: expanded from macro 'rb_intern'
>         __extension__ (RUBY_CONST_ID_CACHE((ID), (str))) : \
>                                                        ^
> binary_protocol_accelerated.c:406:68: error: '(' and '{' tokens introducing 
> statement expression appear in different macro expansion contexts 
> [-Werror,-Wcompound-token-split-by-macro]
>   VERSION_1 = rb_num2ll(rb_const_get(thrift_binary_protocol_class, 
> rb_intern("VERSION_1")));
>                                                                    
> ^~~~~~~~~~~~~~~~~~~~~~
> /Users/user/.asdf/installs/ruby/2.7.4/include/ruby-2.7.0/ruby/ruby.h:1847:23: 
> note: expanded from macro 'rb_intern'
>         __extension__ (RUBY_CONST_ID_CACHE((ID), (str))) : \
>                       ^
> binary_protocol_accelerated.c:406:68: note: '{' token is here
>   VERSION_1 = rb_num2ll(rb_const_get(thrift_binary_protocol_class, 
> rb_intern("VERSION_1")));
>                                                                    
> ^~~~~~~~~~~~~~~~~~~~~~
> /Users/user/.asdf/installs/ruby/2.7.4/include/ruby-2.7.0/ruby/ruby.h:1847:24: 
> note: expanded from macro 'rb_intern'
>         __extension__ (RUBY_CONST_ID_CACHE((ID), (str))) : \
>                        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> /Users/user/.asdf/installs/ruby/2.7.4/include/ruby-2.7.0/ruby/ruby.h:1832:5: 
> note: expanded from macro 'RUBY_CONST_ID_CACHE'
>     {                                                   \
>     ^
> binary_protocol_accelerated.c:406:68: error: '}' and ')' tokens terminating 
> statement expression appear in different macro expansion contexts 
> [-Werror,-Wcompound-token-split-by-macro]
>   VERSION_1 = rb_num2ll(rb_const_get(thrift_binary_protocol_class, 
> rb_intern("VERSION_1")));
>                                                                    
> ^~~~~~~~~~~~~~~~~~~~~~
> /Users/user/.asdf/installs/ruby/2.7.4/include/ruby-2.7.0/ruby/ruby.h:1847:24: 
> note: expanded from macro 'rb_intern'
>         __extension__ (RUBY_CONST_ID_CACHE((ID), (str))) : \
>                        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> /Users/user/.asdf/installs/ruby/2.7.4/include/ruby-2.7.0/ruby/ruby.h:1837:5: 
> note: expanded from macro 'RUBY_CONST_ID_CACHE'
>     }
>     ^
> binary_protocol_accelerated.c:406:68: note: ')' token is here
>   VERSION_1 = rb_num2ll(rb_const_get(thrift_binary_protocol_class, 
> rb_intern("VERSION_1")));
>                                                                    
> ^~~~~~~~~~~~~~~~~~~~~~
> /Users/user/.asdf/installs/ruby/2.7.4/include/ruby-2.7.0/ruby/ruby.h:1847:56: 
> note: expanded from macro 'rb_intern'
>         __extension__ (RUBY_CONST_ID_CACHE((ID), (str))) : \
>                                                        ^
> binary_protocol_accelerated.c:407:71: error: '(' and '{' tokens introducing 
> statement expression appear in different macro expansion contexts 
> [-Werror,-Wcompound-token-split-by-macro]
>   VERSION_MASK = rb_num2ll(rb_const_get(thrift_binary_protocol_class, 
> rb_intern("VERSION_MASK")));
>                                                                       
> ^~~~~~~~~~~~~~~~~~~~~~~~~
> /Users/user/.asdf/installs/ruby/2.7.4/include/ruby-2.7.0/ruby/ruby.h:1847:23: 
> note: expanded from macro 'rb_intern'
>         __extension__ (RUBY_CONST_ID_CACHE((ID), (str))) : \
>                       ^
> binary_protocol_accelerated.c:407:71: note: '{' token is here
>   VERSION_MASK = rb_num2ll(rb_const_get(thrift_binary_protocol_class, 
> rb_intern("VERSION_MASK")));
>                                                                       
> ^~~~~~~~~~~~~~~~~~~~~~~~~
> /Users/user/.asdf/installs/ruby/2.7.4/include/ruby-2.7.0/ruby/ruby.h:1847:24: 
> note: expanded from macro 'rb_intern'
>         __extension__ (RUBY_CONST_ID_CACHE((ID), (str))) : \
>                        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> /Users/user/.asdf/installs/ruby/2.7.4/include/ruby-2.7.0/ruby/ruby.h:1832:5: 
> note: expanded from macro 'RUBY_CONST_ID_CACHE'
>     {                                                   \
>     ^
> binary_protocol_accelerated.c:407:71: error: '}' and ')' tokens terminating 
> statement expression appear in different macro expansion contexts 
> [-Werror,-Wcompound-token-split-by-macro]
>   VERSION_MASK = rb_num2ll(rb_const_get(thrift_binary_protocol_class, 
> rb_intern("VERSION_MASK")));
>                                                                       
> ^~~~~~~~~~~~~~~~~~~~~~~~~
> /Users/user/.asdf/installs/ruby/2.7.4/include/ruby-2.7.0/ruby/ruby.h:1847:24: 
> note: expanded from macro 'rb_intern'
>         __extension__ (RUBY_CONST_ID_CACHE((ID), (str))) : \
>                        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> /Users/user/.asdf/installs/ruby/2.7.4/include/ruby-2.7.0/ruby/ruby.h:1837:5: 
> note: expanded from macro 'RUBY_CONST_ID_CACHE'
>     }
>     ^
> binary_protocol_accelerated.c:407:71: note: ')' token is here
>   VERSION_MASK = rb_num2ll(rb_const_get(thrift_binary_protocol_class, 
> rb_intern("VERSION_MASK")));
>                                                                       
> ^~~~~~~~~~~~~~~~~~~~~~~~~
> /Users/user/.asdf/installs/ruby/2.7.4/include/ruby-2.7.0/ruby/ruby.h:1847:56: 
> note: expanded from macro 'rb_intern'
>         __extension__ (RUBY_CONST_ID_CACHE((ID), (str))) : \
>                                                        ^
> binary_protocol_accelerated.c:408:68: error: '(' and '{' tokens introducing 
> statement expression appear in different macro expansion contexts 
> [-Werror,-Wcompound-token-split-by-macro]
>   TYPE_MASK = rb_num2ll(rb_const_get(thrift_binary_protocol_class, 
> rb_intern("TYPE_MASK")));
>                                                                    
> ^~~~~~~~~~~~~~~~~~~~~~
> /Users/user/.asdf/installs/ruby/2.7.4/include/ruby-2.7.0/ruby/ruby.h:1847:23: 
> note: expanded from macro 'rb_intern'
>         __extension__ (RUBY_CONST_ID_CACHE((ID), (str))) : \
>                       ^
> binary_protocol_accelerated.c:408:68: note: '{' token is here
>   TYPE_MASK = rb_num2ll(rb_const_get(thrift_binary_protocol_class, 
> rb_intern("TYPE_MASK")));
>                                                                    
> ^~~~~~~~~~~~~~~~~~~~~~
> /Users/user/.asdf/installs/ruby/2.7.4/include/ruby-2.7.0/ruby/ruby.h:1847:24: 
> note: expanded from macro 'rb_intern'
>         __extension__ (RUBY_CONST_ID_CACHE((ID), (str))) : \
>                        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> /Users/user/.asdf/installs/ruby/2.7.4/include/ruby-2.7.0/ruby/ruby.h:1832:5: 
> note: expanded from macro 'RUBY_CONST_ID_CACHE'
>     {                                                   \
>     ^
> binary_protocol_accelerated.c:408:68: error: '}' and ')' tokens terminating 
> statement expression appear in different macro expansion contexts 
> [-Werror,-Wcompound-token-split-by-macro]
>   TYPE_MASK = rb_num2ll(rb_const_get(thrift_binary_protocol_class, 
> rb_intern("TYPE_MASK")));
>                                                                    
> ^~~~~~~~~~~~~~~~~~~~~~
> /Users/user/.asdf/installs/ruby/2.7.4/include/ruby-2.7.0/ruby/ruby.h:1847:24: 
> note: expanded from macro 'rb_intern'
>         __extension__ (RUBY_CONST_ID_CACHE((ID), (str))) : \
>                        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> /Users/user/.asdf/installs/ruby/2.7.4/include/ruby-2.7.0/ruby/ruby.h:1837:5: 
> note: expanded from macro 'RUBY_CONST_ID_CACHE'
>     }
>     ^
> binary_protocol_accelerated.c:408:68: note: ')' token is here
>   TYPE_MASK = rb_num2ll(rb_const_get(thrift_binary_protocol_class, 
> rb_intern("TYPE_MASK")));
>                                                                    
> ^~~~~~~~~~~~~~~~~~~~~~
> /Users/user/.asdf/installs/ruby/2.7.4/include/ruby-2.7.0/ruby/ruby.h:1847:56: 
> note: expanded from macro 'rb_intern'
>         __extension__ (RUBY_CONST_ID_CACHE((ID), (str))) : \
>                                                        ^
> binary_protocol_accelerated.c:459:18: error: '(' and '{' tokens introducing 
> statement expression appear in different macro expansion contexts 
> [-Werror,-Wcompound-token-split-by-macro]
>   rbuf_ivar_id = rb_intern("@rbuf");
>                  ^~~~~~~~~~~~~~~~~~
> /Users/user/.asdf/installs/ruby/2.7.4/include/ruby-2.7.0/ruby/ruby.h:1847:23: 
> note: expanded from macro 'rb_intern'
>         __extension__ (RUBY_CONST_ID_CACHE((ID), (str))) : \
>                       ^
> binary_protocol_accelerated.c:459:18: note: '{' token is here
>   rbuf_ivar_id = rb_intern("@rbuf");
>                  ^~~~~~~~~~~~~~~~~~
> /Users/user/.asdf/installs/ruby/2.7.4/include/ruby-2.7.0/ruby/ruby.h:1847:24: 
> note: expanded from macro 'rb_intern'
>         __extension__ (RUBY_CONST_ID_CACHE((ID), (str))) : \
>                        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> /Users/user/.asdf/installs/ruby/2.7.4/include/ruby-2.7.0/ruby/ruby.h:1832:5: 
> note: expanded from macro 'RUBY_CONST_ID_CACHE'
>     {                                                   \
>     ^
> binary_protocol_accelerated.c:459:18: error: '}' and ')' tokens terminating 
> statement expression appear in different macro expansion contexts 
> [-Werror,-Wcompound-token-split-by-macro]
>   rbuf_ivar_id = rb_intern("@rbuf");
>                  ^~~~~~~~~~~~~~~~~~
> /Users/user/.asdf/installs/ruby/2.7.4/include/ruby-2.7.0/ruby/ruby.h:1847:24: 
> note: expanded from macro 'rb_intern'
>         __extension__ (RUBY_CONST_ID_CACHE((ID), (str))) : \
>                        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> /Users/user/.asdf/installs/ruby/2.7.4/include/ruby-2.7.0/ruby/ruby.h:1837:5: 
> note: expanded from macro 'RUBY_CONST_ID_CACHE'
>     }
>     ^
> binary_protocol_accelerated.c:459:18: note: ')' token is here
>   rbuf_ivar_id = rb_intern("@rbuf");
>                  ^~~~~~~~~~~~~~~~~~
> /Users/user/.asdf/installs/ruby/2.7.4/include/ruby-2.7.0/ruby/ruby.h:1847:56: 
> note: expanded from macro 'rb_intern'
>         __extension__ (RUBY_CONST_ID_CACHE((ID), (str))) : \
>                                                        ^
> 10 errors generated.
> make: *** [binary_protocol_accelerated.o] Error 1make failed, exit code 2Gem 
> files will remain installed in 
> /Users/user/.asdf/installs/ruby/2.7.4/lib/ruby/gems/2.7.0/gems/thrift-0.15.0 
> for inspection.
> Results logged to 
> /Users/user/.asdf/installs/ruby/2.7.4/lib/ruby/gems/2.7.0/extensions/x86_64-darwin-20/2.7.0/thrift-0.15.0/gem_make.out{code}



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to