From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mx0b-00069f02.pphosted.com (mx0b-00069f02.pphosted.com [205.220.177.32]) by sourceware.org (Postfix) with ESMTPS id B72D93858D28 for ; Sun, 17 Jul 2022 08:20:54 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org B72D93858D28 Received: from pps.filterd (m0246632.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.17.1.5/8.17.1.5) with ESMTP id 26H85lNr004121 for ; Sun, 17 Jul 2022 08:20:54 GMT Received: from iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta03.appoci.oracle.com [130.35.103.27]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3hbmxs18e2-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK) for ; Sun, 17 Jul 2022 08:20:53 +0000 Received: from pps.filterd (iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com [127.0.0.1]) by iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (8.17.1.5/8.17.1.5) with ESMTP id 26H7D4XT012201 for ; Sun, 17 Jul 2022 08:20:53 GMT Received: from nam10-dm6-obe.outbound.protection.outlook.com (mail-dm6nam10lp2101.outbound.protection.outlook.com [104.47.58.101]) by iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (PPS) with ESMTPS id 3hc1hq9dru-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK) for ; Sun, 17 Jul 2022 08:20:53 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=i5+qO8V0+sfcrWmJrR1E7QZXtyu8rk42aKAjcOF/5qjlKATHhAV9yfbCJfGcq9yuMuHRwDsagmqyTNkaoYfl3HPZjubi+IR0WZwX231RyLmc3fCzAzPPzN9ciJmrbiHvCiiyG9LQJfhtO+mT2BwVKEhpjKJ7/pmh2/LGmaH7sQsA4HBDIQJJha+TYjakLA/XCrBT+1Nn4JzHKeNayY2+otW6KlVZ7Ooh6+5Lz/UY6qXi+rudDHIs2g1iv2yLdG7CZVUZ0/v0M4J4h6pR+mUJAJhGlKb5ejTQslwHjyGcCeJlAI3uoLa72mu4THO+yeK/IGFy74OADkWjto4B9Fl8eQ== 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=2nE9orKWuprwzB4JWflhrt7McEIs929B0NiwwpJIP8k=; b=MK/Bxwuz0IqqeuYbQkObXhJEW9vkRqsXL5OmbImHkE26xpCSuqe4G5Aj4vAdAgNx3HJa0uARKWl+VhJ5cFmnu/xhK+Dd1miJXx+p9Q67JJwSwnJPeCG9EZ7sgUGZmw+vLyKwe9TdF4m7DkYBjKIERFivmhPIIv8Khv8x8zZZVKPaMq7A/vRI2ZrXfHi+NaXT2TJTtkSZNE87jTB9Rhe21sAH6wCRpACb+ghDtYV7t82n2W4ORmRdHt3MjhRIqPfHqUZBK6owG7ZwQGkbGaBwFMcMWAygnLPF74IXJFUqWjnCKzkS3x0/33QYHns/K52h4qIxeSf2VOt5ozI9+nF/SQ== 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 MWHPR1001MB2158.namprd10.prod.outlook.com (2603:10b6:301:2d::17) by MWHPR10MB1469.namprd10.prod.outlook.com (2603:10b6:300:1f::7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5438.14; Sun, 17 Jul 2022 08:20:51 +0000 Received: from MWHPR1001MB2158.namprd10.prod.outlook.com ([fe80::65fb:fa92:9a15:f89b]) by MWHPR1001MB2158.namprd10.prod.outlook.com ([fe80::65fb:fa92:9a15:f89b%6]) with mapi id 15.20.5438.022; Sun, 17 Jul 2022 08:20:51 +0000 From: Indu Bhagat To: binutils@sourceware.org Subject: [PATCH,V5 00/10] Definition and Implementation of CTF Frame format Date: Sun, 17 Jul 2022 01:20:01 -0700 Message-Id: <20220717082011.1284067-1-indu.bhagat@oracle.com> X-Mailer: git-send-email 2.31.1 Content-Transfer-Encoding: 8bit Content-Type: text/plain X-ClientProxiedBy: MW3PR05CA0025.namprd05.prod.outlook.com (2603:10b6:303:2b::30) To MWHPR1001MB2158.namprd10.prod.outlook.com (2603:10b6:301:2d::17) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 9c17ba21-4470-40a6-9527-08da67cd428b X-MS-TrafficTypeDiagnostic: MWHPR10MB1469:EE_ X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: T+8OB+N46OPTZ4iakunPcslY54CEHAi3gZXjgnE9r7GgC3rGBlEH/OBReE2o+4D5pCX9YJ02XcSiUTARq7WLURERz3/Y4PfFZpuWxXnh44F8Lt22SxcHzjcyYD8mqVxFGToyuy+ilHBVJk03PbmUxGM3bYZAXZBJxHnxCZkJWgUIIDInNA8pLefQeVwMFRy5E4MYNH8SbW54jIL0nj20LEY45MBhdDk32KEbtOisSmQh3PIGVnbyawWkIveEQ5CGZG7XH/YbCAsnwAPu4XZUZRbB+PuEJF17LqqV2pB0lOzxw+i5spRoK7oX0+5FEC5fjKQr66v8aRyy9WwwKiTOeIuZra1RFTbg7AULEweuCs6sDyNgSvibj/DAu3M9n9OhxjX44DPa50UCvb4NwRiThZhyHhu68Z5lLIunuN4KSs1UbCwD3/DB7g99BVxZVO4swM2wlpgz07P3f88kYrDbuWxwyXYGDvPOQdCxTd4eoBZ5zO+2ClR6834h+c1zwreAdOEhk6mmmOzNBYuW3S08P7E9SJPXF0aSMlSJCSeESPn6tRtd4XrKqKBwEsWAlAdgmFppbAfjh9E3onX5yGuKPJ1RgwIibk8QJgZnk99fmlS3Vqgxu9v87X7wOKPn8TUWDxqB94956k2UIktP1kPJLj7KleEx4pn7yTF0XL9BuB+huXsglsW6Wi8WP3BH/EwxK/fNW8cHfRZnvJTkyyTRM4yadTM50JbI3xT5CIQWXdjbyXRhJKF3EbkdOsXvyTWm7B8m3OquUSZgExUuV7USGYhmKisUYEWfjXEHl0MoalxRpAFeF+ZY3AMaB4U/nlPn+LS+8EfjHNOuqHJRINdrilypOA/EiW4RdUmtxLBu0VSw8qmdRWEbzRsP0lIDa1kE X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:MWHPR1001MB2158.namprd10.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230016)(396003)(39860400002)(346002)(376002)(136003)(366004)(5660300002)(6506007)(52116002)(478600001)(30864003)(8676002)(316002)(6916009)(966005)(44832011)(6486002)(8936002)(86362001)(38100700002)(38350700002)(66556008)(66476007)(6666004)(66946007)(41300700001)(36756003)(2616005)(1076003)(83380400001)(186003)(2906002)(6512007)(26005); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?i+khiNFM4RoApnVjcuAKtIhVQBPGOyV0eQzQ1JbhFKo6ZGOEqjt/icmC8/29?= =?us-ascii?Q?OOyKutxRdrG0/DxaRQzcbsII/KS8OkVO26oL6tnpZWLudi5RMYjERBC9xrCn?= =?us-ascii?Q?aU4wwC4H6LxGTslnIKM35mEiVigRVb3ev8fMCe0iHNA4OA4oPduDj/+8+BHf?= =?us-ascii?Q?bXfGyhyLsu5P47/X/5SNym7Pw0hqIY7e15L+FKTE5PkNaFXOjPuTie8HAFBN?= =?us-ascii?Q?+DE1XD4ajRfJzpbDjHzYgL4tKY15OP4Qc+OXIPnobQp/DMhvIXdZdFk4IGXW?= =?us-ascii?Q?ApFR/I6k2ujhsYvJeYhUZGc72tSLW9QSPb4Q5Aa3P4fJIv2+dCU3v0y0BpD/?= =?us-ascii?Q?+AitBpjYNUE61HzfnKqQU4+yymEONRJiKHElqrdZOwxUkcpFBz+8UllSCOnQ?= =?us-ascii?Q?Tiyzb63DgsIgOcOc+WUrx9Ddzjsd6tXJb/z72KfJMT/0woP3qYN21aooenxl?= =?us-ascii?Q?fRNnhcv6QekoKSfH6gmKng35bvYKtL5XogqRSbjl37B/rh6m+x0wDVUHIzh3?= =?us-ascii?Q?DJqyDWoJD0wyJq2/1BzaGnHDXGa2k/EsFqbwCFQMZ1eC4Uxi99MabxL8I7IF?= =?us-ascii?Q?Yn/imhpMyvpp9qSO3g+lVje1ZxQnVpSCG5U5gNyY/Ac5m2ljm7An8FMY+Twk?= =?us-ascii?Q?tElhoIE1rjRnlFH/BcqYOyzVPP3+HRPlKX0FrGjOAy/Ljw/xdkpICk6ifCWk?= =?us-ascii?Q?Xp+T5MQIzuZqP0uzAfQHKGZ5CgAHWWD3kvsVxCKWWWizbs7zLBIMOea4g3Mg?= =?us-ascii?Q?JCSD9YYNjNc211J7CBNnTN056hw7HdPfOPuvY/I+zflh6fbNblFqYFE84kOp?= =?us-ascii?Q?TjzdrVF0KjOMGaR3ZMsZKE4Jm/rJzC02NsqjwcojehxDEVajU3XAWb2VijqO?= =?us-ascii?Q?a5MDsVgPrvppRuzlG+GyiK3+OwoVH+3ev/RlerK2G81+Y4mPQkSnrpFxlISM?= =?us-ascii?Q?6LXt0EselBgVWRRXyNgUtozA9JUJNqyKJ1nQEPo+wOM6jgXxjk0U+A+h5rMl?= =?us-ascii?Q?QIjxg/zUuuj8ENagb7M8s6jZA7XtqQo0q6PxHABkJtoCp9ylrdZUkXSAIe6I?= =?us-ascii?Q?pyeCzsbWqo+6Lywyv0VaM9ox0JaI+rBhIJZJH+NM6xcvhjaRwc8pDuT8yvzD?= =?us-ascii?Q?Wxf3Kr0hB0h6fHVfEzTbpf/GCRbJDGRfOmUMDXp1ScxgKJzBZk0oJ7H12YwT?= =?us-ascii?Q?mTVs/9wM9CtxtOXluHKBNe1lha4vmEzmqHhOar/0TBnIgOVMmhXON0A4X5GV?= =?us-ascii?Q?PMYwgqFe/rw848OLdN6VeOufTbndrH1CN1qv/FxXhkQs7zFqp8xd4Mksauj4?= =?us-ascii?Q?+/kwX17WPCIsyIcV8pxOzgzvTn2AWYDbfRj3N/UagYEjxADFFQQusB/7N7MO?= =?us-ascii?Q?QRFGTvyhCG5RBPG9bn9AUUssUCBLC7gwvrADN43+SFnQMJwvnsSz9j6opnxt?= =?us-ascii?Q?l7QY7o572T6la9B4b5EQtEoBVcKxkWtm8lLHM2pDXFS20pSYA51K4EWyfydT?= =?us-ascii?Q?P6OeuC3o4NZP4qr47QpuDmGGBqcpAm3juuuysrKxuB+mRVVN+1begOHG2CNu?= =?us-ascii?Q?s6XgJAkqfQE+5xAzMxWwTW1kG9b+KCIHyzdycFWS?= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 9c17ba21-4470-40a6-9527-08da67cd428b X-MS-Exchange-CrossTenant-AuthSource: MWHPR1001MB2158.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 17 Jul 2022 08:20:51.0309 (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: 4bbZC1IRLHAbt415QPkbmFKrXYmQLZfCLNFRlfnqk7HYrXAoXEtVqbyHGm/AlMXd2FM8iL7CxwcWeKtqyjgyQg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: MWHPR10MB1469 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-17_05,2022-07-15_01,2022-06-22_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 spamscore=0 bulkscore=0 malwarescore=0 mlxscore=0 phishscore=0 mlxlogscore=999 suspectscore=0 adultscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2206140000 definitions=main-2207170040 X-Proofpoint-GUID: erjc8w9NKjq6R2Fk0Y2SPu6YVo5Pszmx X-Proofpoint-ORIG-GUID: erjc8w9NKjq6R2Fk0Y2SPu6YVo5Pszmx X-Spam-Status: No, score=-7.2 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: Sun, 17 Jul 2022 08:21:00 -0000 Hi, 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 -- 2.31.1