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

Hi,

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

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

--=20
Quentin Garnier - cube@cubidou.net - cube@NetBSD.org
"You could have made it, spitting out benchmarks
Owe it to yourself not to fail"
Amplifico, Spitting Out Benchmarks, Hometakes Vol. 2, 2005.

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

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.6 (NetBSD)

iQEVAwUBResS5tgoQloHrPnoAQKN8gf/RcjL5j5Jj+dQAn76mbMvZLTTKtBWZNkn
1bfNwDtlnEwb1k6okgOCTxAuChdyfzREsphkVgdAmUlhb9WoVzh6CP37DPxfhRnK
JcXsiBYUtNCYkqxvoSZ3IDD9jdvqIgxT9UH1rFamGO8D5C2sQtvzwVgRJ92g1hqi
FrjYy6zlK9qkj7P93Lv2xuXNlU58B2XDiZXFkTUBdsReVuwCAfDguCf2/wuSDcdM
gG84PCs46uh5HCJK7xzO3x8hVkUes8iOULQsdYLSfzfk1c4EU1QcPtfOmQFuHUxc
QK9NeXa/QLMsjgL/OGSXXsooaj/Nlm9IoJ5GMF2D0uckzPtfrHeyoA==
=vdkI
-----END PGP SIGNATURE-----

--tT3UgwmDxwvOMqfu--