From patchwork Thu Oct 1 09:44:58 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Szabolcs Nagy X-Patchwork-Id: 40557 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 906973850416; Thu, 1 Oct 2020 09:45:26 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 906973850416 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sourceware.org; s=default; t=1601545526; bh=FR+DN8KCWl5uXpnvzAYEMMj59imNLuEB/uiDNMdbX5Y=; h=To:Subject:Date:List-Id:List-Unsubscribe:List-Archive:List-Post: List-Help:List-Subscribe:From:Reply-To:From; b=ckENlalQxehKHFR/knWk499tKR4ILKUiaJTP03ErjWTvsOMazcYn47MifGKp3ildJ 9Ce/K7q7yokG3u9XcStSedM2fZAD6RtOslpcyNanhk/lWgL9VKQNkSAtyFayA3d5Jz 7outsIcOg6eMgFuKt+trEP1wVibZ9gsLxecBu3tM= X-Original-To: libc-alpha@sourceware.org Delivered-To: libc-alpha@sourceware.org Received: from EUR02-HE1-obe.outbound.protection.outlook.com (mail-eopbgr10084.outbound.protection.outlook.com [40.107.1.84]) by sourceware.org (Postfix) with ESMTPS id CB9303851C29 for ; Thu, 1 Oct 2020 09:45:21 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.3.2 sourceware.org CB9303851C29 Received: from DB7PR02CA0012.eurprd02.prod.outlook.com (2603:10a6:10:52::25) by VI1PR08MB4159.eurprd08.prod.outlook.com (2603:10a6:803:e9::33) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3433.34; Thu, 1 Oct 2020 09:45:19 +0000 Received: from DB5EUR03FT060.eop-EUR03.prod.protection.outlook.com (2603:10a6:10:52:cafe::d1) by DB7PR02CA0012.outlook.office365.com (2603:10a6:10:52::25) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3433.32 via Frontend Transport; Thu, 1 Oct 2020 09:45:19 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 63.35.35.123) smtp.mailfrom=arm.com; sourceware.org; dkim=pass (signature was verified) header.d=armh.onmicrosoft.com;sourceware.org; dmarc=pass action=none header.from=arm.com; Received-SPF: Pass (protection.outlook.com: domain of arm.com designates 63.35.35.123 as permitted sender) receiver=protection.outlook.com; client-ip=63.35.35.123; helo=64aa7808-outbound-1.mta.getcheckrecipient.com; Received: from 64aa7808-outbound-1.mta.getcheckrecipient.com (63.35.35.123) by DB5EUR03FT060.mail.protection.outlook.com (10.152.21.231) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3433.34 via Frontend Transport; Thu, 1 Oct 2020 09:45:19 +0000 Received: ("Tessian outbound 7161e0c2a082:v64"); Thu, 01 Oct 2020 09:45:19 +0000 X-CheckRecipientChecked: true X-CR-MTA-CID: b4a149f06bb141f7 X-CR-MTA-TID: 64aa7808 Received: from bf06bf0cbb0d.1 by 64aa7808-outbound-1.mta.getcheckrecipient.com id 0210B51A-1380-4CF6-84A7-A043404D9A72.1; Thu, 01 Oct 2020 09:45:12 +0000 Received: from EUR01-VE1-obe.outbound.protection.outlook.com by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id bf06bf0cbb0d.1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384); Thu, 01 Oct 2020 09:45:12 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=LY8dj3DHLGNNhDXLbtoYALIhkajCDCj/agX9vSFWaQAqk9myeaZBDIhFbMiZN2YW9gsWUfJuKjkBE9dPDKwJYJpz/FwZvdrb2Iq8B3Vvu+fe054CW1mxdedUeOXQ76qQJetIaMafyZxkcgmtJpsefjSAainMcOszopOrnlUO9+mmw+n4qpfpg/fHvK1PPbSjFGPHtKXx1QnqJ3vnaP3ZgbyMjv0ERz4pFiRrcLuBisZ9KbWbzzUjuu/xUUFp4NwB/wZQhF8NLJy13WrZn+emwwAeyGeEwqAljgNOuKJp63bicVodpm/pfgp0uxTh8QHeRUgoFnLkCzci3aJYHTzD8g== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=FR+DN8KCWl5uXpnvzAYEMMj59imNLuEB/uiDNMdbX5Y=; b=J9PX0M3TJGm5I+26yo4XfoRvIO6+7s+zcQZ65fbnSdWk5wLL7r2fpxaG+U8uFuCPmpkPQCrlD59wPZ/Wq/sDB51IAHJNLTanByho3D855a7Hgq+aB1vBLNJFXyTSZ/5Kgcje5ParsV5ZGVOUxy4F33u5XRwX9xHl3TZHH0/WBT8Ag78pd7beRKdKmJ6ND6QSYrucaIl4sbqoIYBwa9XWYMFqyKFrYBqhgJl7kTl1B8GrEHd4bWRCtJEFdoBnBrCC1dGU3Q4o9tUKz5+w4uci6rFmRLiXPdo4ahDzZIUikm6pQpZ8aGJBv641/hGzF4MMv+DNsFBQKWiSibxLyzGtJg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=arm.com; dmarc=pass action=none header.from=arm.com; dkim=pass header.d=arm.com; arc=none Authentication-Results-Original: sourceware.org; dkim=none (message not signed) header.d=none;sourceware.org; dmarc=none action=none header.from=arm.com; Received: from PR3PR08MB5564.eurprd08.prod.outlook.com (2603:10a6:102:87::18) by PR3PR08MB5657.eurprd08.prod.outlook.com (2603:10a6:102:87::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3433.37; Thu, 1 Oct 2020 09:45:10 +0000 Received: from PR3PR08MB5564.eurprd08.prod.outlook.com ([fe80::784a:eb50:9684:50fe]) by PR3PR08MB5564.eurprd08.prod.outlook.com ([fe80::784a:eb50:9684:50fe%7]) with mapi id 15.20.3433.036; Thu, 1 Oct 2020 09:45:10 +0000 To: libc-alpha@sourceware.org, Florian Weimer Subject: [PATCH v5] aarch64: enforce >=64K guard size Date: Thu, 1 Oct 2020 10:44:58 +0100 Message-Id: <20201001094458.16060-1-szabolcs.nagy@arm.com> X-Mailer: git-send-email 2.17.1 X-Originating-IP: [217.140.106.54] X-ClientProxiedBy: DM5PR13CA0016.namprd13.prod.outlook.com (2603:10b6:3:23::26) To PR3PR08MB5564.eurprd08.prod.outlook.com (2603:10a6:102:87::18) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from localhost.localdomain (217.140.106.54) by DM5PR13CA0016.namprd13.prod.outlook.com (2603:10b6:3:23::26) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3433.17 via Frontend Transport; Thu, 1 Oct 2020 09:45:09 +0000 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-HT: Tenant X-MS-Office365-Filtering-Correlation-Id: 35d64ce9-42eb-43b6-eddb-08d865eeb545 X-MS-TrafficTypeDiagnostic: PR3PR08MB5657:|VI1PR08MB4159: X-Microsoft-Antispam-PRVS: x-checkrecipientrouted: true NoDisclaimer: true X-MS-Oob-TLC-OOBClassifiers: OLM:4502;OLM:4502; X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam-Untrusted: BCL:0; X-Microsoft-Antispam-Message-Info-Original: PHT1XeOdyrZy801gfRfebpaGqpr9o8GvEcjIHf+hY01af8+Isjtw7av4C7PCcZu4JoyjVlsmpZg7gVHiGVjp6+Kpg46dkVEWvbYkjSR0ZSlwmnAUEDm9LTFag/vYIOdx/mx6pMQmXPtO5Od/Yxru7s13fmFkgfucSlSK0vN2q81+WJo5wpCIyuk7lMb4aG1QIg20Y6gPHGx/OUbJfBEL9PkLWyVFcGI/684lYYkTCUCwQQJHqVnuhoSXXYLA3aME4nUI4kqeWcK3N+sxUNTw4IjgNO/+LgAUbpsRJg33CX5qODxkwm9I3K1iY/uvyHymUA8CBicRzHHIjVCawKcN0YOnWnIi6aPzGFQ8oJ+I+rGDsuspSFhr6mFUFjfh37PLOUb7u4bwfoE3ic3BK0/mMv91TIyYPEXs6seh60b/mt4ndG0pqUvmQyeNCa/D/lvV4DynnQUtFpZXSKDW75GJmQ== X-Forefront-Antispam-Report-Untrusted: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:PR3PR08MB5564.eurprd08.prod.outlook.com; PTR:; CAT:NONE; SFS:(4636009)(366004)(396003)(346002)(39850400004)(376002)(136003)(66946007)(83080400001)(83380400001)(66476007)(6486002)(69590400008)(52116002)(6506007)(66556008)(8676002)(5660300002)(316002)(8936002)(36756003)(6512007)(86362001)(1076003)(44832011)(6916009)(30864003)(26005)(2616005)(956004)(16526019)(6666004)(186003)(966005)(2906002)(478600001); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData: HOPQNicQaEIT4PqvW5fI51Vtof1Lkw+hFhTfQVlmyHPVuVbcG7UcmNL1uCNRvoGOtlc9qUpCX30pV3lwzJucR8jH5ufEbMs2MOCfu5TjrgXHOd7qifKdqYMZx7SLZzhtvQohhbThuqxnYndTKm4a03INrDuUSbGVsyi4tSXmS0WROaLtc5j3stZ7OsLxIwBL65x4GTIDijpviA9V0OIz38d3El/8N5lcb2SOjLJ4hp37ZJ+nmz/WjxDH0kL6fv1LkiJFo0SleEJYRovaitPGD6aV4dRj1sz7FajD+I2hhbPWRz4vmNoOXKg+57uHht9Jbcx6Im4um0EUkO4SVkgnuFiUKA588U+Lka0L66sbI24jGxlPA2OcEjrPw97022RJMfKbauDlNBUQHebuSveO8DbSil8alr9aGqwMKjHsHyNLQQ9fcDbvaz7FO7Tx1gphqFZGpnVrpZWX7fQ+eb+NwIU7DjTnnmoLRX0Z7WHFYpjal77+YuVqcE4yuwTj3A2uU8zs+WdFe9ONqQZNnZ74IoHmKwWDSKNipZUHjCK2ce6o32e5ovfSlqWOTsLTT9Q/keVJWXnMvBJNwdKS4CYopJ96CGgLEgBxG1DfgdEj5XXtebJGiAfElU3FcH02tJ29gK4I5F5f2k3LBZ/yh61RuQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: PR3PR08MB5657 Original-Authentication-Results: sourceware.org; dkim=none (message not signed) header.d=none; sourceware.org; dmarc=none action=none header.from=arm.com; X-EOPAttributedMessage: 0 X-MS-Exchange-Transport-CrossTenantHeadersStripped: DB5EUR03FT060.eop-EUR03.prod.protection.outlook.com X-MS-Office365-Filtering-Correlation-Id-Prvs: 5e3a2042-f5b8-416a-2e3d-08d865eeaffc X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: aRnTLhJt4wUiOJxsF3qajWXwq0prxmaNZoVRWGlT/WufKaez57zghus4p5Ptu1BpqqM+C/xD/dLFx8assxmrgChcw98toMAiwHVSzXCNRue7BVW3mZj4+04WJiA+88Zd4XHX4GsxAw5szEb4BaM7l+z/NIVR+kxDWsE+fjid1F2uY25D2eTmosPp98WOO7LQ0cJRGb0eahqSndP3Dm+cRcNb8xty3RcWyiKpghmf759HJnxiPdJvbcFcrChuyTm1GfniZx8AtDm2ROPXNVHBfax0GyhTTloNNQ6jPuee0A8EjDlTkr6gu+Qie/e1K1hXiVmgYTegmrHEYoR4rg2iTQYa0cE/PQ4Rw3ilfyeCCxszKQWy7pa4fZqeS4rzX+8NTSC01QM6HW6+Uuhw+TjMLSYPWws8ZSE3PURMPgC8dLffnDFuN2bVudN2yU09Cv+h7CcL0ILwn54i9kG3fXjpuFTLtotQ8sdN/pXxbcVG8oZv8mgvmafsQ8stPX5mw5U4A6V8SqhvvOpyB5zxYMikoQ== X-Forefront-Antispam-Report: CIP:63.35.35.123; CTRY:IE; LANG:en; SCL:1; SRV:; IPV:CAL; SFV:NSPM; H:64aa7808-outbound-1.mta.getcheckrecipient.com; PTR:ec2-63-35-35-123.eu-west-1.compute.amazonaws.com; CAT:NONE; SFS:(4636009)(346002)(376002)(396003)(136003)(39860400002)(46966005)(8676002)(6486002)(36756003)(47076004)(83080400001)(356005)(81166007)(82740400003)(86362001)(44832011)(6666004)(30864003)(70586007)(70206006)(5660300002)(478600001)(6506007)(1076003)(956004)(966005)(16526019)(336012)(26005)(6862004)(8936002)(316002)(2906002)(186003)(69590400008)(83380400001)(82310400003)(6512007)(2616005); DIR:OUT; SFP:1101; X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 01 Oct 2020 09:45:19.0714 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 35d64ce9-42eb-43b6-eddb-08d865eeb545 X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d; Ip=[63.35.35.123]; Helo=[64aa7808-outbound-1.mta.getcheckrecipient.com] X-MS-Exchange-CrossTenant-AuthSource: DB5EUR03FT060.eop-EUR03.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR08MB4159 X-Spam-Status: No, score=-14.3 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, GIT_PATCH_0, KAM_SHORT, MSGID_FROM_MTA_HEADER, RCVD_IN_DNSWL_LOW, RCVD_IN_MSPIKE_H2, SPF_HELO_PASS, SPF_PASS, TXREP, UNPARSEABLE_RELAY 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: Szabolcs Nagy via Libc-alpha From: Szabolcs Nagy Reply-To: Szabolcs Nagy Errors-To: libc-alpha-bounces@sourceware.org Sender: "Libc-alpha" There are several compiler implementations that allow large stack allocations to jump over the guard page at the end of the stack and corrupt memory beyond that. See CVE-2017-1000364. Compilers can emit code to probe the stack such that the guard page cannot be skipped, but on aarch64 the probe interval is 64K by default instead of the minimum supported page size (4K). This patch enforces at least 64K guard on aarch64 unless the guard is disabled by setting its size to 0. For backward compatibility reasons the increased guard is not reported, so it is only observable by exhausting the address space or parsing /proc/self/maps on linux. On other targets the patch has no effect. If the stack probe interval is larger than a page size on a target then ARCH_MIN_GUARD_SIZE can be defined to get large enough stack guard on libc allocated stacks. The patch does not affect threads with user allocated stacks. --- v5: - rebased on master. - remove ChangeLog, mention ARCH_MIN_GUARD_SIZE in the commit. - define ARCH_MIN_GUARD_SIZE on new targets (csky and arc). v4: - gcc patches are now under review: https://gcc.gnu.org/ml/gcc-patches/2018-07/msg00538.html https://gcc.gnu.org/ml/gcc-patches/2018-07/msg00542.html - update commit message (64K probing is the default abi). - add riscv, remove tile. - rebase. v3: - more comment in allocate_stack. - define ARCH_MIN_GUARD_SIZE explicitly for all targets. - rebase on top of master. v2: - only change guard size on aarch64 - don't report the inflated guard size --- nptl/allocatestack.c | 14 ++++++++++++-- sysdeps/aarch64/nptl/pthreaddef.h | 3 +++ sysdeps/alpha/nptl/pthreaddef.h | 3 +++ sysdeps/arc/nptl/pthreaddef.h | 3 +++ sysdeps/arm/nptl/pthreaddef.h | 3 +++ sysdeps/csky/nptl/pthreaddef.h | 3 +++ sysdeps/hppa/nptl/pthreaddef.h | 3 +++ sysdeps/i386/nptl/pthreaddef.h | 3 +++ sysdeps/ia64/nptl/pthreaddef.h | 3 +++ sysdeps/m68k/nptl/pthreaddef.h | 3 +++ sysdeps/microblaze/nptl/pthreaddef.h | 3 +++ sysdeps/mips/nptl/pthreaddef.h | 3 +++ sysdeps/nios2/nptl/pthreaddef.h | 3 +++ sysdeps/powerpc/nptl/pthreaddef.h | 3 +++ sysdeps/riscv/nptl/pthreaddef.h | 3 +++ sysdeps/s390/nptl/pthreaddef.h | 3 +++ sysdeps/sh/nptl/pthreaddef.h | 3 +++ sysdeps/sparc/sparc32/pthreaddef.h | 3 +++ sysdeps/sparc/sparc64/pthreaddef.h | 3 +++ sysdeps/x86_64/nptl/pthreaddef.h | 3 +++ 20 files changed, 69 insertions(+), 2 deletions(-) diff --git a/nptl/allocatestack.c b/nptl/allocatestack.c index 4ae4b5a986..4b45f8c884 100644 --- a/nptl/allocatestack.c +++ b/nptl/allocatestack.c @@ -521,6 +521,7 @@ allocate_stack (const struct pthread_attr *attr, struct pthread **pdp, { /* Allocate some anonymous memory. If possible use the cache. */ size_t guardsize; + size_t reported_guardsize; size_t reqsize; void *mem; const int prot = (PROT_READ | PROT_WRITE @@ -531,8 +532,17 @@ allocate_stack (const struct pthread_attr *attr, struct pthread **pdp, assert (size != 0); /* Make sure the size of the stack is enough for the guard and - eventually the thread descriptor. */ + eventually the thread descriptor. On some targets there is + a minimum guard size requirement, ARCH_MIN_GUARD_SIZE, so + internally enforce it (unless the guard was disabled), but + report the original guard size for backward compatibility: + before POSIX 2008 the guardsize was specified to be one page + by default which is observable via pthread_attr_getguardsize + and pthread_getattr_np. */ guardsize = (attr->guardsize + pagesize_m1) & ~pagesize_m1; + reported_guardsize = guardsize; + if (guardsize > 0 && guardsize < ARCH_MIN_GUARD_SIZE) + guardsize = ARCH_MIN_GUARD_SIZE; if (guardsize < attr->guardsize || size + guardsize < guardsize) /* Arithmetic overflow. */ return EINVAL; @@ -740,7 +750,7 @@ allocate_stack (const struct pthread_attr *attr, struct pthread **pdp, /* The pthread_getattr_np() calls need to get passed the size requested in the attribute, regardless of how large the actually used guardsize is. */ - pd->reported_guardsize = guardsize; + pd->reported_guardsize = reported_guardsize; } /* Initialize the lock. We have to do this unconditionally since the diff --git a/sysdeps/aarch64/nptl/pthreaddef.h b/sysdeps/aarch64/nptl/pthreaddef.h index 892b869fc2..b865fd5fab 100644 --- a/sysdeps/aarch64/nptl/pthreaddef.h +++ b/sysdeps/aarch64/nptl/pthreaddef.h @@ -19,6 +19,9 @@ /* Default stack size. */ #define ARCH_STACK_DEFAULT_SIZE (2 * 1024 * 1024) +/* Minimum guard size. */ +#define ARCH_MIN_GUARD_SIZE (64 * 1024) + /* Required stack pointer alignment at beginning. */ #define STACK_ALIGN 16 diff --git a/sysdeps/alpha/nptl/pthreaddef.h b/sysdeps/alpha/nptl/pthreaddef.h index 6ec8f49f39..c710b04845 100644 --- a/sysdeps/alpha/nptl/pthreaddef.h +++ b/sysdeps/alpha/nptl/pthreaddef.h @@ -18,6 +18,9 @@ /* Default stack size. */ #define ARCH_STACK_DEFAULT_SIZE (4 * 1024 * 1024) +/* Minimum guard size. */ +#define ARCH_MIN_GUARD_SIZE 0 + /* Required stack pointer alignment at beginning. The ABI requires 16. */ #define STACK_ALIGN 16 diff --git a/sysdeps/arc/nptl/pthreaddef.h b/sysdeps/arc/nptl/pthreaddef.h index 5c2b752bec..844b213729 100644 --- a/sysdeps/arc/nptl/pthreaddef.h +++ b/sysdeps/arc/nptl/pthreaddef.h @@ -19,6 +19,9 @@ /* Default stack size. */ #define ARCH_STACK_DEFAULT_SIZE (2 * 1024 * 1024) +/* Minimum guard size. */ +#define ARCH_MIN_GUARD_SIZE 0 + /* Required stack pointer alignment at beginning. */ #define STACK_ALIGN 4 diff --git a/sysdeps/arm/nptl/pthreaddef.h b/sysdeps/arm/nptl/pthreaddef.h index 5b05f2a8bd..3e21cbd39a 100644 --- a/sysdeps/arm/nptl/pthreaddef.h +++ b/sysdeps/arm/nptl/pthreaddef.h @@ -18,6 +18,9 @@ /* Default stack size. */ #define ARCH_STACK_DEFAULT_SIZE (2 * 1024 * 1024) +/* Minimum guard size. */ +#define ARCH_MIN_GUARD_SIZE 0 + /* Required stack pointer alignment at beginning. SSE requires 16 bytes. */ #define STACK_ALIGN 16 diff --git a/sysdeps/csky/nptl/pthreaddef.h b/sysdeps/csky/nptl/pthreaddef.h index 98b9546b12..f4b0b4c847 100644 --- a/sysdeps/csky/nptl/pthreaddef.h +++ b/sysdeps/csky/nptl/pthreaddef.h @@ -19,6 +19,9 @@ /* Default stack size. */ #define ARCH_STACK_DEFAULT_SIZE (2 * 1024 * 1024) +/* Minimum guard size. */ +#define ARCH_MIN_GUARD_SIZE 0 + /* Required stack pointer alignment at beginning. */ #define STACK_ALIGN 8 diff --git a/sysdeps/hppa/nptl/pthreaddef.h b/sysdeps/hppa/nptl/pthreaddef.h index 9fab974e7d..5dd4fec20d 100644 --- a/sysdeps/hppa/nptl/pthreaddef.h +++ b/sysdeps/hppa/nptl/pthreaddef.h @@ -18,6 +18,9 @@ /* Default stack size. */ #define ARCH_STACK_DEFAULT_SIZE (8 * 1024 * 1024) +/* Minimum guard size. */ +#define ARCH_MIN_GUARD_SIZE 0 + /* Required stack pointer alignment at beginning. */ #define STACK_ALIGN 64 diff --git a/sysdeps/i386/nptl/pthreaddef.h b/sysdeps/i386/nptl/pthreaddef.h index 65d5bc9b2e..db833351c6 100644 --- a/sysdeps/i386/nptl/pthreaddef.h +++ b/sysdeps/i386/nptl/pthreaddef.h @@ -19,6 +19,9 @@ /* Default stack size. */ #define ARCH_STACK_DEFAULT_SIZE (2 * 1024 * 1024) +/* Minimum guard size. */ +#define ARCH_MIN_GUARD_SIZE 0 + /* Required stack pointer alignment at beginning. SSE requires 16 bytes. */ #define STACK_ALIGN 16 diff --git a/sysdeps/ia64/nptl/pthreaddef.h b/sysdeps/ia64/nptl/pthreaddef.h index 42a95e6b24..26c509abe2 100644 --- a/sysdeps/ia64/nptl/pthreaddef.h +++ b/sysdeps/ia64/nptl/pthreaddef.h @@ -18,6 +18,9 @@ /* Default stack size. */ #define ARCH_STACK_DEFAULT_SIZE (32 * 1024 * 1024) +/* Minimum guard size. */ +#define ARCH_MIN_GUARD_SIZE 0 + /* IA-64 uses a normal stack and a register stack. */ #define NEED_SEPARATE_REGISTER_STACK diff --git a/sysdeps/m68k/nptl/pthreaddef.h b/sysdeps/m68k/nptl/pthreaddef.h index baca43951d..8d0253ba4c 100644 --- a/sysdeps/m68k/nptl/pthreaddef.h +++ b/sysdeps/m68k/nptl/pthreaddef.h @@ -19,6 +19,9 @@ /* Default stack size. */ #define ARCH_STACK_DEFAULT_SIZE (2 * 1024 * 1024) +/* Minimum guard size. */ +#define ARCH_MIN_GUARD_SIZE 0 + /* Required stack pointer alignment at beginning. */ #define STACK_ALIGN 16 diff --git a/sysdeps/microblaze/nptl/pthreaddef.h b/sysdeps/microblaze/nptl/pthreaddef.h index c043372f44..73b4a42971 100644 --- a/sysdeps/microblaze/nptl/pthreaddef.h +++ b/sysdeps/microblaze/nptl/pthreaddef.h @@ -22,6 +22,9 @@ /* Default stack size. */ #define ARCH_STACK_DEFAULT_SIZE (2 * 1024 * 1024) +/* Minimum guard size. */ +#define ARCH_MIN_GUARD_SIZE 0 + /* Required stack pointer alignment at beginning. */ #define STACK_ALIGN 16 diff --git a/sysdeps/mips/nptl/pthreaddef.h b/sysdeps/mips/nptl/pthreaddef.h index fa232b0c78..8305c23940 100644 --- a/sysdeps/mips/nptl/pthreaddef.h +++ b/sysdeps/mips/nptl/pthreaddef.h @@ -18,6 +18,9 @@ /* Default stack size. */ #define ARCH_STACK_DEFAULT_SIZE (2 * 1024 * 1024) +/* Minimum guard size. */ +#define ARCH_MIN_GUARD_SIZE 0 + /* Required stack pointer alignment at beginning. */ #define STACK_ALIGN 16 diff --git a/sysdeps/nios2/nptl/pthreaddef.h b/sysdeps/nios2/nptl/pthreaddef.h index 4ae7d4581c..590e3f8774 100644 --- a/sysdeps/nios2/nptl/pthreaddef.h +++ b/sysdeps/nios2/nptl/pthreaddef.h @@ -19,6 +19,9 @@ /* Default stack size. */ #define ARCH_STACK_DEFAULT_SIZE (2 * 1024 * 1024) +/* Minimum guard size. */ +#define ARCH_MIN_GUARD_SIZE 0 + /* Required stack pointer alignment at beginning. */ #define STACK_ALIGN 4 diff --git a/sysdeps/powerpc/nptl/pthreaddef.h b/sysdeps/powerpc/nptl/pthreaddef.h index 4abdc480c4..70e55b70f0 100644 --- a/sysdeps/powerpc/nptl/pthreaddef.h +++ b/sysdeps/powerpc/nptl/pthreaddef.h @@ -18,6 +18,9 @@ /* Default stack size. */ #define ARCH_STACK_DEFAULT_SIZE (4 * 1024 * 1024) +/* Minimum guard size. */ +#define ARCH_MIN_GUARD_SIZE 0 + /* Required stack pointer alignment at beginning. The ABI requires 16 bytes (for both 32-bit and 64-bit PowerPC). */ #define STACK_ALIGN 16 diff --git a/sysdeps/riscv/nptl/pthreaddef.h b/sysdeps/riscv/nptl/pthreaddef.h index 146c04f63a..b45359faf7 100644 --- a/sysdeps/riscv/nptl/pthreaddef.h +++ b/sysdeps/riscv/nptl/pthreaddef.h @@ -19,6 +19,9 @@ /* Default stack size. */ #define ARCH_STACK_DEFAULT_SIZE (2 * 1024 * 1024) +/* Minimum guard size. */ +#define ARCH_MIN_GUARD_SIZE 0 + /* Required stack pointer alignment at beginning. */ #define STACK_ALIGN 16 diff --git a/sysdeps/s390/nptl/pthreaddef.h b/sysdeps/s390/nptl/pthreaddef.h index e087e1cddf..c218271fc3 100644 --- a/sysdeps/s390/nptl/pthreaddef.h +++ b/sysdeps/s390/nptl/pthreaddef.h @@ -18,6 +18,9 @@ /* Default stack size. */ #define ARCH_STACK_DEFAULT_SIZE (2 * 1024 * 1024) +/* Minimum guard size. */ +#define ARCH_MIN_GUARD_SIZE 0 + /* Required stack pointer alignment at beginning. SSE requires 16 bytes. */ #define STACK_ALIGN 16 diff --git a/sysdeps/sh/nptl/pthreaddef.h b/sysdeps/sh/nptl/pthreaddef.h index 12106e79e1..50cedcefa6 100644 --- a/sysdeps/sh/nptl/pthreaddef.h +++ b/sysdeps/sh/nptl/pthreaddef.h @@ -20,6 +20,9 @@ /* Default stack size. */ #define ARCH_STACK_DEFAULT_SIZE (2 * 1024 * 1024) +/* Minimum guard size. */ +#define ARCH_MIN_GUARD_SIZE 0 + /* Required stack pointer alignment at beginning. */ #define STACK_ALIGN 8 diff --git a/sysdeps/sparc/sparc32/pthreaddef.h b/sysdeps/sparc/sparc32/pthreaddef.h index 403fa3e340..41de22b3be 100644 --- a/sysdeps/sparc/sparc32/pthreaddef.h +++ b/sysdeps/sparc/sparc32/pthreaddef.h @@ -18,6 +18,9 @@ /* Default stack size. */ #define ARCH_STACK_DEFAULT_SIZE (2 * 1024 * 1024) +/* Minimum guard size. */ +#define ARCH_MIN_GUARD_SIZE 0 + /* Required stack pointer alignment at beginning. */ #define STACK_ALIGN 16 diff --git a/sysdeps/sparc/sparc64/pthreaddef.h b/sysdeps/sparc/sparc64/pthreaddef.h index 0a0841262a..363b0f9e41 100644 --- a/sysdeps/sparc/sparc64/pthreaddef.h +++ b/sysdeps/sparc/sparc64/pthreaddef.h @@ -18,6 +18,9 @@ /* Default stack size. */ #define ARCH_STACK_DEFAULT_SIZE (4 * 1024 * 1024) +/* Minimum guard size. */ +#define ARCH_MIN_GUARD_SIZE 0 + /* Required stack pointer alignment at beginning. */ #define STACK_ALIGN 16 diff --git a/sysdeps/x86_64/nptl/pthreaddef.h b/sysdeps/x86_64/nptl/pthreaddef.h index d49848da3c..5554876bfc 100644 --- a/sysdeps/x86_64/nptl/pthreaddef.h +++ b/sysdeps/x86_64/nptl/pthreaddef.h @@ -19,6 +19,9 @@ /* Default stack size. */ #define ARCH_STACK_DEFAULT_SIZE (2 * 1024 * 1024) +/* Minimum guard size. */ +#define ARCH_MIN_GUARD_SIZE 0 + /* Required stack pointer alignment at beginning. SSE requires 16 bytes. */ #define STACK_ALIGN 16