Impacts of libc versioning (just committed)

John Marino dragonflybsd at marino.st
Sat Sep 12 07:59:40 PDT 2015


I just made a commit that will cause libc to be built with symbol
versions from now on.  Among other benefits, this means that libc will
never be "bumped" again, so the library's name is frozen at /lib/libc.so.8.

All third-party programs should continue to work (with a possible
exception of a program wrongly using a libc variable or function that
shouldn't have been exposed and which is no longer exposed).

It is possible that a quickworld build is sufficient to upgrade.
However, this is neither tested nor recommended.  You should plan on
your next build being the "full" build type just to be on the safe side.

All dports "master" packages (4.4) built after this date will not
function on older systems that have not been upgraded past this commit:
http://gitweb.dragonflybsd.org/dragonfly.git/commitdiff/43a397d9530c74c94b1d6555fa851d394f2ed930

Consequently, when the next bulk build for "master" is published, the
current build will be moved from:
dragonfly:4.4:x86:64/LATEST
to
dragonfly:4.4:x86:64/OLD_LIBC

This "OLD_LIBC" directory will be frozen and will remain in place until
DragonFly 4.4 is officially released.  It is only for people that
haven't the time to upgrade to the latest master version, but still need
to install some new packages.

When the new packages are available, it would be a good idea to
explicitly replace *ALL* packages on the master system.  To do that, you
can use the "Bullet-proof upgrade technique" outlined here:
https://www.dragonflybsd.org/docs/howtos/HowToDPorts/#index4h1

Hopefully everything will go smoothly with this transition, but
understand that this is a pretty significant change to libc.

- John



More information about the Users mailing list