Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 16 Jun 2011 23:27:38 +0200
From:      Jilles Tjoelker <jilles@stack.nl>
To:        "Bjoern A. Zeeb" <bzeeb-lists@lists.zabbadoz.net>
Cc:        Daniel Eischen <deischen@FreeBSD.org>, 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 ...
Message-ID:  <20110616212738.GA73657@stack.nl>
In-Reply-To: <20110612213330.D10590@maildrop.int.zabbadoz.net>
References:  <200705131412.l4DECf2N068712@repoman.freebsd.org> <20110612213330.D10590@maildrop.int.zabbadoz.net>

next in thread | previous in thread | raw e-mail | index | archive | help
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



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20110616212738.GA73657>