[0/3] Convenience function for allocating (alternate signal) stacks
Message ID | cover.1621511874.git.fweimer@redhat.com |
---|---|
Headers |
Return-Path: <libc-alpha-bounces@sourceware.org> 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 2A99D3848011; Thu, 20 May 2021 12:11:58 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 2A99D3848011 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sourceware.org; s=default; t=1621512718; bh=bKKW676AGUofTxRhLmY51iJuqrucfleOvu2un2BySbQ=; h=To:Subject:Date:List-Id:List-Unsubscribe:List-Archive:List-Post: List-Help:List-Subscribe:From:Reply-To:From; b=mqf+7BOmh6gaA87luZ9Yi9x4x8E0VBSTTRKsl33Ih+zg3RG7fmGBL3XDblqt6U3+b hwrTFAVUZzPBkrZltrW37VmRt+QSajQBL42/+t31zQhUlbhfM/kyyTO5oXLJ8DG+AU ExX7Lb6lvZW1mTw1KPsE/O++c2M6VvR/dx0U2+xs= 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 A6787384800A for <libc-alpha@sourceware.org>; Thu, 20 May 2021 12:11:55 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.3.2 sourceware.org A6787384800A 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-600-9SkxdF3ANaynUMimGCVh2w-1; Thu, 20 May 2021 08:11:53 -0400 X-MC-Unique: 9SkxdF3ANaynUMimGCVh2w-1 Received: from smtp.corp.redhat.com (int-mx08.intmail.prod.int.phx2.redhat.com [10.5.11.23]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id E6C3680DE00; Thu, 20 May 2021 12:11:52 +0000 (UTC) Received: from oldenburg.str.redhat.com (ovpn-112-137.ams2.redhat.com [10.36.112.137]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 1813E9808; Thu, 20 May 2021 12:11:51 +0000 (UTC) To: libc-alpha@sourceware.org Subject: [PATCH 0/3] Convenience function for allocating (alternate signal) stacks X-From-Line: f4c723ef74e5fcfd9e4816b0455b040b8558dba0 Mon Sep 17 00:00:00 2001 Message-Id: <cover.1621511874.git.fweimer@redhat.com> Date: Thu, 20 May 2021 14:11:50 +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.23 X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Type: text/plain 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 <libc-alpha.sourceware.org> List-Unsubscribe: <https://sourceware.org/mailman/options/libc-alpha>, <mailto:libc-alpha-request@sourceware.org?subject=unsubscribe> List-Archive: <https://sourceware.org/pipermail/libc-alpha/> List-Post: <mailto:libc-alpha@sourceware.org> List-Help: <mailto:libc-alpha-request@sourceware.org?subject=help> List-Subscribe: <https://sourceware.org/mailman/listinfo/libc-alpha>, <mailto:libc-alpha-request@sourceware.org?subject=subscribe> From: Florian Weimer via Libc-alpha <libc-alpha@sourceware.org> Reply-To: Florian Weimer <fweimer@redhat.com> Errors-To: libc-alpha-bounces@sourceware.org Sender: "Libc-alpha" <libc-alpha-bounces@sourceware.org> |
Message
Florian Weimer
May 20, 2021, 12:11 p.m. UTC
This complements the _SC_MINSIGSTKSZ changes by wrapping the stack allocation with its size computation in a helper function. Guard pages are also allocated. If this is acceptable, I'll figure out a way to integrate this with threads, so that applications can request an alternate signal stack on thread creation that is automatically deallocated once the thread exits. Thanks, Florian Florian Weimer (3): elf: Initialize GLRO (dl_minsigstacksize) after static dlopen Hurd: Define ARCH_MIN_GUARD_SIZE in internal <pthread.h> Misc: Add <sys/cstack.h> and the cstack_* family of functions NEWS | 4 + elf/rtld_static_init.c | 2 + include/sys/cstack.h | 39 ++++++ manual/memory.texi | 99 ++++++++++++++ manual/signal.texi | 3 + misc/Makefile | 8 +- misc/Versions | 5 + misc/cstack_allocate.c | 125 ++++++++++++++++++ misc/cstack_free.c | 30 +++++ misc/cstack_get.c | 27 ++++ misc/sys/cstack.h | 53 ++++++++ misc/tst-cstack.c | 118 +++++++++++++++++ sysdeps/htl/include/pthread.h | 3 + sysdeps/mach/hurd/i386/libc.abilist | 3 + sysdeps/unix/sysv/linux/aarch64/libc.abilist | 3 + sysdeps/unix/sysv/linux/alpha/libc.abilist | 3 + sysdeps/unix/sysv/linux/arc/libc.abilist | 3 + sysdeps/unix/sysv/linux/arm/be/libc.abilist | 3 + sysdeps/unix/sysv/linux/arm/le/libc.abilist | 3 + sysdeps/unix/sysv/linux/csky/libc.abilist | 3 + sysdeps/unix/sysv/linux/hppa/libc.abilist | 3 + sysdeps/unix/sysv/linux/i386/libc.abilist | 3 + sysdeps/unix/sysv/linux/ia64/libc.abilist | 3 + .../sysv/linux/m68k/coldfire/libc.abilist | 3 + .../unix/sysv/linux/m68k/m680x0/libc.abilist | 3 + .../sysv/linux/microblaze/be/libc.abilist | 3 + .../sysv/linux/microblaze/le/libc.abilist | 3 + .../sysv/linux/mips/mips32/fpu/libc.abilist | 3 + .../sysv/linux/mips/mips32/nofpu/libc.abilist | 3 + .../sysv/linux/mips/mips64/n32/libc.abilist | 3 + .../sysv/linux/mips/mips64/n64/libc.abilist | 3 + sysdeps/unix/sysv/linux/nios2/libc.abilist | 3 + .../linux/powerpc/powerpc32/fpu/libc.abilist | 3 + .../powerpc/powerpc32/nofpu/libc.abilist | 3 + .../linux/powerpc/powerpc64/be/libc.abilist | 3 + .../linux/powerpc/powerpc64/le/libc.abilist | 3 + .../unix/sysv/linux/riscv/rv32/libc.abilist | 3 + .../unix/sysv/linux/riscv/rv64/libc.abilist | 3 + .../unix/sysv/linux/s390/s390-32/libc.abilist | 3 + .../unix/sysv/linux/s390/s390-64/libc.abilist | 3 + sysdeps/unix/sysv/linux/sh/be/libc.abilist | 3 + sysdeps/unix/sysv/linux/sh/le/libc.abilist | 3 + .../sysv/linux/sparc/sparc32/libc.abilist | 3 + .../sysv/linux/sparc/sparc64/libc.abilist | 3 + .../unix/sysv/linux/x86_64/64/libc.abilist | 3 + .../unix/sysv/linux/x86_64/x32/libc.abilist | 3 + 46 files changed, 612 insertions(+), 3 deletions(-) create mode 100644 include/sys/cstack.h create mode 100644 misc/cstack_allocate.c create mode 100644 misc/cstack_free.c create mode 100644 misc/cstack_get.c create mode 100644 misc/sys/cstack.h create mode 100644 misc/tst-cstack.c