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>