Skip site navigation (1)Skip section navigation (2)
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>