From owner-freebsd-arch@freebsd.org Wed Dec 23 18:27:37 2015 Return-Path: Delivered-To: freebsd-arch@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 33923A4F296 for ; Wed, 23 Dec 2015 18:27:37 +0000 (UTC) (envelope-from deischen@freebsd.org) Received: from mailman.ysv.freebsd.org (mailman.ysv.freebsd.org [IPv6:2001:1900:2254:206a::50:5]) by mx1.freebsd.org (Postfix) with ESMTP id 22B0311BC for ; Wed, 23 Dec 2015 18:27:37 +0000 (UTC) (envelope-from deischen@freebsd.org) Received: by mailman.ysv.freebsd.org (Postfix) id 1F255A4F294; Wed, 23 Dec 2015 18:27:37 +0000 (UTC) Delivered-To: arch@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 1E948A4F293; Wed, 23 Dec 2015 18:27:37 +0000 (UTC) (envelope-from deischen@freebsd.org) Received: from mail.netplex.net (mail.netplex.net [204.213.176.9]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "*.netplex.net", Issuer "RapidSSL SHA256 CA - G3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id E0ABF11BB; Wed, 23 Dec 2015 18:27:36 +0000 (UTC) (envelope-from deischen@freebsd.org) Received: from sea.ntplx.net (sea.ntplx.net [204.213.176.11]) by mail.netplex.net (8.15.1/8.15.1/NETPLEX) with ESMTP id tBNIRZOS022271; Wed, 23 Dec 2015 13:27:35 -0500 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.4.3 (mail.netplex.net [204.213.176.9]); Wed, 23 Dec 2015 13:27:35 -0500 (EST) Date: Wed, 23 Dec 2015 13:27:35 -0500 (EST) From: Daniel Eischen X-X-Sender: eischen@sea.ntplx.net Reply-To: Daniel Eischen To: Konstantin Belousov cc: threads@freebsd.org, arch@freebsd.org Subject: Re: libthr shared locks In-Reply-To: <20151223172528.GT3625@kib.kiev.ua> Message-ID: References: <20151223172528.GT3625@kib.kiev.ua> MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII; format=flowed X-BeenThere: freebsd-arch@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: Discussion related to FreeBSD architecture List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 23 Dec 2015 18:27:37 -0000 On Wed, 23 Dec 2015, Konstantin Belousov wrote: [ ... ] > Would the ABI modified to make the pthread_mutex_t large enough to > hold struct pthread_mutex, the rest of the implementation of the > shared mutex is relatively trivial, if not already done. > > Changing this ABI is very hard. libthr provides the symbol > versioning, which allows to provide compatible shims for the previous > ABI variant. But since userspace tends to use the pthread objects in > the layouts of the library objects, this causes serious ABI issues > when mixing libraries built against different default versions of > libthr. I think this is only if the libraries (or apps) pass pthread lock types between them, that one has initialized with one ABI but the other library uses another ABI. We should really exclude this as part of our ABI compatibility. Mixing libraries built with different pthread ABIs should not be a problem as long as they don't directly operate on the other's pthread lock types. There is also our ability to do a library version bump as a last resort. -- DE