From: Luis Lavena Date: 2011-08-12T22:10:23+09:00 Subject: [ruby-core:38929] [Ruby 1.9 - Bug #5188][Feedback] mkmf libpath order prevents use of custom libs Issue #5188 has been updated by Luis Lavena. Status changed from Open to Feedback Assignee set to Luis Lavena Can you please try sqlite3 version 1.3.4? The issue you're mentioning is something present in sqlite3-ruby 1.3.3 and that has been fixed in 1.3.4 ---------------------------------------- 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
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
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:

def link_command(ldflags, opt="", libpath=$DEFLIBPATH|$LIBPATH)
I believe that, instead, this should be:

def link_command(ldflags, opt="", libpath=$LIBPATH|$DEFLIBPATH)
-- http://redmine.ruby-lang.org