Without wanting to repeat myself, I posted libtool-patches in January about SCO 5 and -lc on shared libraries, but the problem still exists in 1.3d and the current cvs. Something like below (re-diffed for current libtool.m4) will be much wanted, since it avoids seg faults if a shared library uses ctype.h but the mainline program doesn't. I don't have an actual explanation for what goes wrong, but the advice from SCO is apparently "don't do that".
--- libtool.m4.old Fri Jan 5 07:33:48 2001 +++ libtool.m4 Fri Jan 5 07:35:32 2001 @@ -2086,6 +2086,17 @@ ## FIXME: this should be a separate macro ## if test "$enable_shared" = yes && test "$GCC" = yes; then + case $host_os in + sco3.2v5*) + # On SCO 5, an explicit -lc is not wanted when making shared + # libraries. It's unnecessary, and giving it makes strange things + # happen, like profiler mcount calls segfaulting and ctype.h + # macros not working (if used in a library but not the mainline). + # FIXME: Maybe the below code could detect -lc is unnecessary, but + # SCO $archive_cmds uses $LD, so it's not reached. + lt_cv_archive_cmds_need_lc=no + ;; + esac case "$archive_cmds" in *'~'*) # FIXME: we may have to deal with multi-command sequences.