From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from smtpout30.security-mail.net (smtpout30.security-mail.net [85.31.212.34]) by sourceware.org (Postfix) with ESMTPS id 9D5103858D28 for ; Tue, 22 Aug 2023 16:01:48 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 9D5103858D28 Authentication-Results: sourceware.org; dmarc=pass (p=quarantine dis=none) header.from=kalrayinc.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=kalrayinc.com Received: from localhost (localhost [127.0.0.1]) by fx304.security-mail.net (Postfix) with ESMTP id E4325B7EB0C for ; Tue, 22 Aug 2023 18:01:46 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kalrayinc.com; s=sec-sig-email; t=1692720106; bh=R3Y8Yml393UVsswkgrRhscP2NdwtWYDGRooZ56uRTA8=; h=Date:From:To:Subject; b=e+AAgQV6p+89+T5yFTLqTgWXhsmjDC7l1LRgs/syFDXCFHSCSpLyp57ybm4mO5blI 2EHTvExBJFBLXX0DYj6VtA9YDi9lUMM9larAdQBJGxWwS3lPnptlrIyXABUWXDdERV 29camQKkl53M7CbmXXA0uEW3jsZXiKdsM+3xMxm8= Received: from fx304 (localhost [127.0.0.1]) by fx304.security-mail.net (Postfix) with ESMTP id C1A12B7EC86 for ; Tue, 22 Aug 2023 18:01:46 +0200 (CEST) Received: from FRA01-MR2-obe.outbound.protection.outlook.com (mail-mr2fra01lp0105.outbound.protection.outlook.com [104.47.25.105]) by fx304.security-mail.net (Postfix) with ESMTPS id 390D8B7EA19 for ; Tue, 22 Aug 2023 18:01:45 +0200 (CEST) Received: from MRZP264MB2489.FRAP264.PROD.OUTLOOK.COM (2603:10a6:501:6::23) by PAZP264MB2445.FRAP264.PROD.OUTLOOK.COM (2603:10a6:102:1f4::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6699.24; Tue, 22 Aug 2023 16:01:43 +0000 Received: from MRZP264MB2489.FRAP264.PROD.OUTLOOK.COM ([fe80::3323:7428:2a8c:6868]) by MRZP264MB2489.FRAP264.PROD.OUTLOOK.COM ([fe80::3323:7428:2a8c:6868%7]) with mapi id 15.20.6699.020; Tue, 22 Aug 2023 16:01:43 +0000 X-Virus-Scanned: E-securemail Secumail-id: ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=PUdJlSl/rQbBIHArK/oxQir3dk0xSO88ratg1vv3PmiSEm2U39iQIR4jqtSrbmCFm3FI6wg1DREb2R5FxcaoXtZixLjwkK6zQTGYnbIzLWirQKSdtnwCYKVNBcq37qebmoMf5JqXiMf6fqlEdMIGzeeW7/9sJ4Uax+a1cwOqm35WLN24WPiVV/nsSkJHerWNMzTUO3J43W0DJbMVtka8tezDusmjJ+d1vI/LZ/iqrv2+17C8IJouYbvA2J7tAeSA6TWmdd24bCZJj0lu9s+iFxbjmIYUIRqrYCWVRBVwTA9ePQshC0mzHcVnvtB1/oiIzDM+rRudsn/5at0t482ZnQ== 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=O41vJai+Pn4lpdOlg/3wXju4uqRaq5qKriQcCmJMbnU=; b=bSr/F8H1y5HOTANCPsJEARTsDKs70nhdmaee2uW9BhVAkRyKRNtsugy9yxIkznRRNHREUeDstx0wgo9GhHty1FCgJ/CG3wCo3HZqQfGZ7H5puaaxtwfKK+Hj3hRPv4f3gT7YQrcPLM4isyGAne9RQAjrAnbKC11D3UBCpJxh4bWIeF43MoN+R3lwIMW6IXiqCi8jsId0VtrIX5hH5SWU7iKkKmVLHaAgjYgNaliE968STXANjkIRakYLyFoEUdnm812b4Q4f73qrQvOw8ddXzLhmW094NxwikTdMuOMQQ2UFpOBNDxdPZFpvy6vVL+zBJ9+Tnbkp4uGzbNLDpPz5zg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=kalrayinc.com; dmarc=pass action=none header.from=kalrayinc.com; dkim=pass header.d=kalrayinc.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kalrayinc.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=O41vJai+Pn4lpdOlg/3wXju4uqRaq5qKriQcCmJMbnU=; b=etELuMq7lTLfO45Yst88jJyUN0iFdYivqiKfXkry6G4bDKCfMLLg4rI5XOUUsWYCi6DOuYce4nYfv6euTeLG4b8IPZu2OkYeWjP2Y5YEQWAkMNjltJYN/cEsqMtxgZhs58l/XZCL5sx6kOtvdv8gljLB9J2XfuEkq1eDAuKV4LA52ANRVHHKaLzVEsrdBTpMGHGdiWpGWO2UTdA3uiJX+8CKPpETjRyf6h1gJys8Oth4JMHAmO5lyaCMKItb82V2dF+YXpVkJBZEVZBsfNyxi7+bA+UC/NuVC7YDefRTRSIlBkBcz5DuoGBBii+2dL2gDodzQt5gIe9P7ghhhu4fKQ== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=kalrayinc.com; Date: Tue, 22 Aug 2023 18:01:42 +0200 From: Paul Iannetta To: binutils@sourceware.org Subject: [PATCH] kvx: fix 32-bit build and validation Message-ID: <20230822160142.ocnjgkuboicpncii@ws2202.lin.mbt.kalray.eu> Content-Type: multipart/mixed; boundary=secu_deb0aca1bb8bede7e8316116b1b6abe2_part1 Content-Disposition: inline User-Agent: NeoMutt/20171215 X-ClientProxiedBy: LO4P123CA0180.GBRP123.PROD.OUTLOOK.COM (2603:10a6:600:18a::23) To MRZP264MB2489.FRAP264.PROD.OUTLOOK.COM (2603:10a6:501:6::23) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: MRZP264MB2489:EE_|PAZP264MB2445:EE_ X-MS-Office365-Filtering-Correlation-Id: 563f969c-0b55-4d12-c06a-08dba3291451 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: HobOeYOJR5nM5ClyMO5AWp/bUlcxB8V2bXqvW7nYtEATPOw2dJ+nUyCMU0SLNz2yTWf32QEH0Tg2CrOft7NjQ1vU2fXoBZdBAQFx75L+Zo14RxUTmSAIZyJPpRCrO3QyWsr+t629mEVd+q3m2YAXssK3jFpsV50x5gGPWK+HPqDTZr2djdjJsZJB1nYh9gDgMv1UUg7GWyaBL+0YRLu1P0FqI2o+L+TNXQdg0wTLQ6OWLCwGGwZg8fPd2rWRayMd3OxNtDj/ZBPvvoGl4t6TKZJeQLcWpWgCeK46j9jeZbwrleFVfiCNntvExhNvAiLSvejpYpqXT6jzlUqNutFOYiVbKcpNtDPjxCwzq64lZKWC4DIHUXk+9ms+FBkIeTaEaCtKw7QtFRzpVuqlLnRIehBJkViHvvMrW/VOUwYus8dboKBwQ1PsDcpGxzYFg1+ncWc3Fd5E4sjv/56lFudeS18D6j+iGTbu0w/QqinrVj8De0uYJ9Oz76cIhbpS3tnDsqaAWUApUnuKWAG4HIPuxgqHWBTuBZCWFJz+USLmCq7lYe0YQuAGeRxEPzrCu/HQMg4wYHKcGi0c7/MdorL0t5RSiULQ7K3Avp68viEO/vKze6kwMbi5mzSp52oBb8Rr X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:MRZP264MB2489.FRAP264.PROD.OUTLOOK.COM;PTR:;CAT:NONE;SFS:(13230031)(396003)(136003)(39860400002)(376002)(346002)(366004)(1800799009)(186009)(451199024)(6916009)(66476007)(66556008)(564344004)(6512007)(316002)(66946007)(9686003)(8676002)(8936002)(41300700001)(1076003)(478600001)(38100700002)(44144004)(6486002)(6506007)(2906002)(235185007)(3716004)(86362001)(5660300002)(26005)(2700100001);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: 1mUhQ4F4X6Thwt6vraNgv36VIlrXPew2C9MCh7ZSjMOfaXQgRvPtrLFIMx9D+hyKFK1oCwsh328nRgvORYuTcK/ka8fJB30wQwe7/UwNWZ88+srRxKKnF0T8JwZ8lI/a/IYPRe8QJLTC7VVtPrLeL5EdPuomXj0NZsoyIVZ8T2N3nDc4DEH7avKKSDwx6qnsURC5KhdaIzasyy4kaL0AASAvlHLKeWC+Xn9rGzjeqbdEgUZJgBvL2s0I1na8TIuUPm1kQJjjqih7De0c0toGNrtMk1Vfzy/guqqfrJ8yCrSU4FySndwMh8pUHmPAxXxp5aiddt09hqiOUzwGqLfDXS46WT8Q8B58t3mP03xHdX8SaY9OhRmLYVKp/G/RpKOZm2gBi5DgEW7eVjrIdZcbKqY+kgZsY0hh0LHLS4sGmQNBMhBL2KzDxWk6JooLcmNqkwdDHv+GVk4mDvxrav1WfFrV4THVemfzM7uCg0nodtK4bqroHrAT22jvSQfb9ZdK5ml0ojrjk83e9XXxmpRzsjcbasyu8GSAJ3l/8vROrbgTxwfwu2xlJenTiBduN6YinwKhwFLtLV6w+b2bbUtPPifjwaOjbIFfaLMKg346yyvFo5s1w6FaJ8ooESdqFwROviX0+R6TlgWOulobt4jihwjjKGIkHtOhIFQgPqJ6lRbO4AyzNJva7B+cyUJ9o66JPFcozDuMCthCHMd5WoI7tgBG+bOU6eoRqo205w8QzW1H+WcOwcXy/QG5eCSZcgt490pnU/QhpspTvtErrTj0iOj6iJgv7jQc2ecyV+Man87Il5xgmZFI7TtB9n1K2C2zP0mM6eGXVigQXSrKA/4JbTPpK9O0widOoqFCgArQJdLCntiABe+hrbV8g4tSbV2T1NtA83kVhfZUYoByQYex0J5+jDStOfWKRIcGgi7rm7fKHapCcQkktRSrDJ8nSrr9 UPhgaJtjNs8aE90wj9UjtJjqTmtA5F4yRD2fY923tDpqCYOWmwJqVRXSZNZXWdDOubJdXHFC/q9RQJI664aXDped/j3iM5yPqk1I6sGEAlxU+rwTjg3C8bDnwJo/OJPynGlL2NcAqj97vSxQEaCyPiOSe0tymzLoeSEpA3O4vETQ7zG6NQXJlRrgqrdStLZFRGlGB9NNZ8XmsNxc1cyLqXkPcGPnHaU1viIKC4noVelime27JvURNkx2cd3KX2MlmGZNXzaC301WwdYrj/xP0HZlSUsSGTLvRCLXmOBQ7ZJoSF3NItqfjfY04Sduyoo/i7htQPcTn1dowJmUdl0wtGhQXkl3BU4UZXSkoJab3OdVlQaUbg5OEYYTpffw4sZaMnarafpvh/pB9oK12gR5H9p8VHklR1DGwdsWOQWn+Uez7yXkNbzdTr694ZkFPfPicN9rwYJpJfI62yOqhSalneTwYxRMsBohVCWshX6bM5GCcz2FNveHKG+qhMGFtdZYwuXamkTL/8z6WyaF5cY96TX2hWHEtNSrwyFAenhaiGyLMik8rYzXqqWj5hZGVHh4+/OA6hxV9Xb7kceqsS00LhwKb2IWVuFd9/3MSKS8P/0toS/mIbKzIvIgsKZ7hrrpYBF3XaOnZLE7LXR2rVQrHw== X-OriginatorOrg: kalrayinc.com X-MS-Exchange-CrossTenant-Network-Message-Id: 563f969c-0b55-4d12-c06a-08dba3291451 X-MS-Exchange-CrossTenant-AuthSource: MRZP264MB2489.FRAP264.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 22 Aug 2023 16:01:43.4742 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 8931925d-7620-4a64-b7fe-20afd86363d3 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: jM5raDbC9dq5KjZO9nOxxn15JepWSjz3KjOQWUEBg8lCQGk78yzEAhI+lIM7IutfxaWkubi49GKeTT9xPNsEgQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: PAZP264MB2445 X-ALTERMIMEV2_out: done X-Spam-Status: No, score=-10.7 required=5.0 tests=BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,GIT_PATCH_0,SPF_HELO_NONE,SPF_PASS,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 List-Id: This message is in MIME format. --secu_deb0aca1bb8bede7e8316116b1b6abe2_part1 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Hi, This patch should fix most issues on 32-bit hosts, both the build and the validation should work cleanly. Can I merge it into master? Paul --secu_deb0aca1bb8bede7e8316116b1b6abe2_part1 Content-Type: text/x-diff Content-Disposition: attachment; filename=0001-kvx-fix-32-bit-build-and-validation.patch >From 6900d3245c59cc4b4da026328e74beae66a05b9d Mon Sep 17 00:00:00 2001 From: Paul Iannetta Date: Thu, 17 Aug 2023 16:08:29 +0200 Subject: [PATCH] kvx: fix 32-bit build and validation gas/ChangeLog: 2023-08-22 Paul Iannetta * config/tc-kvx.h (struct token_s): Use int64_t and uint64_t instead of long long and unsigned long long. * config/tc-kvx.c (kvx_set_cpu): Use ELFOSABI_GNU for the kvx-linux target. (struct token_list): * config/kvx-parse.c (promote_token): Likewise. (print_token_list): Likewise. (get_token_class): Likewise and fix immediate selection on 32-bit hosts. bfd/ChangeLog: 2023-08-22 Paul Iannetta * Makefile.am: Move elf32-kvx.lo from BFD32_BACKENDS to BFD64_BACKENDS. Remove elfxx-kvx.lo from BFD32_BACKENDS. Remove elfxx-kvx.c from BFD32_BACKENDS_CFILES. * Makefile.in: Regenerate. * config.bfd: Adjust targ_defvec and targ_selvecs and gate them behing BFD64. * configure.ac: Add target_size=64 to kvx_elf64_*vec. * configure: Regenerate. * elfnn-kvx.c (elfNN_kvx_stub_name): Cast rel->r_addend to uint64_t. (elfNN_kvx_relocate_section): Likewise. ld/ChangeLog: 2023-08-22 Paul Iannetta * Makefile.am: Move eelf32kvx.c from ALL_EMULATION_SOURCES to ALL_64_EMULATION_SOURCES. * Makefile.in: Regenerate. * configure.tgt: Split long line. --- bfd/Makefile.am | 4 +--- bfd/Makefile.in | 4 +--- bfd/config.bfd | 9 ++++----- bfd/configure | 4 ++-- bfd/configure.ac | 4 ++-- bfd/elfnn-kvx.c | 10 +++++----- gas/config/kvx-parse.c | 26 +++++++++++++------------- gas/config/tc-kvx.c | 3 +++ gas/config/tc-kvx.h | 10 +++++----- ld/Makefile.am | 2 +- ld/Makefile.in | 2 +- ld/configure.tgt | 3 ++- 12 files changed, 40 insertions(+), 41 deletions(-) diff --git a/bfd/Makefile.am b/bfd/Makefile.am index 8b0761db582..378c13198d6 100644 --- a/bfd/Makefile.am +++ b/bfd/Makefile.am @@ -318,7 +318,6 @@ BFD32_BACKENDS = \ elf32-i386.lo \ elf32-ip2k.lo \ elf32-iq2000.lo \ - elf32-kvx.lo \ elf32-lm32.lo \ elf32-m32c.lo \ elf32-m32r.lo \ @@ -359,7 +358,6 @@ BFD32_BACKENDS = \ elf32-z80.lo \ elf32.lo \ elflink.lo \ - elfxx-kvx.lo \ elfxx-sparc.lo \ elfxx-tilegx.lo \ elfxx-x86.lo \ @@ -495,7 +493,6 @@ BFD32_BACKENDS_CFILES = \ elf32-z80.c \ elf32.c \ elflink.c \ - elfxx-kvx.c \ elfxx-sparc.c \ elfxx-tilegx.c \ elfxx-x86.c \ @@ -549,6 +546,7 @@ BFD64_BACKENDS = \ coff64-rs6000.lo \ elf32-aarch64.lo \ elf32-ia64.lo \ + elf32-kvx.lo \ elf32-loongarch.lo \ elf32-mips.lo \ elf32-riscv.lo \ diff --git a/bfd/Makefile.in b/bfd/Makefile.in index cca093e1fef..bb530271fca 100644 --- a/bfd/Makefile.in +++ b/bfd/Makefile.in @@ -774,7 +774,6 @@ BFD32_BACKENDS = \ elf32-i386.lo \ elf32-ip2k.lo \ elf32-iq2000.lo \ - elf32-kvx.lo \ elf32-lm32.lo \ elf32-m32c.lo \ elf32-m32r.lo \ @@ -815,7 +814,6 @@ BFD32_BACKENDS = \ elf32-z80.lo \ elf32.lo \ elflink.lo \ - elfxx-kvx.lo \ elfxx-sparc.lo \ elfxx-tilegx.lo \ elfxx-x86.lo \ @@ -951,7 +949,6 @@ BFD32_BACKENDS_CFILES = \ elf32-z80.c \ elf32.c \ elflink.c \ - elfxx-kvx.c \ elfxx-sparc.c \ elfxx-tilegx.c \ elfxx-x86.c \ @@ -1006,6 +1003,7 @@ BFD64_BACKENDS = \ coff64-rs6000.lo \ elf32-aarch64.lo \ elf32-ia64.lo \ + elf32-kvx.lo \ elf32-loongarch.lo \ elf32-mips.lo \ elf32-riscv.lo \ diff --git a/bfd/config.bfd b/bfd/config.bfd index 30927bdbe23..2a4622219ba 100644 --- a/bfd/config.bfd +++ b/bfd/config.bfd @@ -804,14 +804,13 @@ case "${targ}" in targ_selvecs=kvx_elf32_vec want64=true ;; -#endif kvx-*-*) - targ_defvec=kvx_elf32_vec -#ifdef BFD64 - targ64_selvecs=kvx_elf64_vec -#endif + targ_defvec=kvx_elf64_vec + targ_selvecs="kvx_elf64_vec kvx_elf32_vec" + want64=true ;; +#endif lm32-*-elf | lm32-*-rtems*) targ_defvec=lm32_elf32_vec diff --git a/bfd/configure b/bfd/configure index 489531c0a7f..d43754c4787 100755 --- a/bfd/configure +++ b/bfd/configure @@ -13960,8 +13960,8 @@ do ip2k_elf32_vec) tb="$tb elf32-ip2k.lo elf32.lo $elf" ;; iq2000_elf32_vec) tb="$tb elf32-iq2000.lo elf32.lo $elf" ;; kvx_elf32_vec) tb="$tb elf32-kvx.lo elfxx-kvx.lo elf32.lo $elf $ipa" ;; - kvx_elf64_vec) tb="$tb elf64-kvx.lo elfxx-kvx.lo elf64.lo $elf $ipa" ;; - kvx_elf64_linux_vec) tb="$tb elf64-kvx.lo elfxx-kvx.lo elf64.lo $elf $ipa" ;; + kvx_elf64_vec) tb="$tb elf64-kvx.lo elfxx-kvx.lo elf64.lo $elf $ipa"; target_size=64 ;; + kvx_elf64_linux_vec) tb="$tb elf64-kvx.lo elfxx-kvx.lo elf64.lo $elf $ipa"; target_size=64 ;; lm32_elf32_vec) tb="$tb elf32-lm32.lo elf32.lo $elf" ;; lm32_elf32_fdpic_vec) tb="$tb elf32-lm32.lo elf32.lo $elf" ;; loongarch_elf32_vec) tb="$tb elf32-loongarch.lo elfxx-loongarch.lo elf32.lo elf-ifunc.lo $elf" ;; diff --git a/bfd/configure.ac b/bfd/configure.ac index 0d1cd814af6..3fdd12fe22d 100644 --- a/bfd/configure.ac +++ b/bfd/configure.ac @@ -496,8 +496,8 @@ do ip2k_elf32_vec) tb="$tb elf32-ip2k.lo elf32.lo $elf" ;; iq2000_elf32_vec) tb="$tb elf32-iq2000.lo elf32.lo $elf" ;; kvx_elf32_vec) tb="$tb elf32-kvx.lo elfxx-kvx.lo elf32.lo $elf $ipa" ;; - kvx_elf64_vec) tb="$tb elf64-kvx.lo elfxx-kvx.lo elf64.lo $elf $ipa" ;; - kvx_elf64_linux_vec) tb="$tb elf64-kvx.lo elfxx-kvx.lo elf64.lo $elf $ipa" ;; + kvx_elf64_vec) tb="$tb elf64-kvx.lo elfxx-kvx.lo elf64.lo $elf $ipa"; target_size=64 ;; + kvx_elf64_linux_vec) tb="$tb elf64-kvx.lo elfxx-kvx.lo elf64.lo $elf $ipa"; target_size=64 ;; lm32_elf32_vec) tb="$tb elf32-lm32.lo elf32.lo $elf" ;; lm32_elf32_fdpic_vec) tb="$tb elf32-lm32.lo elf32.lo $elf" ;; loongarch_elf32_vec) tb="$tb elf32-loongarch.lo elfxx-loongarch.lo elf32.lo elf-ifunc.lo $elf" ;; diff --git a/bfd/elfnn-kvx.c b/bfd/elfnn-kvx.c index 77ff2483a28..a0a528ef9d2 100644 --- a/bfd/elfnn-kvx.c +++ b/bfd/elfnn-kvx.c @@ -740,7 +740,7 @@ elfNN_kvx_stub_name (const asection *input_section, snprintf (stub_name, len, "%08x_%s+%" PRIx64 "x", (unsigned int) input_section->id, hash->root.root.root.string, - rel->r_addend); + (uint64_t) rel->r_addend); } else { @@ -751,7 +751,7 @@ elfNN_kvx_stub_name (const asection *input_section, (unsigned int) input_section->id, (unsigned int) sym_sec->id, (unsigned int) ELFNN_R_SYM (rel->r_info), - rel->r_addend); + (uint64_t) rel->r_addend); } return stub_name; @@ -2588,11 +2588,11 @@ elfNN_kvx_relocate_section (bfd *output_bfd, (*_bfd_error_handler) ((sym_type == STT_TLS /* xgettext:c-format */ - ? _("%pB(%pA+%#lx): %s used with TLS symbol %s") + ? _("%pB(%pA+%#" PRIx64 "): %s used with TLS symbol %s") /* xgettext:c-format */ - : _("%pB(%pA+%#lx): %s used with non-TLS symbol %s")), + : _("%pB(%pA+%#" PRIx64 "): %s used with non-TLS symbol %s")), input_bfd, - input_section, (long) rel->r_offset, howto->name, name); + input_section, (uint64_t) rel->r_offset, howto->name, name); } /* Original aarch64 has relaxation handling for TLS here. */ diff --git a/gas/config/kvx-parse.c b/gas/config/kvx-parse.c index ec3f912c476..c386d3eb66d 100644 --- a/gas/config/kvx-parse.c +++ b/gas/config/kvx-parse.c @@ -396,10 +396,10 @@ print_token (struct token_s token, char *buf, int bufsz) buf[i] = 0; } -static long long +static int64_t promote_token (struct token_s tok) { - long long cur_class = tok.class_id & -tok.class_id; + int64_t cur_class = tok.class_id & -tok.class_id; switch (tok.category) { case CAT_REGISTER: @@ -414,8 +414,8 @@ promote_token (struct token_s tok) input_line_pointer = tok.insn + tok.begin; expression (&exp); input_line_pointer = ilp_save; - long long new_class_id = tok.class_id; - long long old_class_id = tok.class_id; + int64_t new_class_id = tok.class_id; + int64_t old_class_id = tok.class_id; while ((new_class_id = env.promote_immediate (old_class_id)) != old_class_id && ((exp.X_op == O_symbol && !has_relocation_of_size (str_hash_find (env.reloc_hash, TOKEN_NAME (new_class_id)))) || (exp.X_op == 64 && !kvx_get_pseudo_func2 (exp.X_op_symbol, str_hash_find (env.reloc_hash, TOKEN_NAME (new_class_id)))))) @@ -443,7 +443,7 @@ is_insn (const struct token_s *token, struct token_class *classes) return res; } -static long long +static int64_t get_token_class (struct token_s *token, struct token_classes *classes, int insn_p, int modifier_p) { int cur = 0; @@ -511,12 +511,12 @@ get_token_class (struct token_s *token, struct token_classes *classes, int insn_ if (class == classes->imm_classes) { - unsigned long long uval = token_val_p + uint64_t uval = token_val_p ? token->val : strtoull (tok + (tok[0] == '-') + (tok[0] == '+'), NULL, 0); - long long val = uval; - long long pval = val < 0 ? -val : val; - int neg_power2_p = val < 0 && !(pval & (pval - 1)); + uint64_t sign_bit = ((~0ULL >> 1) ^ ~0ULL); + int64_t pval = sign_bit & uval ? 1 + (~0ULL >> 1) - (~sign_bit & uval) : (~sign_bit & uval); + int neg_power2_p = (sign_bit & uval) && !(pval & (pval - 1)); unsigned int len = 8 * sizeof (pval) - __builtin_clzll (pval); for (; class[cur].class_id != -1 && ((unsigned int) (class[cur].sz < 0 ? - class[cur].sz - !neg_power2_p : class[cur].sz) < len @@ -652,11 +652,11 @@ print_token_list (struct token_list *lst) struct token_list *cur = lst; while (cur) { - printf_debug (1, "%s (%d : %s : %d) / ", + printf_debug (0, "%s (%lld : %s : %d) / ", cur->tok, cur->val, TOKEN_NAME (cur->class_id), cur->loc); cur = cur->next; } - printf_debug (1, "\n"); + printf_debug (0, "\n"); } void @@ -804,7 +804,7 @@ retry:; parse_with_restarts (tok, cur_rule[i].jump_target, rules, errs); /* While parsing fails but there is hope since the current token can be promoted. */ - while (!fst_part && tok.class_id != (long long) promote_token (tok)) + while (!fst_part && tok.class_id != (int64_t) promote_token (tok)) { free_token_list (fst_part); tok.class_id = promote_token (tok); @@ -854,7 +854,7 @@ retry:; printf_debug (1, "snd_part: Trying to match: %s\n", TOKEN_NAME (CLASS_ID (tok))); struct token_list *snd_part = parse_with_restarts (tok, cur_rule[i].stack_it, rules, errs); - while (!snd_part && tok.class_id != (long long) promote_token (tok)) + while (!snd_part && tok.class_id != (int64_t) promote_token (tok)) { tok.class_id = promote_token (tok); printf_debug (1, ">> Restart with %s?\n", TOKEN_NAME (CLASS_ID (tok))); diff --git a/gas/config/tc-kvx.c b/gas/config/tc-kvx.c index 3cf6b27976d..00aec6c858e 100644 --- a/gas/config/tc-kvx.c +++ b/gas/config/tc-kvx.c @@ -1419,6 +1419,9 @@ kvx_set_cpu (void) if (env.params.core == -1) env.params.core = kvx_core_info->elf_core; + if (!strcmp (TARGET_OS, "linux-gnu")) + env.params.osabi = ELFOSABI_GNU; + int kvx_bfd_mach; print_insn = kvx_print_insn; diff --git a/gas/config/tc-kvx.h b/gas/config/tc-kvx.h index 11787bf0532..f8587540ca5 100644 --- a/gas/config/tc-kvx.h +++ b/gas/config/tc-kvx.h @@ -43,15 +43,15 @@ struct token_s { char *insn; int begin, end; int category; - long long class_id; - unsigned long long val; + int64_t class_id; + uint64_t val; }; struct token_list { char *tok; - unsigned long long val; - long long class_id; + uint64_t val; + int64_t class_id; int category; int loc; struct token_list *next; @@ -61,7 +61,7 @@ struct token_list struct token_class { const char ** class_values; - long long class_id; + int64_t class_id; int sz; }; diff --git a/ld/Makefile.am b/ld/Makefile.am index 07fac968bb7..be456275748 100644 --- a/ld/Makefile.am +++ b/ld/Makefile.am @@ -237,7 +237,6 @@ ALL_EMULATION_SOURCES = \ eelf32ip2k.c \ eelf32iq10.c \ eelf32iq2000.c \ - eelf32kvx.c \ eelf32lm32.c \ eelf32lm32fd.c \ eelf32lppc.c \ @@ -408,6 +407,7 @@ ALL_64_EMULATION_SOURCES = \ eelf32ebmipvxworks.c \ eelf32elmip.c \ eelf32elmipvxworks.c \ + eelf32kvx.c \ eelf32l4300.c \ eelf32lmip.c \ eelf32loongarch.c \ diff --git a/ld/Makefile.in b/ld/Makefile.in index a2aa54b69d8..c6a79774f38 100644 --- a/ld/Makefile.in +++ b/ld/Makefile.in @@ -738,7 +738,6 @@ ALL_EMULATION_SOURCES = \ eelf32ip2k.c \ eelf32iq10.c \ eelf32iq2000.c \ - eelf32kvx.c \ eelf32lm32.c \ eelf32lm32fd.c \ eelf32lppc.c \ @@ -908,6 +907,7 @@ ALL_64_EMULATION_SOURCES = \ eelf32ebmipvxworks.c \ eelf32elmip.c \ eelf32elmipvxworks.c \ + eelf32kvx.c \ eelf32l4300.c \ eelf32lmip.c \ eelf32loongarch.c \ diff --git a/ld/configure.tgt b/ld/configure.tgt index f78ba07e5ca..ff0aaaae257 100644 --- a/ld/configure.tgt +++ b/ld/configure.tgt @@ -476,7 +476,8 @@ lm32-*-*) targ_emul=elf32lm32 kvx-*-linux*) targ_emul=elf64kvx_linux targ_extra_emuls="elf64kvx" ;; -kvx-*-*) targ_emul=elf64kvx; targ_extra_emuls="elf64kvx_linux elf32kvx" +kvx-*-*) targ_emul=elf64kvx; + targ_extra_emuls="elf64kvx_linux elf32kvx" ;; m32c-*-elf) targ_emul=elf32m32c -- 2.35.1.500.gb896f729e2 --secu_deb0aca1bb8bede7e8316116b1b6abe2_part1--