From patchwork Sun Oct 30 07:44:35 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Indu Bhagat X-Patchwork-Id: 883 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:6687:0:0:0:0:0 with SMTP id l7csp1685239wru; Sun, 30 Oct 2022 00:45:25 -0700 (PDT) X-Google-Smtp-Source: AMsMyM4sDMwC2DZF7QZDZFx8yQJo95a44Mhx48XQy+Kk6QARkPT36iJWIlM3kz18XpLLpnmbKNA8 X-Received: by 2002:a17:907:7e9e:b0:7ad:bc80:c003 with SMTP id qb30-20020a1709077e9e00b007adbc80c003mr3213611ejc.198.1667115925707; Sun, 30 Oct 2022 00:45:25 -0700 (PDT) Received: from sourceware.org (server2.sourceware.org. [2620:52:3:1:0:246e:9693:128c]) by mx.google.com with ESMTPS id oz30-20020a1709077d9e00b007ad902cd1b2si4018301ejc.921.2022.10.30.00.45.25 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 30 Oct 2022 00:45:25 -0700 (PDT) Received-SPF: pass (google.com: domain of binutils-bounces+ouuuleilei=gmail.com@sourceware.org designates 2620:52:3:1:0:246e:9693:128c as permitted sender) client-ip=2620:52:3:1:0:246e:9693:128c; Authentication-Results: mx.google.com; dkim=pass header.i=@sourceware.org header.s=default header.b=V2JF3Tog; arc=fail (signature failed); spf=pass (google.com: domain of binutils-bounces+ouuuleilei=gmail.com@sourceware.org designates 2620:52:3:1:0:246e:9693:128c as permitted sender) smtp.mailfrom="binutils-bounces+ouuuleilei=gmail.com@sourceware.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=sourceware.org Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id E9EDD3857B8A for ; Sun, 30 Oct 2022 07:45:22 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org E9EDD3857B8A DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sourceware.org; s=default; t=1667115923; bh=GiXfzft/luGDFGTiwfymy//D1tW2D2mKz9MFzzQikXg=; h=To:Subject:Date:List-Id:List-Unsubscribe:List-Archive:List-Post: List-Help:List-Subscribe:From:Reply-To:Cc:From; b=V2JF3TogNp6y8CthbFBs/oqXq9hC4f+53KLeXlzI2Y+POU+bPIFxKoMSMapX+GP/0 RkNZhkZKgvHiKVSxgxeP18Hmr5zm416WjS8kmZlRElHcRu0NXOUfhxFoR2gHd9ojYf 3b3hs7ex4gzFnqwUCFsR0t+418kf7D4z03NCHiOI= X-Original-To: binutils@sourceware.org Delivered-To: binutils@sourceware.org Received: from mx0b-00069f02.pphosted.com (mx0b-00069f02.pphosted.com [205.220.177.32]) by sourceware.org (Postfix) with ESMTPS id 05D8E38582B6 for ; Sun, 30 Oct 2022 07:45:02 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 05D8E38582B6 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 29U3Zvaj011301 for ; Sun, 30 Oct 2022 07:45:02 GMT Received: from phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta01.appoci.oracle.com [138.1.114.2]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3kgusshc42-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK) for ; Sun, 30 Oct 2022 07:45:01 +0000 Received: from pps.filterd (phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com [127.0.0.1]) by phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com (8.17.1.5/8.17.1.5) with ESMTP id 29U76opc023903 for ; Sun, 30 Oct 2022 07:45:01 GMT Received: from nam12-dm6-obe.outbound.protection.outlook.com (mail-dm6nam12lp2175.outbound.protection.outlook.com [104.47.59.175]) by phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTPS id 3kgtm29ebu-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK) for ; Sun, 30 Oct 2022 07:45:00 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=AeADNnPYp6aC+j/qH7/CDO5JIv9R8QKuEl8Ro7UE+HxoBR4WlPFzYGZs2zQTtUxHhexQey/AB6LvAJfZx/VsEPs1Wi9n6ogo+N/TyLAjcX6fm13NP8Bg2YRdj47wZ0/+A5ro0r1OtPsMo+rWnDlB21bY55QN0pCA7JyxyWTbuOK/Vsl+LoRdX0WXOCAvbvYySmQz2cA8CGTYfY4xufCkKn0vjP8HFAYPI0ipa/siifEqRhFNAwyC0TnxZBMSH0+0xezWa2+0XQEIzWyfrjVXmo1DKNZVEu2/4uEPxlnw/EkoyB8hVwvTEXv0fELHnOqx0sTnboQbx/s2jkvbQfLosw== 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=GiXfzft/luGDFGTiwfymy//D1tW2D2mKz9MFzzQikXg=; b=H/+F8p1iq9/gHkY6T0hcW2zkmXbFUN/fDLCNTQNqwfkrzuNwOLmkz1GCo+EZXbNNQUNxMqo4geQRCPUtwoChZVCpht8+v+LMup7pHpM7BrurlLJ9qHx0+WahHneOITW3tKD+lBhKXyWbYDRJ42yLunuuxk1fEOXaHIPKPMAecY4UuZViCYWfiBNQWgC00xBLHBKobNNuQ/SRda/QhD0Z+6OucusALXP5p9bf8f6Qogt7kn6ilYxnh1GdPL4bnZRajn8+RG6cQtmvgECsPsCaiUTegoyWX8qJG4ViiMW/EMbe2bK6amnBeNpGXBg9FGYTOusMPmcu+u2W8pZXlYbYiw== 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 BY5PR10MB4289.namprd10.prod.outlook.com (2603:10b6:a03:20c::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5769.19; Sun, 30 Oct 2022 07:44:58 +0000 Received: from MWHPR1001MB2158.namprd10.prod.outlook.com ([fe80::a505:15c2:a248:efa2]) by MWHPR1001MB2158.namprd10.prod.outlook.com ([fe80::a505:15c2:a248:efa2%7]) with mapi id 15.20.5723.033; Sun, 30 Oct 2022 07:44:58 +0000 To: binutils@sourceware.org Subject: [PATCH,V3 00/15] Definition and support for SFrame unwind format Date: Sun, 30 Oct 2022 00:44:35 -0700 Message-Id: <20221030074450.1956074-1-indu.bhagat@oracle.com> X-Mailer: git-send-email 2.37.2 X-ClientProxiedBy: MW4PR03CA0312.namprd03.prod.outlook.com (2603:10b6:303:dd::17) To MWHPR1001MB2158.namprd10.prod.outlook.com (2603:10b6:301:2d::17) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: MWHPR1001MB2158:EE_|BY5PR10MB4289:EE_ X-MS-Office365-Filtering-Correlation-Id: 883cf657-e08a-4aa2-8e69-08daba4aa4c1 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: EB6EhMVBhYdBmiyJe/YtLOGjM+t4TrW+OEgrGdDjxBxX/9wG/urN5hj+akcvoS4BV7V0U6lH30M9gedH833Ui1gJ901i8WakY3DP2x2IBGX/TzmxMsy8T/XQKBIT5Z+/q3qFdQJj01tNEJsVr6TF99R2Y3SSCxwOS4q3Km5lm2r10fI9JcDKurwI95tA6ljH22ffrhPLvnNlqSlZTS81i6F2lnMBBIu9zBsC19SlTXJVH/d2ZsYQyh/UbRs0sdwiRXUcXF5Bx2eF2yrLqOSjuTwOyIOtPO6t2o83b5iJVDhOlot+hku1hH4GAPXz/fiZ5hChvak353jEamxAGRWFjoKFSweyz3l3sugan/CgtxQZSe/62E+wLenjpS6AvMRp0tDXrEMceiNAFiMX/o6uFPrWVsCQ0ICjV8baPXF7NPXpFWfnDlkSe3RFAWNmQib1ExXtyBNZrsdrBxXYd9pO9c21qK9xbX7FikgYyIOn4Mj8qwedbRQCR2zA3hY4DXlWdJ+aRsrlAQ3c7BZados16ElZyKb0mvE8WmEmnKUuizbpnh3yxxFlpuLAyYSHoNzII+qI9mT/wre7Yf5UWfjvI/d9mWHm47pur/lBtTJV8O/i1kVTj6L9C79YKDZf7ll+0qSNG2dgCv4NDWARUKMh3lnAj5qPyV11y5DSIFapyPDzVfkVvNEuZmxEMh6MA75zH6u4crURZlRSXSYfLZXjRg== 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:(13230022)(396003)(366004)(39850400004)(376002)(346002)(136003)(451199015)(316002)(66556008)(4326008)(66476007)(36756003)(6916009)(66946007)(30864003)(6486002)(38100700002)(6666004)(8936002)(41300700001)(86362001)(107886003)(478600001)(5660300002)(1076003)(186003)(83380400001)(8676002)(2616005)(44832011)(2906002)(6512007)(6506007); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: IP4lqY7KW7rN0pDYp4zeiKLy8VBGoZtPkW0FJ4i83/cH/ZF5wqcT6MWSqySLAspSYFLjfbJ7inyteSQeMAkz6EqHXwu0kBuGWRQG8+OW67YdTs5q5OZDBPu/vgazKf2x4/BcnahcRgPlfCS97PRORbyf6YJcldYQAh6pdzgdsdDj5mikC6oWda4lV61cf9wkv8JKiS1ROd7/1LJ3FLVYT6GcCO36ZUc2I0PvrUUmgNw6lIRlZr/CCzql/U7cvmSWTt7svEvLAuk3Kja052faIfIYNibTKZBUXwFEiYb4GPVrCJSvhT+eYyiOllxUyb8ZSQ21jnDNEksJxY7fbImUuYBFk5xJH48GujyL399E4PsCKJ/JENmV3gvQ1t1iR0g6biZRq7Bq+EWmPaUQygkp3jPCBktBXDBIlEQDKvZbw/Ba1kq/ImLlxL9SF06gky6WOFX4Efo2Z1VNAJHlbpctW4IgqtyfHNbHg7a35JTjqw9Tx0RuqIk51M+mjz4ShA4qtAeYVLeEZOwuF9LI9nuUqbpdhcfVdp0n2BKbBmNa7ZTxqPRMYZ15fAOWgj2+lR8uuuG4th3hmjfDbBxkSvSi+nOU9YC6Oy0SArNAwhNF64+dwb1tHINYbVEUIzzjukIzokht2i8nfC2wB51ZaeSqw5+VL/CG8yZi4K5F6iLnsmJ9DrEFJVQNtDaPvk1ZMH5Zrrn8YRbhYJkAQ0X5tyLzYfy30dAgcmkv/fVsrPztkWjxPX/v9D7eSrdhBkhD9BntRsXCVEC6d4MwTuzp1hpqEbUINjOVcY/wbrb/EMmsNBm3o8iWKrAPWPeN8nC1Pe8YlLrllr5QBxBZ2KwzyvNpOM/qFvMEgv3NYJ30KISLXty15wUtY/ryC0Q9187qLWtYHf4iLyGCax60pfULf+qx8BE3SzM9vkS1WathfFHMd+S4nSXStemfbOtYsgDuuHiSJD7fsVnjojg4KAGQWNLJ83WmUpvpVQubWQa2rBltJ4u+v5oIktnYtfc+i1aU6aV79sjfa5HlFtPg1Unq0GTNx2hH7ep8POta10+JmuD18l1hNWYK7pyJxLMUOmJ8C+fwPT4FWBcP/2IzAjiUQ4y76bNXdAw57y+9K1v+iTWL/q2A5azJqKRKcigE21TDvqXA46TjU20G1GryluTtI2ShpJ+yB04QntRQbJhL6Ui9/4TaeBwmuvWU8/WsQ0DZ5O31wr1Qs+/mfo3lpuRoHgP0O592f1bgA0/QGdO7p2P/J3W5/FVSyDufvuYA/VtTdKzBeIDsFwLUO0Hp31hzJsbnzc/erNHsGYVcwVgwjs1etFZm0SaeXIZmqsflS3SXDMII0O82yGmffWfL39m6xR8evdtSiyZvcfR0RN5Yak2mECs7OR+EGJuU0v43XmL5v6+OWyQ6J38/6Ihq+z8dl8i2oYTWgE5FG0jEBFCBhzlhf1hXb/C0pd+l8dCCdBgs+auIce2Tr/gsGLGivdRJZPlKI1D8LtUlBvxR/hMOSYCrVAg7hrf0lvitO6m7+rQLp00jqWtFcp9ddF2Xqw1foxIFeS7Xu4BIQ2HZnumKoRe7VJ/hFfp6f8vJd4GfHdKYvOIP9xGYM9KBvx0nMOaEuHwa7QoLEVAgRJ0nQzfWGscHZ6Y= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 883cf657-e08a-4aa2-8e69-08daba4aa4c1 X-MS-Exchange-CrossTenant-AuthSource: MWHPR1001MB2158.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 30 Oct 2022 07:44:58.2403 (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: P5g6engGQApxlTcUgL76Nprd988CydU5AYZBGJg0YEgXQDlO1cUU4jVukun9Gg3VJbiRLVJcwIxz9rR34jEbdA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: BY5PR10MB4289 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.205,Aquarius:18.0.895,Hydra:6.0.545,FMLib:17.11.122.1 definitions=2022-10-30_02,2022-10-27_01,2022-06-22_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 spamscore=0 bulkscore=0 suspectscore=0 mlxlogscore=999 mlxscore=0 adultscore=0 phishscore=0 malwarescore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2210170000 definitions=main-2210300049 X-Proofpoint-ORIG-GUID: EkgWm4vs_OKITOoM5eEZkvEaqEp_Gf9B X-Proofpoint-GUID: EkgWm4vs_OKITOoM5eEZkvEaqEp_Gf9B 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-Patchwork-Original-From: Indu Bhagat via Binutils From: Indu Bhagat Reply-To: Indu Bhagat Cc: Indu Bhagat Errors-To: binutils-bounces+ouuuleilei=gmail.com@sourceware.org Sender: "Binutils" X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1748097748794003560?= X-GMAIL-MSGID: =?utf-8?q?1748097748794003560?= Since the V2 was approved, there have been some changes to the patch series. Each patch has brief notes on the respective changes from V2. Here is a combined summary: - V3 has some bugfixes. It was noticed that unwinding on aarch64 had issues with -fomit-frame-pointer. Fixed now. Added new unwinder testcases around the same. - Addressed review comments by Mike on libsframe/ and gdb/ builsystem. Posting a V3 for the complete set. PS: libsframe/configure has been REMOVED from the patch series, as it causes the size of some patches to go beyond the allowed limit. Please regenerate libsframe/configure after applying the series. Testing notes: - Regression tested natively on x86_64-linux, aarch64-linux and i686-linux with '--enable-shared'. - Cross builds for various targets on x86_64 host, and some targets on aarch64 host. Ran a regression script that checks for failures in gas, ld, binutils, libctf with no reported regressions. libsframe tests ran as expected. libsframebt (the backtracer) tests (which are present in libsframe/testsuite/libsframe.unwind) have been disabled with host != target. Thanks, Indu Bhagat (12): sframe.h: Add SFrame format definition gas: add new command line option --gsframe gas: generate .sframe from CFI directives gas: testsuite: add new tests for SFrame unwind info bfd: linker: merge .sframe sections readelf/objdump: support for SFrame section gdb: sim: buildsystem changes to accommodate libsframe libctf: add libsframe to LDFLAGS and LIBS src-release.sh: Add libsframe binutils/NEWS: add text for SFrame support gas/NEWS: add text about new command line option and SFrame support doc: add SFrame spec file Weimin Pan (3): libsframe: add the SFrame library unwinder: generate backtrace using SFrame format unwinder: Add SFrame unwinder tests Makefile.def | 6 + Makefile.in | 1299 ++++++++++++- bfd/Makefile.am | 6 +- bfd/Makefile.in | 7 +- bfd/bfd-in2.h | 1 + bfd/configure | 2 +- bfd/configure.ac | 2 +- bfd/elf-bfd.h | 54 + bfd/elf-sframe.c | 544 ++++++ bfd/elf.c | 32 + bfd/elf64-x86-64.c | 97 +- bfd/elflink.c | 52 + bfd/elfxx-x86.c | 375 +++- bfd/elfxx-x86.h | 49 + bfd/section.c | 1 + binutils/Makefile.am | 10 +- binutils/Makefile.in | 9 +- binutils/NEWS | 3 + binutils/doc/binutils.texi | 4 + binutils/doc/sframe.options.texi | 10 + binutils/objdump.c | 75 + binutils/readelf.c | 64 + config/dejagnu.m4 | 22 + config/sframe.m4 | 16 + configure | 2 +- configure.ac | 2 +- gas/Makefile.am | 3 + gas/Makefile.in | 22 +- gas/NEWS | 3 + gas/as.c | 10 +- gas/as.h | 13 +- gas/config/tc-aarch64.c | 52 + gas/config/tc-aarch64.h | 29 + gas/config/tc-i386.c | 44 + gas/config/tc-i386.h | 26 + gas/config/tc-xtensa.c | 1 + gas/doc/as.texi | 20 +- gas/dw2gencfi.c | 30 + gas/dw2gencfi.h | 1 + gas/gen-sframe.c | 1306 +++++++++++++ gas/gen-sframe.h | 141 ++ gas/sframe-opt.c | 158 ++ .../gas/cfi-sframe/cfi-sframe-aarch64-1.d | 20 + .../gas/cfi-sframe/cfi-sframe-aarch64-1.s | 61 + .../gas/cfi-sframe/cfi-sframe-common-1.d | 17 + .../gas/cfi-sframe/cfi-sframe-common-1.s | 3 + .../gas/cfi-sframe/cfi-sframe-common-2.d | 17 + .../gas/cfi-sframe/cfi-sframe-common-2.s | 2 + .../gas/cfi-sframe/cfi-sframe-common-3.d | 17 + .../gas/cfi-sframe/cfi-sframe-common-3.s | 4 + .../gas/cfi-sframe/cfi-sframe-common-4.d | 21 + .../gas/cfi-sframe/cfi-sframe-common-4.s | 8 + .../gas/cfi-sframe/cfi-sframe-common-5.d | 21 + .../gas/cfi-sframe/cfi-sframe-common-5.s | 7 + .../gas/cfi-sframe/cfi-sframe-common-6.d | 21 + .../gas/cfi-sframe/cfi-sframe-common-6.s | 7 + .../gas/cfi-sframe/cfi-sframe-common-7.d | 21 + .../gas/cfi-sframe/cfi-sframe-common-7.s | 7 + .../gas/cfi-sframe/cfi-sframe-common-8.d | 20 + .../gas/cfi-sframe/cfi-sframe-common-8.s | 12 + .../gas/cfi-sframe/cfi-sframe-x86_64-1.d | 22 + .../gas/cfi-sframe/cfi-sframe-x86_64-1.s | 30 + gas/testsuite/gas/cfi-sframe/cfi-sframe.exp | 96 + gas/testsuite/gas/cfi-sframe/common-empty-1.d | 14 + gas/testsuite/gas/cfi-sframe/common-empty-1.s | 5 + gas/testsuite/gas/cfi-sframe/common-empty-2.d | 14 + gas/testsuite/gas/cfi-sframe/common-empty-2.s | 8 + gas/testsuite/gas/cfi-sframe/common-empty-3.d | 14 + gas/testsuite/gas/cfi-sframe/common-empty-3.s | 9 + gas/testsuite/gas/cfi-sframe/common-empty-4.d | 14 + gas/testsuite/gas/cfi-sframe/common-empty-4.s | 17 + gas/write.c | 13 + gdb/Makefile.in | 7 +- gdb/acinclude.m4 | 4 +- gdb/configure | 8 +- include/elf/common.h | 1 + include/elf/internal.h | 1 + include/sframe-api.h | 234 +++ include/sframe-backtrace-api.h | 57 + include/sframe.h | 303 +++ 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 | 4 + ld/testsuite/ld-aarch64/sframe-bar.s | 7 + ld/testsuite/ld-aarch64/sframe-foo.s | 10 + ld/testsuite/ld-aarch64/sframe-simple-1.d | 26 + ld/testsuite/ld-bootstrap/bootstrap.exp | 8 +- ld/testsuite/ld-sframe/discard.d | 10 + ld/testsuite/ld-sframe/discard.ld | 9 + ld/testsuite/ld-sframe/discard.s | 13 + ld/testsuite/ld-sframe/sframe-empty.d | 10 + ld/testsuite/ld-sframe/sframe-empty.s | 2 + ld/testsuite/ld-sframe/sframe.exp | 47 + ld/testsuite/ld-x86-64/sframe-bar.s | 31 + ld/testsuite/ld-x86-64/sframe-foo.s | 37 + ld/testsuite/ld-x86-64/sframe-plt-1.d | 29 + ld/testsuite/ld-x86-64/sframe-simple-1.d | 35 + ld/testsuite/ld-x86-64/x86-64.exp | 5 + ld/testsuite/lib/ld-lib.exp | 45 + libctf/configure | 4 +- libctf/configure.ac | 4 +- libsframe/Makefile.am | 58 + libsframe/Makefile.in | 1533 +++++++++++++++ libsframe/aclocal.m4 | 1243 ++++++++++++ libsframe/config.h.in | 132 ++ libsframe/configure.ac | 114 ++ libsframe/doc/local.mk | 40 + libsframe/doc/sframe-spec.texi | 619 ++++++ libsframe/sframe-backtrace-err.c | 46 + libsframe/sframe-backtrace.c | 626 ++++++ libsframe/sframe-dump.c | 181 ++ libsframe/sframe-error.c | 49 + libsframe/sframe-impl.h | 55 + libsframe/sframe.c | 1675 +++++++++++++++++ libsframe/testsuite/config/default.exp | 57 + libsframe/testsuite/lib/sframe-lib.exp | 180 ++ libsframe/testsuite/libsframe.decode/DATA-BE | Bin 0 -> 64 bytes libsframe/testsuite/libsframe.decode/DATA1 | Bin 0 -> 60 bytes libsframe/testsuite/libsframe.decode/DATA2 | Bin 0 -> 92 bytes .../testsuite/libsframe.decode/be-flipping.c | 115 ++ .../testsuite/libsframe.decode/decode.exp | 50 + .../testsuite/libsframe.decode/frecnt-1.c | 99 + .../testsuite/libsframe.decode/frecnt-2.c | 104 + libsframe/testsuite/libsframe.decode/local.mk | 16 + .../testsuite/libsframe.encode/encode-1.c | 177 ++ .../testsuite/libsframe.encode/encode.exp | 37 + libsframe/testsuite/libsframe.encode/local.mk | 7 + .../libsframe.unwind/backtrace-fp-attr-1.c | 109 ++ .../libsframe.unwind/backtrace-fp-attr-1.lk | 4 + .../libsframe.unwind/backtrace-fp-attr-2.c | 110 ++ .../libsframe.unwind/backtrace-fp-attr-2.lk | 4 + .../testsuite/libsframe.unwind/backtrace.c | 145 ++ .../testsuite/libsframe.unwind/backtrace.lk | 3 + .../testsuite/libsframe.unwind/inline-cmds.c | 136 ++ .../testsuite/libsframe.unwind/inline-cmds.lk | 3 + libsframe/testsuite/libsframe.unwind/inline.c | 97 + .../testsuite/libsframe.unwind/inline.lk | 3 + .../testsuite/libsframe.unwind/solib-lib1.c | 8 + .../testsuite/libsframe.unwind/solib-lib1.h | 3 + .../testsuite/libsframe.unwind/solib-lib2.c | 51 + .../testsuite/libsframe.unwind/solib-lib2.h | 3 + .../testsuite/libsframe.unwind/solib-main.c | 47 + .../testsuite/libsframe.unwind/solib-main.d | 3 + .../testsuite/libsframe.unwind/solib.exp | 75 + .../testsuite/libsframe.unwind/tailcall.c | 103 + .../testsuite/libsframe.unwind/tailcall.lk | 3 + libsframe/testsuite/libsframe.unwind/ttest.c | 127 ++ libsframe/testsuite/libsframe.unwind/ttest.lk | 3 + .../testsuite/libsframe.unwind/unwind.exp | 205 ++ libsframe/testsuite/local.mk | 24 + sim/common/Make-common.in | 7 +- sim/ppc/Makefile.in | 5 +- src-release.sh | 4 +- 157 files changed, 14549 insertions(+), 66 deletions(-) create mode 100644 bfd/elf-sframe.c create mode 100644 binutils/doc/sframe.options.texi create mode 100644 config/dejagnu.m4 create mode 100644 config/sframe.m4 create mode 100644 gas/gen-sframe.c create mode 100644 gas/gen-sframe.h create mode 100644 gas/sframe-opt.c create mode 100644 gas/testsuite/gas/cfi-sframe/cfi-sframe-aarch64-1.d create mode 100644 gas/testsuite/gas/cfi-sframe/cfi-sframe-aarch64-1.s create mode 100644 gas/testsuite/gas/cfi-sframe/cfi-sframe-common-1.d create mode 100644 gas/testsuite/gas/cfi-sframe/cfi-sframe-common-1.s create mode 100644 gas/testsuite/gas/cfi-sframe/cfi-sframe-common-2.d create mode 100644 gas/testsuite/gas/cfi-sframe/cfi-sframe-common-2.s create mode 100644 gas/testsuite/gas/cfi-sframe/cfi-sframe-common-3.d create mode 100644 gas/testsuite/gas/cfi-sframe/cfi-sframe-common-3.s create mode 100644 gas/testsuite/gas/cfi-sframe/cfi-sframe-common-4.d create mode 100644 gas/testsuite/gas/cfi-sframe/cfi-sframe-common-4.s create mode 100644 gas/testsuite/gas/cfi-sframe/cfi-sframe-common-5.d create mode 100644 gas/testsuite/gas/cfi-sframe/cfi-sframe-common-5.s create mode 100644 gas/testsuite/gas/cfi-sframe/cfi-sframe-common-6.d create mode 100644 gas/testsuite/gas/cfi-sframe/cfi-sframe-common-6.s create mode 100644 gas/testsuite/gas/cfi-sframe/cfi-sframe-common-7.d create mode 100644 gas/testsuite/gas/cfi-sframe/cfi-sframe-common-7.s create mode 100644 gas/testsuite/gas/cfi-sframe/cfi-sframe-common-8.d create mode 100644 gas/testsuite/gas/cfi-sframe/cfi-sframe-common-8.s create mode 100644 gas/testsuite/gas/cfi-sframe/cfi-sframe-x86_64-1.d create mode 100644 gas/testsuite/gas/cfi-sframe/cfi-sframe-x86_64-1.s create mode 100644 gas/testsuite/gas/cfi-sframe/cfi-sframe.exp create mode 100644 gas/testsuite/gas/cfi-sframe/common-empty-1.d create mode 100644 gas/testsuite/gas/cfi-sframe/common-empty-1.s create mode 100644 gas/testsuite/gas/cfi-sframe/common-empty-2.d create mode 100644 gas/testsuite/gas/cfi-sframe/common-empty-2.s create mode 100644 gas/testsuite/gas/cfi-sframe/common-empty-3.d create mode 100644 gas/testsuite/gas/cfi-sframe/common-empty-3.s create mode 100644 gas/testsuite/gas/cfi-sframe/common-empty-4.d create mode 100644 gas/testsuite/gas/cfi-sframe/common-empty-4.s mode change 100755 => 100644 gdb/configure create mode 100644 include/sframe-api.h create mode 100644 include/sframe-backtrace-api.h create mode 100644 include/sframe.h create mode 100644 ld/testsuite/ld-aarch64/sframe-bar.s create mode 100644 ld/testsuite/ld-aarch64/sframe-foo.s create mode 100644 ld/testsuite/ld-aarch64/sframe-simple-1.d create mode 100644 ld/testsuite/ld-sframe/discard.d create mode 100644 ld/testsuite/ld-sframe/discard.ld create mode 100644 ld/testsuite/ld-sframe/discard.s create mode 100644 ld/testsuite/ld-sframe/sframe-empty.d create mode 100644 ld/testsuite/ld-sframe/sframe-empty.s create mode 100644 ld/testsuite/ld-sframe/sframe.exp create mode 100644 ld/testsuite/ld-x86-64/sframe-bar.s create mode 100644 ld/testsuite/ld-x86-64/sframe-foo.s create mode 100644 ld/testsuite/ld-x86-64/sframe-plt-1.d create mode 100644 ld/testsuite/ld-x86-64/sframe-simple-1.d create mode 100644 libsframe/Makefile.am create mode 100644 libsframe/Makefile.in create mode 100644 libsframe/aclocal.m4 create mode 100644 libsframe/config.h.in create mode 100644 libsframe/configure.ac create mode 100644 libsframe/doc/local.mk create mode 100644 libsframe/doc/sframe-spec.texi create mode 100644 libsframe/sframe-backtrace-err.c create mode 100644 libsframe/sframe-backtrace.c create mode 100644 libsframe/sframe-dump.c create mode 100644 libsframe/sframe-error.c create mode 100644 libsframe/sframe-impl.h create mode 100644 libsframe/sframe.c create mode 100644 libsframe/testsuite/config/default.exp create mode 100644 libsframe/testsuite/lib/sframe-lib.exp create mode 100644 libsframe/testsuite/libsframe.decode/DATA-BE create mode 100644 libsframe/testsuite/libsframe.decode/DATA1 create mode 100644 libsframe/testsuite/libsframe.decode/DATA2 create mode 100644 libsframe/testsuite/libsframe.decode/be-flipping.c create mode 100644 libsframe/testsuite/libsframe.decode/decode.exp create mode 100644 libsframe/testsuite/libsframe.decode/frecnt-1.c create mode 100644 libsframe/testsuite/libsframe.decode/frecnt-2.c create mode 100644 libsframe/testsuite/libsframe.decode/local.mk create mode 100644 libsframe/testsuite/libsframe.encode/encode-1.c create mode 100644 libsframe/testsuite/libsframe.encode/encode.exp create mode 100644 libsframe/testsuite/libsframe.encode/local.mk create mode 100644 libsframe/testsuite/libsframe.unwind/backtrace-fp-attr-1.c create mode 100644 libsframe/testsuite/libsframe.unwind/backtrace-fp-attr-1.lk create mode 100644 libsframe/testsuite/libsframe.unwind/backtrace-fp-attr-2.c create mode 100644 libsframe/testsuite/libsframe.unwind/backtrace-fp-attr-2.lk create mode 100644 libsframe/testsuite/libsframe.unwind/backtrace.c create mode 100644 libsframe/testsuite/libsframe.unwind/backtrace.lk create mode 100644 libsframe/testsuite/libsframe.unwind/inline-cmds.c create mode 100644 libsframe/testsuite/libsframe.unwind/inline-cmds.lk create mode 100644 libsframe/testsuite/libsframe.unwind/inline.c create mode 100644 libsframe/testsuite/libsframe.unwind/inline.lk create mode 100644 libsframe/testsuite/libsframe.unwind/solib-lib1.c create mode 100644 libsframe/testsuite/libsframe.unwind/solib-lib1.h create mode 100644 libsframe/testsuite/libsframe.unwind/solib-lib2.c create mode 100644 libsframe/testsuite/libsframe.unwind/solib-lib2.h create mode 100644 libsframe/testsuite/libsframe.unwind/solib-main.c create mode 100644 libsframe/testsuite/libsframe.unwind/solib-main.d create mode 100644 libsframe/testsuite/libsframe.unwind/solib.exp create mode 100644 libsframe/testsuite/libsframe.unwind/tailcall.c create mode 100644 libsframe/testsuite/libsframe.unwind/tailcall.lk create mode 100644 libsframe/testsuite/libsframe.unwind/ttest.c create mode 100644 libsframe/testsuite/libsframe.unwind/ttest.lk create mode 100644 libsframe/testsuite/libsframe.unwind/unwind.exp create mode 100644 libsframe/testsuite/local.mk