Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Unable to install with Ruby 3.0.0 #25060

Closed
RailsCod3rFuture opened this issue Dec 25, 2020 · 14 comments
Closed

Unable to install with Ruby 3.0.0 #25060

RailsCod3rFuture opened this issue Dec 25, 2020 · 14 comments

Comments

@RailsCod3rFuture
Copy link

I attempted to install grpc 1.34.0 with native extensions, but I receive a build error when the gem is installing. Will there be any changes to make this gem compatible with ruby 3.0.0?

@craigwatson
Copy link

craigwatson commented Dec 29, 2020

I'm also seeing this error, full output is below:

current directory: /usr/local/lib/ruby/gems/3.0.0/gems/grpc-1.34.0/src/ruby/ext/grpc
/usr/local/opt/ruby/bin/ruby -I /usr/local/Cellar/ruby/3.0.0_1/lib/ruby/3.0.0 -r ./siteconf20201229-7774-k6mgb8.rb extconf.rb
Building internal gRPC into /usr/local/lib/ruby/gems/3.0.0/gems/grpc-1.34.0/src/ruby/ext/grpc/libs/opt
[C]       Compiling third_party/zlib/adler32.c
[C]       Compiling third_party/zlib/compress.c
[C]       Compiling third_party/zlib/deflate.c
[C]       Compiling third_party/zlib/gzclose.c
[C]       Compiling third_party/zlib/crc32.c
[C]       Compiling third_party/zlib/gzread.c
[C]       Compiling third_party/zlib/gzlib.c
[C]       Compiling third_party/zlib/gzwrite.c
[C]       Compiling third_party/zlib/inftrees.c
[C]       Compiling third_party/zlib/inffast.c
[C]       Compiling third_party/zlib/inflate.c
[C]       Compiling third_party/zlib/infback.c
[C]       Compiling third_party/zlib/trees.c
[C]       Compiling third_party/zlib/uncompr.c
[C]       Compiling third_party/zlib/zutil.c
mkdir -p `dirname /usr/local/lib/ruby/gems/3.0.0/gems/grpc-1.34.0/src/ruby/ext/grpc/objs/opt/third_party/zlib/zutil.o`
clang -fdeclspec -Ithird_party/boringssl-with-bazel/src/include -Ithird_party/address_sorting/include -Ithird_party/cares -Ithird_party/cares/cares -DGPR_BACKWARDS_COMPATIBILITY_MODE -g -Wall -Wextra -DOSATOMIC_USE_INLINED=1 -Ithird_party/abseil-cpp -Ithird_party/re2 -Ithird_party/upb -Isrc/core/ext/upb-generated -Isrc/core/ext/upbdefs-generated -O2 -Wframe-larger-than=16384 -fPIC -I. -Iinclude -I/usr/local/lib/ruby/gems/3.0.0/gems/grpc-1.34.0/src/ruby/ext/grpc/gens -I/usr/local/include -DNDEBUG -DINSTALL_PREFIX=\"/usr/local\" -arch i386 -arch x86_64  -Ithird_party/zlib   -std=c99  -g   -fvisibility=hidden -MMD -MF /usr/local/lib/ruby/gems/3.0.0/gems/grpc-1.34.0/src/ruby/ext/grpc/objs/opt/third_party/zlib/zutil.dep -c -o /usr/local/lib/ruby/gems/3.0.0/gems/grpc-1.34.0/src/ruby/ext/grpc/objs/opt/third_party/zlib/zutil.o third_party/zlib/zutil.c
mkdir -p `dirname /usr/local/lib/ruby/gems/3.0.0/gems/grpc-1.34.0/src/ruby/ext/grpc/objs/opt/third_party/zlib/uncompr.o`
mkdir -p `dirname /usr/local/lib/ruby/gems/3.0.0/gems/grpc-1.34.0/src/ruby/ext/grpc/objs/opt/third_party/zlib/trees.o`
mkdir -p `dirname /usr/local/lib/ruby/gems/3.0.0/gems/grpc-1.34.0/src/ruby/ext/grpc/objs/opt/third_party/zlib/inftrees.o`
mkdir -p `dirname /usr/local/lib/ruby/gems/3.0.0/gems/grpc-1.34.0/src/ruby/ext/grpc/objs/opt/third_party/zlib/inflate.o`
mkdir -p `dirname /usr/local/lib/ruby/gems/3.0.0/gems/grpc-1.34.0/src/ruby/ext/grpc/objs/opt/third_party/zlib/inffast.o`
mkdir -p `dirname /usr/local/lib/ruby/gems/3.0.0/gems/grpc-1.34.0/src/ruby/ext/grpc/objs/opt/third_party/zlib/infback.o`
mkdir -p `dirname /usr/local/lib/ruby/gems/3.0.0/gems/grpc-1.34.0/src/ruby/ext/grpc/objs/opt/third_party/zlib/gzwrite.o`
mkdir -p `dirname /usr/local/lib/ruby/gems/3.0.0/gems/grpc-1.34.0/src/ruby/ext/grpc/objs/opt/third_party/zlib/gzread.o`
mkdir -p `dirname /usr/local/lib/ruby/gems/3.0.0/gems/grpc-1.34.0/src/ruby/ext/grpc/objs/opt/third_party/zlib/gzlib.o`
mkdir -p `dirname /usr/local/lib/ruby/gems/3.0.0/gems/grpc-1.34.0/src/ruby/ext/grpc/objs/opt/third_party/zlib/gzclose.o`
mkdir -p `dirname /usr/local/lib/ruby/gems/3.0.0/gems/grpc-1.34.0/src/ruby/ext/grpc/objs/opt/third_party/zlib/deflate.o`
mkdir -p `dirname /usr/local/lib/ruby/gems/3.0.0/gems/grpc-1.34.0/src/ruby/ext/grpc/objs/opt/third_party/zlib/crc32.o`
mkdir -p `dirname /usr/local/lib/ruby/gems/3.0.0/gems/grpc-1.34.0/src/ruby/ext/grpc/objs/opt/third_party/zlib/compress.o`
mkdir -p `dirname /usr/local/lib/ruby/gems/3.0.0/gems/grpc-1.34.0/src/ruby/ext/grpc/objs/opt/third_party/zlib/adler32.o`
clang -fdeclspec -Ithird_party/boringssl-with-bazel/src/include -Ithird_party/address_sorting/include -Ithird_party/cares -Ithird_party/cares/cares -DGPR_BACKWARDS_COMPATIBILITY_MODE -g -Wall -Wextra -DOSATOMIC_USE_INLINED=1 -Ithird_party/abseil-cpp -Ithird_party/re2 -Ithird_party/upb -Isrc/core/ext/upb-generated -Isrc/core/ext/upbdefs-generated -O2 -Wframe-larger-than=16384 -fPIC -I. -Iinclude -I/usr/local/lib/ruby/gems/3.0.0/gems/grpc-1.34.0/src/ruby/ext/grpc/gens -I/usr/local/include -DNDEBUG -DINSTALL_PREFIX=\"/usr/local\" -arch i386 -arch x86_64  -Ithird_party/zlib   -std=c99  -g   -fvisibility=hidden -MMD -MF /usr/local/lib/ruby/gems/3.0.0/gems/grpc-1.34.0/src/ruby/ext/grpc/objs/opt/third_party/zlib/adler32.dep -c -o /usr/local/lib/ruby/gems/3.0.0/gems/grpc-1.34.0/src/ruby/ext/grpc/objs/opt/third_party/zlib/adler32.o third_party/zlib/adler32.c
clang -fdeclspec -Ithird_party/boringssl-with-bazel/src/include -Ithird_party/address_sorting/include -Ithird_party/cares -Ithird_party/cares/cares -DGPR_BACKWARDS_COMPATIBILITY_MODE -g -Wall -Wextra -DOSATOMIC_USE_INLINED=1 -Ithird_party/abseil-cpp -Ithird_party/re2 -Ithird_party/upb -Isrc/core/ext/upb-generated -Isrc/core/ext/upbdefs-generated -O2 -Wframe-larger-than=16384 -fPIC -I. -Iinclude -I/usr/local/lib/ruby/gems/3.0.0/gems/grpc-1.34.0/src/ruby/ext/grpc/gens -I/usr/local/include -DNDEBUG -DINSTALL_PREFIX=\"/usr/local\" -arch i386 -arch x86_64  -Ithird_party/zlib   -std=c99  -g   -fvisibility=hidden -MMD -MF /usr/local/lib/ruby/gems/3.0.0/gems/grpc-1.34.0/src/ruby/ext/grpc/objs/opt/third_party/zlib/compress.dep -c -o /usr/local/lib/ruby/gems/3.0.0/gems/grpc-1.34.0/src/ruby/ext/grpc/objs/opt/third_party/zlib/compress.o third_party/zlib/compress.c
clang -fdeclspec -Ithird_party/boringssl-with-bazel/src/include -Ithird_party/address_sorting/include -Ithird_party/cares -Ithird_party/cares/cares -DGPR_BACKWARDS_COMPATIBILITY_MODE -g -Wall -Wextra -DOSATOMIC_USE_INLINED=1 -Ithird_party/abseil-cpp -Ithird_party/re2 -Ithird_party/upb -Isrc/core/ext/upb-generated -Isrc/core/ext/upbdefs-generated -O2 -Wframe-larger-than=16384 -fPIC -I. -Iinclude -I/usr/local/lib/ruby/gems/3.0.0/gems/grpc-1.34.0/src/ruby/ext/grpc/gens -I/usr/local/include -DNDEBUG -DINSTALL_PREFIX=\"/usr/local\" -arch i386 -arch x86_64  -Ithird_party/zlib   -std=c99  -g   -fvisibility=hidden -MMD -MF /usr/local/lib/ruby/gems/3.0.0/gems/grpc-1.34.0/src/ruby/ext/grpc/objs/opt/third_party/zlib/crc32.dep -c -o /usr/local/lib/ruby/gems/3.0.0/gems/grpc-1.34.0/src/ruby/ext/grpc/objs/opt/third_party/zlib/crc32.o third_party/zlib/crc32.c
clang -fdeclspec -Ithird_party/boringssl-with-bazel/src/include -Ithird_party/address_sorting/include -Ithird_party/cares -Ithird_party/cares/cares -DGPR_BACKWARDS_COMPATIBILITY_MODE -g -Wall -Wextra -DOSATOMIC_USE_INLINED=1 -Ithird_party/abseil-cpp -Ithird_party/re2 -Ithird_party/upb -Isrc/core/ext/upb-generated -Isrc/core/ext/upbdefs-generated -O2 -Wframe-larger-than=16384 -fPIC -I. -Iinclude -I/usr/local/lib/ruby/gems/3.0.0/gems/grpc-1.34.0/src/ruby/ext/grpc/gens -I/usr/local/include -DNDEBUG -DINSTALL_PREFIX=\"/usr/local\" -arch i386 -arch x86_64  -Ithird_party/zlib   -std=c99  -g   -fvisibility=hidden -MMD -MF /usr/local/lib/ruby/gems/3.0.0/gems/grpc-1.34.0/src/ruby/ext/grpc/objs/opt/third_party/zlib/deflate.dep -c -o /usr/local/lib/ruby/gems/3.0.0/gems/grpc-1.34.0/src/ruby/ext/grpc/objs/opt/third_party/zlib/deflate.o third_party/zlib/deflate.c
clang -fdeclspec -Ithird_party/boringssl-with-bazel/src/include -Ithird_party/address_sorting/include -Ithird_party/cares -Ithird_party/cares/cares -DGPR_BACKWARDS_COMPATIBILITY_MODE -g -Wall -Wextra -DOSATOMIC_USE_INLINED=1 -Ithird_party/abseil-cpp -Ithird_party/re2 -Ithird_party/upb -Isrc/core/ext/upb-generated -Isrc/core/ext/upbdefs-generated -O2 -Wframe-larger-than=16384 -fPIC -I. -Iinclude -I/usr/local/lib/ruby/gems/3.0.0/gems/grpc-1.34.0/src/ruby/ext/grpc/gens -I/usr/local/include -DNDEBUG -DINSTALL_PREFIX=\"/usr/local\" -arch i386 -arch x86_64  -Ithird_party/zlib   -std=c99  -g   -fvisibility=hidden -MMD -MF /usr/local/lib/ruby/gems/3.0.0/gems/grpc-1.34.0/src/ruby/ext/grpc/objs/opt/third_party/zlib/gzclose.dep -c -o /usr/local/lib/ruby/gems/3.0.0/gems/grpc-1.34.0/src/ruby/ext/grpc/objs/opt/third_party/zlib/gzclose.o third_party/zlib/gzclose.c
clang -fdeclspec -Ithird_party/boringssl-with-bazel/src/include -Ithird_party/address_sorting/include -Ithird_party/cares -Ithird_party/cares/cares -DGPR_BACKWARDS_COMPATIBILITY_MODE -g -Wall -Wextra -DOSATOMIC_USE_INLINED=1 -Ithird_party/abseil-cpp -Ithird_party/re2 -Ithird_party/upb -Isrc/core/ext/upb-generated -Isrc/core/ext/upbdefs-generated -O2 -Wframe-larger-than=16384 -fPIC -I. -Iinclude -I/usr/local/lib/ruby/gems/3.0.0/gems/grpc-1.34.0/src/ruby/ext/grpc/gens -I/usr/local/include -DNDEBUG -DINSTALL_PREFIX=\"/usr/local\" -arch i386 -arch x86_64  -Ithird_party/zlib   -std=c99  -g   -fvisibility=hidden -MMD -MF /usr/local/lib/ruby/gems/3.0.0/gems/grpc-1.34.0/src/ruby/ext/grpc/objs/opt/third_party/zlib/gzlib.dep -c -o /usr/local/lib/ruby/gems/3.0.0/gems/grpc-1.34.0/src/ruby/ext/grpc/objs/opt/third_party/zlib/gzlib.o third_party/zlib/gzlib.c
clang -fdeclspec -Ithird_party/boringssl-with-bazel/src/include -Ithird_party/address_sorting/include -Ithird_party/cares -Ithird_party/cares/cares -DGPR_BACKWARDS_COMPATIBILITY_MODE -g -Wall -Wextra -DOSATOMIC_USE_INLINED=1 -Ithird_party/abseil-cpp -Ithird_party/re2 -Ithird_party/upb -Isrc/core/ext/upb-generated -Isrc/core/ext/upbdefs-generated -O2 -Wframe-larger-than=16384 -fPIC -I. -Iinclude -I/usr/local/lib/ruby/gems/3.0.0/gems/grpc-1.34.0/src/ruby/ext/grpc/gens -I/usr/local/include -DNDEBUG -DINSTALL_PREFIX=\"/usr/local\" -arch i386 -arch x86_64  -Ithird_party/zlib   -std=c99  -g   -fvisibility=hidden -MMD -MF /usr/local/lib/ruby/gems/3.0.0/gems/grpc-1.34.0/src/ruby/ext/grpc/objs/opt/third_party/zlib/gzread.dep -c -o /usr/local/lib/ruby/gems/3.0.0/gems/grpc-1.34.0/src/ruby/ext/grpc/objs/opt/third_party/zlib/gzread.o third_party/zlib/gzread.c
[C]       Compiling third_party/cares/cares/ares__close_sockets.c
mkdir -p `dirname /usr/local/lib/ruby/gems/3.0.0/gems/grpc-1.34.0/src/ruby/ext/grpc/objs/opt/third_party/cares/cares/ares__close_sockets.o`
clang -fdeclspec -Ithird_party/boringssl-with-bazel/src/include -Ithird_party/address_sorting/include -Ithird_party/cares -Ithird_party/cares/cares -DGPR_BACKWARDS_COMPATIBILITY_MODE -g -Wall -Wextra -DOSATOMIC_USE_INLINED=1 -Ithird_party/abseil-cpp -Ithird_party/re2 -Ithird_party/upb -Isrc/core/ext/upb-generated -Isrc/core/ext/upbdefs-generated -O2 -Wframe-larger-than=16384 -fPIC -I. -Iinclude -I/usr/local/lib/ruby/gems/3.0.0/gems/grpc-1.34.0/src/ruby/ext/grpc/gens -I/usr/local/include -DNDEBUG -DINSTALL_PREFIX=\"/usr/local\" -arch i386 -arch x86_64  -Ithird_party/zlib   -std=c99  -g   -fvisibility=hidden -MMD -MF /usr/local/lib/ruby/gems/3.0.0/gems/grpc-1.34.0/src/ruby/ext/grpc/objs/opt/third_party/zlib/gzwrite.dep -c -o /usr/local/lib/ruby/gems/3.0.0/gems/grpc-1.34.0/src/ruby/ext/grpc/objs/opt/third_party/zlib/gzwrite.o third_party/zlib/gzwrite.c
clang -fdeclspec -Ithird_party/boringssl-with-bazel/src/include -Ithird_party/address_sorting/include -Ithird_party/cares -Ithird_party/cares/cares -DGPR_BACKWARDS_COMPATIBILITY_MODE -g -Wall -Wextra -DOSATOMIC_USE_INLINED=1 -Ithird_party/abseil-cpp -Ithird_party/re2 -Ithird_party/upb -Isrc/core/ext/upb-generated -Isrc/core/ext/upbdefs-generated -O2 -Wframe-larger-than=16384 -fPIC -I. -Iinclude -I/usr/local/lib/ruby/gems/3.0.0/gems/grpc-1.34.0/src/ruby/ext/grpc/gens -I/usr/local/include -DNDEBUG -DINSTALL_PREFIX=\"/usr/local\" -arch i386 -arch x86_64  -Ithird_party/zlib   -std=c99  -g   -fvisibility=hidden -MMD -MF /usr/local/lib/ruby/gems/3.0.0/gems/grpc-1.34.0/src/ruby/ext/grpc/objs/opt/third_party/zlib/infback.dep -c -o /usr/local/lib/ruby/gems/3.0.0/gems/grpc-1.34.0/src/ruby/ext/grpc/objs/opt/third_party/zlib/infback.o third_party/zlib/infback.c
clang -fdeclspec -Ithird_party/boringssl-with-bazel/src/include -Ithird_party/address_sorting/include -Ithird_party/cares -Ithird_party/cares/cares -DGPR_BACKWARDS_COMPATIBILITY_MODE -g -Wall -Wextra -DOSATOMIC_USE_INLINED=1 -Ithird_party/abseil-cpp -Ithird_party/re2 -Ithird_party/upb -Isrc/core/ext/upb-generated -Isrc/core/ext/upbdefs-generated -O2 -Wframe-larger-than=16384 -fPIC -I. -Iinclude -I/usr/local/lib/ruby/gems/3.0.0/gems/grpc-1.34.0/src/ruby/ext/grpc/gens -I/usr/local/include -DNDEBUG -DINSTALL_PREFIX=\"/usr/local\" -arch i386 -arch x86_64  -Ithird_party/zlib   -std=c99  -g   -fvisibility=hidden -MMD -MF /usr/local/lib/ruby/gems/3.0.0/gems/grpc-1.34.0/src/ruby/ext/grpc/objs/opt/third_party/zlib/inffast.dep -c -o /usr/local/lib/ruby/gems/3.0.0/gems/grpc-1.34.0/src/ruby/ext/grpc/objs/opt/third_party/zlib/inffast.o third_party/zlib/inffast.c
clang -fdeclspec -Ithird_party/boringssl-with-bazel/src/include -Ithird_party/address_sorting/include -Ithird_party/cares -Ithird_party/cares/cares -DGPR_BACKWARDS_COMPATIBILITY_MODE -g -Wall -Wextra -DOSATOMIC_USE_INLINED=1 -Ithird_party/abseil-cpp -Ithird_party/re2 -Ithird_party/upb -Isrc/core/ext/upb-generated -Isrc/core/ext/upbdefs-generated -O2 -Wframe-larger-than=16384 -fPIC -I. -Iinclude -I/usr/local/lib/ruby/gems/3.0.0/gems/grpc-1.34.0/src/ruby/ext/grpc/gens -I/usr/local/include -DNDEBUG -DINSTALL_PREFIX=\"/usr/local\" -arch i386 -arch x86_64  -Ithird_party/zlib   -std=c99  -g   -fvisibility=hidden -MMD -MF /usr/local/lib/ruby/gems/3.0.0/gems/grpc-1.34.0/src/ruby/ext/grpc/objs/opt/third_party/zlib/inflate.dep -c -o /usr/local/lib/ruby/gems/3.0.0/gems/grpc-1.34.0/src/ruby/ext/grpc/objs/opt/third_party/zlib/inflate.o third_party/zlib/inflate.c
clang -fdeclspec -Ithird_party/boringssl-with-bazel/src/include -Ithird_party/address_sorting/include -Ithird_party/cares -Ithird_party/cares/cares -DGPR_BACKWARDS_COMPATIBILITY_MODE -g -Wall -Wextra -DOSATOMIC_USE_INLINED=1 -Ithird_party/abseil-cpp -Ithird_party/re2 -Ithird_party/upb -Isrc/core/ext/upb-generated -Isrc/core/ext/upbdefs-generated -O2 -Wframe-larger-than=16384 -fPIC -I. -Iinclude -I/usr/local/lib/ruby/gems/3.0.0/gems/grpc-1.34.0/src/ruby/ext/grpc/gens -I/usr/local/include -DNDEBUG -DINSTALL_PREFIX=\"/usr/local\" -arch i386 -arch x86_64  -Ithird_party/zlib   -Ithird_party/cares -Ithird_party/cares/cares -fvisibility=hidden -D_GNU_SOURCE -Ithird_party/cares/config_darwin    -DWIN32_LEAN_AND_MEAN -D_HAS_EXCEPTIONS=0 -DNOMINMAX -DHAVE_CONFIG_H -std=c99  -g   -g -MMD -MF /usr/local/lib/ruby/gems/3.0.0/gems/grpc-1.34.0/src/ruby/ext/grpc/objs/opt/third_party/cares/cares/ares__close_sockets.dep -c -o /usr/local/lib/ruby/gems/3.0.0/gems/grpc-1.34.0/src/ruby/ext/grpc/objs/opt/third_party/cares/cares/ares__close_sockets.o third_party/cares/cares/ares__close_sockets.c
clang -fdeclspec -Ithird_party/boringssl-with-bazel/src/include -Ithird_party/address_sorting/include -Ithird_party/cares -Ithird_party/cares/cares -DGPR_BACKWARDS_COMPATIBILITY_MODE -g -Wall -Wextra -DOSATOMIC_USE_INLINED=1 -Ithird_party/abseil-cpp -Ithird_party/re2 -Ithird_party/upb -Isrc/core/ext/upb-generated -Isrc/core/ext/upbdefs-generated -O2 -Wframe-larger-than=16384 -fPIC -I. -Iinclude -I/usr/local/lib/ruby/gems/3.0.0/gems/grpc-1.34.0/src/ruby/ext/grpc/gens -I/usr/local/include -DNDEBUG -DINSTALL_PREFIX=\"/usr/local\" -arch i386 -arch x86_64  -Ithird_party/zlib   -std=c99  -g   -fvisibility=hidden -MMD -MF /usr/local/lib/ruby/gems/3.0.0/gems/grpc-1.34.0/src/ruby/ext/grpc/objs/opt/third_party/zlib/inftrees.dep -c -o /usr/local/lib/ruby/gems/3.0.0/gems/grpc-1.34.0/src/ruby/ext/grpc/objs/opt/third_party/zlib/inftrees.o third_party/zlib/inftrees.c
clang -fdeclspec -Ithird_party/boringssl-with-bazel/src/include -Ithird_party/address_sorting/include -Ithird_party/cares -Ithird_party/cares/cares -DGPR_BACKWARDS_COMPATIBILITY_MODE -g -Wall -Wextra -DOSATOMIC_USE_INLINED=1 -Ithird_party/abseil-cpp -Ithird_party/re2 -Ithird_party/upb -Isrc/core/ext/upb-generated -Isrc/core/ext/upbdefs-generated -O2 -Wframe-larger-than=16384 -fPIC -I. -Iinclude -I/usr/local/lib/ruby/gems/3.0.0/gems/grpc-1.34.0/src/ruby/ext/grpc/gens -I/usr/local/include -DNDEBUG -DINSTALL_PREFIX=\"/usr/local\" -arch i386 -arch x86_64  -Ithird_party/zlib   -std=c99  -g   -fvisibility=hidden -MMD -MF /usr/local/lib/ruby/gems/3.0.0/gems/grpc-1.34.0/src/ruby/ext/grpc/objs/opt/third_party/zlib/trees.dep -c -o /usr/local/lib/ruby/gems/3.0.0/gems/grpc-1.34.0/src/ruby/ext/grpc/objs/opt/third_party/zlib/trees.o third_party/zlib/trees.c
clang -fdeclspec -Ithird_party/boringssl-with-bazel/src/include -Ithird_party/address_sorting/include -Ithird_party/cares -Ithird_party/cares/cares -DGPR_BACKWARDS_COMPATIBILITY_MODE -g -Wall -Wextra -DOSATOMIC_USE_INLINED=1 -Ithird_party/abseil-cpp -Ithird_party/re2 -Ithird_party/upb -Isrc/core/ext/upb-generated -Isrc/core/ext/upbdefs-generated -O2 -Wframe-larger-than=16384 -fPIC -I. -Iinclude -I/usr/local/lib/ruby/gems/3.0.0/gems/grpc-1.34.0/src/ruby/ext/grpc/gens -I/usr/local/include -DNDEBUG -DINSTALL_PREFIX=\"/usr/local\" -arch i386 -arch x86_64  -Ithird_party/zlib   -std=c99  -g   -fvisibility=hidden -MMD -MF /usr/local/lib/ruby/gems/3.0.0/gems/grpc-1.34.0/src/ruby/ext/grpc/objs/opt/third_party/zlib/uncompr.dep -c -o /usr/local/lib/ruby/gems/3.0.0/gems/grpc-1.34.0/src/ruby/ext/grpc/objs/opt/third_party/zlib/uncompr.o third_party/zlib/uncompr.c
third_party/zlib/gzlib.c:252:9: warning: implicit declaration of function 'lseek' is invalid in C99 [-Wimplicit-function-declaration]
        LSEEK(state->fd, 0, SEEK_END);  /* so gzoffset() is correct */
        ^
