Just in case some one run into the same problem or try solving it, I
found the answer alreay.

Though the reason is unclear to me but one solution is simply to add
$ORACLE_HOME/bin to my Cygwin $PATH and create the library by doing
% dlltool -d OCI.def -D oci.dll -l libOCI.a 
instead of following the description as in the extconf.rb
% dlltool -d OCI.def -D $ORACLE_HOME/bin/oci.dll -l libOCI.a

then build the rest as usual

% ruby extconf.rb
% make
% make site-install

I'm a happy Oracle DBI user now.

Chochain

cclee / promethod.com (Chochain Lee) wrote in message news:<a8f6a5cd.0202181345.32d59870 / posting.google.com>...
> Hi,
> 
> I downloaded the DBI/DBD (for my Oracle8.1.5) and try the following
> but end up with an irb coredump on my W2K/Cygwin. Can someone tell me
> what did I missed?
> 
> Thanks, 
> Chochain
> 
> Note: I have tested the database connection using sqlplus with no
> problem.
> 
> vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv
> /download% dlltool -d OCI.def -D $ORACLE_HOME/bin/oci.dll -l libOCI.a
> /download% cp libOCI.a /usr/local/lib
> /download% ruby extconf.rb 
> checking for ocidfn.h... yes
> checking for olog() in -lOCI... yes
> creating Makefile
> /download% make
> gcc -DUSEIMPORTLIB -g -O2 -I/oracle/ora81/oci/include -D_int64="long
> long" -I/usr/local/lib/ruby/1.6/i686-cygwin -I. -I/usr/local/include
> -DHAVE_OCIDFN_H   -c -o oracle.o oracle.c
> dllwrap --target=cygwin --as=as --dlltool-name=dlltool
> --driver-name=gcc --export-all -s --def=oracle.def
> -L/usr/local/lib/ruby/1.6/i686-cygwin -L/usr/local/lib
> -L/download/comp.lang/ruby/dbi/oracle -o oracle.so oracle.o -L.
> -lcygwin-ruby16 -lOCI
> /download% make site-install
> oracle.so -> /usr/local/lib/ruby/site_ruby/1.6/i686-cygwin/oracle.so
> chmod 0555 /usr/local/lib/ruby/site_ruby/1.6/i686-cygwin/oracle.so
> /download% irb
> irb(main):001:0> require 'dbi'
> require 'dbi'
> true
> irb(main):002:0> require 'oracle'
> require 'oracle'
> true
> irb(main):003:0> dbh = DBI.connect('dbi:Oracle:TESTDB', 'system',
> 'manager')
> dbh = DBI.connect('dbi:Oracle:TESTDB', 'system', 'manager')
> /usr/local/lib/ruby/site_ruby/1.6/DBD/Oracle/Oracle.rb:82: [BUG]
> Segmentation fault
> ruby 1.6.6 (2001-12-26) [i686-cygwin]
>       0 [sig] irb 1136 open_stackdumpfile: Dumping stack trace to
> ruby.exe.stackdump
> Abort (core dumped)
> 
> /download% cat ruby.exe.stackdump
> Stack trace:
> Frame     Function  Args
> 0021E268  77E88787  (00000000, 00000000, 00C2DCFC, 6104E071)
> 0021E2B8  6104E3A6  (00000000, 01590159, 0021E288, 00000000)
> 0021E2F8  6104BE9D  (00000470, 00000006, 00000052, 00000000)
> 0021E328  6104C046  (00000470, 00000006, 00000000, 00000000)
> 0021E348  610878A8  (610900A0, 00000470, 00000006, 0021E3A8)
> 0021E378  6107D0BC  (610900A0, 00000006, 0021E3A8, 00000110)
> 0021E398  6107D094  (00000006, 0043699D, 00436997, 0043698C)
> 0021E3B8  61079BBC  (0A269028, 00000001, 6104E48E, 61095320)
> 0021E7D8  00436A1B  (00463977, 00000000, 00000000, 0021E828)
> 0021E7F8  0046399F  (0000000B, 00000000, FFFFFFFF, 00000000)
> 0021E828  6100EAC3  (0A269028, 0A26906C, 0A270E28, FFFFFFFF)
> 0021E854  00C09B9B  (0A269028, 0A26906C, 0A270E28, FFFFFFFF)
> 0021E8B4  64141114  (0A23C5F0, 0A2357E0, 0A2357C8, 0A235708)
> 0021E8E4  0040ADC6  (64141048, 0A23C5F0, 00000003, 00000003)
> 0021EA84  0040B386  (0A23C5D8, 0A23C5F0, 00004121, 00000003)
> 0021EAD4  0040BBD8  (0A23C5D8, 0A23C5F0, 00004121, 00000003)
> End of stack trace (more stack frames may be present)
> ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^