From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.133.124]) by sourceware.org (Postfix) with ESMTPS id 6CBA13858D37 for ; Mon, 17 Jul 2023 15:30:26 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 6CBA13858D37 Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=redhat.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=redhat.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1689607825; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=ahR66UbbI1r6cTur5t1sPJHrzUd4kFkaWD+9HRRXJsw=; b=LAXH/2TB1dtkW44wizjOlaaVUcOwGT0UT5d4miYS3RM3cCYqbDWlCR9BqUV/uMpkOO3O4B T5pOoeWHpXrVcm2EtT/srsVCnuZPck+skEYgOhZHaM433V/Kj3O6BD0ghFq2QfziOS+nQU KObAZBZoxPXU2whFcebpmfwDCtvH1PU= Received: from mimecast-mx02.redhat.com (66.187.233.73 [66.187.233.73]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-304-Vg1M40iNPeyeLl9nUYJw9A-1; Mon, 17 Jul 2023 11:30:23 -0400 X-MC-Unique: Vg1M40iNPeyeLl9nUYJw9A-1 Received: from smtp.corp.redhat.com (int-mx07.intmail.prod.int.rdu2.redhat.com [10.11.54.7]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx02.redhat.com (Postfix) with ESMTPS id 4DBC92800E93; Mon, 17 Jul 2023 15:30:23 +0000 (UTC) Received: from oldenburg.str.redhat.com (unknown [10.2.16.3]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 7655B1454143; Mon, 17 Jul 2023 15:30:22 +0000 (UTC) From: Florian Weimer To: Siddhesh Poyarekar Cc: Siddhesh Poyarekar via Libc-alpha Subject: Re: [PATCH v2 3/4] configure: Disable lazy binding by default References: <20230629184156.2789945-1-siddhesh@sourceware.org> <20230630014248.2819836-1-siddhesh@sourceware.org> <20230630014248.2819836-4-siddhesh@sourceware.org> <87o7kgywvp.fsf@oldenburg.str.redhat.com> Date: Mon, 17 Jul 2023 17:30:20 +0200 In-Reply-To: (Siddhesh Poyarekar's message of "Mon, 17 Jul 2023 10:57:44 -0400") Message-ID: <87a5vu7dyr.fsf@oldenburg.str.redhat.com> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/28.2 (gnu/linux) MIME-Version: 1.0 X-Scanned-By: MIMEDefang 3.1 on 10.11.54.7 X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Spam-Status: No, score=-4.9 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_NONE,RCVD_IN_MSPIKE_H4,RCVD_IN_MSPIKE_WL,SPF_HELO_NONE,SPF_NONE,TXREP,T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org List-Id: * Siddhesh Poyarekar: > On 2023-07-13 05:38, Florian Weimer via Libc-alpha wrote: >> * Siddhesh Poyarekar via Libc-alpha: >>=20 >>> +=E2=80=98--disable-bind-now=E2=80=99 >>> + Enable lazy binding for installed shared objects and programs. >>> + Lazy binding may improve program load times but it will disable >>> + security hardening that enables full RELRO and a read-only global >>> + offset table (GOT). >> This description is not correct because as far as I can see, >> --disable-bind-now does not enable lazy binding if the toolchain or the >> build flags default to it. >> I think we should remove this flag, rather than making >> --disable-bind-now work as documented. > > I feel like this needs more thought either way then, no point blocking > 2.38 for it. What's the use case for lazy binding? Are people > actually using this in the wild and would we be breaking things for > them? I don't think it matters. We have very few symbols that can be bound lazily. Most symbolic bindings are against data symbols, which cannot be bound lazily, so the performance win for glibc itself is minuscule. I think it may have been beneficial before we had the libc_hidden mechanism. I suppose libpthread integration also helped to decreasing binding overhead. Thanks, Florian