third_party/zlib/gzlib.c:14:17: note: expanded from macro 'LSEEK'
#  define LSEEK lseek
                ^
third_party/zlib/gzlib.c:258:24: warning: implicit declaration of function 'lseek' is invalid in C99 [-Wimplicit-function-declaration]
        state->start = LSEEK(state->fd, 0, SEEK_CUR);
                       ^
third_party/zlib/gzlib.c:14:17: note: expanded from macro 'LSEEK'
#  define LSEEK lseek
                ^
third_party/zlib/gzlib.c:359:9: warning: implicit declaration of function 'lseek' is invalid in C99 [-Wimplicit-function-declaration]
    if (LSEEK(state->fd, state->start, SEEK_SET) == -1)
        ^
third_party/zlib/gzlib.c:14:17: note: expanded from macro 'LSEEK'
#  define LSEEK lseek
                ^
third_party/zlib/gzlib.c:400:15: warning: implicit declaration of function 'lseek' is invalid in C99 [-Wimplicit-function-declaration]
        ret = LSEEK(state->fd, offset - state->x.have, SEEK_CUR);
              ^
third_party/zlib/gzlib.c:14:17: note: expanded from macro 'LSEEK'
#  define LSEEK lseek
                ^
third_party/zlib/gzlib.c:496:14: warning: implicit declaration of function 'lseek' is invalid in C99 [-Wimplicit-function-declaration]
    offset = LSEEK(state->fd, 0, SEEK_CUR);
             ^
