From patchwork Tue May 25 14:44:42 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Florian Weimer X-Patchwork-Id: 43568 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 5E746393A404; Tue, 25 May 2021 14:44:56 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 5E746393A404 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sourceware.org; s=default; t=1621953896; bh=rV/QqFPR5+EAHf7GzNeEFi1AxNu/SZWVR/qmwMAxLTU=; h=To:Subject:Date:List-Id:List-Unsubscribe:List-Archive:List-Post: List-Help:List-Subscribe:From:Reply-To:From; b=TqiAYUneK59e2wKfc9uWtt6FHxbcBk/xGpiK4Q+CeJ3cCJhxSiMOXsmGC5ojFLv0S sXKGH+Td68swMoXycEw916TzSqZl4XMZluGH3rJqvbWcwiHeuDje/3fS0+WjMfuxCF w/FTozjJJY8aEVSFbnlhaVYu6buSd/F0bEOEz1KU= 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 34071385781D for ; Tue, 25 May 2021 14:44:53 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.3.2 sourceware.org 34071385781D 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-107-bbcQRfXKPTi3BS8aoxIKew-1; Tue, 25 May 2021 10:44:46 -0400 X-MC-Unique: bbcQRfXKPTi3BS8aoxIKew-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 99DB1C73B8 for ; Tue, 25 May 2021 14:44:45 +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 B75A95C1C2 for ; Tue, 25 May 2021 14:44:44 +0000 (UTC) To: libc-alpha@sourceware.org Subject: [PATCH v2 00/14] Move libdl into libc X-From-Line: cea3b14275930d7bf1aaed9dc8cc893424787444 Mon Sep 17 00:00:00 2001 Message-Id: Date: Tue, 25 May 2021 16:44:42 +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" This is a rebased repost of the previous patch series. The last two patches are optional. The second patch with the ABI extension kludge is relevant to libanl/librt/libutil as well, so I'd very much like to see some review of it. I updated the “dlfcn: Cleanups after -ldl is no longer required” patch to suppress installation of libdl.so, and made sure that libdl.a is actually empty (there was an old makefile bug that caused dlfcn.o to be built in addition to dlfcn.os). Thanks, Florian Florian Weimer (14): stdio-common: Remove _IO_vfwscanf 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 | 3 +- 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 | 3 +- 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 +++----- malloc/Makefile | 3 - misc/Makefile | 2 - nptl/Makefile | 7 - nss/Makefile | 5 - resolv/Makefile | 19 +- scripts/versions.awk | 36 +++- stdio-common/Makefile | 2 +- stdio-common/iovfwscanf.c | 38 ---- stdlib/Makefile | 8 +- string/Makefile | 1 - sysdeps/generic/ldsodefs.h | 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/aarch64/libc.abilist | 18 ++ sysdeps/unix/sysv/linux/aarch64/libdl.abilist | 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/libc.abilist | 19 ++ sysdeps/unix/sysv/linux/i386/libdl.abilist | 14 +- sysdeps/unix/sysv/linux/ia64/Versions | 1 + 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 +- .../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 +- .../linux/powerpc/powerpc32/fpu/libc.abilist | 19 ++ .../linux/powerpc/powerpc32/libdl.abilist | 14 +- .../powerpc/powerpc32/nofpu/libc.abilist | 19 ++ .../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 +- .../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 | 1 + 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 +- .../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 +- 114 files changed, 1134 insertions(+), 963 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