title: bson_ext gem install fails on macOS
body: <p>I'm stuck with install bson_ext gem with 1.5.1 version. I've tried almost everything what I found on web but nothing helps.
  I tried to reinstall ruby, rvm and so on.</p>
  <p>I am using:</p>
  <ul>
  <li>RVM</li>
  <li>MacOs Catalina 10.15.6</li>
  <li>ruby 2.6.5</li>
  </ul>
  <p>and after bundle install I got log like this:</p>
  <pre><code>Fetching bson_ext 1.5.1
  Installing bson_ext 1.5.1 with native extensions
  Gem::Ext::BuildError: ERROR: Failed to build gem native extension.
  
      current directory: /Users/lukasz/.rvm/gems/ruby-2.6.5/gems/bson_ext-1.5.1/ext/cbson
  /Users/lukasz/.rvm/rubies/ruby-2.6.5/bin/ruby -I /Users/lukasz/.rvm/rubies/ruby-2.6.5/lib/ruby/site_ruby/2.6.0 -r ./siteconf20201001-15946-1sze5ll.rb extconf.rb
  checking for asprintf()... yes
  checking for ruby/st.h... yes
  checking for ruby/regex.h... yes
  checking for ruby/encoding.h... yes
  creating Makefile
  
  current directory: /Users/lukasz/.rvm/gems/ruby-2.6.5/gems/bson_ext-1.5.1/ext/cbson
  make &quot;DESTDIR=&quot; clean
  
  current directory: /Users/lukasz/.rvm/gems/ruby-2.6.5/gems/bson_ext-1.5.1/ext/cbson
  make &quot;DESTDIR=&quot;
  compiling bson_buffer.c
  compiling cbson.c
  cbson.c:118:36: warning: passing 'char *' to parameter of type 'const unsigned char *' converts between pointers to integer types with different sign [-Wpointer-sign]
      result_t status = check_string(RSTRING_PTR(string), RSTRING_LEN(string),
                                     ^~~~~~~~~~~~~~~~~~~
  /Users/lukasz/.rvm/rubies/ruby-2.6.5/include/ruby-2.6.0/ruby/ruby.h:1003:5: note: expanded from macro 'RSTRING_PTR'
      (!(RBASIC(str)-&gt;flags &amp; RSTRING_NOEMBED) ? \
      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  ./encoding_helpers.h:26:44: note: passing argument to parameter 'string' here
  result_t check_string(const unsigned char* string, const int length,
                                             ^
  cbson.c:118:57: warning: implicit conversion loses integer precision: 'long' to 'int' [-Wshorten-64-to-32]
      result_t status = check_string(RSTRING_PTR(string), RSTRING_LEN(string),
                        ~~~~~~~~~~~~                      ^~~~~~~~~~~~~~~~~~~
  /Users/lukasz/.rvm/rubies/ruby-2.6.5/include/ruby-2.6.0/ruby/ruby.h:1000:6: note: expanded from macro 'RSTRING_LEN'
       RSTRING_EMBED_LEN(str) : \
       ^~~~~~~~~~~~~~~~~~~~~~
  /Users/lukasz/.rvm/rubies/ruby-2.6.5/include/ruby-2.6.0/ruby/ruby.h:996:6: note: expanded from macro 'RSTRING_EMBED_LEN'
       (long)((RBASIC(str)-&gt;flags &gt;&gt; RSTRING_EMBED_LEN_SHIFT) &amp; \
       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  cbson.c:118:57: warning: implicit conversion loses integer precision: 'long' to 'int' [-Wshorten-64-to-32]
      result_t status = check_string(RSTRING_PTR(string), RSTRING_LEN(string),
                        ~~~~~~~~~~~~                      ^~~~~~~~~~~~~~~~~~~
  /Users/lukasz/.rvm/rubies/ruby-2.6.5/include/ruby-2.6.0/ruby/ruby.h:1001:28: note: expanded from macro 'RSTRING_LEN'
       RSTRING(str)-&gt;as.heap.len)
       ~~~~~~~~~~~~~~~~~~~~~~^~~
  cbson.c:128:45: warning: implicit conversion loses integer precision: 'long' to 'int' [-Wshorten-64-to-32]
      SAFE_WRITE(buffer, RSTRING_PTR(string), RSTRING_LEN(string));
      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~
  /Users/lukasz/.rvm/rubies/ruby-2.6.5/include/ruby-2.6.0/ruby/ruby.h:1000:6: note: expanded from macro 'RSTRING_LEN'
       RSTRING_EMBED_LEN(str) : \
       ^
  /Users/lukasz/.rvm/rubies/ruby-2.6.5/include/ruby-2.6.0/ruby/ruby.h:996:6: note: expanded from macro 'RSTRING_EMBED_LEN'
       (long)((RBASIC(str)-&gt;flags &gt;&gt; RSTRING_EMBED_LEN_SHIFT) &amp; \
       ^
  cbson.c:68:46: note: expanded from macro 'SAFE_WRITE'
      if (bson_buffer_write((buffer), (data), (size)) != 0)                    \
          ~~~~~~~~~~~~~~~~~                    ^~~~
  cbson.c:128:45: warning: implicit conversion loses integer precision: 'long' to 'int' [-Wshorten-64-to-32]
      SAFE_WRITE(buffer, RSTRING_PTR(string), RSTRING_LEN(string));
      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~
  /Users/lukasz/.rvm/rubies/ruby-2.6.5/include/ruby-2.6.0/ruby/ruby.h:1001:28: note: expanded from macro 'RSTRING_LEN'
       RSTRING(str)-&gt;as.heap.len)
                             ^
  cbson.c:68:46: note: expanded from macro 'SAFE_WRITE'
      if (bson_buffer_write((buffer), (data), (size)) != 0)                    \
          ~~~~~~~~~~~~~~~~~                    ^~~~
  cbson.c:303:20: warning: unused variable 'values' [-Wunused-variable]
              VALUE* values;
                     ^
  cbson.c:602:18: error: implicit declaration of function 'bson_buffer_get_max_size' is invalid in C99 [-Werror,-Wimplicit-function-declaration]
      if (length &gt; bson_buffer_get_max_size(buffer)) {
                   ^
  cbson.c:602:18: note: did you mean 'bson_buffer_set_max_size'?
  ./bson_buffer.h:34:6: note: 'bson_buffer_set_max_size' declared here
  void bson_buffer_set_max_size(bson_buffer_t buffer, int max_size);
       ^
  6 warnings and 1 error generated.
  make: *** [cbson.o] Error 1
  
  make failed, exit code 2
  
  Gem files will remain installed in /Users/lukasz/.rvm/gems/ruby-2.6.5/gems/bson_ext-1.5.1 for inspection.
  Results logged to /Users/lukasz/.rvm/gems/ruby-2.6.5/extensions/x86_64-darwin-19/2.6.0/bson_ext-1.5.1/gem_make.out
  
  An error occurred while installing bson_ext (1.5.1), and Bundler cannot continue.
  Make sure that `gem install bson_ext -v '1.5.1' --source 'https://rubygems.org/'` succeeds before bundling.
  
  In Gemfile:
    bson_ext
  </code></pre>
  <p>Anyone has idea what can I try else?
  In addition I can say that bson_ext with other version like 1.9.1 are installing successfully. But in this project I have to use 1.5.1.</p>