From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 36614 invoked by alias); 20 Apr 2016 09:22:12 -0000 Mailing-List: contact gdb-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-owner@sourceware.org Received: (qmail 36603 invoked by uid 89); 20 Apr 2016 09:22:11 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-2.9 required=5.0 tests=BAYES_00,RP_MATCHES_RCVD,SPF_HELO_PASS autolearn=ham version=3.3.2 spammy=incident, rush, balls, Gribov X-HELO: mx1.redhat.com Received: from mx1.redhat.com (HELO mx1.redhat.com) (209.132.183.28) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with (AES256-GCM-SHA384 encrypted) ESMTPS; Wed, 20 Apr 2016 09:22:10 +0000 Received: from int-mx13.intmail.prod.int.phx2.redhat.com (int-mx13.intmail.prod.int.phx2.redhat.com [10.5.11.26]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id 19B9DC05E154; Wed, 20 Apr 2016 09:22:08 +0000 (UTC) Received: from [127.0.0.1] (ovpn01.gateway.prod.ext.phx2.redhat.com [10.5.9.1]) by int-mx13.intmail.prod.int.phx2.redhat.com (8.14.4/8.14.4) with ESMTP id u3K9M2n6009862; Wed, 20 Apr 2016 05:22:02 -0400 Subject: Re: [Bug-readline] [PATCH] Enable visibility annotations To: Yury Gribov , Doug Evans References: <94eb2c1232a01a28910530c65c78@google.com> <57171B67.3040204@samsung.com> Cc: chet.ramey@case.edu, bug-readline@gnu.org, Vyacheslav Barinov , Yury Usishchev , "gdb@sourceware.org" , Jan Kratochvil From: Pedro Alves Message-ID: <57174A3A.80303@redhat.com> Date: Wed, 20 Apr 2016 09:22:00 -0000 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Thunderbird/38.7.1 MIME-Version: 1.0 In-Reply-To: <57171B67.3040204@samsung.com> Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-SW-Source: 2016-04/txt/msg00034.txt.bz2 On 04/20/2016 07:02 AM, Yury Gribov wrote: > Pedro, > > Do you think the above is doable for gdb? I don't know -- I'm already juggling too many balls in the air, and I'm afraid that if that depends on me, it'll take a while before I'll manage to try. Since gdb's use of private symbols is not an isolated incident, I don't think we should try to clean up all packages that make use of private symbols, in a rush. Instead, I think readline needs to take a staged approach: - Export all the private symbols that programs are using today. Simply accept today's reality. The dynamic symbol table of libreadline.so still shrinks, precedent for visibility annotations is still set, and private symbol leakage is contained, because future software will no longer be able to abuse all the other private symbols that are not exported. - Claim that the symbols may no longer be available in a future release. - Give time for packages to clean themselves up, and propose any necessary new replacement APIs. - Optionally, in the release after the next, mark the symbols as deprecated with __attribute__((deprecated)), so packages that abuse private symbols get a build-time warning. - In some future release, stop exporting the symbols. > That would of course leave the > problem of linking older gdb with new readline which will need to be > resolved by distros. Right. Thanks, Pedro Alves