Bug #10558
closedfailing require digest.so on OSX statically compiled ruby
Description
compiling 2.2.0-preview2 and 2.2.0-preview1 with following flags:
env LDFLAGS=-L/Users/mpapis/.sm/pkg/active/lib -fPIC -Bstatic CFLAGS=-O3 -I/Users/mpapis/.sm/pkg/active/include -fPIC -mmacosx-version-min=10.7 ./configure --prefix=/Users/mpapis/.rvm/rubies/ruby-2.2.0-preview2 --disable-install-doc --enable-load-relative --with-static-linked-ext --with-out-ext=dl/win32,fiddle/win32,tk/tkutil,tk,win32ole,-test-/win32/dln,-test-/win32/fd_setsize --sysconfdir=/etc --disable-install-doc --disable-shared --with-arch=x86_64
it compiles but files on installation with:
/Users/travis/.rvm/src/ruby-2.2.0-preview2/.ext/common/digest.rb:1:in
require': cannot load such file -- digest.so (LoadError)` (got the command and error from different machines)
this bug was reported earlier as https://bugs.ruby-lang.org/issues/8721 but now it happens on multiple machines, can not ignore it
this prevents from building a movable OSX ruby binary
Updated by nobu (Nobuyoshi Nakada) about 10 years ago
- Status changed from Open to Feedback
I can't reproduce it.
$ LDFLAGS="-fPIC -Bstatic" CFLAGS="-O3 -fPIC -mmacosx-version-min=10.7" ../src/configure --prefix=$HOME/.rvm/rubies/ruby-2.2.0-preview2 --disable-install-doc --enable-load-relative --with-static-linked-ext --with-out-ext='win32*,tk*' --sysconfdir=/etc --disable-install-doc --disable-shared --with-arch=x86_64
(snip)
$ make -j8 && make install
(snip)
$ ~/.rvm/rubies/ruby-2.2.0-preview2/bin/ruby -e 'puts $".grep(/digest/)'
digest.so
/Users/nobu/.rvm/rubies/ruby-2.2.0-preview2/lib/ruby/2.2.0/digest.rb
digest/bubblebabble.so
digest/md5.so
digest/rmd160.so
digest/sha1.so
digest/sha2.so
Updated by rkh (Konstantin Haase) about 10 years ago
This is failing on Travis CI and unfortunately preventing us from offering 2.2.0-preview2.
See https://travis-ci.org/travis-ci/travis-rubies/jobs/42454368#L194
Konstantin
Updated by mpapis (Michal Papis) about 10 years ago
Nobuyoshi Nakada what OSX version are you trying? mine was 10.10, also could it make difference if it was compiled in sources directory instead of ../src
?
Updated by nobu (Nobuyoshi Nakada) about 10 years ago
Mine is also 10.10.
And I heard that it occurs with 2.1 but not with trunk.
Updated by nobu (Nobuyoshi Nakada) about 10 years ago
I can't reproduce it:
- plain ruby-2.1.5 tarball
- in-place build
-
without
~/.sm/pkg/active
directories
What libraries do you have under ~/.sm/pkg/active/lib
?
Isn't ruby linked against a library there?
Updated by mpapis (Michal Papis) about 10 years ago
it's few libraries, most important here openssl 1.0.1j
:
CFLAGS="-fPIC" LDFLAGS="-fPIC" ./Configure darwin64-x86_64-cc zlib no-shared --openssldir=/etc/openssl --prefix=~/openssl101j
make install -j 1
sed -e '/^Libs:/ s/Libs:/Libs: -lz/' -i ~/openssl101j/lib/pkgconfig/openssl.pc
and use ~/openssl101j
for the -I/-L
flags
Updated by mpapis (Michal Papis) almost 10 years ago
looks like release fixed it: https://github.com/wayneeseguin/rvm/issues/3165#issuecomment-68320898 -- maybe something on the way was fixed
Updated by nobu (Nobuyoshi Nakada) over 8 years ago
- Status changed from Feedback to Third Party's Issue