From patchwork Mon May 31 14:10:57 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Florian Weimer X-Patchwork-Id: 43624 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 C75D63850430; Mon, 31 May 2021 14:11:07 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org C75D63850430 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sourceware.org; s=default; t=1622470267; bh=TV03erLXRaEPcyCBEGZXy5KH+pnIcuMFXMa7M6d2JUE=; h=To:Subject:Date:List-Id:List-Unsubscribe:List-Archive:List-Post: List-Help:List-Subscribe:From:Reply-To:From; b=J1uh3BYtPGTnQVcvbqGMpA34l9c3R9JnDZCSLWQ9HSdlr+aAszbCIJ2MKiuSGqz76 JFno3zK6kSlTb+xwrj1htUGhVzB0gzjQkb1jhwmE5RZG/0MRn0/wYfy2MlElTbDnco Nw6U5KtVAZE2WhmnmNE4E/tXRfs6lEuTpNMMkq+Q= 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 F02483857403 for ; Mon, 31 May 2021 14:11:03 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.3.2 sourceware.org F02483857403 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-268-PfzCPZtiPs2IL0NVZ3uAXw-1; Mon, 31 May 2021 10:11:01 -0400 X-MC-Unique: PfzCPZtiPs2IL0NVZ3uAXw-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 3E171107ACC7 for ; Mon, 31 May 2021 14:11:00 +0000 (UTC) Received: from oldenburg.str.redhat.com (ovpn-113-228.ams2.redhat.com [10.36.113.228]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 730DC5C1B4 for ; Mon, 31 May 2021 14:10:59 +0000 (UTC) To: libc-alpha@sourceware.org Subject: [PATCH v3 00/16] Move libdl into libc X-From-Line: 3c052fb456744cea69254e95a78a331579068b55 Mon Sep 17 00:00:00 2001 Message-Id: Date: Mon, 31 May 2021 16:10:57 +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.16 X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com X-Spam-Status: No, score=-6.7 required=5.0 tests=BAYES_00, DKIMWL_WL_HIGH, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, RCVD_IN_DNSWL_LOW, RCVD_IN_MSPIKE_H4, RCVD_IN_MSPIKE_WL, SPF_HELO_NONE, SPF_PASS, TXREP autolearn=ham autolearn_force=no version=3.4.2 X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) 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@sourceware.org Sender: "Libc-alpha" Changes from v2: I removed a couple more references to _IO_vfwscanf. The ABI extension kludge no longer lists symbols explicitly. Instead, it relies on correctness of the compat_symbol macros. These macros are already tested on other architectures, and they are also tested on the affected architectures against the abilist files, so this should be acceptable. To make things more explicit, I added additional uses of local: * to the generated version script, which in turn needs some Versions file updates. dlfcn/tststatic2 now uses _exit instead of malloc as the test symbol and has a comment about it. Tested on i686-linux-gnu, x86_64-linux-gnu. Built by build-many-glibcs.py. Florian Weimer (16): stdio-common: Remove _IO_vfwscanf Add missing symbols to Version files scripts/versions.awk: Add local: * to all version nodes Add libc ABI extension kludge for baseline-violating libdl symbols dlfcn: Move dlerror into libc dlfcn: Move dlclose into libc dlfcn: Move dladdr into libc dlfcn: Move dlsym into libc dlfcn: Move dlmopen into libc dlfcn: Move dladdr1 into libc dlfcn: Move dlinfo into libc dlfcn: Move dlvsym into libc dlfcn: Move dlopen into libc dlfcn: Cleanups after -ldl is no longer required dlfcn: Eliminate GLIBC_PRIVATE dependency from tststatic2 dlfcn: Rework static dlopen hooks Makeconfig | 6 - dlfcn/Makefile | 55 +++--- dlfcn/Versions | 42 ++++- dlfcn/dladdr.c | 24 +-- dlfcn/dladdr1.c | 24 +-- dlfcn/dlclose.c | 32 +--- dlfcn/dlerror.c | 67 ++----- dlfcn/dlfcn.c | 41 +++-- dlfcn/dlinfo.c | 47 ++--- dlfcn/dlmopen.c | 67 +++---- dlfcn/dlopen.c | 76 ++++---- dlfcn/dlopenold.c | 6 +- dlfcn/dlsym.c | 59 +++--- dlfcn/dlvsym.c | 67 ++++--- dlfcn/modstatic2.c | 10 +- dlfcn/sdladdr.c | 1 - dlfcn/sdladdr1.c | 1 - dlfcn/sdlclose.c | 1 - dlfcn/sdlerror.c | 1 - dlfcn/sdlinfo.c | 1 - dlfcn/sdlmopen.c | 1 - dlfcn/sdlopen.c | 1 - dlfcn/sdlsym.c | 1 - dlfcn/sdlvsym.c | 1 - dlfcn/tststatic2.c | 10 +- elf/Makefile | 173 +++--------------- elf/Versions | 1 - elf/dl-libc.c | 73 +------- elf/dl-sym.c | 3 +- elf/rtld_static_init.c | 18 ++ htl/Makefile | 1 - iconvdata/Makefile | 1 - include/dlfcn.h | 81 +++----- inet/Versions | 2 +- io/Versions | 1 + libio/Versions | 2 + libio/libio.h | 2 - malloc/Makefile | 3 - misc/Makefile | 2 - nptl/Makefile | 7 - nptl/Versions | 8 + nss/Makefile | 5 - posix/Versions | 4 + resolv/Makefile | 19 +- scripts/versions.awk | 32 +++- stdio-common/Makefile | 2 +- stdio-common/iovfwscanf.c | 38 ---- stdlib/Makefile | 8 +- string/Makefile | 1 - sysdeps/generic/ldsodefs.h | 3 + sysdeps/ieee754/ldbl-128ibm-compat/Makefile | 1 - sysdeps/mach/hurd/i386/Versions | 3 + sysdeps/mach/hurd/i386/libc.abilist | 18 ++ sysdeps/mach/hurd/i386/libdl.abilist | 12 +- sysdeps/mips/Makefile | 1 - sysdeps/pthread/Makefile | 6 +- sysdeps/unix/sysv/linux/Versions | 12 ++ sysdeps/unix/sysv/linux/aarch64/libc.abilist | 18 ++ sysdeps/unix/sysv/linux/aarch64/libdl.abilist | 10 +- sysdeps/unix/sysv/linux/alpha/Versions | 10 +- sysdeps/unix/sysv/linux/alpha/libc.abilist | 19 ++ sysdeps/unix/sysv/linux/alpha/libdl.abilist | 14 +- sysdeps/unix/sysv/linux/arc/libc.abilist | 18 ++ sysdeps/unix/sysv/linux/arc/libdl.abilist | 10 +- sysdeps/unix/sysv/linux/arm/be/libc.abilist | 18 ++ sysdeps/unix/sysv/linux/arm/be/libdl.abilist | 10 +- sysdeps/unix/sysv/linux/arm/le/libc.abilist | 18 ++ sysdeps/unix/sysv/linux/arm/le/libdl.abilist | 10 +- sysdeps/unix/sysv/linux/csky/libc.abilist | 18 ++ sysdeps/unix/sysv/linux/csky/libdl.abilist | 10 +- sysdeps/unix/sysv/linux/hppa/Versions | 1 + sysdeps/unix/sysv/linux/hppa/libc.abilist | 19 ++ sysdeps/unix/sysv/linux/hppa/libdl.abilist | 14 +- sysdeps/unix/sysv/linux/i386/Versions | 4 - sysdeps/unix/sysv/linux/i386/libc.abilist | 19 ++ sysdeps/unix/sysv/linux/i386/libdl.abilist | 14 +- sysdeps/unix/sysv/linux/ia64/Versions | 11 +- sysdeps/unix/sysv/linux/ia64/libc.abilist | 19 ++ sysdeps/unix/sysv/linux/ia64/libdl.abilist | 14 +- .../sysv/linux/m68k/coldfire/libc.abilist | 18 ++ .../sysv/linux/m68k/coldfire/libdl.abilist | 10 +- .../unix/sysv/linux/m68k/m680x0/libc.abilist | 19 ++ .../unix/sysv/linux/m68k/m680x0/libdl.abilist | 14 +- .../sysv/linux/microblaze/be/libc.abilist | 18 ++ .../sysv/linux/microblaze/be/libdl.abilist | 10 +- .../sysv/linux/microblaze/le/libc.abilist | 18 ++ .../sysv/linux/microblaze/le/libdl.abilist | 10 +- sysdeps/unix/sysv/linux/mips/Versions | 4 + .../sysv/linux/mips/mips32/fpu/libc.abilist | 19 ++ .../unix/sysv/linux/mips/mips32/libdl.abilist | 14 +- .../sysv/linux/mips/mips32/nofpu/libc.abilist | 19 ++ .../unix/sysv/linux/mips/mips64/libdl.abilist | 14 +- .../sysv/linux/mips/mips64/n32/libc.abilist | 19 ++ .../sysv/linux/mips/mips64/n64/libc.abilist | 19 ++ sysdeps/unix/sysv/linux/nios2/libc.abilist | 18 ++ sysdeps/unix/sysv/linux/nios2/libdl.abilist | 10 +- sysdeps/unix/sysv/linux/powerpc/Versions | 4 + .../sysv/linux/powerpc/powerpc32/Versions | 8 +- .../linux/powerpc/powerpc32/fpu/libc.abilist | 19 ++ .../linux/powerpc/powerpc32/libdl.abilist | 14 +- .../powerpc/powerpc32/nofpu/libc.abilist | 19 ++ .../sysv/linux/powerpc/powerpc64/Versions | 7 +- .../linux/powerpc/powerpc64/be/libc.abilist | 18 ++ .../linux/powerpc/powerpc64/be/libdl.abilist | 12 +- .../linux/powerpc/powerpc64/le/libc.abilist | 18 ++ .../linux/powerpc/powerpc64/le/libdl.abilist | 10 +- .../unix/sysv/linux/riscv/rv32/libc.abilist | 18 ++ .../unix/sysv/linux/riscv/rv32/libdl.abilist | 10 +- .../unix/sysv/linux/riscv/rv64/libc.abilist | 18 ++ .../unix/sysv/linux/riscv/rv64/libdl.abilist | 10 +- sysdeps/unix/sysv/linux/s390/s390-32/Versions | 3 - .../unix/sysv/linux/s390/s390-32/libc.abilist | 19 ++ .../sysv/linux/s390/s390-32/libdl.abilist | 14 +- .../unix/sysv/linux/s390/s390-64/libc.abilist | 18 ++ .../sysv/linux/s390/s390-64/libdl.abilist | 12 +- sysdeps/unix/sysv/linux/sh/Versions | 4 +- sysdeps/unix/sysv/linux/sh/be/libc.abilist | 19 ++ sysdeps/unix/sysv/linux/sh/be/libdl.abilist | 14 +- sysdeps/unix/sysv/linux/sh/le/libc.abilist | 19 ++ sysdeps/unix/sysv/linux/sh/le/libdl.abilist | 14 +- sysdeps/unix/sysv/linux/sparc/Versions | 11 +- .../unix/sysv/linux/sparc/sparc32/Versions | 3 - .../sysv/linux/sparc/sparc32/libc.abilist | 19 ++ .../sysv/linux/sparc/sparc32/libdl.abilist | 14 +- .../unix/sysv/linux/sparc/sparc64/Versions | 1 + .../sysv/linux/sparc/sparc64/libc.abilist | 19 ++ .../sysv/linux/sparc/sparc64/libdl.abilist | 14 +- .../unix/sysv/linux/x86_64/64/libc.abilist | 18 ++ .../unix/sysv/linux/x86_64/64/libdl.abilist | 12 +- .../unix/sysv/linux/x86_64/x32/libc.abilist | 18 ++ .../unix/sysv/linux/x86_64/x32/libdl.abilist | 10 +- sysdeps/x86/Makefile | 13 +- 132 files changed, 1193 insertions(+), 1016 deletions(-) delete mode 100644 dlfcn/sdladdr.c delete mode 100644 dlfcn/sdladdr1.c delete mode 100644 dlfcn/sdlclose.c delete mode 100644 dlfcn/sdlerror.c delete mode 100644 dlfcn/sdlinfo.c delete mode 100644 dlfcn/sdlmopen.c delete mode 100644 dlfcn/sdlopen.c delete mode 100644 dlfcn/sdlsym.c delete mode 100644 dlfcn/sdlvsym.c delete mode 100644 stdio-common/iovfwscanf.c