third_party/zlib/gzlib.c:14:17: note: expanded from macro 'LSEEK'
#  define LSEEK lseek
                ^
third_party/zlib/gzwrite.c:89:20: warning: implicit declaration of function 'write' is invalid in C99 [-Wimplicit-function-declaration]
            writ = write(state->fd, strm->next_in, put);
                   ^
third_party/zlib/gzwrite.c:110:24: warning: implicit declaration of function 'write' is invalid in C99 [-Wimplicit-function-declaration]
                writ = write(state->fd, state->x.next, put);
                       ^
third_party/zlib/gzread.c:35:15: warning: implicit declaration of function 'read' is invalid in C99 [-Wimplicit-function-declaration]
        ret = read(state->fd, buf + *have, get);
              ^
third_party/zlib/gzwrite.c:661:9: warning: implicit declaration of function 'close' is invalid in C99 [-Wimplicit-function-declaration]
    if (close(state->fd) == -1)
        ^
third_party/zlib/gzread.c:651:11: warning: implicit declaration of function 'close' is invalid in C99 [-Wimplicit-function-declaration]
    ret = close(state->fd);
          ^
5 warnings generated.
[C]       Compiling third_party/cares/cares/ares__get_hostent.c
mkdir -p `dirname /usr/local/lib/ruby/gems/3.0.0/gems/grpc-1.34.0/src/ruby/ext/grpc/objs/opt/third_party/cares/cares/ares__get_hostent.o`
3 warnings generated.
third_party/zlib/gzlib.c:252:9: error: implicit declaration of function 'lseek' is invalid in C99 [-Werror,-Wimplicit-function-declaration]
        LSEEK(state->fd, 0, SEEK_END);  /* so gzoffset() is correct */
        ^
