From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mx0a-00069f02.pphosted.com (mx0a-00069f02.pphosted.com [205.220.165.32]) by sourceware.org (Postfix) with ESMTPS id 2FBEA3858D28 for ; Wed, 20 Jul 2022 16:19:36 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 2FBEA3858D28 Received: from pps.filterd (m0246617.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.17.1.5/8.17.1.5) with ESMTP id 26KEEPbe016431 for ; Wed, 20 Jul 2022 16:19:35 GMT Received: from iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta02.appoci.oracle.com [147.154.18.20]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3hbnvtj43y-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK) for ; Wed, 20 Jul 2022 16:19:34 +0000 Received: from pps.filterd (iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com [127.0.0.1]) by iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com (8.17.1.5/8.17.1.5) with ESMTP id 26KEkbdK002740 for ; Wed, 20 Jul 2022 16:19:33 GMT Received: from nam12-dm6-obe.outbound.protection.outlook.com (mail-dm6nam12lp2176.outbound.protection.outlook.com [104.47.59.176]) by iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com (PPS) with ESMTPS id 3hc1mc6q94-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK) for ; Wed, 20 Jul 2022 16:19:33 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=UGq1bnqsfWULw1ck2ksAoXqmpx+ERuXAS3rCd4eERjIAnmL1tiojYFvmmDgLU5H+plnGP0NWG/VcUGdIHdRboltulibYt/OitOz1JFNqTiz8dpcuY6Qn0wV+LSHWQO65ViVIBJY/Zs6X538tAy/eJC0ySGn4CxXi/YbFKh2Ua8PoVQG0CBnf7955W4Cc1AUdaJuJRqhZC7Fp9T3cJvK1CRWomSRzUZVwkvbUBvR5atU3IflXAI6EyCVOI9/E2IvSjHn4EqdZRorrAMaIwasUUvw5RICFi/HI8aSWubsLzSSeib8PHUveQdufk31st6QVTP/vpRKCK7sFXNFh6QuzLg== 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-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=G2F0Y3WfReER98ttMn4yqmuZYgYnK0S+OyAJTgZNsbI=; b=leCgx1/vNhgsRNBmPVNsFfQeG76Q/mzX2xzYuVwOnRzC8F01sHWEFmPGanZJuANh4vuIyKN5a7ySysfpseF7DLSPzhguTtYiyyjg0CFn5VsQuT4eCGuM/gHEwciz0FX/SYf1Vqc09o0bkQ6jzZckTNRZvrlbT0Bavt4+bZNfDVoHX012X4ZB3/x/YUphqb2rn0WIQwRwiTExJ3lPFpyVfVZAPWC16dofZL1Er99ezfFiwSLmquCxwD6AjBnxxWgaknGszPvmOPxstSnsshy10CshRiIolwEBD6GTfH1sUSNDtCZ6DNecLx8XNirq/lKZRT9Ekkk6seNom9v3udoNxA== 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 Received: from BYAPR10MB2888.namprd10.prod.outlook.com (2603:10b6:a03:88::32) by BN6PR10MB1569.namprd10.prod.outlook.com (2603:10b6:404:49::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5458.18; Wed, 20 Jul 2022 16:19:30 +0000 Received: from BYAPR10MB2888.namprd10.prod.outlook.com ([fe80::b5ee:262a:b151:2fdd]) by BYAPR10MB2888.namprd10.prod.outlook.com ([fe80::b5ee:262a:b151:2fdd%4]) with mapi id 15.20.5438.024; Wed, 20 Jul 2022 16:19:30 +0000 From: "Jose E. Marchesi" To: Indu Bhagat via Binutils Cc: Indu Bhagat Subject: Re: [PATCH, V5 00/10] Definition and Implementation of CTF Frame format References: <20220717082011.1284067-1-indu.bhagat@oracle.com> Date: Wed, 20 Jul 2022 18:19:23 +0200 In-Reply-To: <20220717082011.1284067-1-indu.bhagat@oracle.com> (Indu Bhagat via Binutils's message of "Sun, 17 Jul 2022 01:20:01 -0700") Message-ID: <875yjriwok.fsf@oracle.com> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/28.0.50 (gnu/linux) Content-Type: text/plain X-ClientProxiedBy: AM4PR05CA0005.eurprd05.prod.outlook.com (2603:10a6:205::18) To BYAPR10MB2888.namprd10.prod.outlook.com (2603:10b6:a03:88::32) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 7c96d33f-f4cf-4690-f0e3-08da6a6b9fc3 X-MS-TrafficTypeDiagnostic: BN6PR10MB1569:EE_ X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: A1VoTeDysF43Znx9FpQkgP6YNsiJ8I5uli8DknlSLyvkODK4H+nJiyzvkzBkDbuiWdni5T4dp0VRk2YEH7SRPCnptSl1haGnoLkgvToeU9oGepo+7HL/qkNCFy4nX0/5BVKaFVA/j4eEkSm+wgRzpPlSHFbxZ/yzNMonV1NozrLJ+9Vogxoj3oOKPv3rsTWZVDtYOQwzgaylbN76DXfAZ0hueeLfVre/vUbpFzzCU+CW7JOpHgQ4SNBju/o0f4iSRpfDCs26f3hyTN8bu4/SLN6GwaCTTiylCw0+qE5Z8zThQBO2I83gwSEzb7LGlPv4ZDQod3oBRIrRXwn0yzhVcpJui5gMlpQP2OKHDAuuDLy6u7SxLoThXExgR06XgRwudPMd7OGNjYRUlyfQmAapxWREUd4eovnnCbN13UZDmWD5crmPPgQpUL/S/P8mfsMMghhYbhGjU3D9V0P/yyCU9P+u7AOchm9K/EruZmeJCO/QWTgbuLma7253e0IryeTp4N08mLyFxvZ/Z2KQpdIeWj9fBNw7r3kHP24yHoHFD4E6oX6omjjLRZritMQvyb9hKWgsuwRWFTiXaTBX0wqXq/t7SfSvheiypUSxlDZQ5q+yE6kvcS3llaEiKFbXaNCyh3gv8Bu9vH5uCIvas3Gxj03MKHfjp+rC0oWxXUNkhCeygW0A6guL//uZw+KhuPRIxj7F5wE82vEXZLQDDUW/w72azaF0HuYFpV1FbZd+8iNl3/RsPCYLdbPC5tmHtVzP1JNnIZ71JIbS3kr1oOkn8p4qX71AA4UVzwgfvnjdMVfMBwyXtlJzJJNbjucZaPu3sDS6xZxBgdwzPVzBJ88jX6m4Tw9BMDhkpx9UNpKm06W/DvvN5GWafyoPOUSLzLkF X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:BYAPR10MB2888.namprd10.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230016)(346002)(396003)(136003)(39860400002)(366004)(376002)(6666004)(86362001)(41300700001)(2906002)(52116002)(6506007)(26005)(6512007)(5660300002)(30864003)(186003)(478600001)(6486002)(966005)(2616005)(107886003)(83380400001)(8936002)(36756003)(38350700002)(38100700002)(4326008)(6916009)(316002)(8676002)(66556008)(66476007)(66946007); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?4p66NblCAJLVSEizpUZu7XxsWds6PR3ca8CcXQxJLTSZRNBFw5m0RnsNl5bp?= =?us-ascii?Q?x5lWMcX3qVdG9Rz7r9L5Nek5jWpDu9uhAWGB1RlvLOCcHSgrna2NmnQUYfZm?= =?us-ascii?Q?PKMYfIzkqaHW3iqhg5Xg9ZgUdGoERecr895ur5FYrA28w+6AwLfWkKbzsj0l?= =?us-ascii?Q?wDa0LQr0BgWN+rHkPy2EOcuaZHsGED2P0qiZzomXcJ+9MNamQVoplGbVbPTU?= =?us-ascii?Q?6nKrlSTqTvMMSLAcFIgsEBeDS8/AVogMrdzEV2GYEo45rBHu3PTGJmrTrOru?= =?us-ascii?Q?wV/sCP1EKBamW5vKO1ASd3GnQqDJBsDXuEolYBXgfR0EdaaKR8VO/oWOm6PL?= =?us-ascii?Q?+JS21ppAaRCXWS+8OHe3FJrSizfCZjUhZwQcxdlCdDbYotTUD46KcJyVYjeU?= =?us-ascii?Q?nnu4te9z6yEUcldN+QqtJm7md6F4y9beMPyNEPLV/EXgGjfCgkmIsH9Tem6o?= =?us-ascii?Q?Q7v+nyb7EZbiUpyF6Bds48M0Eu/hHv0AeXUlHIl45L4NH2BpmTczMEESNZMR?= =?us-ascii?Q?xq+yqfbdPJflXzVZfjGF6uAXP25J+RnogsUNlpvQp20lZM3nMT+cHn2roaGC?= =?us-ascii?Q?J28xFMbwfPoeA1h+/Tso0gWChWScXn7nxIeEGvoTPiSBTQZzkCPQZeFa/bU0?= =?us-ascii?Q?kc4Lx3GsOh/Hd9XdrCOenpu5tfUjYjOGd0w+SYp3h9JOx4C1bfGrQbJTk5RL?= =?us-ascii?Q?/6C8MkT3eYpEDdGgPiwKZ37aXggiN85MpTIszH/g2yUdzpxUzGxZHUgP3bC8?= =?us-ascii?Q?XF0x8ZjV1vfs2tQASYW+C5VkcF7y1Xn02UoIUkH/9u1Tz57K0NA0Gwe6+41A?= =?us-ascii?Q?K08yhMd45iAg5ZgQoaJZdccQb3kKXZIK1hGYhxKHjvLTSr5CLidJZPzuucmF?= =?us-ascii?Q?16ybbWcn+Nk0te3IJM47EUKgWvfXWupyLJUDegL0+V6Rwj0catrHbRU+NmWM?= =?us-ascii?Q?hYcgckF1duzHCQnGYCg7sAl6D5jOzf97rx9Fxei8cptcbpHh/i5wQQZQ6ZkJ?= =?us-ascii?Q?9PsAH0Df5oZ2QfdOaIgPN7oeA5Uuw0pre3BdeFdcGKmCFJlnx3lMiTyajhTk?= =?us-ascii?Q?vgfi8CxyxvWtZZ+359VIfkDSbdVYQdT4Sw63GE44q5rxE+ZIq6f7NSDcjXTF?= =?us-ascii?Q?/2M/o2C6sHs5NYPWIi6RATptIF9YLK9o7yvJLyWCN1Dozvlvrzve03UpVRXo?= =?us-ascii?Q?V6NMb6WkxJKOdta5EfL33qlYePcN1DDVQF+W40VyHge3tfnfUeyu/0Pn/8UP?= =?us-ascii?Q?mwdbQchWq9rDnX/92q7IUGzdPJeeVf4dxE2TNMo5LroX0i/nvRRKmbh6iGSK?= =?us-ascii?Q?jVuzbCXdMjgpaZMTY8q3RJj1PjFTKiQILShG+QWeXKbR0TX0fqkBydWObDMD?= =?us-ascii?Q?5r5/yShgxuQlcFz3DqJV9oiidHVNIULiiy84XVNpu9yPwFzsi6ae86c0Ok1n?= =?us-ascii?Q?E8APdS4wvSWNWnHP2HPq4Up5SUbz2/tf6qWHUxf45Rjb2aFJmoU3gK6ItFAU?= =?us-ascii?Q?qVosUbABMpDA8QLMXVFkZprX+nSr4wfbBFYhWZ8EUdcOtQ1YoKanbLHooDJO?= =?us-ascii?Q?aAnkIGiTnshrarR4qUeilXc/LdoQESHtmzid/CKYglh1350wl3/Y+V5gNPqv?= =?us-ascii?Q?zA=3D=3D?= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 7c96d33f-f4cf-4690-f0e3-08da6a6b9fc3 X-MS-Exchange-CrossTenant-AuthSource: BYAPR10MB2888.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 20 Jul 2022 16:19:30.3622 (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: thcLWVmHG9etaeLmpSY2/wlz5yRec94N3ixHNwSJVh9xL2CC3Fcx4MHHV0lMfme/suanidSrygGHMiu0VAQqVOjb3ZmwpvvhMPnn+OjKoP8= X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN6PR10MB1569 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.205,Aquarius:18.0.883,Hydra:6.0.517,FMLib:17.11.122.1 definitions=2022-07-20_10,2022-07-20_01,2022-06-22_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 malwarescore=0 bulkscore=0 phishscore=0 suspectscore=0 mlxlogscore=999 adultscore=0 spamscore=0 mlxscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2206140000 definitions=main-2207200067 X-Proofpoint-GUID: wzAdN98refvBhbNihgrbmwcXxRjMoomF X-Proofpoint-ORIG-GUID: wzAdN98refvBhbNihgrbmwcXxRjMoomF X-Spam-Status: No, score=-5.9 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, RCVD_IN_DNSWL_LOW, RCVD_IN_MSPIKE_H2, 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: binutils@sourceware.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Binutils mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 20 Jul 2022 16:19:42 -0000 Hi people. Any chance we can have a review for this patch series? If it helps, we could push it to an user branch in the git repo. > This is version 5 of the previously sent RFC series. > > Initial (V1) posting contains necessary introductions: > https://sourceware.org/pipermail/binutils/2022-May/120731.html > V2 posting with some improvements: > https://sourceware.org/pipermail/binutils/2022-May/120899.html > V3 posting with further improvements: > https://sourceware.org/pipermail/binutils/2022-June/121245.html > V4 posting with further improvements and bugfixes: > https://sourceware.org/pipermail/binutils/2022-June/121478.html > > The commit log of each patch in the current patch series specifies the changes > from the version V4 of the respective patch. Briefly, following are the main > changes in the current version V5 as compared to V4: > > 1. Assembler testsuite has additional testcases. In general, the > as/ld/unwinder support for CTF Frame format has been further tested in this > version of the patch series for both x86_64 and aarch64. > 2. libctfbacktrace is the library which provides a simple unwinder based on CTF > Frame. The current patch series now includes a testsuite for the unwinder > based on CTF Frame. > > CTF Frame support V5 patch series has been regression tested on a host of > targets with no regressions. > > Important note: libctfframe/configure has NOT been included in the patch > series, as it causes the size of some patches to go beyond the allowed limit. > Please regenerate the libctfframe/configure after applying the series. > > Please comment and provide feedback, it will help shape the format. One of the > outstanding item where feedback from folks will help is: > > 1. What is a good place for an unwinder based on CTF Frame format ? Currently > to facilitate discussion, it is presented in a library of its own: > libctfbacktrace which, in turn, uses the libctfframe library for decoding the > .ctf_frame section for unwinding. We brainstormed a bit about the possible > candidates being libbacktace, libgcc or libunwind ? Are there any > recommendations ? > > Thanks, > > Indu Bhagat (7): > ctf-frame.h: Add CTF Frame format definition > gas: add new command line option --gctf-frame > gas: generate .ctf_frame > libctfframe: add GNU poke pickles for CTF Frame > bfd: linker: merge .ctf_frame sections > readelf/objdump: support for CTF Frame section > gdb: sim: buildsystem changes to accommodate libctfframe > > Weimin Pan (3): > libctfframe: add the CTF Frame library > unwinder: generate backtrace using CTF Frame format > unwinder: Add CTF Frame unwinder tests > > Makefile.def | 5 + > Makefile.in | 1289 +++++++++++++- > bfd/Makefile.am | 6 +- > bfd/Makefile.in | 7 +- > bfd/bfd-in2.h | 1 + > bfd/configure | 2 +- > bfd/configure.ac | 2 +- > bfd/elf-bfd.h | 55 + > bfd/elf-ctf-frame.c | 529 ++++++ > bfd/elf.c | 32 + > bfd/elf64-x86-64.c | 97 +- > bfd/elflink.c | 52 + > bfd/elfxx-x86.c | 379 +++- > bfd/elfxx-x86.h | 46 + > bfd/section.c | 1 + > binutils/Makefile.am | 10 +- > binutils/Makefile.in | 10 +- > binutils/doc/binutils.texi | 4 + > binutils/doc/ctfframe.options.texi | 10 + > binutils/objdump.c | 76 + > binutils/readelf.c | 47 + > config/ctf-frame.m4 | 16 + > configure | 2 +- > configure.ac | 2 +- > gas/Makefile.am | 3 + > gas/Makefile.in | 23 +- > gas/as.c | 10 +- > gas/as.h | 13 +- > gas/config/tc-aarch64.c | 42 + > gas/config/tc-aarch64.h | 29 + > gas/config/tc-i386.c | 46 + > gas/config/tc-i386.h | 26 + > gas/config/tc-xtensa.c | 1 + > gas/ctf-frame-opt.c | 158 ++ > gas/doc/as.texi | 19 +- > gas/dw2gencfi.c | 30 + > gas/dw2gencfi.h | 1 + > gas/gen-ctf-frame.c | 1297 ++++++++++++++ > gas/gen-ctf-frame.h | 142 ++ > gas/testsuite/gas/cfi-ctf/cfi-ctf-aarch64-1.d | 20 + > gas/testsuite/gas/cfi-ctf/cfi-ctf-aarch64-1.s | 61 + > gas/testsuite/gas/cfi-ctf/cfi-ctf-common-1.d | 17 + > gas/testsuite/gas/cfi-ctf/cfi-ctf-common-1.s | 3 + > gas/testsuite/gas/cfi-ctf/cfi-ctf-common-2.d | 17 + > gas/testsuite/gas/cfi-ctf/cfi-ctf-common-2.s | 2 + > gas/testsuite/gas/cfi-ctf/cfi-ctf-common-3.d | 17 + > gas/testsuite/gas/cfi-ctf/cfi-ctf-common-3.s | 4 + > gas/testsuite/gas/cfi-ctf/cfi-ctf-common-4.d | 21 + > gas/testsuite/gas/cfi-ctf/cfi-ctf-common-4.s | 8 + > gas/testsuite/gas/cfi-ctf/cfi-ctf-common-5.d | 21 + > gas/testsuite/gas/cfi-ctf/cfi-ctf-common-5.s | 7 + > gas/testsuite/gas/cfi-ctf/cfi-ctf-common-6.d | 21 + > gas/testsuite/gas/cfi-ctf/cfi-ctf-common-6.s | 7 + > gas/testsuite/gas/cfi-ctf/cfi-ctf-common-7.d | 21 + > gas/testsuite/gas/cfi-ctf/cfi-ctf-common-7.s | 7 + > gas/testsuite/gas/cfi-ctf/cfi-ctf-common-8.d | 20 + > gas/testsuite/gas/cfi-ctf/cfi-ctf-common-8.s | 12 + > gas/testsuite/gas/cfi-ctf/cfi-ctf-x86_64-1.d | 22 + > gas/testsuite/gas/cfi-ctf/cfi-ctf-x86_64-1.s | 30 + > gas/testsuite/gas/cfi-ctf/cfi-ctf.exp | 58 + > gas/testsuite/gas/cfi-ctf/common-empty-1.d | 14 + > gas/testsuite/gas/cfi-ctf/common-empty-1.s | 5 + > gas/testsuite/gas/cfi-ctf/common-empty-2.d | 14 + > gas/testsuite/gas/cfi-ctf/common-empty-2.s | 8 + > gas/testsuite/gas/cfi-ctf/common-empty-3.d | 14 + > gas/testsuite/gas/cfi-ctf/common-empty-3.s | 9 + > gas/testsuite/gas/cfi-ctf/common-empty-4.d | 14 + > gas/testsuite/gas/cfi-ctf/common-empty-4.s | 18 + > gas/write.c | 13 + > gdb/Makefile.in | 8 +- > gdb/acinclude.m4 | 4 +- > gdb/configure | 35 +- > gdb/configure.ac | 11 + > include/ctf-backtrace-api.h | 57 + > include/ctf-frame-api.h | 213 +++ > include/ctf-frame.h | 281 +++ > include/elf/common.h | 1 + > include/elf/internal.h | 1 + > ld/Makefile.am | 2 + > ld/Makefile.in | 2 + > ld/configure | 8 +- > ld/configure.ac | 3 + > ld/ld.texi | 4 +- > ld/scripttempl/elf.sc | 2 + > ld/testsuite/ld-aarch64/aarch64-elf.exp | 2 + > ld/testsuite/ld-aarch64/ctf-frame-bar.s | 7 + > ld/testsuite/ld-aarch64/ctf-frame-foo.s | 10 + > ld/testsuite/ld-aarch64/ctf-frame-simple-1.d | 26 + > ld/testsuite/ld-bootstrap/bootstrap.exp | 8 +- > ld/testsuite/ld-ctf-frame/ctf-frame-empty.d | 10 + > ld/testsuite/ld-ctf-frame/ctf-frame-empty.s | 2 + > ld/testsuite/ld-ctf-frame/ctf-frame.exp | 47 + > ld/testsuite/ld-ctf-frame/discard.d | 10 + > ld/testsuite/ld-ctf-frame/discard.ld | 9 + > ld/testsuite/ld-ctf-frame/discard.s | 13 + > ld/testsuite/ld-x86-64/ctf-frame-bar.s | 31 + > ld/testsuite/ld-x86-64/ctf-frame-foo.s | 37 + > ld/testsuite/ld-x86-64/ctf-frame-plt-1.d | 29 + > ld/testsuite/ld-x86-64/ctf-frame-simple-1.d | 35 + > ld/testsuite/ld-x86-64/x86-64.exp | 2 + > ld/testsuite/lib/ld-lib.exp | 45 + > libctfframe/Makefile.am | 84 + > libctfframe/Makefile.in | 1050 +++++++++++ > libctfframe/aclocal.m4 | 1242 +++++++++++++ > libctfframe/config.h.in | 144 ++ > libctfframe/configure.ac | 82 + > libctfframe/ctf-backtrace-err.c | 46 + > libctfframe/ctf-backtrace.c | 617 +++++++ > libctfframe/ctf-frame-dump.c | 181 ++ > libctfframe/ctf-frame-dump.pk | 68 + > libctfframe/ctf-frame-error.c | 49 + > libctfframe/ctf-frame-impl.h | 55 + > libctfframe/ctf-frame.c | 1584 +++++++++++++++++ > libctfframe/ctf-frame.pk | 200 +++ > libctfframe/testsuite/config/default.exp | 60 + > libctfframe/testsuite/lib/ctfframe-lib.exp | 333 ++++ > .../testsuite/libctfframe.decode/DATA1 | Bin 0 -> 59 bytes > .../testsuite/libctfframe.decode/DATA2 | Bin 0 -> 91 bytes > .../testsuite/libctfframe.decode/DATA_BIGE | Bin 0 -> 59 bytes > .../libctfframe.decode/bigendian_data.c | 110 ++ > .../libctfframe.decode/bigendian_data.lk | 3 + > .../testsuite/libctfframe.decode/decode.exp | 38 + > .../testsuite/libctfframe.decode/frecnt_1.c | 108 ++ > .../testsuite/libctfframe.decode/frecnt_1.lk | 3 + > .../testsuite/libctfframe.decode/frecnt_2.c | 113 ++ > .../testsuite/libctfframe.decode/frecnt_2.lk | 3 + > .../testsuite/libctfframe.encode/encode.exp | 38 + > .../testsuite/libctfframe.encode/encode_1.c | 173 ++ > .../testsuite/libctfframe.encode/encode_1.lk | 3 + > .../testsuite/libctfframe.unwind/backtrace.c | 101 ++ > .../testsuite/libctfframe.unwind/backtrace.lk | 3 + > .../libctfframe.unwind/inline-cmds.c | 135 ++ > .../libctfframe.unwind/inline-cmds.lk | 3 + > .../testsuite/libctfframe.unwind/inline.c | 97 + > .../testsuite/libctfframe.unwind/inline.lk | 3 + > .../testsuite/libctfframe.unwind/solib-lib1.c | 8 + > .../testsuite/libctfframe.unwind/solib-lib2.c | 50 + > .../testsuite/libctfframe.unwind/solib-main.c | 47 + > .../testsuite/libctfframe.unwind/solib.exp | 68 + > .../testsuite/libctfframe.unwind/solib_lib1.h | 3 + > .../testsuite/libctfframe.unwind/solib_lib2.h | 3 + > .../testsuite/libctfframe.unwind/tailcall.c | 103 ++ > .../testsuite/libctfframe.unwind/tailcall.lk | 3 + > .../testsuite/libctfframe.unwind/ttest.c | 127 ++ > .../testsuite/libctfframe.unwind/ttest.lk | 3 + > .../testsuite/libctfframe.unwind/unwind.exp | 189 ++ > libctfframe/ttest.c | 78 + > sim/common/Make-common.in | 7 +- > 148 files changed, 13340 insertions(+), 58 deletions(-) > create mode 100644 bfd/elf-ctf-frame.c > create mode 100644 binutils/doc/ctfframe.options.texi > create mode 100644 config/ctf-frame.m4 > create mode 100644 gas/ctf-frame-opt.c > create mode 100644 gas/gen-ctf-frame.c > create mode 100644 gas/gen-ctf-frame.h > create mode 100644 gas/testsuite/gas/cfi-ctf/cfi-ctf-aarch64-1.d > create mode 100644 gas/testsuite/gas/cfi-ctf/cfi-ctf-aarch64-1.s > create mode 100644 gas/testsuite/gas/cfi-ctf/cfi-ctf-common-1.d > create mode 100644 gas/testsuite/gas/cfi-ctf/cfi-ctf-common-1.s > create mode 100644 gas/testsuite/gas/cfi-ctf/cfi-ctf-common-2.d > create mode 100644 gas/testsuite/gas/cfi-ctf/cfi-ctf-common-2.s > create mode 100644 gas/testsuite/gas/cfi-ctf/cfi-ctf-common-3.d > create mode 100644 gas/testsuite/gas/cfi-ctf/cfi-ctf-common-3.s > create mode 100644 gas/testsuite/gas/cfi-ctf/cfi-ctf-common-4.d > create mode 100644 gas/testsuite/gas/cfi-ctf/cfi-ctf-common-4.s > create mode 100644 gas/testsuite/gas/cfi-ctf/cfi-ctf-common-5.d > create mode 100644 gas/testsuite/gas/cfi-ctf/cfi-ctf-common-5.s > create mode 100644 gas/testsuite/gas/cfi-ctf/cfi-ctf-common-6.d > create mode 100644 gas/testsuite/gas/cfi-ctf/cfi-ctf-common-6.s > create mode 100644 gas/testsuite/gas/cfi-ctf/cfi-ctf-common-7.d > create mode 100644 gas/testsuite/gas/cfi-ctf/cfi-ctf-common-7.s > create mode 100644 gas/testsuite/gas/cfi-ctf/cfi-ctf-common-8.d > create mode 100644 gas/testsuite/gas/cfi-ctf/cfi-ctf-common-8.s > create mode 100644 gas/testsuite/gas/cfi-ctf/cfi-ctf-x86_64-1.d > create mode 100644 gas/testsuite/gas/cfi-ctf/cfi-ctf-x86_64-1.s > create mode 100644 gas/testsuite/gas/cfi-ctf/cfi-ctf.exp > create mode 100644 gas/testsuite/gas/cfi-ctf/common-empty-1.d > create mode 100644 gas/testsuite/gas/cfi-ctf/common-empty-1.s > create mode 100644 gas/testsuite/gas/cfi-ctf/common-empty-2.d > create mode 100644 gas/testsuite/gas/cfi-ctf/common-empty-2.s > create mode 100644 gas/testsuite/gas/cfi-ctf/common-empty-3.d > create mode 100644 gas/testsuite/gas/cfi-ctf/common-empty-3.s > create mode 100644 gas/testsuite/gas/cfi-ctf/common-empty-4.d > create mode 100644 gas/testsuite/gas/cfi-ctf/common-empty-4.s > create mode 100644 include/ctf-backtrace-api.h > create mode 100644 include/ctf-frame-api.h > create mode 100644 include/ctf-frame.h > create mode 100644 ld/testsuite/ld-aarch64/ctf-frame-bar.s > create mode 100644 ld/testsuite/ld-aarch64/ctf-frame-foo.s > create mode 100644 ld/testsuite/ld-aarch64/ctf-frame-simple-1.d > create mode 100644 ld/testsuite/ld-ctf-frame/ctf-frame-empty.d > create mode 100644 ld/testsuite/ld-ctf-frame/ctf-frame-empty.s > create mode 100644 ld/testsuite/ld-ctf-frame/ctf-frame.exp > create mode 100644 ld/testsuite/ld-ctf-frame/discard.d > create mode 100644 ld/testsuite/ld-ctf-frame/discard.ld > create mode 100644 ld/testsuite/ld-ctf-frame/discard.s > create mode 100644 ld/testsuite/ld-x86-64/ctf-frame-bar.s > create mode 100644 ld/testsuite/ld-x86-64/ctf-frame-foo.s > create mode 100644 ld/testsuite/ld-x86-64/ctf-frame-plt-1.d > create mode 100644 ld/testsuite/ld-x86-64/ctf-frame-simple-1.d > create mode 100644 libctfframe/Makefile.am > create mode 100644 libctfframe/Makefile.in > create mode 100644 libctfframe/aclocal.m4 > create mode 100644 libctfframe/config.h.in > create mode 100644 libctfframe/configure.ac > create mode 100644 libctfframe/ctf-backtrace-err.c > create mode 100644 libctfframe/ctf-backtrace.c > create mode 100644 libctfframe/ctf-frame-dump.c > create mode 100644 libctfframe/ctf-frame-dump.pk > create mode 100644 libctfframe/ctf-frame-error.c > create mode 100644 libctfframe/ctf-frame-impl.h > create mode 100644 libctfframe/ctf-frame.c > create mode 100644 libctfframe/ctf-frame.pk > create mode 100644 libctfframe/testsuite/config/default.exp > create mode 100644 libctfframe/testsuite/lib/ctfframe-lib.exp > create mode 100644 libctfframe/testsuite/libctfframe.decode/DATA1 > create mode 100644 libctfframe/testsuite/libctfframe.decode/DATA2 > create mode 100644 libctfframe/testsuite/libctfframe.decode/DATA_BIGE > create mode 100644 libctfframe/testsuite/libctfframe.decode/bigendian_data.c > create mode 100644 libctfframe/testsuite/libctfframe.decode/bigendian_data.lk > create mode 100644 libctfframe/testsuite/libctfframe.decode/decode.exp > create mode 100644 libctfframe/testsuite/libctfframe.decode/frecnt_1.c > create mode 100644 libctfframe/testsuite/libctfframe.decode/frecnt_1.lk > create mode 100644 libctfframe/testsuite/libctfframe.decode/frecnt_2.c > create mode 100644 libctfframe/testsuite/libctfframe.decode/frecnt_2.lk > create mode 100644 libctfframe/testsuite/libctfframe.encode/encode.exp > create mode 100644 libctfframe/testsuite/libctfframe.encode/encode_1.c > create mode 100644 libctfframe/testsuite/libctfframe.encode/encode_1.lk > create mode 100644 libctfframe/testsuite/libctfframe.unwind/backtrace.c > create mode 100644 libctfframe/testsuite/libctfframe.unwind/backtrace.lk > create mode 100644 libctfframe/testsuite/libctfframe.unwind/inline-cmds.c > create mode 100644 libctfframe/testsuite/libctfframe.unwind/inline-cmds.lk > create mode 100644 libctfframe/testsuite/libctfframe.unwind/inline.c > create mode 100644 libctfframe/testsuite/libctfframe.unwind/inline.lk > create mode 100644 libctfframe/testsuite/libctfframe.unwind/solib-lib1.c > create mode 100644 libctfframe/testsuite/libctfframe.unwind/solib-lib2.c > create mode 100644 libctfframe/testsuite/libctfframe.unwind/solib-main.c > create mode 100644 libctfframe/testsuite/libctfframe.unwind/solib.exp > create mode 100644 libctfframe/testsuite/libctfframe.unwind/solib_lib1.h > create mode 100644 libctfframe/testsuite/libctfframe.unwind/solib_lib2.h > create mode 100644 libctfframe/testsuite/libctfframe.unwind/tailcall.c > create mode 100644 libctfframe/testsuite/libctfframe.unwind/tailcall.lk > create mode 100644 libctfframe/testsuite/libctfframe.unwind/ttest.c > create mode 100644 libctfframe/testsuite/libctfframe.unwind/ttest.lk > create mode 100644 libctfframe/testsuite/libctfframe.unwind/unwind.exp > create mode 100644 libctfframe/ttest.c