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 AE2233858D20 for ; Thu, 3 Feb 2022 15:17:50 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org AE2233858D20 Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-618-BS126G-hNViBTfzSqzLZMQ-1; Thu, 03 Feb 2022 10:17:48 -0500 X-MC-Unique: BS126G-hNViBTfzSqzLZMQ-1 Received: from smtp.corp.redhat.com (int-mx02.intmail.prod.int.phx2.redhat.com [10.5.11.12]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id A016F10B7469 for ; Thu, 3 Feb 2022 15:17:46 +0000 (UTC) Received: from oldenburg.str.redhat.com (unknown [10.39.193.205]) by smtp.corp.redhat.com (Postfix) with ESMTPS id CC29B7E2C6 for ; Thu, 3 Feb 2022 15:17:45 +0000 (UTC) From: Florian Weimer To: libc-alpha@sourceware.org Subject: [PATCH v2 0/3] Predictable ELF destructor ordering X-From-Line: 1584a2f86db6fe8b46460c53f499d65ba65b55bb Mon Sep 17 00:00:00 2001 Message-Id: Date: Thu, 03 Feb 2022 16:17:44 +0100 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.12 X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Type: text/plain X-Spam-Status: No, score=-6.2 required=5.0 tests=BAYES_00, DKIMWL_WL_HIGH, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, RCVD_IN_DNSWL_LOW, SPF_HELO_NONE, SPF_NONE, TXREP, T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.4 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on server2.sourceware.org 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: , X-List-Received-Date: Thu, 03 Feb 2022 15:17:51 -0000 These patches remove the dependency sorting from dlclose and process shutdown, so that destructor order is the reverse of constructor order in more cases (always if the process does not call dlclose). Tested on i686-linux-gnu and x86_64-linux-gnu. Built with build-many-glibcs.py. Thanks, Florian Florian Weimer (3): elf: Do not rely on relocation dependencies for destructor sorting elf: Do not run constructors for proxy objects elf: Always call destructors in reverse constructor order elf/dl-close.c | 130 ++++++++++++++---------- elf/dl-deps.c | 3 +- elf/dl-fini.c | 196 +++++++++++++------------------------ elf/dl-init.c | 20 ++++ elf/dl-sort-maps.c | 105 ++------------------ elf/dso-sort-tests-1.def | 6 +- elf/tst-audit23.c | 44 +++++---- include/link.h | 4 + sysdeps/generic/ldsodefs.h | 6 +- 9 files changed, 212 insertions(+), 302 deletions(-) base-commit: 97ba273b505763325efd802dc3a9562dbba79579 -- 2.34.1