third_party/zlib/gzlib.c:14:17: note: expanded from macro 'LSEEK'
#  define LSEEK lseek
                ^
third_party/zlib/gzlib.c:252:9: note: did you mean 'fseek'?
third_party/zlib/gzlib.c:14:17: note: expanded from macro 'LSEEK'
#  define LSEEK lseek
                ^
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/stdio.h:162:6: note: 'fseek' declared here
int      fseek(FILE *, long, int);
         ^
third_party/zlib/gzlib.c:258:24: error: implicit declaration of function 'lseek' is invalid in C99 [-Werror,-Wimplicit-function-declaration]
        state->start = LSEEK(state->fd, 0, SEEK_CUR);
                       ^
third_party/zlib/gzlib.c:14:17: note: expanded from macro 'LSEEK'
#  define LSEEK lseek
                ^
third_party/zlib/gzlib.c:359:9: error: implicit declaration of function 'lseek' is invalid in C99 [-Werror,-Wimplicit-function-declaration]
    if (LSEEK(state->fd, state->start, SEEK_SET) == -1)
        ^
third_party/zlib/gzlib.c:14:17: note: expanded from macro 'LSEEK'
#  define LSEEK lseek
                ^
third_party/zlib/gzlib.c:400:15: error: implicit declaration of function 'lseek' is invalid in C99 [-Werror,-Wimplicit-function-declaration]
        ret = LSEEK(state->fd, offset - state->x.have, SEEK_CUR);
              ^
