Hi,

I resolved an issue on Solaris (10)...

When I tried (using Ruby 1.8.4) to run 'setup.rb config' on Solaris 10 I saw:

% ruby setup.rb config
---> lib
---> lib/sqlite3
---> lib/sqlite3/driver
---> lib/sqlite3/driver/dl
<--- lib/sqlite3/driver/dl
---> lib/sqlite3/driver/native
<--- lib/sqlite3/driver/native
<--- lib/sqlite3/driver
<--- lib/sqlite3
<--- lib
---> ext
---> ext/sqlite3_api
/usr/local/bin/ruby /l/p/sqlite/sqlite3-ruby-1.1.0/ext/sqlite3_api/extconf.rb
checking for sqlite3.h... yes
checking for sqlite3_open() in -lsqlite3... no
*** /l/p/sqlite/sqlite3-ruby-1.1.0/ext/sqlite3_api/extconf.rb failed ***
Could not create Makefile due to some reason, probably lack of
necessary libraries and/or headers.  Check the mkmf.log file for more
details.  You may need configuration options.

Provided configuration options:
       --with-opt-dir
       --without-opt-dir
       --with-opt-include
       --without-opt-include=${opt-dir}/include
       --with-opt-lib
       --without-opt-lib=${opt-dir}/lib
       --with-make-prog
       --without-make-prog
       --srcdir=/l/p/sqlite/sqlite3-ruby-1.1.0/ext/sqlite3_api
       --curdir
       --ruby=/usr/local/bin/ruby
       --with-sqlite3-dir
       --without-sqlite3-dir
       --with-sqlite3-include
       --without-sqlite3-include=${sqlite3-dir}/include
       --with-sqlite3-lib
       --without-sqlite3-lib=${sqlite3-dir}/lib
       --with-sqlite3lib
       --without-sqlite3lib
'system /usr/local/bin/ruby
/l/p/sqlite/sqlite3-ruby-1.1.0/ext/sqlite3_api/extconf.rb ' failed
Try 'ruby setup.rb --help' for detailed usage.


----> Wild ....

----> So looking in the ....

% more ext/sqlite3_api/mkmf.log
have_header: checking for sqlite3.h... -------------------- yes

"gcc -E -I. -I/usr/local/lib/ruby/1.8/sparc-solaris2.10
-I/usr/local/include  -g -O2  conftest.c -o conftest.i"
checked program was:
/* begin */
#include <sqlite3.h>
/* end */

--------------------

have_library: checking for sqlite3_open() in -lsqlite3...
-------------------- no

"gcc -o conftest -I. -I/usr/local/lib/ruby/1.8/sparc-solaris2.10
-I/usr/local/include  -g -O2 conftest.c  -L'/usr/local/lib'
-Wl,-R'/usr/local/lib' -L'/usr/local/lib' -Wl,-R'/usr/local/lib'
-lruby-static -lsqlite3  -ldl -lcrypt -lm   -lc"
Undefined                       first referenced
symbol                             in file
fdatasync                           /usr/local/lib/libsqlite3.so
ld: fatal: Symbol referencing errors. No output written to conftest
collect2: ld returned 1 exit status
checked program was:
/* begin */

/*top*/
int main() { return 0; }
int t() { sqlite3_open(); return 0; }
/* end */

"gcc -o conftest -I. -I/usr/local/lib/ruby/1.8/sparc-solaris2.10
-I/usr/local/include  -g -O2 conftest.c  -L'/usr/local/lib'
-Wl,-R'/usr/local/lib' -L'/usr/local/lib' -Wl,-R'/usr/local/lib'
-lruby-static -lsqlite3  -ldl -lcrypt -lm   -lc"
conftest.c: In function `t':
conftest.c:5: error: `sqlite3_open' undeclared (first use in this function)
conftest.c:5: error: (Each undeclared identifier is reported only once
conftest.c:5: error: for each function it appears in.)
checked program was:
/* begin */


/*top*/
int main() { return 0; }
int t() { void ((*volatile p)()); p = (void ((*)()))sqlite3_open; return 0; }
/* end */

--------------------

----> The ld/link failed... on symbol fdatasync

I resolved this by:

% export LD_OPTIONS="-lposix4"
% ruby setup.rb config ---> lib
---> lib/sqlite3
---> lib/sqlite3/driver
---> lib/sqlite3/driver/dl
<--- lib/sqlite3/driver/dl
---> lib/sqlite3/driver/native
<--- lib/sqlite3/driver/native
<--- lib/sqlite3/driver
<--- lib/sqlite3
<--- lib
---> ext
---> ext/sqlite3_api
/usr/local/bin/ruby /l/p/sqlite/sqlite3-ruby-1.1.0/ext/sqlite3_api/extconf.rb
checking for sqlite3.h... yes
checking for sqlite3_open() in -lsqlite3... yes
creating Makefile
<--- ext/sqlite3_api
<--- ext

Now all seems well and there's no undefined symbol for fdatasync

Still... I need to test the end result for working functionality, but I wanted
to pass on this information...

Not sure if this is a build bug or just a piece of voodoo needed on
Solaris (10).

Anyone care to comment?

Thanks.

Stephen

--

-----------------------------------------------------------------------------
To unsubscribe, send email to [EMAIL PROTECTED]
-----------------------------------------------------------------------------

Reply via email to