Issue #5188 has been updated by Brian Lindauer.


Luis,

That fixed my problem. Thank you.

Brian
----------------------------------------
Bug #5188: mkmf libpath order prevents use of custom libs
http://redmine.ruby-lang.org/issues/5188

Author: Brian Lindauer
Status: Feedback
Priority: Normal
Assignee: Luis Lavena
Category: 
Target version: 
ruby -v: ruby 1.9.2p290 (2011-07-09 revision 32553) [x86_64-linux]


The sqlite3 gem has an option --with-sqlite3-lib, which lets you point it to a non-default location for the libsqlite3.so file. However, mkmf still tries to use the default system libsqlite3.so even when this option is specified. I've tracked the behavior down to what I think is a bug in mkmf.rb.  The command it tries is

<pre>
gcc -o conftest -I/usr/include/ruby/ruby-1.9.1/x86_64-linux -I/usr/include/ruby/ruby-1.9.1/ruby/backward -I/usr/include/ruby/ruby-1.9.1 -I. -I../../../../../../../../../include -I/usr/local/include -I/opt/local/include -I/sw/local/include -I/usr/include    -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -mtune=generic -Wall -fno-strict-aliasing -fPIC conftest.c  -L. -L/usr/lib64 -L../../../../../../../../../lib -L/usr/local/lib -L/opt/local/lib -L/sw/local/lib -L/usr/lib -L.  -rdynamic -Wl,-export-dynamic     -lruby-static -lsqlite3  -lpthread -lrt -ldl -lcrypt -lm   -lc
</pre>

Note that -L/usr/lib64 comes before the path I specified in --with-sqlite3-lib. If you have a matching library in /usr/lib64, it will always use that instead of the one you have pointed to.

This behavior is implemented in the link_command method of mkmf.rb:

<pre><code class="ruby">
def link_command(ldflags, opt="", libpath=$DEFLIBPATH|$LIBPATH)
</code></pre>

I believe that, instead, this should be:


<pre><code class="ruby">
def link_command(ldflags, opt="", libpath=$LIBPATH|$DEFLIBPATH)
</code></pre>



-- 
http://redmine.ruby-lang.org