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 987C83857C7D for ; Tue, 2 Aug 2022 08:07:17 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 987C83857C7D 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 2726XcVv012140; Tue, 2 Aug 2022 08:07:16 GMT Received: from phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta03.appoci.oracle.com [138.1.37.129]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3hmv8s61bj-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 02 Aug 2022 08:07:16 +0000 Received: from pps.filterd (phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com [127.0.0.1]) by phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com (8.17.1.5/8.17.1.5) with ESMTP id 2724YDdt001200; Tue, 2 Aug 2022 08:07:15 GMT Received: from nam02-bn1-obe.outbound.protection.outlook.com (mail-bn1nam07lp2041.outbound.protection.outlook.com [104.47.51.41]) by phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTPS id 3hp57qy12f-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 02 Aug 2022 08:07:15 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=RbgYnMuW2mHzk//RM9T5yVrzwMQ8Uw5ZG7X4nkCms1Tpy3SLQbUsVuXIOct3UX4HAn1ELbYhIGaul+csod0MomLD+ZBFA7uCCTM2WsO/HFKKUY3BPRxxYrTgSLTjmTfTHMKGoSzUNgJNJ5zDWlBxMW/uJMMaiPhjOXXKXvUbzz+/kBH04LSH70iqNB7hFBpq34iz5rTMjxm2JuuIurlR+m+cnrLAFzLfliRuLJOMZzdVBOh20iv+EdwgQlrn4cOL2gmRC2084uRAeXL+nF8pFARloPKY01iKv5A7A0h8TZz8uEysYolAbFApBJnOGn8opCCo31pmTRBREwbJaJ7BLw== 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=kr2x4fOesMx6OT4MvMUB9SMi3WqrWAlryoSqEoESZnw=; b=QRhJVuO0jwuq5MA9gVQc8G5vaEnYo93VIddu473MFknAa6O86FIB36xXbIUmqUtFE2OOxerWevIlumiGMTZEpjuZ8kj/m9kCWofoSsac9HG/nXCaNHu6W/gDyBib0s4eBPAcswq1L2zZgipeIfvRlOT4+8nLGiCFQ6Tv269jXkMqTtHx1kQQmGEoBbA4Bcg64xGcZ7pqiCH3aLOHKvzaaeeUvyLThiD+cmf1GqzVgwECoKtDcZ8OLJ+8+k84QR+GqIiCI9gAFYTXrEy+MWJeOqWkLXrJQSU79wAODUeSqKpJpBKx79qNiDWIdk6ECSpA4zyeubr65XOCmx1lVOmITA== 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 CH2PR10MB4184.namprd10.prod.outlook.com (2603:10b6:610:7f::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5482.11; Tue, 2 Aug 2022 08:07:13 +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.5482.016; Tue, 2 Aug 2022 08:07:13 +0000 From: Indu Bhagat To: binutils@sourceware.org Cc: amodra@gmail.com, weimin.pan@oracle.com, Indu Bhagat Subject: [PATCH,V6 00/10] Definition and Implementation of CTF Frame format Date: Tue, 2 Aug 2022 01:04:42 -0700 Message-Id: <20220802080452.1143351-1-indu.bhagat@oracle.com> X-Mailer: git-send-email 2.37.1 Content-Transfer-Encoding: 8bit Content-Type: text/plain X-ClientProxiedBy: MW4PR04CA0074.namprd04.prod.outlook.com (2603:10b6:303:6b::19) 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: cd6bab60-e8e9-42c3-0929-08da745e0175 X-MS-TrafficTypeDiagnostic: CH2PR10MB4184:EE_ X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: oHAEIbPAdWqEcpSzkZ/b8hD6k5xF8xIb/XTnc6ihiIYG6x8MRWpW/CZO1Zodkfan8a920LvAkX6o2FpF6/FhiNOlK8o/5bWzqTp5EGF9Yil9PiSGP0mGtU/iPtdWlXcHWjcsQcSV5JkLV1W3jZGCc2ePEaqH+AzbQAJaWnR4+j4NmVC9cOLwJO0TKDhR7XN/lQwtEkCn5+2jcmE8BYr4pkOE9YyMEF19fTARaUQDZXXyuqWk5tlUMfkG4drHS8pHLLvnIGKY3H2uqJGbJMqMZuu3NhZ5eHBM53la/tpgbMfDkRuGJTXUOqor06ca7ef0hjZCkzEr9wMhfSDQ77JSAWdXAWdIGzibhFVI3CUrIx9cKozlpegSLH45dGoEHJZbfCQqweWWZBRxBgvlRGZ0rckuEbfsS4CwORGqYrKqlShurgmOPsWwX8OeCPFcnyMKpi9n27moWBxX6D00xvtneVCqqsmS3n3+U3KtCIqEa5FfDWfjF7z1/denVj0RihEKQohdkoYeJPN1q4fzJHNnjx1fXP0aDAwxUQnlVl9M0NesG3/G/0eNjKs7QwrFjwG56buAaxVxAaJVcQCQKT3Rzi7JgG9vOYk0e9Q1MscMcaG2QhvYO77DncGSqe4P++/WNhhe2XHkSQA6hBsimW1zv7xV5aLAdxQdHCZu7D8iuXkGnBsy+IbHOTHWq30Kmp3oO0h+Kpvoc/mJpYVkNMyWlcKI9lxqRNtlRcFSV4MK2ZbMICXQ7slh2a93SGMJ///PimX1hcv0tJFfhBSsfj66XzKQl/y03YUu8n+r/i4tEhr+JbR0zhmjxycnv9LLC6HkRn6MDXXythVtqOBY2v+iVrXFI02r37VuBthsl3Ka1M5xDgff9e4NurlWJ+IXuJ+e 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)(376002)(366004)(136003)(346002)(396003)(39860400002)(4326008)(2616005)(1076003)(107886003)(83380400001)(186003)(66476007)(8936002)(66556008)(44832011)(8676002)(5660300002)(30864003)(66946007)(2906002)(36756003)(316002)(86362001)(478600001)(6916009)(6506007)(52116002)(6666004)(41300700001)(6512007)(26005)(38350700002)(38100700002)(966005)(6486002); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?PDc6ZLA+mIWsBKrta58fKJNKrcqf6qctKN80Qxzioq1D2nNDkvgMSlQ7b7K0?= =?us-ascii?Q?SXipuweK7GITPhdbHM3ItUKq3ETmVv0s2T9EcG1B6GRpLOSMBQ+hNWJ6dNE8?= =?us-ascii?Q?m2Mmbe4k18LsRoPOoh4wmu00X+gPT8Un+RxalfyzlKy1WKfbRglRP7INw6Pf?= =?us-ascii?Q?YKUaB96/4Sdws2WGwr63Nv5MHC7mWTtrOmWcFEAiFkJ2cgOUkawRigoUGDcs?= =?us-ascii?Q?Gdz1mgxjf0iN51GsNgWMduftQRNWYtrlljByVatZCofonoy6A80cBQw2/F8y?= =?us-ascii?Q?Ur15w5lBxDuX9yKw650UhXg9VXf3ejzEZXYFAVZB1VDipejSmBMjiGz8wjt7?= =?us-ascii?Q?4svdAUpRv3iDgpi5xpJ7gbQsnERV/MO6K6t+elG6aJZ9wbaUk7eIuhkLy389?= =?us-ascii?Q?4W9k9rmnfGbRbSxGFT6c/zhbTBkZ4NlQI4TLzWQfd9AftyO307xiSzstZ9aT?= =?us-ascii?Q?PTCRefhHoIN1ZbvXNfDwk15QoKR8xIRUEf88N6DJMpqrxOSzXzKvl9FdRCOt?= =?us-ascii?Q?7r6k4zfOHYDE/P5ke3MyiMKw7UwCPIRdA74yqd/yn96LNFP+AozGRgM3RhLM?= =?us-ascii?Q?V7Vh0h9uutxBhgbDo5y+BLtemWHbEVVkkpjiLi8qOwS2A7B3MFwSbX9fp0QV?= =?us-ascii?Q?nEETsrG7s6MM32hi0a3wfDT1wyD0lp9HyRXlE+cZc2T2cmODJ2QFp20qhT1S?= =?us-ascii?Q?qXw7ppVALoHivJg7MFQ40+Y/If7p/Ohpb9yyHu5LV385CZ5O8vLhPFCgBE8H?= =?us-ascii?Q?GmBKXvxVUhJEdQIjEGmnwghu1UVDTFc9gipLklE//HVkvdqWtymtlr3H7Fg+?= =?us-ascii?Q?iqDTI3cwxHWl1TXLW9Ed6KL3vT2/VX7/5+RiA1H1l5cxNDwVG4CK58uOz/Kp?= =?us-ascii?Q?f7/+dYhZ8OmOHZAfReIPyHFkge2TQWOad65DyNE7C0cjMIv+27tlZNxPmujy?= =?us-ascii?Q?0XQI+g5Ldnw8Z3bqBryD1fi5+RuW1CKdsfhpyl5kwbi4/P1V8zCID5xhCpEG?= =?us-ascii?Q?1Xum8Ek0zAkbvSdlP3zY3AwBjq4yXttB8zfsqbxVj4PT6hK5aPzBbPC3JWvj?= =?us-ascii?Q?EBGi3myCQuQcijMzoPWMsa3XgqcU6MJ6tn7BH3J/HvLb9ykRmjTVWF47o2en?= =?us-ascii?Q?ilu2/AHwneqpGIvuZkzqlgiBqb6FgmBwWKq4yl+Cz3E1+IafSisD2U+IaG6G?= =?us-ascii?Q?SrfFRvy7j7O7HZEe3gt7DrF8IargmMGK4W7DWcY64m42u1ZDmFzeS0/+LczO?= =?us-ascii?Q?Q9XO+Fx/LFWEZEuIrUkx26GvcjqCobnMcBqiEtMXUNhn3E2+RQCcwDwQdRUL?= =?us-ascii?Q?d23gDhk8pPc/Xv38jyE2XsL15NNZwuzaxqCq6+/aIntpyUjcDVkwI1OkrAU6?= =?us-ascii?Q?xtebDbutZ6/KivLlvjwCc/cBAUrYXgX2F5gB/js+dlFbyT5DgA3nzyq8yuas?= =?us-ascii?Q?H6e7AxdpTL3+NcYmxL0dw6VANPPgyQuU5JAeyqLc1qmom7EpSAoVSq5aFMPm?= =?us-ascii?Q?gCvWZMfApD4mSfBZ+lL6MfeEfQwj1Z0CfC+ar14M5NlefNzY/w13LUnSUDrq?= =?us-ascii?Q?udBcfu8ojMOrfHKtF+MRJqbTwXb31noGs8RfLyBY?= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: cd6bab60-e8e9-42c3-0929-08da745e0175 X-MS-Exchange-CrossTenant-AuthSource: MWHPR1001MB2158.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 02 Aug 2022 08:07:12.9041 (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: C2xJGOdC9KroHaN7XsNG0EJ+CYiWuWFjWrNJvUclGQMGTkr2cgVypwDF68gpMqQjaGAtOkJJY4yADCma/kGddQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH2PR10MB4184 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-08-02_04,2022-08-01_01,2022-06-22_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 malwarescore=0 mlxlogscore=999 adultscore=0 spamscore=0 bulkscore=0 suspectscore=0 mlxscore=0 phishscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2206140000 definitions=main-2208020038 X-Proofpoint-GUID: bfBb02YbONzOXYuHzHLwbxWASnkWfLMe X-Proofpoint-ORIG-GUID: bfBb02YbONzOXYuHzHLwbxWASnkWfLMe 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: Tue, 02 Aug 2022 08:07:24 -0000 Hi, This is version 6 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 V5 posting testsuite additions: https://sourceware.org/pipermail/binutils/2022-July/121839.html The commit log of each patch in the current patch series specifies the changes from the version V5 of the respective patch. Briefly, this patch series has improved testsuites/infrastructure. 1. libctfframe/testsuite now uses recursive makefiles for building test programs. 2. Unwinder tests are still present in libctfframe/testsuite/libctfframe.unwind. The code for the unwinding library for backtracing using CTF Frame (a.k.a. libctfbacktrace) still sits in the libctfframe/ folder. Testing notes: - Tested natively on x86_64-linux, aarch64-linux - Cross builds for various targets on x86_64 host. Ran a regression script that checks for failures in gas, ld, binutils, libctf with no reported regressions. libctfframe tests ran as expected. libctfbacktrace/unwinder tests (which are present in libctfframe/testsuite/libctfframe.unwind) have been disabled when host != target. 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. 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 | 52 + libctfframe/Makefile.in | 1099 ++++++++++++ libctfframe/aclocal.m4 | 1242 +++++++++++++ libctfframe/config.h.in | 144 ++ libctfframe/configure.ac | 97 + libctfframe/ctf-backtrace-err.c | 46 + libctfframe/ctf-backtrace.c | 619 +++++++ 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 | 1587 +++++++++++++++++ libctfframe/ctf-frame.pk | 200 +++ libctfframe/testsuite/Makefile.am | 23 + libctfframe/testsuite/Makefile.in | 684 +++++++ libctfframe/testsuite/config/default.exp | 57 + libctfframe/testsuite/lib/ctfframe-lib.exp | 180 ++ .../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 .../testsuite/libctfframe.decode/Makefile.am | 14 + .../testsuite/libctfframe.decode/Makefile.in | 663 +++++++ .../libctfframe.decode/bigendian_data.c | 107 ++ .../testsuite/libctfframe.decode/decode.exp | 41 + .../testsuite/libctfframe.decode/frecnt_1.c | 99 + .../testsuite/libctfframe.decode/frecnt_2.c | 103 ++ .../testsuite/libctfframe.encode/Makefile.am | 6 + .../testsuite/libctfframe.encode/Makefile.in | 610 +++++++ .../testsuite/libctfframe.encode/encode.exp | 25 + .../testsuite/libctfframe.encode/encode_1.c | 182 ++ .../testsuite/libctfframe.unwind/backtrace.c | 145 ++ .../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 | 51 + .../testsuite/libctfframe.unwind/solib-main.c | 47 + .../testsuite/libctfframe.unwind/solib-main.d | 3 + .../testsuite/libctfframe.unwind/solib.exp | 75 + .../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 | 200 +++ libctfframe/ttest.c | 78 + sim/common/Make-common.in | 7 +- 151 files changed, 15252 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/Makefile.am create mode 100644 libctfframe/testsuite/Makefile.in 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/Makefile.am create mode 100644 libctfframe/testsuite/libctfframe.decode/Makefile.in create mode 100644 libctfframe/testsuite/libctfframe.decode/bigendian_data.c 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_2.c create mode 100644 libctfframe/testsuite/libctfframe.encode/Makefile.am create mode 100644 libctfframe/testsuite/libctfframe.encode/Makefile.in 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.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-main.d 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.37.1