third_party/zlib/gzlib.c:14:17: note: expanded from macro 'LSEEK'
#  define LSEEK lseek
                ^
third_party/zlib/gzlib.c:496:14: error: implicit declaration of function 'lseek' is invalid in C99 [-Werror,-Wimplicit-function-declaration]
    offset = LSEEK(state->fd, 0, SEEK_CUR);
             ^
third_party/zlib/gzlib.c:14:17: note: expanded from macro 'LSEEK'
#  define LSEEK lseek
                ^
clang -fdeclspec -Ithird_party/boringssl-with-bazel/src/include -Ithird_party/address_sorting/include -Ithird_party/cares -Ithird_party/cares/cares -DGPR_BACKWARDS_COMPATIBILITY_MODE -g -Wall -Wextra -DOSATOMIC_USE_INLINED=1 -Ithird_party/abseil-cpp -Ithird_party/re2 -Ithird_party/upb -Isrc/core/ext/upb-generated -Isrc/core/ext/upbdefs-generated -O2 -Wframe-larger-than=16384 -fPIC -I. -Iinclude -I/usr/local/lib/ruby/gems/3.0.0/gems/grpc-1.34.0/src/ruby/ext/grpc/gens -I/usr/local/include -DNDEBUG -DINSTALL_PREFIX=\"/usr/local\" -arch i386 -arch x86_64  -Ithird_party/zlib   -Ithird_party/cares -Ithird_party/cares/cares -fvisibility=hidden -D_GNU_SOURCE -Ithird_party/cares/config_darwin    -DWIN32_LEAN_AND_MEAN -D_HAS_EXCEPTIONS=0 -DNOMINMAX -DHAVE_CONFIG_H -std=c99  -g   -g -MMD -MF /usr/local/lib/ruby/gems/3.0.0/gems/grpc-1.34.0/src/ruby/ext/grpc/objs/opt/third_party/cares/cares/ares__get_hostent.dep -c -o /usr/local/lib/ruby/gems/3.0.0/gems/grpc-1.34.0/src/ruby/ext/grpc/objs/opt/third_party/cares/cares/ares__get_hostent.o third_party/cares/cares/ares__get_hostent.c
2 warnings generated.
5 errors generated.
make: *** [/usr/local/lib/ruby/gems/3.0.0/gems/grpc-1.34.0/src/ruby/ext/grpc/objs/opt/third_party/zlib/gzlib.o] Error 1
make: *** Waiting for unfinished jobs....
third_party/zlib/gzwrite.c:89:20: error: implicit declaration of function 'write' is invalid in C99 [-Werror,-Wimplicit-function-declaration]
            writ = write(state->fd, strm->next_in, put);
                   ^
third_party/zlib/gzwrite.c:89:20: note: did you mean 'fwrite'?
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/stdio.h:165:9: note: 'fwrite' declared here
size_t   fwrite(const void * __restrict __ptr, size_t __size, size_t __nitems, FILE * __restrict __stream) __DARWIN_ALIAS(fwrite);
         ^
third_party/zlib/gzwrite.c:110:24: error: implicit declaration of function 'write' is invalid in C99 [-Werror,-Wimplicit-function-declaration]
                writ = write(state->fd, state->x.next, put);
                       ^
third_party/zlib/gzwrite.c:661:9: error: implicit declaration of function 'close' is invalid in C99 [-Werror,-Wimplicit-function-declaration]
    if (close(state->fd) == -1)
        ^
