From owner-svn-src-all@FreeBSD.ORG Thu Jun 16 21:27:40 2011 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id C921C106566B; Thu, 16 Jun 2011 21:27:40 +0000 (UTC) (envelope-from jilles@stack.nl) Received: from mx1.stack.nl (relay04.stack.nl [IPv6:2001:610:1108:5010::107]) by mx1.freebsd.org (Postfix) with ESMTP id 646098FC0A; Thu, 16 Jun 2011 21:27:40 +0000 (UTC) Received: from turtle.stack.nl (turtle.stack.nl [IPv6:2001:610:1108:5010::132]) by mx1.stack.nl (Postfix) with ESMTP id 92B4A1DD417; Thu, 16 Jun 2011 23:27:38 +0200 (CEST) Received: by turtle.stack.nl (Postfix, from userid 1677) id 884DF174C4; Thu, 16 Jun 2011 23:27:38 +0200 (CEST) Date: Thu, 16 Jun 2011 23:27:38 +0200 From: Jilles Tjoelker To: "Bjoern A. Zeeb" Message-ID: <20110616212738.GA73657@stack.nl> References: <200705131412.l4DECf2N068712@repoman.freebsd.org> <20110612213330.D10590@maildrop.int.zabbadoz.net> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20110612213330.D10590@maildrop.int.zabbadoz.net> User-Agent: Mutt/1.5.21 (2010-09-15) Cc: Daniel Eischen , svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers@FreeBSD.org Subject: Re: cvs commit: src Makefile.inc1 src/lib/libc Makefile src/lib/libc_r Makefile src/lib/libpthread Makefile pthread.map src/lib/libpthread/thread thr_private.h src/lib/librt Makefile src/lib/libthr Makefile pthread.map src/lib/libthread_db Makefile ... X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 16 Jun 2011 21:27:40 -0000 On Sun, Jun 12, 2011 at 09:38:42PM +0000, Bjoern A. Zeeb wrote: > http://svnweb.freebsd.org/base?view=revision&revision=169524 > I figured WITHOUT_SYMVER= hs been useless since 201001. I am no > longer able to do build worlds with WITHOUT_SYMVER= set in src.conf > on a system with symbol versioning. > I'd love someone to fix that and allow us to build libraries without > all the historic stuff in them. If we cannot get it back working our > libraries will grow bigger and bigger forever. > If one is building images for clean-state systems that will never run > anything older than the current CURRENT build, there is no need for > the extra size. Contrary to what people think, memory and direct > attached storage can still be expensive in some environments. > Anyone who understands the system can come up with patches to fix this? I think disabling symver completely is too much: it implies a new mutually incompatible set of binaries. What should be done instead is allowing to compile out the compatibility functions. This means all __sym_compat() directives and all functions referred to by them. A simple approach would use a yes/no #ifdef, while a more sophisticated approach would allow choosing the oldest version to retain compatibility with, for example freebsd7_semctl() in lib/libc/gen/semctl.c would be compiled in iff compatibility with FreeBSD 7.x was requested. With just symver, a binary for FreeBSD version for which compatibility was not compiled in will abort if and when it attempts to use a function that was changed in a later version. -- Jilles Tjoelker