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 ...

Kostik Belousov kostikbel at gmail.com
Thu Jun 16 22:03:17 UTC 2011


On Thu, Jun 16, 2011 at 11:27:38PM +0200, Jilles Tjoelker wrote:
> 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.

Preventing which behaviour was explicitely the goal of designing the
symver mechanism at the first place.

And, disabling symver does not removes the "compat cruft" from the system,
it only makes the compat code not accessible.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 196 bytes
Desc: not available
Url : http://lists.freebsd.org/pipermail/svn-src-all/attachments/20110616/cd161e28/attachment.pgp


More information about the svn-src-all mailing list