From owner-cvs-all Thu Sep 23 5:53: 2 1999 Delivered-To: cvs-all@freebsd.org Received: from arc.hq.cti.ru (arc.hq.cti.ru [195.34.40.3]) by hub.freebsd.org (Postfix) with ESMTP id F0D2F15F5F; Thu, 23 Sep 1999 05:52:51 -0700 (PDT) (envelope-from dima@tejblum.pp.ru) Received: (from uucp@localhost) by arc.hq.cti.ru (8.9.3/8.9.3) with UUCP id QAA34765; Thu, 23 Sep 1999 16:51:32 +0400 (MSD) (envelope-from dima@tejblum.pp.ru) Received: from tejblum.pp.ru (localhost [127.0.0.1]) by tejblum.pp.ru (8.9.3/8.9.3) with ESMTP id QAA02741; Thu, 23 Sep 1999 16:53:08 +0400 (MSD) (envelope-from dima@tejblum.pp.ru) Message-Id: <199909231253.QAA02741@tejblum.pp.ru> X-Mailer: exmh version 2.0gamma 1/27/96 To: Marcel Moolenaar Cc: Dmitrij Tejblum , Nate Williams , cvs-committers@freebsd.org, cvs-all@freebsd.org From: Dmitrij Tejblum Subject: Re: cvs commit: src/secure/lib/libcrypt Makefile src/lib/libcrypt Makefile In-reply-to: Your message of "Thu, 23 Sep 1999 10:39:44 +0200." <37E9E750.85237877@scc.nl> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Date: Thu, 23 Sep 1999 16:53:08 +0400 Sender: owner-cvs-all@FreeBSD.ORG Precedence: bulk Marcel Moolenaar wrote: > This is comparing apples with peers. Interpreters either supply > versioning information to the source code or they don't. If they do, > then it should be used to handle incompatibilities in a user friendly > way. I they don't, then you obviously don't have a choice, other than > writing backwards compatible code as much as possible. ELF is an interpreted language. The interesting now part of the program would look somewhat like this: INTERP /usr/libexec/ld-elf.so.1 NEEDED libcrypt.so.2 NEEDED libc.so.3 (The INTERP line is handled by the kernel in a way similar to '#!' line in a script. The rest is handled by the *ELF interpreter*. --- I just want to convince you that it is indeed _very_ similar) The NEEDED commands load the required shared libraries. The interpreter look for the library *with given name* in its search path. sh(1) would search for a command with given name in $PATH. When I use 'find' in my shell script I cannot be sure that the /usr/bin/find binary have all the feature that I use. But it is, well, acceptable. At least, noone want to have find.5, find.6, and find.7, depending on the feature set, as the solution. > Shared libraries have versioning information. Use it! This is an illusion. "Version number" is just a part of the name, no more. I could call my shared library 'foo.bar.baz', and it would work. There is nothing that compare version numbers, like 'require' in perl. I agree that the lack of versioning infoarmation is bad. Other Unix vendors already invented solutions. Sun has added 'symbol versioning' to ELF. GNU have extensions to the Sun approach. I think we should support the ELF extensions. (But I am no way voluntering to implement it). So, now we "don't have a choice, other than writing backwards compatible code as much as possible". > Don't start the versioning discussion all over again. Instead, continu > the discussion on -hackers, please. Sorry for the huge delay in that discussion. But there on -hackers I suggested a far more radical and different thing than what is discussed now. (Moreover, my arguments in that discussion are quite different than here.) IMO it would be better to agree on this topic, before we continue that. (W.R.T. your sigset_t changes (in case your wondered): I started to think (after some Peter's words) that any ideas that restore compatibility can be implemented (if they are agreed by the people, of course) later your changes that breaks the compatibility. Indeed, I only want compatibility for -RELEASEs, and -current may be broken it this respect for some time. I am not 100% sure about it, though.) Dima To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe cvs-all" in the body of the message