Three common extensions...

[waisun@caspar ruby-postgres-0.6.4]$ make
gcc -fPIC -Wall -O2 -march=i686 -mcpu=i686 -pipe -fPIC
-I/usr/include/pgsql -I/usr/lib/ruby/1.6/i386-linux-gnu -I/usr/include
-DHAVE_SYS_UN_H -DHAVE_SOCKET -DHAVE_GETHOSTNAME
-DHAVE_PQSETCLIENTENCODING   -c -o postgres.o postgres.c
gcc -shared  -L/usr/lib  -o postgres.so postgres.o -L. -lruby -lpq -lnsl
-lc 

[waisun@caspar oracle]$ make
gcc -fPIC -Wall -O2 -march=i686 -mcpu=i686 -pipe -fPIC
-I/u01/app/oracle/product/8.1.6/rdbms/demo -DHAS_SQLLDA
-I/usr/lib/ruby/1.6/i386-linux-gnu -I/usr/include -DHAVE_OCIDFN_H   -c
-o oracle.o oracle.c
gcc -shared  -L/usr/lib -L/u01/app/oracle/product/8.1.6/lib -o oracle.so
oracle.o -L. -lruby -lclntsh -lc 


[waisun@caspar xmlparser]$ make
gcc -fPIC -Wall -O2 -march=i686 -mcpu=i686 -pipe -fPIC
-I/data/redhat/BUILD/xmlparser/expat/xmlparse
-I/data/redhat/BUILD/xmlparser/expat/xmltok -DNEW_EXPAT -DXML_DTD
-I/usr/lib/ruby/1.6/i386-linux-gnu -I/usr/include -DHAVE_EXPAT_H
-DHAVE_XML_SETNOTSTANDALONEHANDLER -DHAVE_XML_SETPARAMENTITYPARSING
-DHAVE_XML_SETDOCTYPEDECLHANDLER   -c -o xmlparser.o xmlparser.c
gcc -shared  -L/usr/lib -L/data/redhat/BUILD/xmlparser/expat/xmlparse -o
xmlparser.so xmlparser.o -L. -lruby -lexpat -lc 



> nope. At least not for standard extensions. eg with pcap:
> 
> gcc -shared  -L/usr/lib/ruby/1.6/i586-linux-gnu -L/usr/lib -L/usr/local/lib -o pcap.so Pcap.o packet.o ip_packet.o tcp_packet.o udp_packet.o icmp_packet.o -lpcap -lc
> 
> -> it doesn't access in any way libruby.a
> 
> it works because when ruby dlopen's pcap.so, it provides the rb_* symbols.
> 
> i know that some progs use libperl.so (eperl and mod_perl), i don't know if
> any/many progs do the same with libruby.so?
> 
> cu Pixel.

-- 
Wai-Sun "Squidster" Chia
Unix/Web Developer/RHCE
Professional Services