3 errors generated.
third_party/zlib/gzread.c:35:15: error: implicit declaration of function 'read' is invalid in C99 [-Werror,-Wimplicit-function-declaration]
        ret = read(state->fd, buf + *have, get);
              ^
third_party/zlib/gzread.c:35:15: note: did you mean 'fread'?
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/stdio.h:158:9: note: 'fread' declared here
make: *** [/usr/local/lib/ruby/gems/3.0.0/gems/grpc-1.34.0/src/ruby/ext/grpc/objs/opt/third_party/zlib/gzwrite.o] Error 1
size_t   fread(void * __restrict __ptr, size_t __size, size_t __nitems, FILE * __restrict __stream);
         ^
third_party/zlib/gzread.c:651:11: error: implicit declaration of function 'close' is invalid in C99 [-Werror,-Wimplicit-function-declaration]
    ret = close(state->fd);
          ^
2 errors generated.
make: *** [/usr/local/lib/ruby/gems/3.0.0/gems/grpc-1.34.0/src/ruby/ext/grpc/objs/opt/third_party/zlib/gzread.o] Error 1
make: *** wait: No child processes.  Stop.
*** extconf.rb failed ***
Could not create Makefile due to some reason, probably lack of necessary
libraries and/or headers.  Check the mkmf.log file for more details.  You may
need configuration options.

Provided configuration options:
	--with-opt-dir
	--with-opt-include
	--without-opt-include=${opt-dir}/include
	--with-opt-lib
	--without-opt-lib=${opt-dir}/lib
	--with-make-prog
	--without-make-prog
	--srcdir=.
	--curdir
	--ruby=/usr/local/Cellar/ruby/3.0.0_1/bin/$(RUBY_BASE_NAME)

extconf failed, exit code 1

@thiagoss
Copy link

thiagoss commented Jan 6, 2021

This might not be directly related to ruby 3. It is probably some change in default flags for the compilers on newer versions.

Adding export CFLAGS="$CFLAGS -DHAVE_UNISTD_H" into my shell works around this one, but the ruby lib itself has implicit function declarations:

rb_event_thread.c:118:3: error: implicit declaration of function 'grpc_ruby_init' is invalid in C99 [-Werror,-Wimplicit-function-declaration]
  grpc_ruby_init();
  ^
rb_event_thread.c:132:3: error: implicit declaration of function 'grpc_ruby_shutdown' is invalid in C99 [-Werror,-Wimplicit-function-declaration]
  grpc_ruby_shutdown();
  ^

Those should be included in the files that need it.

Probably missing rb_grpc.h to be included.

@casperisfine
Copy link
Contributor

Interestingly in compile fine for me on Linux, but I have the same issue on OSX

Adding export CFLAGS="$CFLAGS -DHAVE_UNISTD_H" into my shell works around this one

Did work for me as well. Thanks!

but the ruby lib itself has implicit function declarations:

For this one I managed to work around by patching the gem with:

diff --git a/src/ruby/ext/grpc/rb_event_thread.c b/src/ruby/ext/grpc/rb_event_thread.c
index c9ca14ed06..9e5c7b54b2 100644
--- a/src/ruby/ext/grpc/rb_event_thread.c
+++ b/src/ruby/ext/grpc/rb_event_thread.c
@@ -19,6 +19,7 @@
 #include <ruby/ruby.h>
 
 #include "rb_event_thread.h"
+#include "rb_grpc.h"
 #include "rb_grpc_imports.generated.h"
 
 #include <stdbool.h>

It's dirty, but was enough to unblock me until it is fixed upstream.

@StevenDas-Tomo
Copy link

StevenDas-Tomo commented Jan 11, 2021

This issue appears to be impacting not only the GRPC Ruby Gem, but also the grpcio Python package.

I'm able to consistently repro the following on Mac OS X Catalina (10.15.7) when installing version 1.32.0 of grpcio:

    third_party/zlib/gzlib.c:252:9: error: implicit declaration of function 'lseek' is invalid in C99 [-Werror,-Wimplicit-function-declaration]
            LSEEK(state->fd, 0, SEEK_END);  /* so gzoffset() is correct */
            ^
    third_party/zlib/gzlib.c:14:17: note: expanded from macro 'LSEEK'
    #  define LSEEK lseek
                    ^
    third_party/zlib/gzlib.c:252:9: note: did you mean 'fseek'?
    third_party/zlib/gzlib.c:14:17: note: expanded from macro 'LSEEK'
    #  define LSEEK lseek
                    ^
    /Library/Developer/CommandLineTools/SDKs/MacOSX10.15.sdk/usr/include/stdio.h:162:6: note: 'fseek' declared here
    int      fseek(FILE *, long, int);

I'm using the following dependencies:

  • pip: 20.2.3
  • python: 3.9.1
  • gcc:
Configured with: --prefix=/Library/Developer/CommandLineTools/usr --with-gxx-include-dir=/Library/Developer/CommandLineTools/SDKs/MacOSX10.15.sdk/usr/include/c++/4.2.1
Apple clang version 12.0.0 (clang-1200.0.32.28)
Target: x86_64-apple-darwin19.6.0
Thread model: posix
InstalledDir: /Library/Developer/CommandLineTools/usr/bin

Interestingly, I'm hitting no such issue when attempting to install the latest stable version of grpcio (1.34.0).

@apolcyn
Copy link
Contributor

apolcyn commented Jan 12, 2021

To update, I'm looking at backporting #25133 to the 1.35.x branch. This should then be fixed in the next 1.35.x release (should happen within the next the next week or two).

Also, #25070 was merged and is included on the 1.35.x branch, so the 1.35.x gems won't need to be built from source, since the gems will contain pre-compiled libraries that work on ruby 3.0. The 1.35.0.pre1 gem is currently available.

@Younnah
Copy link

Younnah commented Jan 26, 2021

Hi everyone 👋

I have the same issue and I can't seem to fix it at all... (for another ruby version)
OS version : macOS Big Sur version 11.1 (20C69)
Ruby version : ruby 2.5.1p57 (2018-03-29 revision 63029) [x86_64-darwin20]

I'm trying to intall the 1.24.0 version of the grpc gem

I have these errors :

rb_event_thread.c:118:3: error: implicit declaration of function 'grpc_ruby_init' is invalid in C99 [-Werror,-Wimplicit-function-declaration]
  grpc_ruby_init();
  ^
rb_event_thread.c:132:3: error: implicit declaration of function 'grpc_ruby_shutdown' is invalid in C99 [-Werror,-Wimplicit-function-declaration]
  grpc_ruby_shutdown();
  ^
2 errors generated.

Does anyone have an idea? Thank you!


EDIT:

Also, I have this error when I'm trying to do a bundle install command but when I force the installation with gem install, it works :
image

@Younnah
Copy link

Younnah commented Jan 27, 2021

Hi @casperisfine

Sorry for the inconvenience, I'm a ruby coder but I'm not an expert, is it possible to explain to me the procedure to follow to patch the gem? (just how to create & apply the patch)

Thank you!

Interestingly in compile fine for me on Linux, but I have the same issue on OSX

