From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on dcvr.yhbt.net X-Spam-Level: X-Spam-ASN: AS17314 8.43.84.0/22 X-Spam-Status: No, score=-3.4 required=3.0 tests=AWL,BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,MAILING_LIST_MULTI, RCVD_IN_DNSWL_MED,SPF_HELO_PASS,SPF_PASS,URIBL_BLACK shortcircuit=no autolearn=no autolearn_force=no version=3.4.2 Received: from sourceware.org (server2.sourceware.org [8.43.85.97]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by dcvr.yhbt.net (Postfix) with ESMTPS id A95B91F5AE for ; Tue, 4 May 2021 06:55:49 +0000 (UTC) Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id A6291386FC0E; Tue, 4 May 2021 06:55:48 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org A6291386FC0E DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sourceware.org; s=default; t=1620111348; bh=bX3fR7ebqQEJ6OlYJOYxKkQiyL55EYAjQTLrTdxVnts=; h=To:Subject:References:Date:In-Reply-To:List-Id:List-Unsubscribe: List-Archive:List-Post:List-Help:List-Subscribe:From:Reply-To:Cc: From; b=wjDP0hYJAo84WrRA/GjJ8jCvXNLHwv5rvW9VWSbV+Bs9BJZZCsrD2uF79sM+yIRYR g7POJKppXlRUdPc2jp/LjYx1S3hnZZz6ZC/FrC2ZkDdwV9BPqqfiX71gwHf2WwJwHZ pvxvQgt556oSMIBeFgYY5ObEB8xdr3vU2chjfPgE= Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.133.124]) by sourceware.org (Postfix) with ESMTP id 3213E385482F for ; Tue, 4 May 2021 06:55:45 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.3.2 sourceware.org 3213E385482F Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-198-tBhdTxAVO4m2SEeRMquidg-1; Tue, 04 May 2021 02:55:40 -0400 X-MC-Unique: tBhdTxAVO4m2SEeRMquidg-1 Received: from smtp.corp.redhat.com (int-mx06.intmail.prod.int.phx2.redhat.com [10.5.11.16]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id C125F1009600; Tue, 4 May 2021 06:55:39 +0000 (UTC) Received: from oldenburg.str.redhat.com (ovpn-112-137.ams2.redhat.com [10.36.112.137]) by smtp.corp.redhat.com (Postfix) with ESMTPS id DA0365C5DF; Tue, 4 May 2021 06:55:38 +0000 (UTC) To: Florian Weimer via Libc-alpha Subject: Re: [RFC] elf: Implement filtering of symbols historically defined in libpthread References: <87h7jqguew.fsf@oldenburg.str.redhat.com> Date: Tue, 04 May 2021 08:55:52 +0200 In-Reply-To: <87h7jqguew.fsf@oldenburg.str.redhat.com> (Florian Weimer via Libc-alpha's message of "Wed, 28 Apr 2021 20:01:43 +0200") Message-ID: <875yzzyolj.fsf@oldenburg.str.redhat.com> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/27.2 (gnu/linux) MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.16 X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Type: text/plain X-BeenThere: libc-alpha@sourceware.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Libc-alpha mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , From: Florian Weimer via Libc-alpha Reply-To: Florian Weimer Cc: Andreas Schwab Errors-To: libc-alpha-bounces@sourceware.org Sender: "Libc-alpha" * Florian Weimer via Libc-alpha: > Definitions of these symbols in libc expose bugs in existing binaries > linked against earlier glibc versions. Therefore, hide these symbols > for old binaries. > > The symbol list in sysdeps/nptl/dl-pthread-weak.c contains some > symbols which have not been moved yet, but that is harmless because > the function is only invoked if the symbol is found in libc.so. > > The test suite passes on i686-gnu-linux, powerpc64-linux-gnu, > x86_64-linux-gnu with these changes. > > Is this the direction we want to go in? Then I'm going to add test > cases, probably using assembler. > > Personally I think it's not *too* bad, also not particularly nice > either. elf/dl-pthread-weak.os brings in 2-3 KiB of code (but few > run-time relocations). One possibility I have not mentioned in the > comment is to put the moved symbols into a GLIBCPTHREAD_2.34 symbol > version and use the presence of this version on the chain as an > indicator that the symbol uses special treatment. This eliminates the > separate string table. The downside is that we cannot easily add more > symbols if we discover some are missing. This happened to me during > development with pthread_mutexattr_gettype, which is a GLIBC_2.1 symbol > and therefore not actually suitable for detecting the presence of > libpthread (historically speaking). And it could happen again with > thrd_exit (which is of course much younger). I'd appreciate if someone could have a look at this patch in tell me if the approach is reasonable, all things considered. Thanks, Florian