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 ESMTP id A6787384800A for ; 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) From: Florian Weimer 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: 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 List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 20 May 2021 12:11:57 -0000 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 Misc: Add 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 -- 2.31.1