From patchwork Tue Jul 6 17:22:06 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Florian Weimer X-Patchwork-Id: 44181 Return-Path: X-Original-To: patchwork@sourceware.org Delivered-To: patchwork@sourceware.org Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 5BF95388F01A for ; Tue, 6 Jul 2021 17:23:17 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 5BF95388F01A DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sourceware.org; s=default; t=1625592197; bh=qGGJmIDmJVyTS5Hq1AbbIcUuM1mzjALKs2KFV3SK1uM=; h=To:Subject:In-Reply-To:References:Date:List-Id:List-Unsubscribe: List-Archive:List-Post:List-Help:List-Subscribe:From:Reply-To: From; b=H5X2Df0f0DmxhsCyGi+fAAomGnIRBbmuMXY2mgILKo0aEDGdjO69cJaxvRtbKNoe1 EOWXkY8v14JxiH2oKGvsQ5lwEkRBnnrVmn5GVx8p/wZL2k82CBCXlRcUGgVZzB7r+z tzLu80EudKcE24ERAYHqh7BaGv0SEIz3nXH0Bd0Q= X-Original-To: libc-alpha@sourceware.org Delivered-To: libc-alpha@sourceware.org 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 2974A3861936 for ; Tue, 6 Jul 2021 17:22:11 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 2974A3861936 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-526-wwGTsDx9P9Sr2WgBHNos0w-1; Tue, 06 Jul 2021 13:22:09 -0400 X-MC-Unique: wwGTsDx9P9Sr2WgBHNos0w-1 Received: from smtp.corp.redhat.com (int-mx07.intmail.prod.int.phx2.redhat.com [10.5.11.22]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id E3CA61084F4C for ; Tue, 6 Jul 2021 17:22:08 +0000 (UTC) Received: from oldenburg.str.redhat.com (ovpn-115-5.ams2.redhat.com [10.36.115.5]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 46DBC1036D05 for ; Tue, 6 Jul 2021 17:22:08 +0000 (UTC) To: libc-alpha@sourceware.org Subject: [PATCH 1/4] nptl: Use internal low-level lock type for !IS_IN (libc) In-Reply-To: References: X-From-Line: 12e42ea241149b8c10e43e60e8087ab4bc0ba01c Mon Sep 17 00:00:00 2001 Message-Id: <12e42ea241149b8c10e43e60e8087ab4bc0ba01c.1625591725.git.fweimer@redhat.com> Date: Tue, 06 Jul 2021 19:22:06 +0200 User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/27.2 (gnu/linux) MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.84 on 10.5.11.22 X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com X-Spam-Status: No, score=-13.3 required=5.0 tests=BAYES_00, DKIMWL_WL_HIGH, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, GIT_PATCH_0, RCVD_IN_DNSWL_LOW, RCVD_IN_MSPIKE_H4, RCVD_IN_MSPIKE_WL, SPF_HELO_NONE, SPF_NONE, TXREP 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-Patchwork-Original-From: Florian Weimer via Libc-alpha From: Florian Weimer Reply-To: Florian Weimer Errors-To: libc-alpha-bounces+patchwork=sourceware.org@sourceware.org Sender: "Libc-alpha" This avoids an ABI hazard (types changing between different modules of glibc) without introducing linknamespace issues. In particular, NSS modules now call __lll_lock_wait_private@@GLIBC_PRIVATE to wait on internal locks (the unlock path is inlined and performs a direct system call). --- sysdeps/nptl/libc-lockP.h | 51 ++++----------------------------------- 1 file changed, 5 insertions(+), 46 deletions(-) diff --git a/sysdeps/nptl/libc-lockP.h b/sysdeps/nptl/libc-lockP.h index ef88a3e533..b66c938e44 100644 --- a/sysdeps/nptl/libc-lockP.h +++ b/sysdeps/nptl/libc-lockP.h @@ -33,18 +33,8 @@ #include #include -#if IS_IN (libpthread) -/* This gets us the declarations of the __pthread_* internal names, - and hidden_proto for them. */ -# include -#endif - /* Mutex type. */ -#if !IS_IN (libc) && !IS_IN (libpthread) -typedef pthread_mutex_t __libc_lock_t; -#else typedef int __libc_lock_t; -#endif typedef struct { pthread_mutex_t mutex; } __rtld_lock_recursive_t; typedef pthread_rwlock_t __libc_rwlock_t; @@ -108,56 +98,25 @@ _Static_assert (LLL_LOCK_INITIALIZER == 0, "LLL_LOCK_INITIALIZER != 0"); /* Initialize the named lock variable, leaving it in a consistent, unlocked state. */ -#if IS_IN (libc) || IS_IN (libpthread) -# define __libc_lock_init(NAME) \ - ((void) ((NAME) = LLL_LOCK_INITIALIZER)) -#else -# define __libc_lock_init(NAME) __pthread_mutex_init (&(NAME)) -#endif +#define __libc_lock_init(NAME) ((void) ((NAME) = LLL_LOCK_INITIALIZER)) #define __libc_rwlock_init(NAME) __pthread_rwlock_init (&(NAME), NULL) /* Finalize the named lock variable, which must be locked. It cannot be used again until __libc_lock_init is called again on it. This must be called on a lock variable before the containing storage is reused. */ -#if IS_IN (libc) || IS_IN (libpthread) -# define __libc_lock_fini(NAME) ((void) 0) -#else -# define __libc_lock_fini(NAME) __pthread_mutex_destroy (&(NAME)) -#endif +#define __libc_lock_fini(NAME) ((void) 0) #define __libc_rwlock_fini(NAME) ((void) 0) /* Lock the named lock variable. */ -#if IS_IN (libc) || IS_IN (libpthread) -# ifndef __libc_lock_lock -# define __libc_lock_lock(NAME) \ - ({ lll_lock (NAME, LLL_PRIVATE); 0; }) -# endif -#else -# undef __libc_lock_lock -# define __libc_lock_lock(NAME) __pthread_mutex_lock (&(NAME)) -#endif +#define __libc_lock_lock(NAME) ({ lll_lock (NAME, LLL_PRIVATE); 0; }) #define __libc_rwlock_rdlock(NAME) __pthread_rwlock_rdlock (&(NAME)) #define __libc_rwlock_wrlock(NAME) __pthread_rwlock_wrlock (&(NAME)) /* Try to lock the named lock variable. */ -#if IS_IN (libc) || IS_IN (libpthread) -# ifndef __libc_lock_trylock -# define __libc_lock_trylock(NAME) \ - lll_trylock (NAME) -# endif -#else -# undef __libc_lock_trylock -# define __libc_lock_trylock(NAME) \ - __libc_maybe_call (__pthread_mutex_trylock, (&(NAME)), 0) -#endif +#define __libc_lock_trylock(NAME) lll_trylock (NAME) /* Unlock the named lock variable. */ -#if IS_IN (libc) || IS_IN (libpthread) -# define __libc_lock_unlock(NAME) \ - lll_unlock (NAME, LLL_PRIVATE) -#else -# define __libc_lock_unlock(NAME) __pthread_mutex_unlock (&(NAME)) -#endif +#define __libc_lock_unlock(NAME) lll_unlock (NAME, LLL_PRIVATE) #define __libc_rwlock_unlock(NAME) __pthread_rwlock_unlock (&(NAME)) #if IS_IN (rtld) From patchwork Tue Jul 6 17:22:10 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Florian Weimer X-Patchwork-Id: 44182 Return-Path: X-Original-To: patchwork@sourceware.org Delivered-To: patchwork@sourceware.org Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id ED380389002B for ; Tue, 6 Jul 2021 17:24:02 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org ED380389002B DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sourceware.org; s=default; t=1625592243; bh=N4t7CxK/+o4USSKc5uk7bDYU1SphdpfEcN7jnsMMUBo=; h=To:Subject:In-Reply-To:References:Date:List-Id:List-Unsubscribe: List-Archive:List-Post:List-Help:List-Subscribe:From:Reply-To: From; b=anlScobR6NlpwVu/xsT5RCtIkUuOnt8AtaDGjxCxuxZijfpAsdKM+p81Fq6mIUOXj EelP76tVxunWUBeOWWfeMJm0nam3F2+GU89i7MGSt5iCEqA6iEmqA7QbEuejM/4OFt lZS1smstvrc2pgTYo1rpZC/JRdj1AhWnTpp47Fj8= X-Original-To: libc-alpha@sourceware.org Delivered-To: libc-alpha@sourceware.org Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [216.205.24.124]) by sourceware.org (Postfix) with ESMTP id 71D6F383D832 for ; Tue, 6 Jul 2021 17:22:16 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 71D6F383D832 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-365-HQnY77QQMjGSCBVuLlgVUw-1; Tue, 06 Jul 2021 13:22:14 -0400 X-MC-Unique: HQnY77QQMjGSCBVuLlgVUw-1 Received: from smtp.corp.redhat.com (int-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.11]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 9B8413E089 for ; Tue, 6 Jul 2021 17:22:13 +0000 (UTC) Received: from oldenburg.str.redhat.com (ovpn-115-5.ams2.redhat.com [10.36.115.5]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 8ED8369CBC for ; Tue, 6 Jul 2021 17:22:12 +0000 (UTC) To: libc-alpha@sourceware.org Subject: [PATCH 2/4] nptl: Remove GLIBC_2.34 versions of __pthread_mutex_lock, __pthread_mutex_unlock In-Reply-To: References: X-From-Line: 6c3df75ad0eed463fcc7b1f675cee1bd98326b8d Mon Sep 17 00:00:00 2001 Message-Id: <6c3df75ad0eed463fcc7b1f675cee1bd98326b8d.1625591725.git.fweimer@redhat.com> Date: Tue, 06 Jul 2021 19:22:10 +0200 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.11 X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com X-Spam-Status: No, score=-13.3 required=5.0 tests=BAYES_00, DKIMWL_WL_HIGH, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, GIT_PATCH_0, RCVD_IN_DNSWL_LOW, RCVD_IN_MSPIKE_H4, RCVD_IN_MSPIKE_WL, SPF_HELO_NONE, SPF_NONE, TVD_SPACE_RATIO, TXREP 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-Patchwork-Original-From: Florian Weimer via Libc-alpha From: Florian Weimer Reply-To: Florian Weimer Errors-To: libc-alpha-bounces+patchwork=sourceware.org@sourceware.org Sender: "Libc-alpha" Now that there are no internal users anymore, these new symbol versions can be removed from the public ABI. The compatibility symbols remain. --- nptl/Versions | 2 -- nptl/pthread_mutex_lock.c | 5 +++-- nptl/pthread_mutex_unlock.c | 5 +++-- sysdeps/unix/sysv/linux/aarch64/libc.abilist | 2 -- sysdeps/unix/sysv/linux/alpha/libc.abilist | 2 -- sysdeps/unix/sysv/linux/arc/libc.abilist | 2 -- sysdeps/unix/sysv/linux/arm/be/libc.abilist | 2 -- sysdeps/unix/sysv/linux/arm/le/libc.abilist | 2 -- sysdeps/unix/sysv/linux/csky/libc.abilist | 2 -- sysdeps/unix/sysv/linux/hppa/libc.abilist | 2 -- sysdeps/unix/sysv/linux/i386/libc.abilist | 2 -- sysdeps/unix/sysv/linux/ia64/libc.abilist | 2 -- sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist | 2 -- sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist | 2 -- sysdeps/unix/sysv/linux/microblaze/be/libc.abilist | 2 -- sysdeps/unix/sysv/linux/microblaze/le/libc.abilist | 2 -- sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist | 2 -- sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist | 2 -- sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist | 2 -- sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist | 2 -- sysdeps/unix/sysv/linux/nios2/libc.abilist | 2 -- sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist | 2 -- sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist | 2 -- sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist | 2 -- sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist | 2 -- sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist | 2 -- sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist | 2 -- sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist | 2 -- sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist | 2 -- sysdeps/unix/sysv/linux/sh/be/libc.abilist | 2 -- sysdeps/unix/sysv/linux/sh/le/libc.abilist | 2 -- sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist | 2 -- sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist | 2 -- sysdeps/unix/sysv/linux/x86_64/64/libc.abilist | 2 -- sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist | 2 -- 35 files changed, 6 insertions(+), 70 deletions(-) diff --git a/nptl/Versions b/nptl/Versions index 060d8d5dec..0a1c75509a 100644 --- a/nptl/Versions +++ b/nptl/Versions @@ -253,8 +253,6 @@ libc { GLIBC_2.34 { __pthread_cleanup_routine; __pthread_key_create; - __pthread_mutex_lock; - __pthread_mutex_unlock; __pthread_register_cancel; __pthread_register_cancel_defer; __pthread_unregister_cancel; diff --git a/nptl/pthread_mutex_lock.c b/nptl/pthread_mutex_lock.c index c9e438ef37..da624f322d 100644 --- a/nptl/pthread_mutex_lock.c +++ b/nptl/pthread_mutex_lock.c @@ -609,9 +609,10 @@ __pthread_mutex_lock_full (pthread_mutex_t *mutex) } #if PTHREAD_MUTEX_VERSIONS -versioned_symbol (libpthread, ___pthread_mutex_lock, __pthread_mutex_lock, - GLIBC_2_34); libc_hidden_ver (___pthread_mutex_lock, __pthread_mutex_lock) +# ifndef SHARED +strong_alias (___pthread_mutex_lock, __pthread_mutex_lock) +# endif versioned_symbol (libpthread, ___pthread_mutex_lock, pthread_mutex_lock, GLIBC_2_0); diff --git a/nptl/pthread_mutex_unlock.c b/nptl/pthread_mutex_unlock.c index ea88ba2986..7c15397572 100644 --- a/nptl/pthread_mutex_unlock.c +++ b/nptl/pthread_mutex_unlock.c @@ -368,9 +368,10 @@ ___pthread_mutex_unlock (pthread_mutex_t *mutex) { return __pthread_mutex_unlock_usercnt (mutex, 1); } -versioned_symbol (libpthread, ___pthread_mutex_unlock, __pthread_mutex_unlock, - GLIBC_2_34); libc_hidden_ver (___pthread_mutex_unlock, __pthread_mutex_unlock) +#ifndef SHARED +strong_alias (___pthread_mutex_unlock, __pthread_mutex_unlock) +#endif versioned_symbol (libpthread, ___pthread_mutex_unlock, pthread_mutex_unlock, GLIBC_2_0); diff --git a/sysdeps/unix/sysv/linux/aarch64/libc.abilist b/sysdeps/unix/sysv/linux/aarch64/libc.abilist index 6730cbdd6b..6f19b07b47 100644 --- a/sysdeps/unix/sysv/linux/aarch64/libc.abilist +++ b/sysdeps/unix/sysv/linux/aarch64/libc.abilist @@ -2384,8 +2384,6 @@ GLIBC_2.34 __libc_start_main F GLIBC_2.34 __mq_open_2 F GLIBC_2.34 __pthread_cleanup_routine F GLIBC_2.34 __pthread_key_create F -GLIBC_2.34 __pthread_mutex_lock F -GLIBC_2.34 __pthread_mutex_unlock F GLIBC_2.34 __pthread_register_cancel F GLIBC_2.34 __pthread_register_cancel_defer F GLIBC_2.34 __pthread_unregister_cancel F diff --git a/sysdeps/unix/sysv/linux/alpha/libc.abilist b/sysdeps/unix/sysv/linux/alpha/libc.abilist index 63de4fadc3..6ece449d4b 100644 --- a/sysdeps/unix/sysv/linux/alpha/libc.abilist +++ b/sysdeps/unix/sysv/linux/alpha/libc.abilist @@ -2483,8 +2483,6 @@ GLIBC_2.34 __libc_start_main F GLIBC_2.34 __mq_open_2 F GLIBC_2.34 __pthread_cleanup_routine F GLIBC_2.34 __pthread_key_create F -GLIBC_2.34 __pthread_mutex_lock F -GLIBC_2.34 __pthread_mutex_unlock F GLIBC_2.34 __pthread_register_cancel F GLIBC_2.34 __pthread_register_cancel_defer F GLIBC_2.34 __pthread_unregister_cancel F diff --git a/sysdeps/unix/sysv/linux/arc/libc.abilist b/sysdeps/unix/sysv/linux/arc/libc.abilist index 2f13701fd7..3bf846349f 100644 --- a/sysdeps/unix/sysv/linux/arc/libc.abilist +++ b/sysdeps/unix/sysv/linux/arc/libc.abilist @@ -2143,8 +2143,6 @@ GLIBC_2.34 __libc_start_main F GLIBC_2.34 __mq_open_2 F GLIBC_2.34 __pthread_cleanup_routine F GLIBC_2.34 __pthread_key_create F -GLIBC_2.34 __pthread_mutex_lock F -GLIBC_2.34 __pthread_mutex_unlock F GLIBC_2.34 __pthread_register_cancel F GLIBC_2.34 __pthread_register_cancel_defer F GLIBC_2.34 __pthread_unregister_cancel F diff --git a/sysdeps/unix/sysv/linux/arm/be/libc.abilist b/sysdeps/unix/sysv/linux/arm/be/libc.abilist index 9b824f1605..08be998d35 100644 --- a/sysdeps/unix/sysv/linux/arm/be/libc.abilist +++ b/sysdeps/unix/sysv/linux/arm/be/libc.abilist @@ -245,9 +245,7 @@ GLIBC_2.34 __pthread_cond_clockwait64 F GLIBC_2.34 __pthread_cond_timedwait64 F GLIBC_2.34 __pthread_key_create F GLIBC_2.34 __pthread_mutex_clocklock64 F -GLIBC_2.34 __pthread_mutex_lock F GLIBC_2.34 __pthread_mutex_timedlock64 F -GLIBC_2.34 __pthread_mutex_unlock F GLIBC_2.34 __pthread_register_cancel F GLIBC_2.34 __pthread_register_cancel_defer F GLIBC_2.34 __pthread_rwlock_clockrdlock64 F diff --git a/sysdeps/unix/sysv/linux/arm/le/libc.abilist b/sysdeps/unix/sysv/linux/arm/le/libc.abilist index 443a81b8f7..ebd767ed96 100644 --- a/sysdeps/unix/sysv/linux/arm/le/libc.abilist +++ b/sysdeps/unix/sysv/linux/arm/le/libc.abilist @@ -242,9 +242,7 @@ GLIBC_2.34 __pthread_cond_clockwait64 F GLIBC_2.34 __pthread_cond_timedwait64 F GLIBC_2.34 __pthread_key_create F GLIBC_2.34 __pthread_mutex_clocklock64 F -GLIBC_2.34 __pthread_mutex_lock F GLIBC_2.34 __pthread_mutex_timedlock64 F -GLIBC_2.34 __pthread_mutex_unlock F GLIBC_2.34 __pthread_register_cancel F GLIBC_2.34 __pthread_register_cancel_defer F GLIBC_2.34 __pthread_rwlock_clockrdlock64 F diff --git a/sysdeps/unix/sysv/linux/csky/libc.abilist b/sysdeps/unix/sysv/linux/csky/libc.abilist index 243de3cf93..4a467e706e 100644 --- a/sysdeps/unix/sysv/linux/csky/libc.abilist +++ b/sysdeps/unix/sysv/linux/csky/libc.abilist @@ -2377,9 +2377,7 @@ GLIBC_2.34 __pthread_cond_clockwait64 F GLIBC_2.34 __pthread_cond_timedwait64 F GLIBC_2.34 __pthread_key_create F GLIBC_2.34 __pthread_mutex_clocklock64 F -GLIBC_2.34 __pthread_mutex_lock F GLIBC_2.34 __pthread_mutex_timedlock64 F -GLIBC_2.34 __pthread_mutex_unlock F GLIBC_2.34 __pthread_register_cancel F GLIBC_2.34 __pthread_register_cancel_defer F GLIBC_2.34 __pthread_rwlock_clockrdlock64 F diff --git a/sysdeps/unix/sysv/linux/hppa/libc.abilist b/sysdeps/unix/sysv/linux/hppa/libc.abilist index 24ae58bb6f..bdef8d2a34 100644 --- a/sysdeps/unix/sysv/linux/hppa/libc.abilist +++ b/sysdeps/unix/sysv/linux/hppa/libc.abilist @@ -2330,9 +2330,7 @@ GLIBC_2.34 __pthread_cond_clockwait64 F GLIBC_2.34 __pthread_cond_timedwait64 F GLIBC_2.34 __pthread_key_create F GLIBC_2.34 __pthread_mutex_clocklock64 F -GLIBC_2.34 __pthread_mutex_lock F GLIBC_2.34 __pthread_mutex_timedlock64 F -GLIBC_2.34 __pthread_mutex_unlock F GLIBC_2.34 __pthread_register_cancel F GLIBC_2.34 __pthread_register_cancel_defer F GLIBC_2.34 __pthread_rwlock_clockrdlock64 F diff --git a/sysdeps/unix/sysv/linux/i386/libc.abilist b/sysdeps/unix/sysv/linux/i386/libc.abilist index 09bebcd5a1..eba95a2cf0 100644 --- a/sysdeps/unix/sysv/linux/i386/libc.abilist +++ b/sysdeps/unix/sysv/linux/i386/libc.abilist @@ -2514,9 +2514,7 @@ GLIBC_2.34 __pthread_cond_clockwait64 F GLIBC_2.34 __pthread_cond_timedwait64 F GLIBC_2.34 __pthread_key_create F GLIBC_2.34 __pthread_mutex_clocklock64 F -GLIBC_2.34 __pthread_mutex_lock F GLIBC_2.34 __pthread_mutex_timedlock64 F -GLIBC_2.34 __pthread_mutex_unlock F GLIBC_2.34 __pthread_register_cancel F GLIBC_2.34 __pthread_register_cancel_defer F GLIBC_2.34 __pthread_rwlock_clockrdlock64 F diff --git a/sysdeps/unix/sysv/linux/ia64/libc.abilist b/sysdeps/unix/sysv/linux/ia64/libc.abilist index 0bafe09253..3fbc5ae978 100644 --- a/sysdeps/unix/sysv/linux/ia64/libc.abilist +++ b/sysdeps/unix/sysv/linux/ia64/libc.abilist @@ -2321,8 +2321,6 @@ GLIBC_2.34 __libc_start_main F GLIBC_2.34 __mq_open_2 F GLIBC_2.34 __pthread_cleanup_routine F GLIBC_2.34 __pthread_key_create F -GLIBC_2.34 __pthread_mutex_lock F -GLIBC_2.34 __pthread_mutex_unlock F GLIBC_2.34 __pthread_register_cancel F GLIBC_2.34 __pthread_register_cancel_defer F GLIBC_2.34 __pthread_unregister_cancel F diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist index c1fcde4c24..0aef2ec43a 100644 --- a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist +++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist @@ -246,9 +246,7 @@ GLIBC_2.34 __pthread_cond_clockwait64 F GLIBC_2.34 __pthread_cond_timedwait64 F GLIBC_2.34 __pthread_key_create F GLIBC_2.34 __pthread_mutex_clocklock64 F -GLIBC_2.34 __pthread_mutex_lock F GLIBC_2.34 __pthread_mutex_timedlock64 F -GLIBC_2.34 __pthread_mutex_unlock F GLIBC_2.34 __pthread_register_cancel F GLIBC_2.34 __pthread_register_cancel_defer F GLIBC_2.34 __pthread_rwlock_clockrdlock64 F diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist index 407651cfd7..a4704f7e96 100644 --- a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist +++ b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist @@ -2457,9 +2457,7 @@ GLIBC_2.34 __pthread_cond_clockwait64 F GLIBC_2.34 __pthread_cond_timedwait64 F GLIBC_2.34 __pthread_key_create F GLIBC_2.34 __pthread_mutex_clocklock64 F -GLIBC_2.34 __pthread_mutex_lock F GLIBC_2.34 __pthread_mutex_timedlock64 F -GLIBC_2.34 __pthread_mutex_unlock F GLIBC_2.34 __pthread_register_cancel F GLIBC_2.34 __pthread_register_cancel_defer F GLIBC_2.34 __pthread_rwlock_clockrdlock64 F diff --git a/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist b/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist index 7da722a734..8f135f30c0 100644 --- a/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist +++ b/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist @@ -2428,9 +2428,7 @@ GLIBC_2.34 __pthread_cond_clockwait64 F GLIBC_2.34 __pthread_cond_timedwait64 F GLIBC_2.34 __pthread_key_create F GLIBC_2.34 __pthread_mutex_clocklock64 F -GLIBC_2.34 __pthread_mutex_lock F GLIBC_2.34 __pthread_mutex_timedlock64 F -GLIBC_2.34 __pthread_mutex_unlock F GLIBC_2.34 __pthread_register_cancel F GLIBC_2.34 __pthread_register_cancel_defer F GLIBC_2.34 __pthread_rwlock_clockrdlock64 F diff --git a/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist b/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist index c374607b81..719609ac10 100644 --- a/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist +++ b/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist @@ -2425,9 +2425,7 @@ GLIBC_2.34 __pthread_cond_clockwait64 F GLIBC_2.34 __pthread_cond_timedwait64 F GLIBC_2.34 __pthread_key_create F GLIBC_2.34 __pthread_mutex_clocklock64 F -GLIBC_2.34 __pthread_mutex_lock F GLIBC_2.34 __pthread_mutex_timedlock64 F -GLIBC_2.34 __pthread_mutex_unlock F GLIBC_2.34 __pthread_register_cancel F GLIBC_2.34 __pthread_register_cancel_defer F GLIBC_2.34 __pthread_rwlock_clockrdlock64 F diff --git a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist index b1f426e053..f9a6bccdc5 100644 --- a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist +++ b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist @@ -2422,9 +2422,7 @@ GLIBC_2.34 __pthread_cond_clockwait64 F GLIBC_2.34 __pthread_cond_timedwait64 F GLIBC_2.34 __pthread_key_create F GLIBC_2.34 __pthread_mutex_clocklock64 F -GLIBC_2.34 __pthread_mutex_lock F GLIBC_2.34 __pthread_mutex_timedlock64 F -GLIBC_2.34 __pthread_mutex_unlock F GLIBC_2.34 __pthread_register_cancel F GLIBC_2.34 __pthread_register_cancel_defer F GLIBC_2.34 __pthread_rwlock_clockrdlock64 F diff --git a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist index 066ceb2258..cee02495c6 100644 --- a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist +++ b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist @@ -2420,9 +2420,7 @@ GLIBC_2.34 __pthread_cond_clockwait64 F GLIBC_2.34 __pthread_cond_timedwait64 F GLIBC_2.34 __pthread_key_create F GLIBC_2.34 __pthread_mutex_clocklock64 F -GLIBC_2.34 __pthread_mutex_lock F GLIBC_2.34 __pthread_mutex_timedlock64 F -GLIBC_2.34 __pthread_mutex_unlock F GLIBC_2.34 __pthread_register_cancel F GLIBC_2.34 __pthread_register_cancel_defer F GLIBC_2.34 __pthread_rwlock_clockrdlock64 F diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist index 51c563ebbe..c9fdfe3a55 100644 --- a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist +++ b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist @@ -2428,9 +2428,7 @@ GLIBC_2.34 __pthread_cond_clockwait64 F GLIBC_2.34 __pthread_cond_timedwait64 F GLIBC_2.34 __pthread_key_create F GLIBC_2.34 __pthread_mutex_clocklock64 F -GLIBC_2.34 __pthread_mutex_lock F GLIBC_2.34 __pthread_mutex_timedlock64 F -GLIBC_2.34 __pthread_mutex_unlock F GLIBC_2.34 __pthread_register_cancel F GLIBC_2.34 __pthread_register_cancel_defer F GLIBC_2.34 __pthread_rwlock_clockrdlock64 F diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist index 28db715d8a..d27c97094e 100644 --- a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist +++ b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist @@ -2372,8 +2372,6 @@ GLIBC_2.34 __libc_start_main F GLIBC_2.34 __mq_open_2 F GLIBC_2.34 __pthread_cleanup_routine F GLIBC_2.34 __pthread_key_create F -GLIBC_2.34 __pthread_mutex_lock F -GLIBC_2.34 __pthread_mutex_unlock F GLIBC_2.34 __pthread_register_cancel F GLIBC_2.34 __pthread_register_cancel_defer F GLIBC_2.34 __pthread_unregister_cancel F diff --git a/sysdeps/unix/sysv/linux/nios2/libc.abilist b/sysdeps/unix/sysv/linux/nios2/libc.abilist index ab9f2bd42c..25f270403f 100644 --- a/sysdeps/unix/sysv/linux/nios2/libc.abilist +++ b/sysdeps/unix/sysv/linux/nios2/libc.abilist @@ -2467,9 +2467,7 @@ GLIBC_2.34 __pthread_cond_clockwait64 F GLIBC_2.34 __pthread_cond_timedwait64 F GLIBC_2.34 __pthread_key_create F GLIBC_2.34 __pthread_mutex_clocklock64 F -GLIBC_2.34 __pthread_mutex_lock F GLIBC_2.34 __pthread_mutex_timedlock64 F -GLIBC_2.34 __pthread_mutex_unlock F GLIBC_2.34 __pthread_register_cancel F GLIBC_2.34 __pthread_register_cancel_defer F GLIBC_2.34 __pthread_rwlock_clockrdlock64 F diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist index 83f8513e17..0256a272dd 100644 --- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist @@ -2484,9 +2484,7 @@ GLIBC_2.34 __pthread_cond_clockwait64 F GLIBC_2.34 __pthread_cond_timedwait64 F GLIBC_2.34 __pthread_key_create F GLIBC_2.34 __pthread_mutex_clocklock64 F -GLIBC_2.34 __pthread_mutex_lock F GLIBC_2.34 __pthread_mutex_timedlock64 F -GLIBC_2.34 __pthread_mutex_unlock F GLIBC_2.34 __pthread_register_cancel F GLIBC_2.34 __pthread_register_cancel_defer F GLIBC_2.34 __pthread_rwlock_clockrdlock64 F diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist index 0fad357bf6..946f855c64 100644 --- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist @@ -2517,9 +2517,7 @@ GLIBC_2.34 __pthread_cond_clockwait64 F GLIBC_2.34 __pthread_cond_timedwait64 F GLIBC_2.34 __pthread_key_create F GLIBC_2.34 __pthread_mutex_clocklock64 F -GLIBC_2.34 __pthread_mutex_lock F GLIBC_2.34 __pthread_mutex_timedlock64 F -GLIBC_2.34 __pthread_mutex_unlock F GLIBC_2.34 __pthread_register_cancel F GLIBC_2.34 __pthread_register_cancel_defer F GLIBC_2.34 __pthread_rwlock_clockrdlock64 F diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist index 424ec8d953..602da17327 100644 --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist @@ -2285,8 +2285,6 @@ GLIBC_2.34 __libc_start_main F GLIBC_2.34 __mq_open_2 F GLIBC_2.34 __pthread_cleanup_routine F GLIBC_2.34 __pthread_key_create F -GLIBC_2.34 __pthread_mutex_lock F -GLIBC_2.34 __pthread_mutex_unlock F GLIBC_2.34 __pthread_register_cancel F GLIBC_2.34 __pthread_register_cancel_defer F GLIBC_2.34 __pthread_unregister_cancel F diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist index 9909fd0e9a..287285a21a 100644 --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist @@ -2580,8 +2580,6 @@ GLIBC_2.34 __libc_start_main F GLIBC_2.34 __mq_open_2 F GLIBC_2.34 __pthread_cleanup_routine F GLIBC_2.34 __pthread_key_create F -GLIBC_2.34 __pthread_mutex_lock F -GLIBC_2.34 __pthread_mutex_unlock F GLIBC_2.34 __pthread_register_cancel F GLIBC_2.34 __pthread_register_cancel_defer F GLIBC_2.34 __pthread_unregister_cancel F diff --git a/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist b/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist index 7085989b16..cdeee28d0f 100644 --- a/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist +++ b/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist @@ -2145,8 +2145,6 @@ GLIBC_2.34 __libc_start_main F GLIBC_2.34 __mq_open_2 F GLIBC_2.34 __pthread_cleanup_routine F GLIBC_2.34 __pthread_key_create F -GLIBC_2.34 __pthread_mutex_lock F -GLIBC_2.34 __pthread_mutex_unlock F GLIBC_2.34 __pthread_register_cancel F GLIBC_2.34 __pthread_register_cancel_defer F GLIBC_2.34 __pthread_unregister_cancel F diff --git a/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist b/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist index a855997957..a74b54d6bb 100644 --- a/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist +++ b/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist @@ -2345,8 +2345,6 @@ GLIBC_2.34 __libc_start_main F GLIBC_2.34 __mq_open_2 F GLIBC_2.34 __pthread_cleanup_routine F GLIBC_2.34 __pthread_key_create F -GLIBC_2.34 __pthread_mutex_lock F -GLIBC_2.34 __pthread_mutex_unlock F GLIBC_2.34 __pthread_register_cancel F GLIBC_2.34 __pthread_register_cancel_defer F GLIBC_2.34 __pthread_unregister_cancel F diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist index 12aeb82520..e96371317c 100644 --- a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist +++ b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist @@ -2482,9 +2482,7 @@ GLIBC_2.34 __pthread_cond_clockwait64 F GLIBC_2.34 __pthread_cond_timedwait64 F GLIBC_2.34 __pthread_key_create F GLIBC_2.34 __pthread_mutex_clocklock64 F -GLIBC_2.34 __pthread_mutex_lock F GLIBC_2.34 __pthread_mutex_timedlock64 F -GLIBC_2.34 __pthread_mutex_unlock F GLIBC_2.34 __pthread_register_cancel F GLIBC_2.34 __pthread_register_cancel_defer F GLIBC_2.34 __pthread_rwlock_clockrdlock64 F diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist index e2d746ad5f..aadc7c1d66 100644 --- a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist +++ b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist @@ -2322,8 +2322,6 @@ GLIBC_2.34 __libc_start_main F GLIBC_2.34 __mq_open_2 F GLIBC_2.34 __pthread_cleanup_routine F GLIBC_2.34 __pthread_key_create F -GLIBC_2.34 __pthread_mutex_lock F -GLIBC_2.34 __pthread_mutex_unlock F GLIBC_2.34 __pthread_register_cancel F GLIBC_2.34 __pthread_register_cancel_defer F GLIBC_2.34 __pthread_unregister_cancel F diff --git a/sysdeps/unix/sysv/linux/sh/be/libc.abilist b/sysdeps/unix/sysv/linux/sh/be/libc.abilist index 1ce4b54bf2..cc4a625cb4 100644 --- a/sysdeps/unix/sysv/linux/sh/be/libc.abilist +++ b/sysdeps/unix/sysv/linux/sh/be/libc.abilist @@ -2337,9 +2337,7 @@ GLIBC_2.34 __pthread_cond_clockwait64 F GLIBC_2.34 __pthread_cond_timedwait64 F GLIBC_2.34 __pthread_key_create F GLIBC_2.34 __pthread_mutex_clocklock64 F -GLIBC_2.34 __pthread_mutex_lock F GLIBC_2.34 __pthread_mutex_timedlock64 F -GLIBC_2.34 __pthread_mutex_unlock F GLIBC_2.34 __pthread_register_cancel F GLIBC_2.34 __pthread_register_cancel_defer F GLIBC_2.34 __pthread_rwlock_clockrdlock64 F diff --git a/sysdeps/unix/sysv/linux/sh/le/libc.abilist b/sysdeps/unix/sysv/linux/sh/le/libc.abilist index 7d01add713..163d2cd613 100644 --- a/sysdeps/unix/sysv/linux/sh/le/libc.abilist +++ b/sysdeps/unix/sysv/linux/sh/le/libc.abilist @@ -2334,9 +2334,7 @@ GLIBC_2.34 __pthread_cond_clockwait64 F GLIBC_2.34 __pthread_cond_timedwait64 F GLIBC_2.34 __pthread_key_create F GLIBC_2.34 __pthread_mutex_clocklock64 F -GLIBC_2.34 __pthread_mutex_lock F GLIBC_2.34 __pthread_mutex_timedlock64 F -GLIBC_2.34 __pthread_mutex_unlock F GLIBC_2.34 __pthread_register_cancel F GLIBC_2.34 __pthread_register_cancel_defer F GLIBC_2.34 __pthread_rwlock_clockrdlock64 F diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist index b5ef3247d7..6eceee6b88 100644 --- a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist +++ b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist @@ -2477,9 +2477,7 @@ GLIBC_2.34 __pthread_cond_clockwait64 F GLIBC_2.34 __pthread_cond_timedwait64 F GLIBC_2.34 __pthread_key_create F GLIBC_2.34 __pthread_mutex_clocklock64 F -GLIBC_2.34 __pthread_mutex_lock F GLIBC_2.34 __pthread_mutex_timedlock64 F -GLIBC_2.34 __pthread_mutex_unlock F GLIBC_2.34 __pthread_register_cancel F GLIBC_2.34 __pthread_register_cancel_defer F GLIBC_2.34 __pthread_rwlock_clockrdlock64 F diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist index 14ae7c8417..e6bac469ba 100644 --- a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist +++ b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist @@ -2344,8 +2344,6 @@ GLIBC_2.34 __libc_start_main F GLIBC_2.34 __mq_open_2 F GLIBC_2.34 __pthread_cleanup_routine F GLIBC_2.34 __pthread_key_create F -GLIBC_2.34 __pthread_mutex_lock F -GLIBC_2.34 __pthread_mutex_unlock F GLIBC_2.34 __pthread_register_cancel F GLIBC_2.34 __pthread_register_cancel_defer F GLIBC_2.34 __pthread_unregister_cancel F diff --git a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist index 57c4f28d17..e90f3e54c0 100644 --- a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist +++ b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist @@ -2300,8 +2300,6 @@ GLIBC_2.34 __libc_start_main F GLIBC_2.34 __mq_open_2 F GLIBC_2.34 __pthread_cleanup_routine F GLIBC_2.34 __pthread_key_create F -GLIBC_2.34 __pthread_mutex_lock F -GLIBC_2.34 __pthread_mutex_unlock F GLIBC_2.34 __pthread_register_cancel F GLIBC_2.34 __pthread_register_cancel_defer F GLIBC_2.34 __pthread_unregister_cancel F diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist index 47211abe4e..792f681bba 100644 --- a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist +++ b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist @@ -2399,8 +2399,6 @@ GLIBC_2.34 __libc_start_main F GLIBC_2.34 __mq_open_2 F GLIBC_2.34 __pthread_cleanup_routine F GLIBC_2.34 __pthread_key_create F -GLIBC_2.34 __pthread_mutex_lock F -GLIBC_2.34 __pthread_mutex_unlock F GLIBC_2.34 __pthread_register_cancel F GLIBC_2.34 __pthread_register_cancel_defer F GLIBC_2.34 __pthread_unregister_cancel F From patchwork Tue Jul 6 17:22:15 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Florian Weimer X-Patchwork-Id: 44183 Return-Path: X-Original-To: patchwork@sourceware.org Delivered-To: patchwork@sourceware.org Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 600073888830 for ; Tue, 6 Jul 2021 17:24:55 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 600073888830 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sourceware.org; s=default; t=1625592295; bh=H2U1y8l2FgaCJELbGbPfNfbX+GRXdw7FZNpkypsnpz0=; h=To:Subject:In-Reply-To:References:Date:List-Id:List-Unsubscribe: List-Archive:List-Post:List-Help:List-Subscribe:From:Reply-To: From; b=h5seGToE1KtwVuhWCBWzJ1edyRTttsXf/z5QcIJOOLnryKsdmF0jB8wIcYI4MgZy5 CBcoZXO+C1G1a1fzd5OBoQxqtynQBMg7FKf13KgMJ0M2RjOHbYomEaUQG5wl7NqEui LmB24GmSfXEvFKWOX9bp3oXzB+Dl+leX0cJOAr54= X-Original-To: libc-alpha@sourceware.org Delivered-To: libc-alpha@sourceware.org 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 663E8388E83C for ; Tue, 6 Jul 2021 17:22:20 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 663E8388E83C 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-364-PxcXPntIMR6l6RK-O8ZJoQ-1; Tue, 06 Jul 2021 13:22:18 -0400 X-MC-Unique: PxcXPntIMR6l6RK-O8ZJoQ-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 0BDB2802E63 for ; Tue, 6 Jul 2021 17:22:18 +0000 (UTC) Received: from oldenburg.str.redhat.com (ovpn-115-5.ams2.redhat.com [10.36.115.5]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 2D91E60CC9 for ; Tue, 6 Jul 2021 17:22:17 +0000 (UTC) To: libc-alpha@sourceware.org Subject: [PATCH 3/4] nptl: Reduce the GLIBC_PRIVATE ABI In-Reply-To: References: X-From-Line: f0cf87f46e4787eb29c44bceb7acbbd9850ec4e4 Mon Sep 17 00:00:00 2001 Message-Id: Date: Tue, 06 Jul 2021 19:22:15 +0200 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 X-Spam-Status: No, score=-13.3 required=5.0 tests=BAYES_00, DKIMWL_WL_HIGH, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, GIT_PATCH_0, RCVD_IN_DNSWL_LOW, RCVD_IN_MSPIKE_H4, RCVD_IN_MSPIKE_WL, SPF_HELO_NONE, SPF_NONE, TXREP 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-Patchwork-Original-From: Florian Weimer via Libc-alpha From: Florian Weimer Reply-To: Florian Weimer Errors-To: libc-alpha-bounces+patchwork=sourceware.org@sourceware.org Sender: "Libc-alpha" The remaining symbols are mostly used by libthread_db. __pthread_get_minstack has to remain exported even though unused. --- nptl/Versions | 42 ---------------------------------- nptl/pthread_barrier_init.c | 5 ++-- nptl/pthread_barrier_wait.c | 5 ++-- nptl/pthread_cond_wait.c | 5 ++-- nptl/pthread_mutex_timedlock.c | 5 ++-- nptl/pthread_testcancel.c | 5 ++-- 6 files changed, 15 insertions(+), 52 deletions(-) diff --git a/nptl/Versions b/nptl/Versions index 0a1c75509a..2a75f013f2 100644 --- a/nptl/Versions +++ b/nptl/Versions @@ -379,59 +379,17 @@ libc { tss_set; } GLIBC_PRIVATE { - __default_pthread_attr; - __default_pthread_attr_lock; - __futex_abstimed_wait64; - __futex_abstimed_wait_cancelable64; - __init_sched_fifo_prio; __libc_alloca_cutoff; - __libc_cleanup_pop_restore; - __libc_cleanup_push_defer; - __libc_dl_error_tsd; - __libc_multiple_threads; - __lll_clocklock_elision; - __lll_lock_elision; - __lll_lock_wait; __lll_lock_wait_private; - __lll_trylock_elision; - __lll_unlock_elision; - __mutex_aconf; __nptl_create_event; - __nptl_deallocate_stack; - __nptl_deallocate_tsd; __nptl_death_event; - __nptl_free_tcb; __nptl_last_event; __nptl_nthreads; __nptl_rtld_global; - __nptl_setxid_sighandler; - __nptl_stack_list_add; - __nptl_stack_list_del; __nptl_threads_events; __nptl_version; - __pthread_attr_copy; - __pthread_attr_destroy; - __pthread_attr_init; - __pthread_attr_setaffinity_np; - __pthread_attr_setsigmask_internal; - __pthread_barrier_init; - __pthread_barrier_wait; - __pthread_cleanup_pop; - __pthread_cleanup_push; - __pthread_cleanup_upto; - __pthread_current_priority; - __pthread_disable_asynccancel; - __pthread_enable_asynccancel; - __pthread_force_elision; __pthread_get_minstack; __pthread_keys; - __pthread_mutex_unlock_usercnt; - __pthread_setcancelstate; - __pthread_testcancel; - __pthread_tpp_change_priority; - __pthread_unwind; - __sched_fifo_max_prio; - __sched_fifo_min_prio; _thread_db___nptl_last_event; _thread_db___nptl_nthreads; _thread_db___nptl_rtld_global; diff --git a/nptl/pthread_barrier_init.c b/nptl/pthread_barrier_init.c index 3a13d2a756..4aa3b8c0d9 100644 --- a/nptl/pthread_barrier_init.c +++ b/nptl/pthread_barrier_init.c @@ -63,9 +63,10 @@ ___pthread_barrier_init (pthread_barrier_t *barrier, } versioned_symbol (libc, ___pthread_barrier_init, pthread_barrier_init, GLIBC_2_34); -versioned_symbol (libc, ___pthread_barrier_init, __pthread_barrier_init, - GLIBC_PRIVATE); libc_hidden_ver (___pthread_barrier_init, __pthread_barrier_init) +#ifndef SHARED +strong_alias (___pthread_barrier_init, __pthread_barrier_init) +#endif #if OTHER_SHLIB_COMPAT (libpthread, GLIBC_2_2, GLIBC_2_34) compat_symbol (libpthread, ___pthread_barrier_init, pthread_barrier_init, diff --git a/nptl/pthread_barrier_wait.c b/nptl/pthread_barrier_wait.c index 4f8abe16bb..10b68c1c35 100644 --- a/nptl/pthread_barrier_wait.c +++ b/nptl/pthread_barrier_wait.c @@ -223,9 +223,10 @@ ___pthread_barrier_wait (pthread_barrier_t *barrier) } versioned_symbol (libc, ___pthread_barrier_wait, pthread_barrier_wait, GLIBC_2_34); -versioned_symbol (libc, ___pthread_barrier_wait, __pthread_barrier_wait, - GLIBC_PRIVATE); libc_hidden_ver (___pthread_barrier_wait, __pthread_barrier_wait) +#ifndef SHARED +strong_alias (___pthread_barrier_wait, __pthread_barrier_wait) +#endif #if OTHER_SHLIB_COMPAT (libpthread, GLIBC_2_2, GLIBC_2_34) compat_symbol (libpthread, ___pthread_barrier_wait, pthread_barrier_wait, diff --git a/nptl/pthread_cond_wait.c b/nptl/pthread_cond_wait.c index daba8600fe..dc8c511f1a 100644 --- a/nptl/pthread_cond_wait.c +++ b/nptl/pthread_cond_wait.c @@ -699,9 +699,10 @@ ___pthread_cond_clockwait (pthread_cond_t *cond, pthread_mutex_t *mutex, return __pthread_cond_clockwait64 (cond, mutex, clockid, &ts64); } #endif /* __TIMESIZE == 64 */ -versioned_symbol (libc, ___pthread_cond_clockwait, - __pthread_cond_clockwait, GLIBC_PRIVATE); libc_hidden_ver (___pthread_cond_clockwait, __pthread_cond_clockwait) +#ifndef SHARED +strong_alias (___pthread_cond_clockwait, __pthread_cond_clockwait) +#endif versioned_symbol (libc, ___pthread_cond_clockwait, pthread_cond_clockwait, GLIBC_2_34); #if OTHER_SHLIB_COMPAT (libpthread, GLIBC_2_30, GLIBC_2_34) diff --git a/nptl/pthread_mutex_timedlock.c b/nptl/pthread_mutex_timedlock.c index 5afd6222d6..11ad7005d0 100644 --- a/nptl/pthread_mutex_timedlock.c +++ b/nptl/pthread_mutex_timedlock.c @@ -598,9 +598,10 @@ ___pthread_mutex_clocklock (pthread_mutex_t *mutex, return ___pthread_mutex_clocklock64 (mutex, clockid, &ts64); } #endif /* __TIMESPEC64 != 64 */ -versioned_symbol (libc, ___pthread_mutex_clocklock, - __pthread_mutex_clocklock, GLIBC_PRIVATE); libc_hidden_ver (___pthread_mutex_clocklock, __pthread_mutex_clocklock) +#ifndef SHARED +strong_alias (___pthread_mutex_clocklock, __pthread_mutex_clocklock) +#endif versioned_symbol (libc, ___pthread_mutex_clocklock, pthread_mutex_clocklock, GLIBC_2_34); #if OTHER_SHLIB_COMPAT (libpthread, GLIBC_2_30, GLIBC_2_34) diff --git a/nptl/pthread_testcancel.c b/nptl/pthread_testcancel.c index 920374643a..31185d89f2 100644 --- a/nptl/pthread_testcancel.c +++ b/nptl/pthread_testcancel.c @@ -35,9 +35,10 @@ ___pthread_testcancel (void) } } versioned_symbol (libc, ___pthread_testcancel, pthread_testcancel, GLIBC_2_34); -versioned_symbol (libc, ___pthread_testcancel, __pthread_testcancel, - GLIBC_PRIVATE); libc_hidden_ver (___pthread_testcancel, __pthread_testcancel) +#ifndef SHARED +strong_alias (___pthread_testcancel, __pthread_testcancel) +#endif #if OTHER_SHLIB_COMPAT (libpthread, GLIBC_2_0, GLIBC_2_34) compat_symbol (libc, ___pthread_testcancel, pthread_testcancel, GLIBC_2_0); From patchwork Tue Jul 6 17:22:19 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Florian Weimer X-Patchwork-Id: 44184 Return-Path: X-Original-To: patchwork@sourceware.org Delivered-To: patchwork@sourceware.org Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 51D073890407 for ; Tue, 6 Jul 2021 17:25:40 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 51D073890407 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sourceware.org; s=default; t=1625592340; bh=zxt44xLTQqpK5z9ZJ9eihwsKdkFuCl+SicjGFgjs4DA=; h=To:Subject:In-Reply-To:References:Date:List-Id:List-Unsubscribe: List-Archive:List-Post:List-Help:List-Subscribe:From:Reply-To: From; b=daoSUW3lOdQ6/dwcCdEFZ0AOTEj/ORm1JlG46kVNtE30GBic4LTHuOawOZsd3DfTT 8FZBdFCFrfRzn+bHtlU5ArkojZUknv3fSlWp2nPFaTyU0zRz9xHGsrZ4CI9fu/jyU3 LYB1XpFzXoRLk57Snl2mQPwVM+dS/BsdemBNvEB0= X-Original-To: libc-alpha@sourceware.org Delivered-To: libc-alpha@sourceware.org Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [216.205.24.124]) by sourceware.org (Postfix) with ESMTP id 202EF388F002 for ; Tue, 6 Jul 2021 17:22:28 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 202EF388F002 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-321-850FJrzTOACdaCMMnzgvUA-1; Tue, 06 Jul 2021 13:22:23 -0400 X-MC-Unique: 850FJrzTOACdaCMMnzgvUA-1 Received: from smtp.corp.redhat.com (int-mx05.intmail.prod.int.phx2.redhat.com [10.5.11.15]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id D14621800D41 for ; Tue, 6 Jul 2021 17:22:22 +0000 (UTC) Received: from oldenburg.str.redhat.com (ovpn-115-5.ams2.redhat.com [10.36.115.5]) by smtp.corp.redhat.com (Postfix) with ESMTPS id C28165D6CF for ; Tue, 6 Jul 2021 17:22:21 +0000 (UTC) To: libc-alpha@sourceware.org Subject: [PATCH 4/4] elf: Clean up GLIBC_PRIVATE exports of internal libdl symbols In-Reply-To: References: X-From-Line: 15a8064ccf12caf7ba1088de4b3022aae75610d2 Mon Sep 17 00:00:00 2001 Message-Id: <15a8064ccf12caf7ba1088de4b3022aae75610d2.1625591725.git.fweimer@redhat.com> Date: Tue, 06 Jul 2021 19:22:19 +0200 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.15 X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com X-Spam-Status: No, score=-11.8 required=5.0 tests=BAYES_00, DKIMWL_WL_HIGH, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, GIT_PATCH_0, KAM_SHORT, KAM_STOCKGEN, RCVD_IN_DNSWL_LOW, RCVD_IN_MSPIKE_H4, RCVD_IN_MSPIKE_WL, SPF_HELO_NONE, SPF_NONE, TXREP, URIBL_BLACK 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-Patchwork-Original-From: Florian Weimer via Libc-alpha From: Florian Weimer Reply-To: Florian Weimer Errors-To: libc-alpha-bounces+patchwork=sourceware.org@sourceware.org Sender: "Libc-alpha" They are no longer needed after everything has been moved into libc. The _dl_vsym test has to be removed because the symbol cannot be used outside libc anymore. --- dlfcn/dlerror.c | 1 - elf/Makefile | 16 ++--- elf/Versions | 3 - elf/dl-addr.c | 1 - elf/dl-libc.c | 4 -- elf/dl-sym.c | 2 - elf/tst-libc_dlvsym-dso.c | 25 ------- elf/tst-libc_dlvsym-static.c | 32 --------- elf/tst-libc_dlvsym.c | 34 --------- elf/tst-libc_dlvsym.h | 130 ----------------------------------- include/dlfcn.h | 30 ++++---- 11 files changed, 18 insertions(+), 260 deletions(-) delete mode 100644 elf/tst-libc_dlvsym-dso.c delete mode 100644 elf/tst-libc_dlvsym-static.c delete mode 100644 elf/tst-libc_dlvsym.c delete mode 100644 elf/tst-libc_dlvsym.h diff --git a/dlfcn/dlerror.c b/dlfcn/dlerror.c index d0194a7cef..5047b14066 100644 --- a/dlfcn/dlerror.c +++ b/dlfcn/dlerror.c @@ -196,4 +196,3 @@ _dlerror_run (void (*operate) (void *), void *args) return 1; } } -libc_hidden_def (_dlerror_run) diff --git a/elf/Makefile b/elf/Makefile index 698a6ab985..b1e01d9516 100644 --- a/elf/Makefile +++ b/elf/Makefile @@ -165,7 +165,7 @@ tests-static-normal := tst-leaks1-static tst-array1-static tst-array5-static \ tests-static-internal := tst-tls1-static tst-tls2-static \ tst-ptrguard1-static tst-stackguard1-static \ - tst-tls1-static-non-pie tst-libc_dlvsym-static + tst-tls1-static-non-pie CRT-tst-tls1-static-non-pie := $(csu-objpfx)crt1.o tst-tls1-static-non-pie-no-pie = yes @@ -229,7 +229,7 @@ tests += restest1 preloadtest loadfail multiload origtest resolvfail \ tests-internal += loadtest unload unload2 circleload1 \ neededtest neededtest2 neededtest3 neededtest4 \ tst-tls3 tst-tls6 tst-tls7 tst-tls8 tst-dlmopen2 \ - tst-ptrguard1 tst-stackguard1 tst-libc_dlvsym \ + tst-ptrguard1 tst-stackguard1 \ tst-create_format1 tst-tls-surplus tst-dl-hwcaps_split tests-container += tst-pldd tst-dlopen-tlsmodid-container \ tst-dlopen-self-container tst-preload-pthread-libc @@ -326,7 +326,7 @@ modules-names = testobj1 testobj2 testobj3 testobj4 testobj5 testobj6 \ tst-audit12mod1 tst-audit12mod2 tst-audit12mod3 tst-auditmod12 \ tst-latepthreadmod $(tst-tls-many-dynamic-modules) \ tst-nodelete-dlclose-dso tst-nodelete-dlclose-plugin \ - tst-main1mod tst-libc_dlvsym-dso tst-absolute-sym-lib \ + tst-main1mod tst-absolute-sym-lib \ tst-absolute-zero-lib tst-big-note-lib tst-unwind-ctor-lib \ tst-audit13mod1 tst-sonamemove-linkmod1 \ tst-sonamemove-runmod1 tst-sonamemove-runmod2 \ @@ -352,7 +352,7 @@ modules-names = testobj1 testobj2 testobj3 testobj4 testobj5 testobj6 \ # Most modules build with _ISOMAC defined, but those filtered out # depend on internal headers. -modules-names-tests = $(filter-out ifuncmod% tst-libc_dlvsym-dso tst-tlsmod%,\ +modules-names-tests = $(filter-out ifuncmod% tst-tlsmod%,\ $(modules-names)) ifeq (yes,$(have-mtls-dialect-gnu2)) @@ -1582,14 +1582,6 @@ LDLIBS-tst-absolute-zero-lib.so = tst-absolute-zero-lib.lds $(objpfx)tst-absolute-zero-lib.so: $(LDLIBS-tst-absolute-zero-lib.so) $(objpfx)tst-absolute-zero: $(objpfx)tst-absolute-zero-lib.so -# Both the main program and the DSO for tst-libc_dlvsym need to link -# against libdl. -$(objpfx)tst-libc_dlvsym-dso.so: $(libsupport) -$(objpfx)tst-libc_dlvsym.out: $(objpfx)tst-libc_dlvsym-dso.so -tst-libc_dlvsym-static-ENV = \ - LD_LIBRARY_PATH=$(ld-library-path):$(common-objpfx)dlfcn -$(objpfx)tst-libc_dlvsym-static.out: $(objpfx)tst-libc_dlvsym-dso.so - $(objpfx)tst-big-note: $(objpfx)tst-big-note-lib.so # Avoid creating an ABI tag note, which may come before the # artificial, large note in tst-big-note-lib.o and invalidate the diff --git a/elf/Versions b/elf/Versions index a12d64e8db..775aab62af 100644 --- a/elf/Versions +++ b/elf/Versions @@ -22,9 +22,6 @@ libc { %endif GLIBC_PRIVATE { # functions used in other libraries - _dl_addr; - _dl_sym; _dl_vsym; - __libc_dlclose; __libc_dlopen_mode; __libc_dlsym; __libc_dlvsym; __libc_early_init; # Internal error handling support. Interposes the functions in ld.so. diff --git a/elf/dl-addr.c b/elf/dl-addr.c index 70a60d5b91..3226880d48 100644 --- a/elf/dl-addr.c +++ b/elf/dl-addr.c @@ -142,4 +142,3 @@ _dl_addr (const void *address, Dl_info *info, return result; } -libc_hidden_def (_dl_addr) diff --git a/elf/dl-libc.c b/elf/dl-libc.c index ba792e9589..d5bc4a277f 100644 --- a/elf/dl-libc.c +++ b/elf/dl-libc.c @@ -162,7 +162,6 @@ __libc_dlopen_mode (const char *name, int mode) #endif return dlerror_run (do_dlopen, &args) ? NULL : (void *) args.map; } -libc_hidden_def (__libc_dlopen_mode) #ifndef SHARED void * @@ -192,7 +191,6 @@ __libc_dlsym (void *map, const char *name) return (dlerror_run (do_dlsym, &args) ? NULL : (void *) (DL_SYMBOL_ADDRESS (args.loadbase, args.ref))); } -libc_hidden_def (__libc_dlsym) /* Replacement for dlvsym. MAP must be a real map. This function returns NULL without setting the dlerror value in case of static @@ -219,7 +217,6 @@ __libc_dlvsym (void *map, const char *name, const char *version) : (void *) (DL_SYMBOL_ADDRESS (args.dlsym.loadbase, args.dlsym.ref))); } -libc_hidden_def (__libc_dlvsym) int __libc_dlclose (void *map) @@ -230,7 +227,6 @@ __libc_dlclose (void *map) #endif return dlerror_run (do_dlclose, map); } -libc_hidden_def (__libc_dlclose) static bool __libc_freeres_fn_section diff --git a/elf/dl-sym.c b/elf/dl-sym.c index fa0cce678f..de5769f926 100644 --- a/elf/dl-sym.c +++ b/elf/dl-sym.c @@ -188,11 +188,9 @@ _dl_vsym (void *handle, const char *name, const char *version, void *who) return do_sym (handle, name, who, &vers, 0); } -libc_hidden_def (_dl_vsym) void * _dl_sym (void *handle, const char *name, void *who) { return do_sym (handle, name, who, NULL, DL_LOOKUP_RETURN_NEWEST); } -libc_hidden_def (_dl_sym) diff --git a/elf/tst-libc_dlvsym-dso.c b/elf/tst-libc_dlvsym-dso.c deleted file mode 100644 index 19091ddb41..0000000000 --- a/elf/tst-libc_dlvsym-dso.c +++ /dev/null @@ -1,25 +0,0 @@ -/* Compare dlvsym and __libc_dlvsym results. Shared object code. - Copyright (C) 2017-2021 Free Software Foundation, Inc. - This file is part of the GNU C Library. - - The GNU C Library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - The GNU C Library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with the GNU C Library; if not, see - . */ - -#include "tst-libc_dlvsym.h" - -void -compare_vsyms_global (void) -{ - compare_vsyms (); -} diff --git a/elf/tst-libc_dlvsym-static.c b/elf/tst-libc_dlvsym-static.c deleted file mode 100644 index 19c438c3cd..0000000000 --- a/elf/tst-libc_dlvsym-static.c +++ /dev/null @@ -1,32 +0,0 @@ -/* Compare dlvsym and __libc_dlvsym results. Static version. - Copyright (C) 2017-2021 Free Software Foundation, Inc. - This file is part of the GNU C Library. - - The GNU C Library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - The GNU C Library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with the GNU C Library; if not, see - . */ - -#include - -static int -do_test (void) -{ - void *handle = xdlopen ("tst-libc_dlvsym-dso.so", RTLD_LAZY); - void (*compare) (void) = xdlsym (handle, "compare_vsyms_global"); - compare (); - xdlclose (handle); - - return 0; -} - -#include diff --git a/elf/tst-libc_dlvsym.c b/elf/tst-libc_dlvsym.c deleted file mode 100644 index 823643fb1c..0000000000 --- a/elf/tst-libc_dlvsym.c +++ /dev/null @@ -1,34 +0,0 @@ -/* Compare dlvsym and __libc_dlvsym results. Dynamic version. - Copyright (C) 2017-2021 Free Software Foundation, Inc. - This file is part of the GNU C Library. - - The GNU C Library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - The GNU C Library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with the GNU C Library; if not, see - . */ - -#include "tst-libc_dlvsym.h" - -static int -do_test (void) -{ - compare_vsyms (); - - void *handle = xdlopen ("tst-libc_dlvsym-dso.so", RTLD_LAZY); - void (*compare) (void) = xdlsym (handle, "compare_vsyms_global"); - compare (); - xdlclose (handle); - - return 0; -} - -#include diff --git a/elf/tst-libc_dlvsym.h b/elf/tst-libc_dlvsym.h deleted file mode 100644 index 1a8f2e9271..0000000000 --- a/elf/tst-libc_dlvsym.h +++ /dev/null @@ -1,130 +0,0 @@ -/* Compare dlvsym and __libc_dlvsym results. Common code. - Copyright (C) 2017-2021 Free Software Foundation, Inc. - This file is part of the GNU C Library. - - The GNU C Library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - The GNU C Library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with the GNU C Library; if not, see - . */ - -/* compare_vsyms is the main entry point for these tests. - - Indirectly, It calls __libc_dlvsym (from libc.so; internal - interface) and dlvsym (from libdl.so; public interface) to compare - the results for a selected set of symbols in libc.so which - typically have more than one symbol version. The two functions are - implemented by somewhat different code, and this test checks that - their results are the same. - - The versions are generated to range from GLIBC_2.0 to GLIBC_2.Y, - with Y being the current __GLIBC_MINOR__ version plus two. In - addition, there is a list of special symbol versions of the form - GLIBC_2.Y.Z, which were used for some releases. - - Comparing the two dlvsym results at versions which do not actually - exist does not test much, but it will not contribute to false test - failures, either. */ - -#include -#include -#include -#include -#include -#include - -/* Run consistency check for versioned symbol NAME@VERSION. NB: We - may execute in a shared object, so exit on error for proper error - reporting. */ -static void -compare_vsyms_0 (void *libc_handle, const char *name, const char *version, - bool *pfound) -{ - void *dlvsym_address = dlvsym (libc_handle, name, version); - void *libc_dlvsym_address - = __libc_dlvsym (libc_handle, name, version); - if (dlvsym_address != libc_dlvsym_address) - FAIL_EXIT1 ("%s@%s mismatch: %p != %p", - name, version, dlvsym_address, libc_dlvsym_address); - if (dlvsym_address != NULL) - *pfound = true; -} - - -/* Run consistency check for versioned symbol NAME at multiple symbol - version. */ -static void -compare_vsyms_1 (void *libc_handle, const char *name) -{ - bool found = false; - - /* Historic versions which do not follow the usual GLIBC_2.Y - pattern, to increase test coverage. Not all architectures have - those, but probing additional versions does not hurt. */ - static const char special_versions[][12] = - { - "GLIBC_2.1.1", - "GLIBC_2.1.2", - "GLIBC_2.1.3", - "GLIBC_2.1.4", - "GLIBC_2.2.1", - "GLIBC_2.2.2", - "GLIBC_2.2.3", - "GLIBC_2.2.4", - "GLIBC_2.2.5", - "GLIBC_2.2.6", - "GLIBC_2.3.2", - "GLIBC_2.3.3", - "GLIBC_2.3.4", - }; - for (int i = 0; i < array_length (special_versions); ++i) - compare_vsyms_0 (libc_handle, name, special_versions[i], &found); - - /* Iterate to an out-of-range version, to cover some unused symbols - as well. */ - for (int minor_version = 0; minor_version <= __GLIBC_MINOR__ + 2; - ++minor_version) - { - char version[30]; - snprintf (version, sizeof (version), "GLIBC_%d.%d", - __GLIBC__, minor_version); - compare_vsyms_0 (libc_handle, name, version, &found); - } - - if (!found) - FAIL_EXIT1 ("symbol %s not found at any version", name); -} - -/* Run consistency checks for various symbols which usually have - multiple versions. */ -static void -compare_vsyms (void) -{ - /* The minor version loop in compare_vsyms_1 needs updating in case - we ever switch to glibc 3.0. */ - if (__GLIBC__ != 2) - FAIL_EXIT1 ("unexpected glibc major version: %d", __GLIBC__); - - /* __libc_dlvsym does not recognize the special RTLD_* handles, so - obtain an explicit handle for libc.so. */ - void *libc_handle = xdlopen (LIBC_SO, RTLD_LAZY | RTLD_NOLOAD); - - - /* sys_errlist and sys_siglist were deprecated in glibc 2.32 and they are - not available on architectures with base ABI newer than 2.32. */ -#if TEST_COMPAT (libc, GLIBC_2_0, GLIBC_2_32) - compare_vsyms_1 (libc_handle, "_sys_errlist"); - compare_vsyms_1 (libc_handle, "_sys_siglist"); -#endif - compare_vsyms_1 (libc_handle, "quick_exit"); - - xdlclose (libc_handle); -} diff --git a/include/dlfcn.h b/include/dlfcn.h index d4440c567e..a4c283728f 100644 --- a/include/dlfcn.h +++ b/include/dlfcn.h @@ -45,20 +45,20 @@ extern char **__libc_argv attribute_hidden; better error handling semantics for the library. */ #define __libc_dlopen(name) \ __libc_dlopen_mode (name, RTLD_NOW | __RTLD_DLOPEN) -extern void *__libc_dlopen_mode (const char *__name, int __mode); -extern void *__libc_dlsym (void *__map, const char *__name); -extern void *__libc_dlvsym (void *map, const char *name, const char *version); -extern int __libc_dlclose (void *__map); -libc_hidden_proto (__libc_dlopen_mode) -libc_hidden_proto (__libc_dlsym) -libc_hidden_proto (__libc_dlvsym) -libc_hidden_proto (__libc_dlclose) +extern void *__libc_dlopen_mode (const char *__name, int __mode) + attribute_hidden; +extern void *__libc_dlsym (void *__map, const char *__name) + attribute_hidden; +extern void *__libc_dlvsym (void *map, const char *name, const char *version) + attribute_hidden; +extern int __libc_dlclose (void *__map) + attribute_hidden; /* Locate shared object containing the given address. */ #ifdef ElfW extern int _dl_addr (const void *address, Dl_info *info, - struct link_map **mapp, const ElfW(Sym) **symbolp); -libc_hidden_proto (_dl_addr) + struct link_map **mapp, const ElfW(Sym) **symbolp) + attribute_hidden; #endif struct link_map; @@ -73,23 +73,21 @@ extern void _dl_close_worker (struct link_map *map, bool force) /* Look up NAME in shared object HANDLE (which may be RTLD_DEFAULT or RTLD_NEXT). WHO is the calling function, for RTLD_NEXT. Returns the symbol value, which may be NULL. */ -extern void *_dl_sym (void *handle, const char *name, void *who); -libc_hidden_proto (_dl_sym) +extern void *_dl_sym (void *handle, const char *name, void *who) + attribute_hidden; /* Look up version VERSION of symbol NAME in shared object HANDLE (which may be RTLD_DEFAULT or RTLD_NEXT). WHO is the calling function, for RTLD_NEXT. Returns the symbol value, which may be NULL. */ extern void *_dl_vsym (void *handle, const char *name, const char *version, - void *who); -libc_hidden_proto (_dl_vsym) + void *who) attribute_hidden; /* Helper function for functions. Runs the OPERATE function via _dl_catch_error. Returns zero for success, nonzero for failure; and arranges for `dlerror' to return the error details. ARGS is passed as argument to OPERATE. */ -extern int _dlerror_run (void (*operate) (void *), void *args); -libc_hidden_proto (_dlerror_run) +extern int _dlerror_run (void (*operate) (void *), void *args) attribute_hidden; /* This structure is used to make the outer (statically linked) implementation of dlopen and related functions to the inner libc