Adding export CFLAGS="$CFLAGS -DHAVE_UNISTD_H" into my shell works around this one

Did work for me as well. Thanks!

but the ruby lib itself has implicit function declarations:

For this one I managed to work around by patching the gem with:

diff --git a/src/ruby/ext/grpc/rb_event_thread.c b/src/ruby/ext/grpc/rb_event_thread.c
index c9ca14ed06..9e5c7b54b2 100644
--- a/src/ruby/ext/grpc/rb_event_thread.c
+++ b/src/ruby/ext/grpc/rb_event_thread.c
@@ -19,6 +19,7 @@
 #include <ruby/ruby.h>
 
 #include "rb_event_thread.h"
+#include "rb_grpc.h"
 #include "rb_grpc_imports.generated.h"
 
 #include <stdbool.h>

It's dirty, but was enough to unblock me until it is fixed upstream.

@casperisfine
Copy link
Contributor

It's quite tricky, I had to extract the .gem content, patch it and then rebuild.

Given that you are on Ruby 2.5 you should be able to use the precompiled gem, so I wouldn't recommend going this route.

Check your bundle platform, I suppose your Gemfile must be configured in a way that doesn't want to use the universal-darwin platform gems: https://rubygems.org/gems/grpc/versions/1.24.0-universal-darwin

@Younnah
Copy link

Younnah commented Jan 27, 2021

Check your bundle platform, I suppose your Gemfile must be configured in a way that doesn't want to use the universal-darwin platform gems: https://rubygems.org/gems/grpc/versions/1.24.0-universal-darwin

Thank you for your quick reply!

I have this for bundle platform :

Your platform is: x86_64-darwin20

Your app has gems that work on these platforms:
* ruby
* x64-mingw32

Your Gemfile specifies a Ruby version requirement:
* ruby 2.5.1p57

Your current platform satisfies the Ruby version requirement.

I don't know if it's useful, but here is what I have for gem env:

RubyGems Environment:
  - RUBYGEMS VERSION: 3.2.6
  - RUBY VERSION: 2.5.1 (2018-03-29 patchlevel 57) [x86_64-darwin20]
  - INSTALLATION DIRECTORY: /Users/asktech/.rvm/gems/ruby-2.5.1@xeno-rails-5
  - USER INSTALLATION DIRECTORY: /Users/asktech/.gem/ruby/2.5.0
  - RUBY EXECUTABLE: /Users/asktech/.rvm/rubies/ruby-2.5.1/bin/ruby
  - GIT EXECUTABLE: /usr/bin/git
  - EXECUTABLE DIRECTORY: /Users/asktech/.rvm/gems/ruby-2.5.1@xeno-rails-5/bin
  - SPEC CACHE DIRECTORY: /Users/asktech/.gem/specs
  - SYSTEM CONFIGURATION DIRECTORY: /Users/asktech/.rvm/rubies/ruby-2.5.1/etc
  - RUBYGEMS PLATFORMS:
     - ruby
     - x86_64-darwin-20
  - GEM PATHS:
     - /Users/asktech/.rvm/gems/ruby-2.5.1@xeno-rails-5
     - /Users/asktech/.rvm/rubies/ruby-2.5.1/lib/ruby/gems/2.5.0
  - GEM CONFIGURATION:
     - :update_sources => true
     - :verbose => true
     - :backtrace => false
     - :bulk_threshold => 1000
  - REMOTE SOURCES:
     - https://rubygems.org/
  - SHELL PATH:
     - /Users/asktech/.rvm/gems/ruby-2.5.1@xeno-rails-5/bin
     - /Users/asktech/.rvm/gems/ruby-2.5.1@global/bin
     - /Users/asktech/.rvm/rubies/ruby-2.5.1/bin
     - /Users/asktech/.rvm/bin
     - /usr/local/bin
     - /usr/bin
     - /bin
     - /usr/sbin
     - /sbin

Do you have any idea what I could do to fix this problem? Thank you!


EDIT: I tried gem install grpc -v '1.24.0' --platform=ruby without success

@casperisfine
Copy link
Contributor

Try: bundle lock --add-platform=x86_64-darwin20

@Younnah
Copy link

Younnah commented Jan 27, 2021

Try: bundle lock --add-platform=x86_64-darwin20

Thank you so much, it worked !! 🎉

chrisseaton added a commit to Shopify/grpc that referenced this issue Mar 9, 2021
See for example oracle/truffleruby#2267 but I think really there's some other issues around headers - also see grpc#25060
@casperisfine
Copy link
Contributor

@apolcyn I noticed something weird with the darwin packages. grpc-1.35.0-universal-darwin and grpc-1.36.0-universal-darwin don't have the binaries for 3.0:

$ ls $GEM_HOME/gems/grpc-1.36.0-universal-darwin/src/ruby/lib/grpc
2.4                        2.6                        core                       generic                    grpc.rb                    notifier.rb                version.rb
2.5                        2.7                        errors.rb                  google_rpc_status_utils.rb logconfig.rb               structs.rb

However the linux packages are fine:

$ docker run -it ruby:3.0 bash
root@8f7f76ae6d84:/# gem install grpc
Fetching googleapis-common-protos-types-1.0.6.gem
Fetching grpc-1.36.0-x86_64-linux.gem
Fetching google-protobuf-3.15.6-x86_64-linux.gem
Successfully installed google-protobuf-3.15.6-x86_64-linux
Successfully installed googleapis-common-protos-types-1.0.6
Successfully installed grpc-1.36.0-x86_64-linux
3 gems installed
root@8f7f76ae6d84:/# ls $GEM_HOME/gems/grpc-1.36.0-*/src/ruby/lib/grpc
2.4  2.5  2.6  2.7  3.0  core  errors.rb  generic  google_rpc_status_utils.rb  grpc.rb	logconfig.rb  notifier.rb  structs.rb  version.rb

This causes the following error on OSX:

 cannot load such file -- grpc/grpc_c (LoadError)

flavorjones added a commit to flavorjones/grpc that referenced this issue Mar 23, 2021
Please note that this work simplifies the Darwin rubygem build,
and addresses inconsistencies in packaging that result in issues
like grpc#25060, but introduces some notable changes:

- ships "x86_64-darwin" and "arm64-darwin" platform gems
- stops shipping "universal-darwin" platform gem
- drop support for i386 darwin

It's unclear to me whether grpc should continue to support i386
Darwin, and so I'm open to learning more about this.

Related to:

- grpc#25429
- grpc#25755
- grpc#25756
flavorjones added a commit to flavorjones/grpc that referenced this issue Mar 24, 2021
Using RCD for these platforms unifies the Darwin native gem build
process with the Linux native gems, which should help avoid
inconsistencies in packaging that result in issues like the missing
Ruby 3.0 binaries in grpc#25060.

Please note that this change leaves the "universal-darwin" platform
native gem untouched, but provides a path forward if the project ever
decides to drop "universal" binary support.

Related to:

