Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 2 Apr 2014 20:24:45 +0300
From:      Konstantin Belousov <kostikbel@gmail.com>
To:        David Chisnall <theraven@FreeBSD.org>
Cc:        svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org
Subject:   Re: svn commit: r264042 - in head: include lib/libc/gen lib/libc/include lib/libc/stdlib
Message-ID:  <20140402172445.GQ21331@kib.kiev.ua>
In-Reply-To: <76A3F92F-18CB-4A9A-8CF5-3A86035C55BB@FreeBSD.org>
References:  <201404021607.s32G7mhw051355@svn.freebsd.org> <20140402161845.GP21331@kib.kiev.ua> <76A3F92F-18CB-4A9A-8CF5-3A86035C55BB@FreeBSD.org>

next in thread | previous in thread | raw e-mail | index | archive | help

--BO2dbX1J/fdLEy+S
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable

On Wed, Apr 02, 2014 at 05:30:51PM +0100, David Chisnall wrote:
> On 2 Apr 2014, at 17:18, Konstantin Belousov <kostikbel@gmail.com> wrote:
>=20
> > This is completely wrong.  You cannot modify FreeBSD 8.x namespace in
> > 11.x HEAD time.
>=20
> That was an error, however we are using symbol versioning completely wron=
gly in FreeBSD anyway (see the last two DevSummit discussions and the wiki =
page).  New entries should *always* go in the version 0 namespace (so that =
when they're MFCd the changes Just Work?) and only ever be moved out of the=
re when they are replaced with versions with different semantics.
>=20

Regarding the 'version 0', breaking the ABI once more after the years
of efforts by others to keep it usefully stable, best delegated to your
private code.

That said, 'version 0' by default is exactly opposite of what should
be done to fully use the versioning facitily to guarantee the ABI
stability. Instead, each batch of symbol addition must introduce a new
version. This would allow rtld to fix the known defect in the lazy
binding mode, where the application fails eventually instead of startup
failure, on undefined symbol.

> The weird hybrid we have that tries to conflate symbol versions and OS re=
leases manages to get the worst of both worlds.
>=20
Yes, there is one guarantee which full use of versioning would provide
but our use does not, but your commit' breakage is unrelated.

> I've now moved it to the FBSD_1.3 namespace, but I would be more in favou=
r of going with the consensus from the last DevSummit and using symbol vers=
ioning properly and move them all into the FBSD_1.0 namespace.
>=20
Use of 1.3 is equally wrong.  You followup 'fix' does not fix the problem.

> > Also, the ABI of the libc now depends on the compiler which was used to
> > build the library, which is also wrong and ugly.
>=20
> No it doesn't.  Read the patch.

It does, I read it.
Now libc depends on the non-standard ABI of non-standard C extension,
implemented by only one compiler.

I strongly suggest you to back this out, to have it widely discussed and
properly reviewed.

--BO2dbX1J/fdLEy+S
Content-Type: application/pgp-signature

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.22 (FreeBSD)

iQIcBAEBAgAGBQJTPEfdAAoJEJDCuSvBvK1BUp0P/inf0b9gDZA7gVfrwPHLdwbW
jf0ymg5O6wVpasy8chEtKVlWG+2uOsajHJY7iUXmWZR5kmihUv4TcAlFT+2GvYkF
LIBrjVKUS7Jfhx4vyXeVx1J9KD6lZnScB8ZkflEifiEdJ9XgDmmjV1cMUX/WDyM4
+QXGZ0yLrvh/Eg80ksgVRqy258Jb3h+99dwrPlV6bynruw0FlHnLMFNPX6G1gZyG
v5Hn2h3CXuoyr/KtUjO6GrDCE2VQv8tVlv/b1tR3bOMaeCM4MuzWx1ddiSXNaXWe
k1BvdYycboxn/ExaRhb/0rRXMGzjuQoATWJaKNnOBMIA993stgxQ5IGQKgjRfVcs
5zQP3SgCOlaa0g+Q5XhPJ0XAhZ821DQx3hEtZYagPQbsgeWVPQrpthmnqDGfr0it
n6GBhoFJjHz2DoAvxM0udY8nfWFFXadXHsHvm8kl1lBJfZo2dpAmgHoKZT6Lfcpd
7Fte2P1wH5OXCCRCvp/2qX9HMyp/GmwBd57prEbxqVfoiz20ViC6C95p+qHsRlj8
p5uTAEKAVXynRP1RpF42nMLNxCq09Un6P4gkZ1DeUH8njJ+3Na1PN0DSkiIiWW0k
mv2OobGjNTHjn1RnlKCKRzssDzbOTNQBvdE7PO2WKsQGSTN4KIItV7PWswYgqqJP
qv/9Ct2M9XMsUtsK3F4f
=Mm5v
-----END PGP SIGNATURE-----

--BO2dbX1J/fdLEy+S--



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