Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Path: utzoo!mnetor!uunet!husc6!bloom-beacon!gatech!rayssd!dhb From: dhb@rayssd.RAY.COM (David H. Brierley) Newsgroups: comp.sys.att,comp.bugs.sys5 Subject: Re: /lib/shlib does not have ALL of -lcurses in 3.51 (UNIX_PC) Message-ID: <1591@rayssd.RAY.COM> Date: Fri, 25-Sep-87 12:37:48 EDT Article-I.D.: rayssd.1591 Posted: Fri Sep 25 12:37:48 1987 Date-Received: Sun, 27-Sep-87 01:23:26 EDT References: <7306@e.ms.uky.edu> <1764@crash.CTS.COM> <7332@e.ms.uky.edu> Sender: dhb@rayssd.RAY.COM (David H. Brierley @ Raytheon Company, Portsmouth RI) Reply-To: dhb@rayssd.RAY.COM (David H. Brierley) Organization: Raytheon Company, Portsmouth RI Lines: 43 Keywords: curses tam Xref: mnetor comp.sys.att:1311 comp.bugs.sys5:252 In article <7332@e.ms.uky.edu> david@ms.uky.edu (David Herron -- Resident E-mail Hack) writes: >In article <1764@crash.CTS.COM> ford@crash.CTS.COM (Michael Ditto) writes: >>In article <7306@e.ms.uky.edu> david@ms.uky.edu (David Herron -- Resident E-mail Hack) writes: >>>Problem: In trying to link "sc" (posted recently to comp.sources.unix) >>> I got the following unknown symbols: >>The shared library on the Unix PC does not include curses. Instead, it >>includes the TAM (Terminal Access Method) library, which supports a small >>subset of curses functions. All I can suggest as a fix is to include >>-lcurses before the shared library, and to make your own copy of >>/lib/shlib.ifile that does not have the conflicting symbols from -ltam. > >But that's just stupid hacking ... > >the manual claims it includes curses for me ... hence my posting. What release of the system are you using? I have release 3.51 and may manual does NOT say that the shared library inlcudes -lcurses. It says it includes the regular library, -ltam, and -ltermlib. The tam library includes similar routines to the curses library and unfortunately they have the same names. This means that the curses library CANNOT be included because of the name conflicts with tam. The only solutions that I have found are to not use the shared library if you really need all those routines from the curses library or to convert the program to using the tam routines. Converting to the tam routines is probably better (although less portable) because the tam routines are probably faster than the curses routines. As a side note, I have found that even if you pay close attention to what is supposed to be in the shared library and what is not (i.e. tam vs curses), there are still some things missing from the shared library. I have run across a few of them, the most recent one being "setvbuf". The "setvbuf" routine is documented on the same page as the "setbuf" routine and is in the standard library (libc.a) but is not in the shared library! At least, it's not listed in shlib.ifile. I can live with not having the curses library in there but having random pieces of libc.a missing is very frsutrating. -- David H. Brierley Raytheon Submarine Signal Division 1847 West Main Road Portsmouth, RI 02871 Phone: (401)-847-8000 x4073 Internet: dhb@rayssd.ray.com Uucp: {cbosgd, gatech, linus, mirror, necntc, uiucdcs} !rayssd!dhb