- grpc#25429
- grpc#25755
- grpc#25756
flavorjones added a commit to flavorjones/grpc that referenced this issue Mar 24, 2021
Using RCD for these platforms unifies the Darwin native gem build
process with the Linux native gems, which should help avoid
inconsistencies in packaging that result in issues like the missing
Ruby 3.0 binaries in grpc#25060.

Please note that this change leaves the "universal-darwin" platform
native gem untouched, but provides a path forward if the project ever
decides to drop "universal" binary support.

Related to:

- grpc#25429
- grpc#25755
- grpc#25756
flavorjones added a commit to flavorjones/grpc that referenced this issue Mar 24, 2021
Using RCD for these platforms unifies the Darwin native gem build
process with the Linux native gems, which should help avoid
inconsistencies in packaging that result in issues like the missing
Ruby 3.0 binaries in grpc#25060.

Please note that this change leaves the "universal-darwin" platform
native gem untouched, but provides a path forward if the project ever
decides to drop "universal" binary support.

Related to:

- grpc#25429
- grpc#25755
- grpc#25756
flavorjones added a commit to flavorjones/grpc that referenced this issue Mar 24, 2021
Using RCD for these platforms unifies the Darwin native gem build
process with the Linux native gems, which should help avoid
inconsistencies in packaging that result in issues like the missing
Ruby 3.0 binaries in grpc#25060.

Please note that this change leaves the "universal-darwin" platform
native gem untouched, but provides a path forward if the project ever
decides to drop "universal" binary support.

Related to:

- grpc#25429
- grpc#25755
- grpc#25756
flavorjones added a commit to flavorjones/grpc that referenced this issue Mar 25, 2021
Using RCD for these platforms unifies the Darwin native gem build
process with the Linux native gems, which should help avoid
inconsistencies in packaging that result in issues like the missing
Ruby 3.0 binaries in grpc#25060.

Please note that this change leaves the "universal-darwin" platform
native gem untouched, but provides a path forward if the project ever
decides to drop "universal" binary support.

Related to:

- grpc#25429
- grpc#25755
- grpc#25756
flavorjones added a commit to flavorjones/grpc that referenced this issue Apr 16, 2021
Using RCD for this platform unifies the Darwin native gem build
process with the Linux native gems, which should help avoid
inconsistencies in packaging that result in issues like the missing
Ruby 3.0 binaries in grpc#25060.

Please note that this change leaves the "universal-darwin" platform
native gem untouched, but provides a path forward if the project ever
decides to drop "universal" binary support.

Related to:

- grpc#25429
- grpc#25756
@lafeber
Copy link

lafeber commented Apr 19, 2021

Updating to 1.37.0 worked for me.

@apolcyn
Copy link
Contributor

apolcyn commented Apr 19, 2021

Yes this should be fixed in 1.37.0 and onwards (which includes #25429), closing

@apolcyn apolcyn closed this as completed Apr 19, 2021
flavorjones added a commit to flavorjones/grpc that referenced this issue Jun 10, 2021
Using RCD for this platform unifies the Darwin native gem build
process with the Linux native gems, which should help avoid
inconsistencies in packaging that result in issues like the missing
Ruby 3.0 binaries in grpc#25060.

Please note that this change leaves the "universal-darwin" platform
native gem untouched, but provides a path forward if the project ever
decides to drop "universal" binary support.

Related to:

- grpc#25429
- grpc#25756
flavorjones added a commit to flavorjones/grpc that referenced this issue Jun 14, 2021
Using RCD for this platform unifies the Darwin native gem build
process with the Linux native gems, which should help avoid
inconsistencies in packaging that result in issues like the missing
Ruby 3.0 binaries in grpc#25060.

Please note that this change leaves the "universal-darwin" platform
native gem untouched, but provides a path forward if the project ever
decides to drop "universal" binary support.

Related to:

- grpc#25429
- grpc#25756
flavorjones added a commit to flavorjones/grpc that referenced this issue Jul 16, 2021
Using RCD for this platform unifies the Darwin native gem build
process with the Linux native gems, which should help avoid
inconsistencies in packaging that result in issues like the missing
Ruby 3.0 binaries in grpc#25060.

Please note that this change leaves the "universal-darwin" platform
native gem untouched, but provides a path forward if the project ever
decides to drop "universal" binary support.

Related to:

- grpc#25429
- grpc#25756
flavorjones added a commit to flavorjones/grpc that referenced this issue Aug 20, 2021
Using RCD for this platform unifies the Darwin native gem build
process with the Linux native gems, which should help avoid
inconsistencies in packaging that result in issues like the missing
Ruby 3.0 binaries in grpc#25060.

Please note that this change leaves the "universal-darwin" platform
native gem untouched, but provides a path forward if the project ever
decides to drop "universal" binary support.

Related to:

- grpc#25429
- grpc#25756
flavorjones added a commit to flavorjones/grpc that referenced this issue Sep 9, 2021
Using RCD for this platform unifies the Darwin native gem build
process with the Linux native gems, which should help avoid
inconsistencies in packaging that result in issues like the missing
Ruby 3.0 binaries in grpc#25060.

Please note that this change leaves the "universal-darwin" platform
native gem untouched, but provides a path forward if the project ever
decides to drop "universal" binary support.

Related to:

- grpc#25429
- grpc#25756
flavorjones added a commit to flavorjones/grpc that referenced this issue Oct 16, 2021
Using RCD for this platform unifies the Darwin native gem build
process with the Linux native gems, which should help avoid
inconsistencies in packaging that result in issues like the missing
Ruby 3.0 binaries in grpc#25060.

Please note that this change leaves the "universal-darwin" platform
native gem untouched, but provides a path forward if the project ever
decides to drop "universal" binary support.

Related to:

- grpc#25429
- grpc#25756
jtattermusch pushed a commit that referenced this issue Oct 19, 2021
* ruby: use squiggly heredoc for rake-compiler-dock commands

* ruby: use `bundler exec` when building native gems

* ruby: clean .{bundle,so} from src/ruby/lib when building native gems

Failing to remove these files between native builds leads
rake-compiler to establish circular dependencies (which may be a bug
in rake-compiler, but this feels like an easy and good thing to do,
anyway).

* ruby: extract linux and darwin RUBY_PLATFORM checks into variables

There were already "windows" and "bsd" flags, so let's improve
consistency and readability, and set a clear pattern for subsequent
flags.

* ruby: rely on rake-compiler-dock v1.1.0 to set no_native correctly

As of v1.1.0 there's no need to set this explicitly anymore; it will
be true whenever the extension is being built in a RCD container.

See rake-compiler/rake-compiler-dock@362890d

* ruby: add "x86_64-darwin" platform gem

Using RCD for this platform unifies the Darwin native gem build
process with the Linux native gems, which should help avoid
inconsistencies in packaging that result in issues like the missing
Ruby 3.0 binaries in #25060.

Please note that this change leaves the "universal-darwin" platform
native gem untouched, but provides a path forward if the project ever
decides to drop "universal" binary support.

Related to:

- #25429
- #25756
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

9 participants