Date: Thu, 14 May 1998 18:03:16 +1000 (EST) From: John Birrell <jb@cimlogic.com.au> To: tlambert@primenet.com (Terry Lambert) Cc: current@FreeBSD.ORG Subject: Re: Undefined symbol "___error" Message-ID: <199805140803.SAA25102@cimlogic.com.au> In-Reply-To: <199805140651.XAA22759@usr05.primenet.com> from Terry Lambert at "May 14, 98 06:51:36 am"
next in thread | previous in thread | raw e-mail | index | archive | help
Terry Lambert wrote: > I don't understand this. > > How will this turn "int errno" references into "(* __error())" function > return value pointer dereferences? It never will. That is just legacy code - not the problem. The problem reported by Bruce is this: program (less) links against libtermcap.so (major version X) and libc.so (major version Y). Some development takes place which causes the major version of libc to be bumped to Y + 1. The program still looks for libc version Y. Then the __error() change is added to libc version Y + 1 and the header file that matches it. A rebuild of the system causes libtermcap still at version X to *need* the new __error() definition. So to ensure that the program is not broken, the version of libtermcap needs to be bumped to X + 1. This is a simple example. Now consider all the possible shared libraries that use errno.h and exist on any FreeBSD system anywhere. There are lots. Do I hunt them all down and bump their major version numbers? -- John Birrell - jb@cimlogic.com.au; jb@freebsd.org http://www.cimlogic.com.au/ CIMlogic Pty Ltd, GPO Box 117A, Melbourne Vic 3001, Australia +61 418 353 137 To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-current" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199805140803.SAA25102>