I was under the impression that if you want a module that is named in
ext/Setup (from the Ruby source directory tree) to be statically linked
instead of dynamically linked to the ruby binary that you uncommented the
corresponding line in the ext/Setup file.
I uncommented the 'curses' line and did a 'make' and then did an ldd on
the resulting ruby binary and got:
$ ldd ruby
libdl.so.2 => /lib/libdl.so.2 (0x4002a000)
libcrypt.so.1 => /lib/libcrypt.so.1 (0x4002e000)
libm.so.6 => /lib/libm.so.6 (0x4005c000)
libncurses.so.5 => /lib/libncurses.so.5 (0x4007f000)
libc.so.6 => /lib/libc.so.6 (0x400c4000)
libgpm.so.1 => /usr/lib/libgpm.so.1 (0x40202000)
/lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x40000000)
note the 'libncurses.so.5 => /lib/libncurses.so.5 (0x4007f000)' line
indicating that the ruby binary depends on libncurses.so
If I comment the 'curses' line in ext/Setup and then run make, ldd ruby
gives me:
$ ldd ./ruby
libdl.so.2 => /lib/libdl.so.2 (0x4002a000)
libcrypt.so.1 => /lib/libcrypt.so.1 (0x4002e000)
libm.so.6 => /lib/libm.so.6 (0x4005c000)
libc.so.6 => /lib/libc.so.6 (0x4007f000)
/lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x40000000)
No libncurses.so dependence is listed.
This seems backwards - I thought that if you uncomment a line in ext/Setup
that it will statically link that library and if you leave it commented it
is dynamically linked.
From the README in the Ruby source:
" 4. Remove comment mark(#) before the module names from ext/Setup (or
add module names if not present), if you want to link modules
statically."
I'm so confused....
Phil