From: ptkwt@...1.aracnet.com (Phil Tomson) Date: 2002-01-11T07:23:12+09:00 Subject: Build question: confused about ext/Setup and static linking 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