Project

General

Profile

Actions

Bug #11940

closed

Ruby fails to compile with --with-static-linked-ext

Added by luizluca (Luiz Angelo Daros de Luca) over 8 years ago. Updated about 8 years ago.

Status:
Third Party's Issue
Assignee:
-
Target version:
-
[ruby-core:72674]

Description

Hello,

When I select to include all ext static linked and between them there is openssl, ruby fails to build.


$ ./configure --disable-install-doc     --disable-install-rdoc     --disable-install-capi   --with-static-linked-ext
$ make
$ make install
(...)
./miniruby -I./lib -I. -I.ext/common  ./tool/runruby.rb --extout=.ext  -- --disable-gems -r./x86_64-linux-fake ./tool/rbinstall.rb --make="make" --dest-dir="" --extout=".ext" --mflags="" --make-flags="" --data-mode=0644 --prog-mode=0755 --installed-list .installed.list --mantype="doc"
/tmp/ruby-2.3.0/lib/rubygems/security.rb:344:in `<module:Security>': uninitialized constant OpenSSL::Digest::SHA1 (NameError)
	from /tmp/ruby-2.3.0/lib/rubygems/security.rb:332:in `<top (required)>'
	from /tmp/ruby-2.3.0/lib/rubygems/core_ext/kernel_require.rb:55:in `require'
	from /tmp/ruby-2.3.0/lib/rubygems/core_ext/kernel_require.rb:55:in `require'
	from /tmp/ruby-2.3.0/lib/rubygems/package.rb:44:in `<top (required)>'
	from /tmp/ruby-2.3.0/lib/rubygems/core_ext/kernel_require.rb:55:in `require'
	from /tmp/ruby-2.3.0/lib/rubygems/core_ext/kernel_require.rb:55:in `require'
	from /tmp/ruby-2.3.0/lib/rubygems/installer.rb:10:in `<top (required)>'
	from /tmp/ruby-2.3.0/lib/rubygems/core_ext/kernel_require.rb:55:in `require'
	from /tmp/ruby-2.3.0/lib/rubygems/core_ext/kernel_require.rb:55:in `require'
	from ./tool/rbinstall.rb:657:in `<module:RbInstall>'
	from ./tool/rbinstall.rb:585:in `<main>'
uncommon.mk:267: recipe for target 'do-install-nodoc' failed
make: *** [do-install-nodoc] Error 1

It seems that OpenSSL::Digest is defined by the builtin ext (in miniruby?!), which breaks the logic at:


  DIGEST_ALGORITHM =
    if defined?(OpenSSL::Digest) then
      OpenSSL::Digest::SHA1
    end

OpenSSL::Digest is defined (because it has methods like digest and hexdigest) but not OpenSSL::Digest::SHA1.

Actions

Also available in: Atom PDF

Like0
Like0Like0Like0