Xref: utzoo unix-pc.general:555 comp.sys.att:3005 Path: utzoo!utgpu!water!watmath!uunet!lll-winken!lll-lcc!ames!killer!gtmvax!dms3b1!dave From: dave@dms3b1.UUCP (Dave Hanna) Newsgroups: unix-pc.general,comp.sys.att Subject: 3b1 shared library problems Keywords: shlib.ifile missing symbols Message-ID: <103@dms3b1.UUCP> Date: 13 Apr 88 20:28:25 GMT Distribution: na Organization: Daltech MicroSystems, Dallas Lines: 41 I have a problem that turned up when I tried to remake the news software for my 3b1. The problem is that, when linking the shared libraries, the symbol "daylight", which, according to the manual CTIME(3C) is an external int defined in ctime, is not defined in the shared library ifile. The following simple file demonstrates the problem: File chktime.c: #include #include main(argc,argv) char **argv; int argc; { long now = time ( (long *) 0 ); printf ("%s", ctime(&now)); if ( daylight ) printf("Daylight time is %d\n", daylight); else printf ("Daylight time is 0\n"); } The command line cc chktime.c produces an a.out that runs as expected. The command sequence: cc -c chktime.c ; ld /lib/crt0s.o /lib/shlib.ifile chktime.o produces a complaint of an undefined symbol "daylight". I encountered the problem because the module ftime.c in the news software contains a reference to "daylight", and the makefile I was trying to use tried to link with shared libraries. Questions: 1) I suspect "daylight" is not the only symbol that has this difficulty. Does anyone know of others? 2) Does anyone know a way around this other than not using shared libraries?