Репозиторий Sisyphus
Последнее обновление: 1 октября 2023 | Пакетов: 18631 | Посещений: 37896813
en ru br
Репозитории ALT

Группа :: Сети/Прочее
Пакет: grpc

 Главная   Изменения   Спек   Патчи   Sources   Загрузить   Gear   Bugs and FR  Repocop 

Патч: ruby-build.patch
Скачать


--- a/src/ruby/ext/grpc/extconf.rb	2021-06-01 12:00:16.187000000 +0000
+++ b/src/ruby/ext/grpc/extconf.rb	2021-06-01 12:33:17.973000000 +0000
@@ -49,11 +49,12 @@ ENV['ARCH_FLAGS'] = RbConfig::CONFIG['AR
 ENV['ARCH_FLAGS'] = '-arch i386 -arch x86_64' if RUBY_PLATFORM =~ /darwin/
 ENV['CPPFLAGS'] = '-DGPR_BACKWARDS_COMPATIBILITY_MODE'
 
-output_dir = File.expand_path(RbConfig::CONFIG['topdir'])
+static = ENV["STATIC"]
+output_dir = File.expand_path(grpc_root)
 grpc_lib_dir = File.join(output_dir, 'libs', grpc_config)
 ENV['BUILDDIR'] = output_dir
 
-unless windows
+unless windows or !static
   puts 'Building internal gRPC into ' + grpc_lib_dir
   nproc = 4
   nproc = Etc.nprocessors if Etc.respond_to? :nprocessors
@@ -77,7 +77,7 @@ ext_export_file = File.join(grpc_root, '
 $LDFLAGS << ' -Wl,--version-script="' + ext_export_file + '.gcc"' if RUBY_PLATFORM =~ /linux/
 $LDFLAGS << ' -Wl,-exported_symbols_list,"' + ext_export_file + '.clang"' if RUBY_PLATFORM =~ /darwin/
 
-$LDFLAGS << ' ' + File.join(grpc_lib_dir, 'libgrpc.a') unless windows
+$LDFLAGS << ' ' + File.join(grpc_lib_dir, 'libgrpc.a') unless windows || !static
 if grpc_config == 'gcov'
   $CFLAGS << ' -O0 -fprofile-arcs -ftest-coverage'
   $LDFLAGS << ' -fprofile-arcs -ftest-coverage -rdynamic'
@@ -88,7 +88,13 @@ if grpc_config == 'dbg'
 end
 
 $LDFLAGS << ' -Wl,-wrap,memcpy' if RUBY_PLATFORM =~ /linux/
-$LDFLAGS << ' -static-libgcc -static-libstdc++' if RUBY_PLATFORM =~ /linux/
+linux = RUBY_PLATFORM =~ /linux/
+if static
+  if linux && RUBY_ENGINE != 'truffleruby'
+    $LDFLAGS << ' -static-libgcc -static-libstdc++'
+  end
+  $LDFLAGS << ' -static' if windows
+end
 $LDFLAGS << ' -static' if windows
 
 $CFLAGS << ' -std=c99 '
 
дизайн и разработка: Vladimir Lettiev aka crux © 2004-2005, Andrew Avramenko aka liks © 2007-2008
текущий майнтейнер: Michael Shigorin