Subject: Removal of SA vs. icky libc ABI breakage
To: None <>
From: Quentin Garnier <>
List: tech-userlevel
Date: 03/04/2007 19:41:42
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable


Following the removal of SA and its syscalls, there have been
discussions on how to use older releases with a post-newlock2 kernel.

The theory is that you just have to drop in a new libpthread and libc in
the file-system and everything should work as before.

Well, that's not true, unfortunately, as Lubomir Sedlacik reported
privately.  It appears a couple of symbols from libc, found in all the
3.x releases and in the upcoming 4.0 release, were removed in October.

Those symbols are hmac_sha1 and hmac_md5, and while it is true that
nothing but libcrypt should have ever used them, it means that older
libcrypt (as found in 3.x) fail to link with -current's libc.

I don't what the best way to solve that is...  If we really want to
solve it, that is, but such breakage of the ABI is really, really

Additionally, I wonder if libcrypt's minor should be bumped.  I'm not
100% sure about that, as the hmac_sha1/md5 symbols that are now there
are supposed to be internal.  The thing is, since you have to drop in
libpthread, libc and libcrypt in an older system to make it work
flawlessly with a new kernel (only the .so's, of course), it looks a
bit less risky if you don't have to actually replace any file, but
just the symlinks.

To sum up:

  1.  Removal of SA broke kernel ABI for old libpthread
  2.  Removal of hmac_sha1/md5 broke libc ABI for old libcrypt

That means that in order to use an older system with a new kernel, the
user has to drop in libc, libcrypt and libpthread.

What do we do about the libc ABI breakage?  It's orthogonal to the
libpthread issue, but it does get in the way of working around it.

In the end, how should we document the ways of working around the
libpthread issue?  There are quite a few users of pkg_comp out
there that are affected, or will be as long as we maintain the
netbsd-4 branch...

Quentin Garnier - -
"You could have made it, spitting out benchmarks
Owe it to yourself not to fail"
Amplifico, Spitting Out Benchmarks, Hometakes Vol. 2, 2005.

Content-Type: application/pgp-signature
Content-Disposition: inline

Version: GnuPG v1.4.6 (NetBSD)