From owner-freebsd-threads@FreeBSD.ORG Sun Feb 3 17:14:29 2008 Return-Path: Delivered-To: threads@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id AE96C16A419 for ; Sun, 3 Feb 2008 17:14:29 +0000 (UTC) (envelope-from deischen@freebsd.org) Received: from mail.netplex.net (mail.netplex.net [204.213.176.10]) by mx1.freebsd.org (Postfix) with ESMTP id 5EE1413C465 for ; Sun, 3 Feb 2008 17:14:29 +0000 (UTC) (envelope-from deischen@freebsd.org) Received: from sea.ntplx.net (sea.ntplx.net [204.213.176.11]) by mail.netplex.net (8.14.2/8.14.2/NETPLEX) with ESMTP id m13H6SgY016519; Sun, 3 Feb 2008 12:06:28 -0500 (EST) X-Virus-Scanned: by AMaViS and Clam AntiVirus (mail.netplex.net) X-Greylist: Message whitelisted by DRAC access database, not delayed by milter-greylist-4.0 (mail.netplex.net [204.213.176.10]); Sun, 03 Feb 2008 12:06:28 -0500 (EST) Date: Sun, 3 Feb 2008 12:06:28 -0500 (EST) From: Daniel Eischen X-X-Sender: eischen@sea.ntplx.net To: Peter Wemm In-Reply-To: Message-ID: References: <861w7um5o5.fsf@ds4.des.no> MIME-Version: 1.0 Content-Type: MULTIPART/MIXED; BOUNDARY="-559023410-684387517-1202058388=:8686" Cc: =?ISO-8859-1?Q?Dag-Erling_Sm=F8rgrav?= , current@freebsd.org, threads@freebsd.org Subject: Re: Symbol versioning errors in libthr X-BeenThere: freebsd-threads@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list Reply-To: Daniel Eischen List-Id: Threading on FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 03 Feb 2008 17:14:29 -0000 This message is in MIME format. The first part should be readable text, while the remaining parts are likely unreadable without MIME-aware tools. ---559023410-684387517-1202058388=:8686 Content-Type: TEXT/PLAIN; charset=iso-8859-1; format=flowed Content-Transfer-Encoding: QUOTED-PRINTABLE On Sun, 3 Feb 2008, Peter Wemm wrote: > On Feb 3, 2008 8:16 AM, Dag-Erling Sm=F8rgrav wrote: >> Here's an excerpt from the RELENG_7 vs HEAD diff of libthr's symbol map: >> >> --- pthread.map 13 May 2007 14:12:39 -0000 1.18 >> +++ pthread.map 20 Dec 2007 04:32:28 -0000 1.21 >> @@ -84,9 +84,13 @@ >> pthread_multi_np; >> pthread_mutex_destroy; >> pthread_mutex_getprioceiling; >> + pthread_mutex_getspinloops_np; >> + pthread_mutex_getyieldloops_np; >> pthread_mutex_init; >> pthread_mutex_lock; >> pthread_mutex_setprioceiling; >> + pthread_mutex_setspinloops_np; >> + pthread_mutex_setyieldloops_np; >> pthread_mutex_timedlock; >> pthread_mutex_trylock; >> pthread_mutex_unlock; >> >> These functions are all in FBSD_1.0, but they were introduced after the >> branch and never MFCed, so if I understand how we've implemented symbol >> versioning, they should be in FBSD_1.1. >> >> Unless someone argues credibly for keeping them in FBSD_1.0, I will move >> them to FBSD_1.1 in a few days. >> >> DES > > I'm not sure I see the point in that. Consider the not-moving-to-1.1 > case. If somebody takes an 8.0 binary and runs it on 7.x, then > they'll get a 'symbol not found' error. On the other hand, if they're > moved and somebody tries the same thing, then they still get the same > kind of 'symbol not found' error but with just one character > different. > > The point of symbol versioning is to allow incompatible changes. eg: > to have a FBSD_1.0 version of pthread_mutex_getspinloops_np() *AND* a > FBSD_1.1 version of pthread_mutex_getspinloops_np() in the library > at the same time. The 1.0 instance would presumably be an API/ABI > conversion wrapper around the newer functions. New ABIs can be added to an existing namespace without breaking anything. But I believe we decided to always bump the namespace after a branch from HEAD and all new and ABI-changed symbols get added to that new namespace. This will allow us to write tools to check if a binary compiled on one release can run on an earlier release. Also, this does not prevent us from MFC'ing those symbols back to previous releases, they just have to be added to the same namespace from which they came. --=20 DE ---559023410-684387517-1202058388=:8686--