Date: Thu, 14 May 1998 06:51:36 +0000 (GMT) From: Terry Lambert <tlambert@primenet.com> To: jb@cimlogic.com.au (John Birrell) Cc: tlambert@primenet.com, current@FreeBSD.ORG Subject: Re: Undefined symbol "___error" Message-ID: <199805140651.XAA22759@usr05.primenet.com> In-Reply-To: <199805140324.NAA22813@cimlogic.com.au> from "John Birrell" at May 14, 98 01:24:38 pm
next in thread | previous in thread | raw e-mail | index | archive | help
> > > > Actually, it's a define in a header file, si it's "recompiled". > > No, it's "relinked" so that a program will know to use the later libc. > The problem here is not that the libc major number needs to be bumped, > but *all* other libraries that use errno.h need a major number bump. > Bruce pointed this out. I don't understand this. How will this turn "int errno" references into "(* __error())" function return value pointer dereferences? > Bruce wants the change backed out. I haven't heard from anyone else. > Should I bump the major number of all the shared libraries in the > FreeBSD tree? Should I back out the change and forget about making future > objects thread-aware? Should I do nothing? I would be very, very tempted to use this as an excuse to move to ELF at this point, making the change in the ELF version of the library. Barring that, I'd be tempted to say "bump the minor numbers to force a recompile AND stub the reference", but that's just a cop-out for not making the library dependencies explicit. One very annoying thing here is that ld is *still* broken, and a second order dependency of a library on a library isn't flagged atcompile time. When linking, ld should act like RTLD_NOW was specified, at least for the graph of symbols used (program calls foo in lib1 calls fee in lib2 requires fee in lib2 exist for program to link). Other than that... well, -current is -current, and you should have to expect the interfaces to change, and live with it. It seems to me that the libc version number bump that happened earlier should not have happened until the tree was locked down prepatory to the tagging of a 3.0 release, and then everything is bumped at once. I think library version number bumping is supposed to be limited to changes in the interface *exported* by a library, not those *imported* by a library. As another plea for ELF, I'll note that it's possible to implement sections, and choose sections based on the minor version number expected by the client's library version selection. PS: Sun has started using version numbers on ld.so's as well as libraries; you could do a similar fixup using a.out .so's if FreeBSD followed suit. Terry Lambert terry@lambert.org --- Any opinions in this posting are my own and not those of my present or previous employers. 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?199805140651.XAA22759>
