From patchwork Fri Apr 11 11:34:54 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Claudiu Zissulescu-Ianculescu X-Patchwork-Id: 110252 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 E2EB138319C6 for ; Fri, 11 Apr 2025 11:37:29 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org E2EB138319C6 Authentication-Results: sourceware.org; dkim=pass (2048-bit key, unprotected) header.d=oracle.com header.i=@oracle.com header.a=rsa-sha256 header.s=corp-2023-11-20 header.b=WmsAbHmi; dkim=pass (1024-bit key, unprotected) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.a=rsa-sha256 header.s=selector2-oracle-onmicrosoft-com header.b=fjgbNsPJ X-Original-To: libc-alpha@sourceware.org Delivered-To: libc-alpha@sourceware.org Received: from mx0b-00069f02.pphosted.com (mx0b-00069f02.pphosted.com [205.220.177.32]) by sourceware.org (Postfix) with ESMTPS id 3A0EE3831E2A for ; Fri, 11 Apr 2025 11:35:22 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 3A0EE3831E2A Authentication-Results: sourceware.org; dmarc=pass (p=reject dis=none) header.from=oracle.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=oracle.com ARC-Filter: OpenARC Filter v1.0.0 sourceware.org 3A0EE3831E2A Authentication-Results: server2.sourceware.org; arc=pass smtp.remote-ip=205.220.177.32 ARC-Seal: i=2; a=rsa-sha256; d=sourceware.org; s=key; t=1744371322; cv=pass; b=BCx8rR72w0ak+f2COnIzJRzMKS4JVHH5jBhClMNIPvdK4qxeRyHIBqPWjWerbjdna2/i07GWeY62dcpExYUiWEzvTfmoQ4RJ4cA6NGqebABCHMOmrkEXuG7blpXWUV2WuCKYneiGCqxhhlyB3I93n0Idgpno2B67YCT/JPOiByc= ARC-Message-Signature: i=2; a=rsa-sha256; d=sourceware.org; s=key; t=1744371322; c=relaxed/simple; bh=SSwWTd+g2JL8GDlXqGZPRl1XBDLcSyQZEAe0ZnOUvS4=; h=DKIM-Signature:DKIM-Signature:From:To:Subject:Date:Message-ID: MIME-Version; b=XMz476x9HrmVTs7EDMWP82lGpdFu/GU9eTPPI9nzHGMpsZSslHr15ExagonFqyV+f5TSApfxpDtIvoPhtwyuHAGOex+CBc4A5Ocrow5iYW69j+ff0KWDebq0LJO9whRW72rQnMxfV1GpwP0UKXSCIEY6xZKVXklpHfghkfAuUpk= ARC-Authentication-Results: i=2; server2.sourceware.org DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 3A0EE3831E2A Received: from pps.filterd (m0246632.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 53BBMvp6001661; Fri, 11 Apr 2025 11:35:16 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=cc :content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s= corp-2023-11-20; bh=YQt65HykDrosLGZhA4gQsGrkY+3O0/NZBEXMbDQMglE=; b= WmsAbHmi7jonsnDyo1oZSkKiTqWnMxkRDYcQwhYm57c0gEPaNHUwadPVuCgSa/aO +h8sQL+FPmR+Q2ZDZTfucGHAnwtdx/0jZNfP1PaQspqAam8FuM/XhcvUnheHIeZl pOWo4D5+3wIs+btn3dmZDm24m0+ffRLPYT4+esS0jWD69uBSWc5IpEr/RI8z3wW5 k+IMBPex3v0mW6hup2Kd+SDsgE/fIPyXrJdkKhKU7I+8HN6i4pEYgHbmsm3u+baw KzvLtwbiseDC1gtMhk/wkCAYWLL7WIgyjtu76tQu1agE8BLtQxy5unU2WJfxGtaq n5KpmDpysZj6e2+17T+Dpw== Received: from iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta01.appoci.oracle.com [130.35.100.223]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 45y25080rk-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Fri, 11 Apr 2025 11:35:15 +0000 (GMT) Received: from pps.filterd (iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com [127.0.0.1]) by iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com (8.18.1.2/8.18.1.2) with ESMTP id 53BB2H0E023792; Fri, 11 Apr 2025 11:35:15 GMT Received: from cy3pr05cu001.outbound.protection.outlook.com (mail-westcentralusazlp17013074.outbound.protection.outlook.com [40.93.6.74]) by iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com (PPS) with ESMTPS id 45ttykx7cu-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Fri, 11 Apr 2025 11:35:15 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=kL1dGiPIFbaR5rHh4bw0Jhh48pB2EZBOF3WXeZ8jZtxvbNoe/gCwPDKdE5FEZiOIY47PAQSEKnug0F2suD2M2ve55qd3M94alsJKZHbhqzY83v7nfFPt9ETAodtQuejst7pJnJZ/NcHINZCjKcmQQABp6c64Nv8OqJBNeEW9mIP8pj0e5ZpqterPohZ0Dp+ejXE1RjKq8TvpLeMRZbKjUPzRwMWeCoJBooGXZl2LHuXqH8n4HRmEaznehM+k7h0EpLFsmTXv9IEeOPsOlMdrHrWKSXp/HOYLjjLpGmYAABsrDUniqjkRPXzhu0qLBj+Y2Yher0Lq2si79GgJu7dYCQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=YQt65HykDrosLGZhA4gQsGrkY+3O0/NZBEXMbDQMglE=; b=Bs6MfEtHT6pewB1Yvb6W6SDrYkSjuU797altWKjrK+8Gc8oHfBTSjEkggue4LE/oSGuEyYVYSKsvr9W/hrSHgwT8usEYbTDiYw8Ew5spmWa2T9HtDRHFLKNxWNkYeDheE6Jb55+LiY1Wn1yLAFKUizVrQfUjlUJTipIDbvspKeI4+aRs7NK0UH2PGHkWbUBWL2MWDdfC8uitIo7zWltR3eA7mVgbxCj2U/nawyBp/jQ4qXysmBuMdxmUvDVCD2PeUkQ8YIKwIFJDFk8ejPIN3CW5vL+BtLTwCqAgLQ2Ta4VZSg1lRxFSUAPrR5IuhjBskxeLgbYDx3wRKCM+1kjR8g== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=oracle.com; dmarc=pass action=none header.from=oracle.com; dkim=pass header.d=oracle.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.onmicrosoft.com; s=selector2-oracle-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=YQt65HykDrosLGZhA4gQsGrkY+3O0/NZBEXMbDQMglE=; b=fjgbNsPJNLGvYdzJUpxpy8dUnTROTlAQF7K6Yj+ZJEo/tzpxEUFb5MEagghbqAgUbJ6MGAhQF1Hi4xt4gQ/e9rbLxH3JHGsFTw1/fDaOhFNqgJQSDg8F/Yzxypn3ON9+NBoxQdYRzVSVlFI6dIMARr9CsebzFo35EsqOMdKT4go= Received: from CY5PR10MB6011.namprd10.prod.outlook.com (2603:10b6:930:28::16) by CO1PR10MB4404.namprd10.prod.outlook.com (2603:10b6:303:90::8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8632.27; Fri, 11 Apr 2025 11:35:13 +0000 Received: from CY5PR10MB6011.namprd10.prod.outlook.com ([fe80::3aca:a3f6:e92f:782e]) by CY5PR10MB6011.namprd10.prod.outlook.com ([fe80::3aca:a3f6:e92f:782e%6]) with mapi id 15.20.8632.017; Fri, 11 Apr 2025 11:35:13 +0000 From: claudiu.zissulescu-ianculescu@oracle.com To: libc-alpha@sourceware.org Cc: jose.marchesi@oracle.com, elena.zannoni@oracle.com, indu.bhagat@oracle.com, jremus@linux.ibm.com, fweimer@redhat.com, josmyers@redhat.com Subject: [PATCH v2 3/5] configure: Add --enable-sframe option Date: Fri, 11 Apr 2025 14:34:54 +0300 Message-ID: <20250411113456.15213-4-claudiu.zissulescu-ianculescu@oracle.com> X-Mailer: git-send-email 2.49.0 In-Reply-To: <20250411113456.15213-3-claudiu.zissulescu-ianculescu@oracle.com> References: <20250411113456.15213-1-claudiu.zissulescu-ianculescu@oracle.com> <20250411113456.15213-2-claudiu.zissulescu-ianculescu@oracle.com> <20250411113456.15213-3-claudiu.zissulescu-ianculescu@oracle.com> X-ClientProxiedBy: VI1PR06CA0123.eurprd06.prod.outlook.com (2603:10a6:803:a0::16) To CY5PR10MB6011.namprd10.prod.outlook.com (2603:10b6:930:28::16) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: CY5PR10MB6011:EE_|CO1PR10MB4404:EE_ X-MS-Office365-Filtering-Correlation-Id: 7d469f0c-94ef-4cf1-c93b-08dd78ecec3f X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|376014|1800799024; X-Microsoft-Antispam-Message-Info: 0l/+Uh9Y8VU+EcjfSl8gZUYWBlT4wpU+kZQTfMsaCJ03khba846DJk6uoR10OWuLYSBkSS73qiGcazxv4yrxSS9SbSn9imZNEm+7mWth5SKw6l/q7QjOrpNGkDbp6+UU6GFfiABnIMH3sK1dbMWLz9CU3lAJ8uwRBZCcT7MDyasFkXJZ1Bu+GoDU7WLf/4Gd3X4I9w/3rwd22dJb2K3ZBisrrojrBkR/7dglo5a/4fVRlx7+5fmL40yflwMwsm/GtSjWKpdCndEK5ju2WDg9o4k2PNpkGC5tMg2kNG0UiUM2y8QwjZ77X3tZdRupUmeqLrmJG/EMNsEv4cW/Fn7g0I5EaB/h5Z1r4FSApI5u+EHXiwic7vgqbpf8nhMkaae7eF3cPGENtz6mrsn6g+C4o8D7q69iGrPZFLF2ouMwOJISjxrWbIse0bYW2mQTPqJDm4sWCGv6Gao1dek+7RikrE2r7id8x5K0LA8fJbacQZHXx9nuQBsusgNEDEYVg9XPUBtHER/p7WRhJgRn1wdtgG5lDHg4TJshEeGeOMR7dRCOKMgIYYiAnumUGdQdgU1Q4eGQwaQZ1VSvHpxSKI7mJp2Vd/a7IWCtD7CalinjFzvYMH4SPUdHoxSen0o+NmQQLILxFTVDvYib3rtIYVp5XUVhLAg5D9k4Mz1DFBym5kI8CLTTw8a741pzJARZ2VpJfDs5hOWLwar13Yi14a+rWtJN1iFlfB0JVUEVt0zSjd+EYj2doHjmy8ZLeFEr93Bqytmyl+12fvyXJf7dm9jSk8L3eKHgMGzApBsBvJRxkdJ41gII6vFLNZvrFD3HALf+evHR1RjeRR4fvYHmdZB5mIh7k5Jpy/jS7J7sF/K/ITIq/wEg06b0V9jqi72Af9Oc/BSqqjPRy3mOVtU+Twiv9fH+KiMYcwbAVUAoPi1UZlNSCTzp0G785BWY1Vn9FjTevDI/gMNOX552WAtNOfIJmn7NQA+2xLBsu2J9YOq/0oskqAKCUltJuEYBPJXKm5EBNCCXEHy3Ep+1oUazKt34YsiqA3StM9XCMo0Oca9HeKh0ypTm+F5fw4E4ybkKD+w5g7dWWiygKuMxI2BrFh42C8i1KnRt3JaKncGKn/4jtmi/7Zh9f17IM/Cx14RVFjwYv8G4e2t8rV4R3iRDxAsJEtW4M9LtT56OekyfSG7jrbpgLzDJ9XjtzfiFD2jYwCCVy3ijzy0fXLlejdWwVRBZXKNJ29LUliIOjCUcRromlQF+/2G0F8y0sC+wSWuXf2PwuYK83wR9cN6O6bgvMGSvEPvKUWE7HHan2Y29zJdu8mV88i2Zg9yh8hHk9Hx0G1exwDPUGktTPb0rq5r07wIkPLoJHJPvHl39pYgo0mswMUiVHaT3gTLYH6ACfx7b6/ze2ap4TvF84pcUIb3q1VyKowFnC1YelwisX1INOCy7o3U= X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:CY5PR10MB6011.namprd10.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230040)(366016)(376014)(1800799024); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: 7SNLYSMT3tc51LgvXkPVsw99IIGoSkLNZHpFqcAGSyhvKdq4F42QZwCKkH3K2lQefboI7lp2jgEsEHT7CXQ4AV9Bs2I6S4uwLHnoLEVrnoeHdJ+zbsok2ThFhtV1nbHcr3LbHBnTBGsMespuVZzZAcb2Y89PbLP58xokeafE6V9RQZ6NetDrQh19tMM3+ABkuxnRpia2TyRA8zFKHuCgeGFgeH330obbe2M1KMrT67MThj8xtQ0E7K8b22Kg/pdQe6aKptCKlZhL4As0KJNxQs5qBB4Zy9I1E8zlYs2FF18NbU99TvQKf6lPdvhy9qKIu+OwWfm5p9hazpCFSKakxQroRHaKo5lg9bMXqT0YVkg6jTRdItcFCjTZceIYSeu/ZAGJGefuoiOzePM6CTjnJ9k2VI9PO8sQfiq4NtBLT76+6aU172CosAzzw3eedr5EFRGAwlFMib2YlTPz9P1+XtH0s8/M3se7w5lrtaVrSmm3qRrf4Lopgo2RYxHiSZFzf06YBHwTHwtFwZsNt6qt5hWOwTNhp9o0Us+qyvKXj49t0uUi61OY8uizogiXxa5xHv9drOa8zNssJfePe6vRX74io9v8ifgx6Bf9NZb4gVpl5LvGDfjz0NahXwiebp5xlAQXrXC0E4JtrdNLZVC+Ya/D+TuqVXkoqhzIo9HGTnq7q+0oOtrKgDyDBB+TZcwCeafpscnt1Zn1IeVzcljnPzluUdPDXLnZ4x6cDs5CVSV7d0mibOXBQhZk958gctkWhWsA0TUQVkh+tkKzZXvyoih4lY7rbTIT0GQQNXG4AFGXStYnoQhqDiKTtlrZLiWlgMvVAtPEI85/mII47oOvSbw9NUF8XtwC6rECcbUhD9YU+qdhxYyZ2mlfpQqs6Oz1pNu9IG9ssYWDcH02W4z2jNmhKuh37jJRKLwn/NltjnQE2x50saUyDwztBXqNnDYPfb+UMPTFNGF643juoby+ujM1C0M8SWSdgSb1NrRWPcfdNEgDEU4i5QnvQZ2LNKaGidbtbrDheZNN0iz3ZnnmGfeQNqsocKaKAslnEZYDcKqcYBIT9NtebEFPsam90mxN+sHrB/tBNobmzBPi23liU4zxV/17Yz3nI+mhzuTELszdLwd/0oZx5ThabvcbKymSyt2vDIUHmf2G3wt5rV4oO1wWxw2QIsMTm89f4Xolmv3nPa635/jP4vMtrvift37EGbBq/H5xx9HaqmPhnOsOhKwLycWzLHS4YXDrXZeVSjXl05wpktrxWEmoGUM5NjKDntqI20AuGYLqdwblr0cffMh/hlFZajdwm47IKqoGcEIiIcxzPxyLMFqxcZAguoK3TCiEVKcwgDO2R49V9ZxZJ/SNxkyq04F24gsw7Nf3mpcBPd+G0EFTwjxVEWndLE823nvhzPjNolJlDI2cwR/Isj4dr8gAEzfMb9SGMCycKD+rj5Z6Uc/PrXf+xNPpKNh/ujhUR9HUjdmwcJruvQkIDnu2wd8bYpc7+Z/eHAROAMS+UZmuatsWo0kZYDbQ3lAK50srl+3g73thGEGZOJrcmktNvIPBSrZ7oHhiEvz2o2hOI01nZ7OVteXkoQG0EqVNhn4zYOUA0Q1Way2WpQQoD5H/zWCMlChYIIV6k9KDSQaMR59uvYvdxA8rZE9rfo3f X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: XULq5epQ411Wy4vu64KlSIv6kkqLRo7F1BBPAEfygJQHePkshpDf005hkdkSl6y3oXMpYh5QQR2Tu1E12Srk0AWYHFAzv19o6Sf/50iM1EhrNqoEzW9DzOu9SywUa7dU8CsiwA+udMNXfUAMPMbL3YvDxdcEnBe5+BfzvM5QAfbEZJhgdtRmOQ4KMS81zIeIWWB2Gs1aE+BXJ0SP9AEa0h8eOPRPSoIgGMaZeGMqdgPyYKllmvCXiO+c7+X0Y+FbNlajfqxsaWfPPcUYcrlcMpVOcMHIrnDxnEuHEp8Y/8WOfEwLBgnp12KfLebqqUKB0+KUBhI3t3iQwN3uwOoF82mh7wlgf3IrYyJW5Rkou4YSwPtPj+qssfE4YjDXbpr6LLLW6d0LHruLAbZkRmXlq+qnwxPQ5fbuIdb5RBRA6atEV1c7DSF0I9MmK2wqxnA37o13oVUuL/Fx8lDUlcRqc5H7KOtgQdMjx0jAHI/ZcQRlazLrAEncAdmeYV/9ZgdaesDoL/XL54SnvGpTCFgawyuDPDB11t8YeWElELmY7S+DP9vE1AV7ju5DTDYZGVAOHD++u/fDsVUUZgenC8LS5/iUCuiXuWh0JwG13ru2p04= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 7d469f0c-94ef-4cf1-c93b-08dd78ecec3f X-MS-Exchange-CrossTenant-AuthSource: CY5PR10MB6011.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 11 Apr 2025 11:35:13.0297 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 4e2c6054-71cb-48f1-bd6c-3a9705aca71b X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: UZjrNHsTpZYQH8OiEOlm0rFhJnuzbecnkEtG6g8xZofFk00E3DBZYmR/IRBufo3gV3HFYENxtocDAFz7kCFfrlidbDiqclQQYnlkuc75C7L40JOy8l//7apweZTEwR7JBVvqeXMdxzb4z/+rxTB0RQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CO1PR10MB4404 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1095,Hydra:6.0.680,FMLib:17.12.68.34 definitions=2025-04-11_04,2025-04-10_01,2024-11-22_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 malwarescore=0 bulkscore=0 mlxscore=0 mlxlogscore=999 suspectscore=0 adultscore=0 spamscore=0 phishscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2502280000 definitions=main-2504110073 X-Proofpoint-ORIG-GUID: zRrtDgXXEGhSN0JirlvuQzndQ_kD5FCP X-Proofpoint-GUID: zRrtDgXXEGhSN0JirlvuQzndQ_kD5FCP X-Spam-Status: No, score=-13.4 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, GIT_PATCH_0, RCVD_IN_DNSWL_LOW, RCVD_IN_MSPIKE_H5, RCVD_IN_MSPIKE_WL, SPF_HELO_NONE, SPF_NONE, TXREP autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org X-BeenThere: libc-alpha@sourceware.org X-Mailman-Version: 2.1.30 Precedence: list List-Id: Libc-alpha mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: libc-alpha-bounces~patchwork=sourceware.org@sourceware.org From: Claudiu Zissulescu Enable SFrame stack track information. The --enable-sframe option allows the glibc build to compile with SFrame stack track information. Thus, enabling glibc's backtrace to work within glibc. Signed-off-by: Claudiu Zissulescu --- INSTALL | 5 ++ Makeconfig | 8 ++- NEWS | 2 + config.make.in | 1 + configure | 128 ++++++++++++++++++++++++++++++++++++++++++++ configure.ac | 43 +++++++++++++++ manual/install.texi | 5 ++ 7 files changed, 191 insertions(+), 1 deletion(-) diff --git a/INSTALL b/INSTALL index 24e3c8d25b..25abdb3969 100644 --- a/INSTALL +++ b/INSTALL @@ -284,6 +284,11 @@ if 'CFLAGS' is specified it must enable optimization. For example: Library. If not provided, 'LEVEL' defaults to highest possible value supported by the build compiler. +'--disable-sframe' + By default, the GNU C Library is build with '-Wa,--gsframe' if the + current GNU 'binutils' supports it. You may want to use this + option if you don't plan to use SFrame stack unwinder. + Default is to disable fortification. To build the library and related programs, type 'make'. This will diff --git a/Makeconfig b/Makeconfig index a87ff7b1d3..7d360f7daf 100644 --- a/Makeconfig +++ b/Makeconfig @@ -1011,6 +1011,12 @@ else +cflags += $(no-fortify-source) endif +# Enable SFrame while compiling for stack backtracing. +ifeq ($(enable-gsframe),yes) +as-sframe = -Wa,--gsframe +endif ++cflags += $(as-sframe) + # Each sysdeps directory can contain header files that both will be # used to compile and will be installed. Each can also contain an # include/ subdirectory, whose header files will be used to compile @@ -1158,7 +1164,7 @@ endif ifndef ASFLAGS ASFLAGS := $(filter -g% -fdebug-prefix-map=%,$(CFLAGS)) endif -override ASFLAGS += -Werror=undef $(ASFLAGS-config) $(asflags-cpu) +override ASFLAGS += -Werror=undef $(ASFLAGS-config) $(asflags-cpu) $(as-sframe) ifndef BUILD_CC BUILD_CC = $(CC) diff --git a/NEWS b/NEWS index b1ae1c31ca..22e0e0fa85 100644 --- a/NEWS +++ b/NEWS @@ -31,6 +31,8 @@ Major new features: * The iconv program now supports converting files in place. The program automatically uses a temporary file if required. +* New stack tracer using SFrame. + Deprecated and removed features, and other changes affecting compatibility: * The big-endian ARC port (arceb-linux-gnu) has been removed. diff --git a/config.make.in b/config.make.in index 36096881b7..db2367f007 100644 --- a/config.make.in +++ b/config.make.in @@ -51,6 +51,7 @@ c++-cstdlib-header = @CXX_CSTDLIB_HEADER@ c++-cmath-header = @CXX_CMATH_HEADER@ c++-bits-std_abs-h = @CXX_BITS_STD_ABS_H@ enable-werror = @enable_werror@ +enable-gsframe = @enable_gsframe@ have-z-execstack = @libc_cv_z_execstack@ have-protected-data = @libc_cv_protected_data@ diff --git a/configure b/configure index ec0b62db36..7908121794 100755 --- a/configure +++ b/configure @@ -620,6 +620,8 @@ DEFINES static_nss profile libc_cv_multidir +enable_gsframe +READELF_SFRAME shared static ldd_rewrite_script @@ -808,6 +810,7 @@ enable_mathvec enable_cet enable_scv enable_fortify_source +enable_sframe with_cpu ' ac_precious_vars='build_alias @@ -1491,6 +1494,8 @@ Optional Features: Use -D_FORTIFY_SOURCE=[1|2|3] to control code hardening, defaults to highest possible value supported by the build compiler. + --enable-sframe Enable SFrame stack trace information [default + depends on toolchain] Optional Packages: --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] @@ -4855,6 +4860,16 @@ case "$enable_fortify_source" in *) as_fn_error $? "Not a valid argument for --enable-fortify-source: \"$enable_fortify_source\"" "$LINENO" 5;; esac +# Check whether --enable-sframe was given. +if test ${enable_sframe+y} +then : + enableval=$enable_sframe; use_sframe=$enableval +else case e in #( + e) use_sframe=notset ;; +esac +fi + + # We keep the original values in `$config_*' and never modify them, so we # can write them unchanged into config.make. Everything else uses # $machine, $vendor, and $os, and changes them whenever convenient. @@ -8110,6 +8125,119 @@ fi config_vars="$config_vars enable-static-pie = $libc_cv_static_pie" +# Glibc stacktracer supports SFrame v2 or newer +libc_cv_readelf_version_ok=yes +for ac_prog in $READELF +do + # Extract the first word of "$ac_prog", so it can be a program name with args. +set dummy $ac_prog; ac_word=$2 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_READELF_SFRAME+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) if test -n "$READELF_SFRAME"; then + ac_cv_prog_READELF_SFRAME="$READELF_SFRAME" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then + ac_cv_prog_READELF_SFRAME="$ac_prog" + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi ;; +esac +fi +READELF_SFRAME=$ac_cv_prog_READELF_SFRAME +if test -n "$READELF_SFRAME"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $READELF_SFRAME" >&5 +printf "%s\n" "$READELF_SFRAME" >&6; } +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } +fi + + + test -n "$READELF_SFRAME" && break +done + +if test -z "$READELF_SFRAME"; then + ac_verc_fail=yes +else + # Found it, now check the version. + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking version of $READELF_SFRAME" >&5 +printf %s "checking version of $READELF_SFRAME... " >&6; } + ac_prog_version=`$READELF_SFRAME --version 2>&1 | sed -n 's/^.*GNU readelf.* \([0-9][0-9]*\.[0-9.]*\).*$/\1/p'` + case $ac_prog_version in + '') ac_prog_version="v. ?.??, bad"; ac_verc_fail=yes;; + 2.4[1-9]*|2.[5-9][0-9]*|[3-9].*|[1-9][0-9]*) + ac_prog_version="$ac_prog_version, ok"; ac_verc_fail=no;; + *) ac_prog_version="$ac_prog_version, bad"; ac_verc_fail=yes;; + + esac + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_prog_version" >&5 +printf "%s\n" "$ac_prog_version" >&6; } +fi +if test $ac_verc_fail = yes; then + libc_cv_readelf_version_ok=no +fi + + +# Check the current toolchain for SFrame support +if test $libc_cv_readelf_version_ok = yes; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for SFrame support" >&5 +printf %s "checking for SFrame support... " >&6; } +if test ${libc_cv_default_sframe+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) cat > conftest.c </dev/null 2>&1 && \ + # Check if .sframe section is present and if version > 1 + $READELF --sframe conftest.o | grep "SFRAME_VER" | grep -qv "VERSION_1"; then + libc_cv_default_sframe=yes + fi + rm -f conftest.c conftest.o + ;; +esac +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $libc_cv_default_sframe" >&5 +printf "%s\n" "$libc_cv_default_sframe" >&6; } +fi + +# Prevent enabling sframe on non-supporting toolchains +enable_gsframe=no +if test $use_sframe$libc_cv_default_sframe = yesyes || \ + test $use_sframe$libc_cv_default_sframe = notsetyes; then + enable_gsframe=yes +elif test $use_sframe = yes; then + { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5 +printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;} +as_fn_error $? "toolchain doesn't support SFrame V2 or higher +See 'config.log' for more details" "$LINENO" 5; } +fi + + # Set the `multidir' variable by grabbing the variable from the compiler. # We do it once and save the result in a generated makefile. libc_cv_multidir=`${CC-cc} $CFLAGS $CPPFLAGS -print-multi-directory` diff --git a/configure.ac b/configure.ac index 7c9b57789e..2d8c1be411 100644 --- a/configure.ac +++ b/configure.ac @@ -426,6 +426,12 @@ case "$enable_fortify_source" in *) AC_MSG_ERROR([Not a valid argument for --enable-fortify-source: "$enable_fortify_source"]);; esac +AC_ARG_ENABLE([sframe], + [AS_HELP_STRING([--enable-sframe], + [Enable SFrame stack trace information @<:@default depends on toolchain@:>@])], + [use_sframe=$enableval], + [use_sframe=notset]) + # We keep the original values in `$config_*' and never modify them, so we # can write them unchanged into config.make. Everything else uses # $machine, $vendor, and $os, and changes them whenever convenient. @@ -1776,6 +1782,43 @@ if test "$libc_cv_static_pie" = "yes"; then fi LIBC_CONFIG_VAR([enable-static-pie], [$libc_cv_static_pie]) +# Glibc stacktracer supports SFrame v2 or newer +libc_cv_readelf_version_ok=yes +AC_CHECK_PROG_VER(READELF_SFRAME, $READELF, --version, + [GNU readelf.* \([0-9][0-9]*\.[0-9.]*\)], + [2.4[1-9]*|2.[5-9][0-9]*|[3-9].*|[1-9][0-9]*], + libc_cv_readelf_version_ok=no) + +# Check the current toolchain for SFrame support +if test $libc_cv_readelf_version_ok = yes; then + AC_CACHE_CHECK([for SFrame support], libc_cv_default_sframe, + [dnl +cat > conftest.c </dev/null 2>&1 && \ + # Check if .sframe section is present and if version > 1 + $READELF --sframe conftest.o | grep "SFRAME_VER" | grep -qv "VERSION_1"; then + libc_cv_default_sframe=yes + fi + rm -f conftest.c conftest.o + ]) +fi + +# Prevent enabling sframe on non-supporting toolchains +enable_gsframe=no +if test $use_sframe$libc_cv_default_sframe = yesyes || \ + test $use_sframe$libc_cv_default_sframe = notsetyes; then + enable_gsframe=yes +elif test $use_sframe = yes; then + AC_MSG_FAILURE([toolchain doesn't support SFrame V2 or higher]) +fi +AC_SUBST(enable_gsframe) + # Set the `multidir' variable by grabbing the variable from the compiler. # We do it once and save the result in a generated makefile. libc_cv_multidir=`${CC-cc} $CFLAGS $CPPFLAGS -print-multi-directory` diff --git a/manual/install.texi b/manual/install.texi index 3e68a3d823..f3086da576 100644 --- a/manual/install.texi +++ b/manual/install.texi @@ -311,6 +311,11 @@ Use -D_FORTIFY_SOURCE=@option{LEVEL} to control hardening in the GNU C Library. If not provided, @option{LEVEL} defaults to highest possible value supported by the build compiler. +@item --disable-sframe +By default, the GNU C Library is build with @option{-Wa,--gsframe} if +the current GNU @code{binutils} supports it. You may want to use this +option if you don't plan to use SFrame stack unwinder. + Default is to disable fortification. @end table