Project

General

Profile

Actions

Bug #5147

closed

mkmf should not require static library when ruby is built with --enable-shared

Added by vo.x (Vit Ondruch) over 12 years ago. Updated over 12 years ago.

Status:
Closed
Target version:
ruby -v:
-
Backport:
[ruby-core:<unknown>]

Description

If libruby-static.a library is not present on the system, the following simple mkmf example fails:

$ ruby -r mkmf -e 'exit(have_func("rb_hash_foreach") ? 0 : 1)'
checking for rb_hash_foreach()... /usr/lib64/ruby/1.9.1/mkmf.rb:381:in try_do': The compiler failed to generate an executable file. (RuntimeError) You have to install development tools first. from /usr/lib64/ruby/1.9.1/mkmf.rb:460:in try_link0'
from /usr/lib64/ruby/1.9.1/mkmf.rb:475:in try_link' from /usr/lib64/ruby/1.9.1/mkmf.rb:618:in try_func'
from /usr/lib64/ruby/1.9.1/mkmf.rb:893:in block in have_func' from /usr/lib64/ruby/1.9.1/mkmf.rb:789:in block in checking_for'
from /usr/lib64/ruby/1.9.1/mkmf.rb:284:in block (2 levels) in postpone' from /usr/lib64/ruby/1.9.1/mkmf.rb:254:in open'
from /usr/lib64/ruby/1.9.1/mkmf.rb:284:in block in postpone' from /usr/lib64/ruby/1.9.1/mkmf.rb:254:in open'
from /usr/lib64/ruby/1.9.1/mkmf.rb:280:in postpone' from /usr/lib64/ruby/1.9.1/mkmf.rb:788:in checking_for'
from /usr/lib64/ruby/1.9.1/mkmf.rb:892:in have_func' from -e:1:in '

The example tries to execute the following command which fails:

$ gcc -o conftest -I/usr/include/ruby-1.9.1/x86_64-linux -I/usr/include/ruby-1.9.1/ruby/backward -I/usr/include/ruby-1.9.1 -I. -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -mtune=generic -m64 -fPIC conftest.c -L. -L/usr/lib64 -L. -Wl,-z,relro -m64 -rdynamic -Wl,-export-dynamic -m64 -lruby-static -lpthread -lrt -ldl -lcrypt -lm -lc
/usr/bin/ld: cannot find -lruby-static
collect2: ld returned 1 exit status

I omitted the static library since it was never needed on Fedora for Ruby 1.8 and never included in default installation. Inclusion of static library is against Fedora guidelines [1]. I would be very happy if this could be fixed prior Ruby 1.9.3 release.

[1] http://fedoraproject.org/wiki/Packaging:Guidelines#Packaging_Static_Libraries

Actions

Also available in: Atom PDF

Like0
Like0Like0Like0Like0Like0Like0Like0Like0Like0Like0Like0