make exported symbol files platform specific (#31970)

pull/31979/head
apolcyn 2 years ago committed by GitHub
parent a1491cd738
commit 05c5083477
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 2
      src/ruby/ext/grpc/ext-export-truffleruby-with-ruby-abi-version.clang
  2. 7
      src/ruby/ext/grpc/ext-export-truffleruby-with-ruby-abi-version.gcc
  3. 1
      src/ruby/ext/grpc/ext-export-truffleruby.clang
  4. 3
      src/ruby/ext/grpc/ext-export-truffleruby.gcc
  5. 2
      src/ruby/ext/grpc/ext-export-with-ruby-abi-version.clang
  6. 7
      src/ruby/ext/grpc/ext-export-with-ruby-abi-version.gcc
  7. 1
      src/ruby/ext/grpc/ext-export.clang
  8. 3
      src/ruby/ext/grpc/ext-export.gcc
  9. 26
      src/ruby/ext/grpc/extconf.rb

@ -0,0 +1,7 @@
grpc_1.0 {
global:
Init_grpc_c;
rb_tr_abi_version;
local:
*;
};

@ -1,2 +1 @@
_Init_grpc_c
_rb_tr_abi_version

@ -1,7 +1,6 @@
grpc_1.0 {
global:
Init_grpc_c;
rb_tr_abi_version;
local:
*;
};
};

@ -0,0 +1,7 @@
grpc_1.0 {
global:
Init_grpc_c;
ruby_abi_version;
local:
*;
};

@ -1,2 +1 @@
_Init_grpc_c
_ruby_abi_version

@ -1,7 +1,6 @@
grpc_1.0 {
global:
Init_grpc_c;
ruby_abi_version;
local:
*;
};
};

@ -113,8 +113,30 @@ end
$CFLAGS << ' -DGRPC_RUBY_WINDOWS_UCRT' if windows_ucrt
$CFLAGS << ' -I' + File.join(grpc_root, 'include')
ext_export_file = File.join(grpc_root, 'src', 'ruby', 'ext', 'grpc', 'ext-export')
ext_export_file += '-truffleruby' if RUBY_ENGINE == 'truffleruby'
def have_ruby_abi_version()
m = /(\d+)\.(\d+)/.match(RUBY_VERSION)
if m.nil?
puts "Failed to parse ruby version: #{RUBY_VERSION}. Assuming ruby_abi_version symbol is NOT present."
return false
end
major = m[1].to_i
minor = m[2].to_i
if major >= 3 and minor >= 2
puts "Ruby version #{RUBY_VERSION} >= 3.2. Assuming ruby_abi_version symbol is present."
return true
end
puts "Ruby version #{RUBY_VERSION} < 3.2. Assuming ruby_abi_version symbol is NOT present."
false
end
def ext_export_filename()
name = 'ext-export'
name += '-truffleruby' if RUBY_ENGINE == 'truffleruby'
name += '-with-ruby-abi-version' if have_ruby_abi_version()
name
end
ext_export_file = File.join(grpc_root, 'src', 'ruby', 'ext', 'grpc', ext_export_filename())
$LDFLAGS << ' -Wl,--version-script="' + ext_export_file + '.gcc"' if linux
$LDFLAGS << ' -Wl,-exported_symbols_list,"' + ext_export_file + '.clang"' if apple_toolchain

Loading…
Cancel
Save