Merge pull request #119506 from marsam/ruby-disable-jit
ruby: build without jit by default
This commit is contained in:
commit
92bff24dc1
1 changed files with 5 additions and 11 deletions
|
@ -55,13 +55,7 @@ let
|
||||||
# Or (usually):
|
# Or (usually):
|
||||||
# $(nix-build -A ruby)/lib/ruby/2.6.0/x86_64-linux/rbconfig.rb
|
# $(nix-build -A ruby)/lib/ruby/2.6.0/x86_64-linux/rbconfig.rb
|
||||||
# - In $out/lib/libruby.so and/or $out/lib/libruby.dylib
|
# - In $out/lib/libruby.so and/or $out/lib/libruby.dylib
|
||||||
#
|
, removeReferencesTo, jitSupport ? false
|
||||||
# Since some Gems require JIT support, there's probably no
|
|
||||||
# escape from this reference. Hence, it was decided to enable this
|
|
||||||
# feature by default, as it's enabled by default by ruby's ./configure
|
|
||||||
# script. If you'd like to have a ruby without reference to cc, setting
|
|
||||||
# jitSupport to false should remove all known references mentioned above.
|
|
||||||
, removeReferencesTo, jitSupport ? true
|
|
||||||
, autoreconfHook, bison, autoconf
|
, autoreconfHook, bison, autoconf
|
||||||
, buildEnv, bundler, bundix
|
, buildEnv, bundler, bundix
|
||||||
, libiconv, libobjc, libunwind, Foundation
|
, libiconv, libobjc, libunwind, Foundation
|
||||||
|
@ -177,8 +171,9 @@ let
|
||||||
installFlags = lib.optional docSupport "install-doc";
|
installFlags = lib.optional docSupport "install-doc";
|
||||||
# Bundler tries to create this directory
|
# Bundler tries to create this directory
|
||||||
postInstall = ''
|
postInstall = ''
|
||||||
|
rbConfig=$(find $out/lib/ruby -name rbconfig.rb)
|
||||||
# Remove unnecessary groff reference from runtime closure, since it's big
|
# Remove unnecessary groff reference from runtime closure, since it's big
|
||||||
sed -i '/NROFF/d' $out/lib/ruby/*/*/rbconfig.rb
|
sed -i '/NROFF/d' $rbConfig
|
||||||
${
|
${
|
||||||
lib.optionalString (!jitSupport) ''
|
lib.optionalString (!jitSupport) ''
|
||||||
# Get rid of the CC runtime dependency
|
# Get rid of the CC runtime dependency
|
||||||
|
@ -187,7 +182,8 @@ let
|
||||||
$out/lib/libruby*
|
$out/lib/libruby*
|
||||||
${removeReferencesTo}/bin/remove-references-to \
|
${removeReferencesTo}/bin/remove-references-to \
|
||||||
-t ${stdenv.cc} \
|
-t ${stdenv.cc} \
|
||||||
$out/${passthru.libPath}/${stdenv.hostPlatform.system}/rbconfig.rb
|
$rbConfig
|
||||||
|
sed -i '/CC_VERSION_MESSAGE/d' $rbConfig
|
||||||
''
|
''
|
||||||
}
|
}
|
||||||
# Bundler tries to create this directory
|
# Bundler tries to create this directory
|
||||||
|
@ -205,8 +201,6 @@ let
|
||||||
addEnvHooks "$hostOffset" addGemPath
|
addEnvHooks "$hostOffset" addGemPath
|
||||||
addEnvHooks "$hostOffset" addRubyLibPath
|
addEnvHooks "$hostOffset" addRubyLibPath
|
||||||
EOF
|
EOF
|
||||||
|
|
||||||
rbConfig=$(find $out/lib/ruby -name rbconfig.rb)
|
|
||||||
'' + opString docSupport ''
|
'' + opString docSupport ''
|
||||||
# Prevent the docs from being included in the closure
|
# Prevent the docs from being included in the closure
|
||||||
sed -i "s|\$(DESTDIR)$devdoc|\$(datarootdir)/\$(RI_BASE_NAME)|" $rbConfig
|
sed -i "s|\$(DESTDIR)$devdoc|\$(datarootdir)/\$(RI_BASE_NAME)|" $rbConfig
|
||||||
|
|
Loading…
Reference in a new issue