From patchwork Fri Dec 30 02:40:48 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Mark Harmstone X-Patchwork-Id: 37548 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:4e01:0:0:0:0:0 with SMTP id p1csp2691985wrt; Thu, 29 Dec 2022 18:41:08 -0800 (PST) X-Google-Smtp-Source: AMrXdXszOFbVglJHGieGbLMPcv+eHjSo50Hc3TYtOvhtC1UNVSmAheSyss7Ho61Fy+VyAJpcecau X-Received: by 2002:a17:906:284d:b0:7ad:b865:d3b7 with SMTP id s13-20020a170906284d00b007adb865d3b7mr26388609ejc.21.1672368068615; Thu, 29 Dec 2022 18:41:08 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1672368068; cv=none; d=google.com; s=arc-20160816; b=ttH7r8p0Als50R576z76MydcXHjHe+1QMJZG7nfB/6XRg88G3U/DHjoCr77Bgqp5Uy 9G8G35UTbrjzbZ86JeALbr5TJL4MbvXRkz3GGIp5e31d0BMJH60GkwAzUarSAplHuivz hv5wp7ykbwIXJjjNCFae9AktqB7TaH0llBQ2RwL0heLBgPpL5s/lL8/ZjqPAy8bvW57b 859skJiWG4bSBLSaKVdp2C7t7hUSHzCEI8dBsgKpK56/RysAGF/ImaUR4ZQg5yFf8W4i LJVbyNCBDUtVE+bYTz5eFB/v77ee7Cn4H29sTSGGcFcFZPn44jCbWxd/XjPj2hwuQFtH ZWRA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:list-subscribe:list-help:list-post:list-archive :list-unsubscribe:list-id:precedence:content-transfer-encoding :mime-version:message-id:date:subject:cc:to:from:dkim-signature :dmarc-filter:delivered-to; bh=kFofZKECI58RB5OyhfSxavCPT0U7sM+pGDVtDN6NM0U=; b=KNACGWVdLwVnRN2OkBEf/bamoa2UOGlWrr37twWIDZ7zqhCxZth4iNcnhcA8kjgIGt hx1BR85zxQjLZoY/Gsp324h8WTDWvcwMJYIDOBRf50Pcitanp0Y1Zw68mpIeiKNg7wFy 1QIb0wsKstdF4ZjblHkNtcY4Mn7BGGF52Z2mbUGtA7u+Bcn14MMg7ahlHrQ7HoY1hiaY TZQ/j3t3DKh40be7t4qFblvi9iXqTHdZBrPg6c1ZNe2nI4z/SWDb+dgZFGadAIcByMxq 859TRDtEkPvrLp7KzDMiofGFRhsaq69vswgg+4KTF9Ixre9nMwBDbEPy7BRDiPPwCf2W 7UCA== ARC-Authentication-Results: i=1; mx.google.com; dkim=fail header.i=@gmail.com header.s=20210112 header.b=Dk9WeunM; spf=pass (google.com: domain of binutils-bounces+ouuuleilei=gmail.com@sourceware.org designates 8.43.85.97 as permitted sender) smtp.mailfrom="binutils-bounces+ouuuleilei=gmail.com@sourceware.org" Received: from sourceware.org (server2.sourceware.org. [8.43.85.97]) by mx.google.com with ESMTPS id wy12-20020a170906fe0c00b0083ad85fbd63si16172704ejb.340.2022.12.29.18.41.08 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 29 Dec 2022 18:41:08 -0800 (PST) Received-SPF: pass (google.com: domain of binutils-bounces+ouuuleilei=gmail.com@sourceware.org designates 8.43.85.97 as permitted sender) client-ip=8.43.85.97; Authentication-Results: mx.google.com; dkim=fail header.i=@gmail.com header.s=20210112 header.b=Dk9WeunM; spf=pass (google.com: domain of binutils-bounces+ouuuleilei=gmail.com@sourceware.org designates 8.43.85.97 as permitted sender) smtp.mailfrom="binutils-bounces+ouuuleilei=gmail.com@sourceware.org" Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id C6A3C385840E for ; Fri, 30 Dec 2022 02:41:05 +0000 (GMT) X-Original-To: binutils@sourceware.org Delivered-To: binutils@sourceware.org Received: from mail-wm1-x333.google.com (mail-wm1-x333.google.com [IPv6:2a00:1450:4864:20::333]) by sourceware.org (Postfix) with ESMTPS id 527633858C53 for ; Fri, 30 Dec 2022 02:40:59 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 527633858C53 Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=harmstone.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=gmail.com Received: by mail-wm1-x333.google.com with SMTP id z8-20020a05600c220800b003d33b0bda11so12188518wml.0 for ; Thu, 29 Dec 2022 18:40:59 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:sender:from:to:cc:subject:date:message-id:reply-to; bh=kFofZKECI58RB5OyhfSxavCPT0U7sM+pGDVtDN6NM0U=; b=Dk9WeunMJ2sD6vlhn5/e1CnCeHrXYqrvBsS3d/hBKj0OQlcfgW2+TEfMagj8RDpctk gJwd6BKLzDZGw/UGJFyAyh7rw02/prk2kxIDsN8w7RgVdcRxndebt3mYr7SydjhiYvB5 3hUbFz4jXpmuScIzfU7bRzxxHjEZAUHWtTUEnOt/RacDerKz2P4GFaVO+4c3rWmx7dcs T0Ov8+9Zm7PY2RK6p1jHklp+6EPhfWHzpn9S/iefbaEOlqPClFjar6nqIp8Q5fdv7FQ7 QmP9DQdUIIK0fn2qPZ2kBP0ssDinRCqjLbUVuw1A+XSFtqPZjsYbHUK0Wvqy2FBRkgWY pxIA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:sender:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=kFofZKECI58RB5OyhfSxavCPT0U7sM+pGDVtDN6NM0U=; b=gsK6izaC7AO/BP0S3diDYxcyMSoFhbI+X1pEC2F9O6HHGCz3V5rIrU+K0zYBrPNnAE 7cnu93diejCiEcDaqw39gTs1Ly+1D9TCipmw6JROW520xdcjn6Rd+3fQqGbgTaGcccjS Dx09eNxQ3qN/nDYZ3Qkzuk3F2TbO1DlMIZAbVbVsupTGifAJNGNsZNa3M909YEXJelep pdBx0Ik5Q0e4cYIhlc6N/rlXSDlCcFGu3RdieLCAn2MaewdBqt+2zv0WNVpz/0M+S7oS VKfmGJ8tgMlXvcy4GtUeg389hj8JVebPe/CN7f+TipisCfkcNXAmLWhE6Nrr7KyoUoVs Nu9g== X-Gm-Message-State: AFqh2krleU8LNF0tF1dDqJSCYHPvSlPyttYhBcxOBN/VJQv7yZAKKTsM wHajLKUO/PmyfOV+hbBStJc= X-Received: by 2002:a05:600c:4c21:b0:3cf:f18b:327e with SMTP id d33-20020a05600c4c2100b003cff18b327emr21986902wmp.4.1672368058032; Thu, 29 Dec 2022 18:40:58 -0800 (PST) Received: from beren.harmstone.com ([2a02:8010:64ea:0:8eb8:7eff:fe53:9d5f]) by smtp.gmail.com with ESMTPSA id t17-20020a05600c199100b003d99da8d30asm3726287wmq.46.2022.12.29.18.40.57 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 29 Dec 2022 18:40:57 -0800 (PST) From: Mark Harmstone To: wej22007@outlook.com, zac.walker@linaro.org, tamar.christina@arm.com, binutils@sourceware.org Cc: Mark Harmstone Subject: [PATCH 1/8] ld: Rename aarch64pe emulation target to arm64pe Date: Fri, 30 Dec 2022 02:40:48 +0000 Message-Id: <20221230024055.31841-1-mark@harmstone.com> X-Mailer: git-send-email 2.37.4 MIME-Version: 1.0 X-Spam-Status: No, score=-11.3 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_EF, FREEMAIL_FORGED_FROMDOMAIN, FREEMAIL_FROM, GIT_PATCH_0, HEADER_FROM_DIFFERENT_DOMAINS, RCVD_IN_DNSWL_NONE, 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 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: , 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?1753605019489291741?= X-GMAIL-MSGID: =?utf-8?q?1753605019489291741?= The second version of my aarch64-w64-mingw32 patches. With this, I'm now able to compile a workable version of GCC, including the CRT (before it was EFI-only). Changes from last time: * The aarch64pe emulation target is renamed to arm64pe. This is the name that LLVM is already using, even though as a rule we call this arch aarch64. Without this clang won't work with ld. Another possibility would be to change the -m parameter if it's "arm64", but that seems to me like it's making things more complicated than they need to be. * The PE big-obj test is split into a separate patch, as per Jan's request * Added support for BFD_RELOC_AARCH64_LDST128_LO12 relocations * Relocations against absolute sections now work * Added error for IMAGE_REL_ARM64_PAGEOFFSET_12L truncation * Added pdb_vec to aarch64-w64-mingw32, now that it's complete * Restored tc_pe_dwarf2_emit_offset in tc-aarch64.c, which is needed to make sure that DWARF offsets are encoded correctly (they're secrels in COFF). There were remnants of this there before, but they were removed by Jedidiah's original patch - presumably because we didn't yet have .secrel32. Mark --- ld/Makefile.am | 4 ++-- ld/Makefile.in | 6 +++--- ld/configure.tgt | 2 +- ld/emulparams/{aarch64pe.sh => arm64pe.sh} | 0 ld/emultempl/pep.em | 4 ++-- ld/po/BLD-POTFILES.in | 2 +- 6 files changed, 9 insertions(+), 9 deletions(-) rename ld/emulparams/{aarch64pe.sh => arm64pe.sh} (100%) diff --git a/ld/Makefile.am b/ld/Makefile.am index 65fef4e1690..b066b9d7323 100644 --- a/ld/Makefile.am +++ b/ld/Makefile.am @@ -388,7 +388,7 @@ ALL_64_EMULATION_SOURCES = \ eaarch64linux32.c \ eaarch64linux32b.c \ eaarch64linuxb.c \ - eaarch64pe.c \ + earm64pe.c \ eelf32_x86_64.c \ eelf32b4300.c \ eelf32bmip.c \ @@ -879,7 +879,7 @@ $(ALL_EMULATION_SOURCES) $(ALL_64_EMULATION_SOURCES): $(GEN_DEPENDS) @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eaarch64linux32.Pc@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eaarch64linux32b.Pc@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eaarch64linuxb.Pc@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eaarch64pe.Pc@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/earm64pe.Pc@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eelf32_x86_64.Pc@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eelf32b4300.Pc@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eelf32bmip.Pc@am__quote@ diff --git a/ld/Makefile.in b/ld/Makefile.in index ff4c916c27b..edbdd06c705 100644 --- a/ld/Makefile.in +++ b/ld/Makefile.in @@ -888,7 +888,7 @@ ALL_64_EMULATION_SOURCES = \ eaarch64linux32.c \ eaarch64linux32b.c \ eaarch64linuxb.c \ - eaarch64pe.c \ + earm64pe.c \ eelf32_x86_64.c \ eelf32b4300.c \ eelf32bmip.c \ @@ -1264,7 +1264,7 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eaarch64linux32.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eaarch64linux32b.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eaarch64linuxb.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eaarch64pe.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/earm64pe.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eaix5ppc.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eaix5rs6.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eaixppc.Po@am__quote@ @@ -2553,7 +2553,7 @@ $(ALL_EMULATION_SOURCES) $(ALL_64_EMULATION_SOURCES): $(GEN_DEPENDS) @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eaarch64linux32.Pc@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eaarch64linux32b.Pc@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eaarch64linuxb.Pc@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eaarch64pe.Pc@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/earm64pe.Pc@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eelf32_x86_64.Pc@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eelf32b4300.Pc@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eelf32bmip.Pc@am__quote@ diff --git a/ld/configure.tgt b/ld/configure.tgt index 741b246f67e..6b833f26248 100644 --- a/ld/configure.tgt +++ b/ld/configure.tgt @@ -119,7 +119,7 @@ aarch64-*-haiku*) targ_emul=aarch64haiku targ_extra_emuls="aarch64elf aarch64elf32 aarch64elf32b aarch64elfb armelf armelfb armelf_haiku $targ_extra_libpath" ;; aarch64-*-pe*) - targ_emul=aarch64pe + targ_emul=arm64pe targ_extra_ofiles="deffilep.o pep-dll-aarch64.o" ;; alpha*-*-freebsd* | alpha*-*-kfreebsd*-gnu) diff --git a/ld/emulparams/aarch64pe.sh b/ld/emulparams/arm64pe.sh similarity index 100% rename from ld/emulparams/aarch64pe.sh rename to ld/emulparams/arm64pe.sh diff --git a/ld/emultempl/pep.em b/ld/emultempl/pep.em index e2c538e6d99..e20339fa874 100644 --- a/ld/emultempl/pep.em +++ b/ld/emultempl/pep.em @@ -48,7 +48,7 @@ fragment < X-Patchwork-Id: 37549 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:4e01:0:0:0:0:0 with SMTP id p1csp2692009wrt; Thu, 29 Dec 2022 18:41:13 -0800 (PST) X-Google-Smtp-Source: AMrXdXuhWf0gjRdSDsWJeuyCCBbZEEU5X7OFcpBXjBKr/q8GbHTF/NDyNtupK2GT4T9c/OjNKvSK X-Received: by 2002:a05:6402:1819:b0:45c:835b:ac67 with SMTP id g25-20020a056402181900b0045c835bac67mr25382928edy.34.1672368073897; Thu, 29 Dec 2022 18:41:13 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1672368073; cv=none; d=google.com; s=arc-20160816; b=Sc0hd29+sK9oG6fg3N1v2eK8B9Dyb/nlSjQZnUd6RzNLFqmMS4QJuJOmNx4XegrkFY jTVg06wyhRFANyXVjr7unNEmEqF7vt3ClEI06o3s1wpfd1GUGVJ1C0t60XNKlQYyXAk3 tRtBYVodKzD3gVxmUcVURmxLon8QKBzam0kbqk2hQXRsoeFAEQk7aieTREMmFGyolspS YUJbPzWPTXScIg3leJLR6/Nyu1OlxJmdyQyEfjOmdCrXUvPUcQJsbrenL2tNo9zVZek+ eI2HupjbVhP4djKt1Cn37DLrCocoj0eJ2crR2OfDUypSaXxFEHbDI3zzbBE43sbCLVgg nSJg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:list-subscribe:list-help:list-post:list-archive :list-unsubscribe:list-id:precedence:content-transfer-encoding :mime-version:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature:dmarc-filter:delivered-to; bh=XUpVLcJoNN/3/LnqqgLqUDzmPrIMnBsUDw6o/mb8Bn4=; b=SPr4XPEgZ3swmg/ah5IuRMq/BMhnPATLtmxm+7WWvuUgQZY17+xd15c8n7z+mPBOBf O5HGjQM/VYPQiK+E2uTVIubepPRZREezfjI9/0cnNDvSjeY8iukCIklJOMGklGoDEgB/ jWauVH+homzBJ1tT+F5EWl/rIBBpwwh6TleOmHQ2v2lQ2rqapC7wE+gzH8WlX6XKR/Yi Tx8m94tjrIuel45zXnJAu1E8Lc5YgCeKtLokib0e8yfL+0ElseeIZxP7/MzPLOFBwLj0 ukJGqfo5kxhXmjJJcb73oDBHGiV2ZfOzGR/MyofmiheUZimUuWFCSiGdnGBZF4wWAwb2 e2ng== ARC-Authentication-Results: i=1; mx.google.com; dkim=fail header.i=@gmail.com header.s=20210112 header.b=aZsIRCps; 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" Received: from sourceware.org (server2.sourceware.org. [2620:52:3:1:0:246e:9693:128c]) by mx.google.com with ESMTPS id el15-20020a056402360f00b0048321d887b5si12964170edb.516.2022.12.29.18.41.13 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 29 Dec 2022 18:41:13 -0800 (PST) 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=fail header.i=@gmail.com header.s=20210112 header.b=aZsIRCps; 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" Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 35FD33858289 for ; Fri, 30 Dec 2022 02:41:08 +0000 (GMT) X-Original-To: binutils@sourceware.org Delivered-To: binutils@sourceware.org Received: from mail-wm1-x32a.google.com (mail-wm1-x32a.google.com [IPv6:2a00:1450:4864:20::32a]) by sourceware.org (Postfix) with ESMTPS id 5F51A3858C66 for ; Fri, 30 Dec 2022 02:41:00 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 5F51A3858C66 Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=harmstone.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=gmail.com Received: by mail-wm1-x32a.google.com with SMTP id b24-20020a05600c4a9800b003d21efdd61dso14424663wmp.3 for ; Thu, 29 Dec 2022 18:41:00 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:sender:from:to:cc:subject:date :message-id:reply-to; bh=XUpVLcJoNN/3/LnqqgLqUDzmPrIMnBsUDw6o/mb8Bn4=; b=aZsIRCpsCioHYfvzWk5mOfn4bu3Mt7pFL4zbl36evDuPkmGwXD9Xq2+JZoTRKRDV4n /ugEGMnE8MjYr6VNUoY3YT5t2RRqqDdl7FIKgjsuYvRoKWsM947fGQiHvG4VQkmy1MRh NKdbg7atCTOpxdxCP0VEWnTd8Rpva+F44V4kgA5Y8GUCb6ad5snxgbistBhq+v9mWJpr vIox4WMHvW8r3m2CACOx+I9ByS4EPVDu3mottSjUp309UBVT0a3Edu21h+KVDin8opZ4 JNcZdla24CgVxBCNA5/VkzD6eaVfdTYncQvPED21A2PwCCiQIhr69warW+GgqNHniGI1 P8fQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:sender:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=XUpVLcJoNN/3/LnqqgLqUDzmPrIMnBsUDw6o/mb8Bn4=; b=jasrrLPQECMDQgO3Y0PFaONDVqz2glfo5X2nZVjZNSofexY5+vFHNMVr8dEZc1u8Gf 4oQe8+Cnjs3nXp/BY8UfH6ipr5eTYlmsANjD5Jg+AWvOlQLlbP/oJIp2KVM6vtFa6Nvm jFl8mCpoj5LUcXE8vO55kksKcVWbhOzHu03HOqItp7zTXLRjAlhimoE8bwhBplxcMfsq d3fA3vYQ4IICPJ6NTEf/b6u8BzBwLlXie8FPQoP74/xoYsPRPHtMG7wuG1chNfo5/fbD u7KoRkLrpj4kwLYauHd1E5g1XdiVWivndcS7HNCqmoF9MxeDgxntCiXHvE98rIRgLUdn oYFQ== X-Gm-Message-State: AFqh2koSTez8DoAzyHJQW9rothFgaL/a0bg3URIc15dpdzCRFEdZSOBv aWpFOpI0Ify3HeOl0Uw3dVUhCIAk1VzLdA== X-Received: by 2002:a7b:cb56:0:b0:3d2:3be4:2d9a with SMTP id v22-20020a7bcb56000000b003d23be42d9amr21591561wmj.20.1672368059073; Thu, 29 Dec 2022 18:40:59 -0800 (PST) Received: from beren.harmstone.com ([2a02:8010:64ea:0:8eb8:7eff:fe53:9d5f]) by smtp.gmail.com with ESMTPSA id t17-20020a05600c199100b003d99da8d30asm3726287wmq.46.2022.12.29.18.40.58 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 29 Dec 2022 18:40:58 -0800 (PST) From: Mark Harmstone To: wej22007@outlook.com, zac.walker@linaro.org, tamar.christina@arm.com, binutils@sourceware.org Cc: Mark Harmstone Subject: [PATCH 2/8] Fix size of external_reloc for pe-aarch64 Date: Fri, 30 Dec 2022 02:40:49 +0000 Message-Id: <20221230024055.31841-2-mark@harmstone.com> X-Mailer: git-send-email 2.37.4 In-Reply-To: <20221230024055.31841-1-mark@harmstone.com> References: <20221230024055.31841-1-mark@harmstone.com> MIME-Version: 1.0 X-Spam-Status: No, score=-11.1 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_EF, FREEMAIL_FORGED_FROMDOMAIN, FREEMAIL_FROM, GIT_PATCH_0, HEADER_FROM_DIFFERENT_DOMAINS, KAM_NUMSUBJECT, RCVD_IN_DNSWL_NONE, 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 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: , 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?1753605025559708040?= X-GMAIL-MSGID: =?utf-8?q?1753605025559708040?= --- bfd/coff-aarch64.c | 4 ---- include/coff/aarch64.h | 3 +-- 2 files changed, 1 insertion(+), 6 deletions(-) diff --git a/bfd/coff-aarch64.c b/bfd/coff-aarch64.c index 2c3e225a222..0faa75c63d2 100644 --- a/bfd/coff-aarch64.c +++ b/bfd/coff-aarch64.c @@ -188,10 +188,6 @@ coff_aarch64_rtype_lookup (unsigned int code) #define bfd_pe_print_pdata NULL #endif -/* Handle include/coff/aarch64.h external_reloc. */ -#define SWAP_IN_RELOC_OFFSET H_GET_32 -#define SWAP_OUT_RELOC_OFFSET H_PUT_32 - /* Return TRUE if this relocation should appear in the output .reloc section. */ diff --git a/include/coff/aarch64.h b/include/coff/aarch64.h index 100e08f18ef..b670f28bd3e 100644 --- a/include/coff/aarch64.h +++ b/include/coff/aarch64.h @@ -54,11 +54,10 @@ struct external_reloc char r_vaddr[4]; char r_symndx[4]; char r_type[2]; - char r_offset[4]; }; #define RELOC struct external_reloc -#define RELSZ 14 +#define RELSZ 10 /* ARM64 relocations types. */ From patchwork Fri Dec 30 02:40:50 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Mark Harmstone X-Patchwork-Id: 37551 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:4e01:0:0:0:0:0 with SMTP id p1csp2692460wrt; Thu, 29 Dec 2022 18:43:08 -0800 (PST) X-Google-Smtp-Source: AMrXdXsHrdqo8Dtc3u0ABeqDRES4SRKqFa0syugsbS+MGchV06IrnF9iabKbAZvsRAs++PjTmumJ X-Received: by 2002:a17:907:9b06:b0:83f:8e58:6427 with SMTP id kn6-20020a1709079b0600b0083f8e586427mr24014395ejc.63.1672368188294; Thu, 29 Dec 2022 18:43:08 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1672368188; cv=none; d=google.com; s=arc-20160816; b=CT16rMkvyAMfqEhlt+QBddC3s3A/gbBmKRjDF8OcTZklDvfaMsimUzFD5GYy0ZL30l uwnjPMgr0GeI0t9ikTx9b/XweT0ZfW17276QQgpG/qxLUFmjodqKGl2nPP4jc6cYC1Kq 1XBrb5QS/sKINzgYab3aRhITJ1/id7Hr8Vwc6qko97A+nWVUyvkkqPjSHHPEBihxEdvB 1jUkTJ0kXl5IRd/UcHcBTQ/JT7YsIVzGfGMcst8lypyfFyDfVgHOZ6/IC4O6qAwa8ODm qo6A03rZU9X4h0oQ0SV8prBNdR7JG1TN2ehL9ArThY9oikhWhr8sXax48cNIzEEk+gcG S5zg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:list-subscribe:list-help:list-post:list-archive :list-unsubscribe:list-id:precedence:content-transfer-encoding :mime-version:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature:dmarc-filter:delivered-to; bh=EF1vxPFgRfuO/Tx8RBaet6TAoublgsL+9Xken6G6NU0=; b=gnjwDSE4Jpxv42btxMyFGtqhNmOUjQ5ndwR2YzEmm45lw4qoldl+cDpCmXsFc3eJPr aZUBaC13cl5xTnu4V5uu6pOoLcdC1b9nRMLbLTGTKirRuKpeqT7qBfEAJK+/f9Llmand RCbcMIstUwUvt1BvSykH3H8Fc99ELgAAUUOymHM5B2g0g+Aza9pdZM8YCElNGPGQbRQB L+WBDdVR8fw5F+kPEbxCZhnASF+05zBssIB9UIhs3jlAdoRXo6ZCYgFoYzGHEWDvtLIp GN7EcyVaSIlHfWp1UC1rWn2HCD4JD1IcMNPu+NHycWH45/kzuCeFXIQzKAdvpW14w+w5 JfEA== ARC-Authentication-Results: i=1; mx.google.com; dkim=fail header.i=@gmail.com header.s=20210112 header.b=hlnL7bUr; spf=pass (google.com: domain of binutils-bounces+ouuuleilei=gmail.com@sourceware.org designates 8.43.85.97 as permitted sender) smtp.mailfrom="binutils-bounces+ouuuleilei=gmail.com@sourceware.org" Received: from sourceware.org (server2.sourceware.org. [8.43.85.97]) by mx.google.com with ESMTPS id xf11-20020a17090731cb00b0078d6418dcb8si17825575ejb.456.2022.12.29.18.43.07 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 29 Dec 2022 18:43:08 -0800 (PST) Received-SPF: pass (google.com: domain of binutils-bounces+ouuuleilei=gmail.com@sourceware.org designates 8.43.85.97 as permitted sender) client-ip=8.43.85.97; Authentication-Results: mx.google.com; dkim=fail header.i=@gmail.com header.s=20210112 header.b=hlnL7bUr; spf=pass (google.com: domain of binutils-bounces+ouuuleilei=gmail.com@sourceware.org designates 8.43.85.97 as permitted sender) smtp.mailfrom="binutils-bounces+ouuuleilei=gmail.com@sourceware.org" Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 66140382FAF9 for ; Fri, 30 Dec 2022 02:41:44 +0000 (GMT) X-Original-To: binutils@sourceware.org Delivered-To: binutils@sourceware.org Received: from mail-wr1-x42f.google.com (mail-wr1-x42f.google.com [IPv6:2a00:1450:4864:20::42f]) by sourceware.org (Postfix) with ESMTPS id BDBF03858CDA for ; Fri, 30 Dec 2022 02:41:01 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org BDBF03858CDA Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=harmstone.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=gmail.com Received: by mail-wr1-x42f.google.com with SMTP id co23so18877561wrb.4 for ; Thu, 29 Dec 2022 18:41:01 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:sender:from:to:cc:subject:date :message-id:reply-to; bh=EF1vxPFgRfuO/Tx8RBaet6TAoublgsL+9Xken6G6NU0=; b=hlnL7bUryxx3TFD9qpwDp6EUvp4Y55Bm4s5ysW1X/EfZEuVjnf/Nxy/x2gSm/uBbt0 9vYsA5Jx1NJNTlCDy4yTRYPV2h0LMG0Z0v7V41FX/h1zqSq24QwMRYyc97luT1vMQ0sK OE/rQSh0DoxiuLHVnHX+dTW/6+V3SF2c9ju+YgHCOrTf0PDCiYG7SQtANm/sa4bWCibm N8KH1UEO6HHdywFHvqHRK/qzWXKo9TF/DuHgFTU/E5S6j44mg4gFNgcVEuWc0I8TMcbZ xrCO8JJpdv5ouuadoktXLP4/N4z2FQObAcIPFZDI//aHsiWd6RW3iaEtqkgyHRRQCY56 lfsw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:sender:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=EF1vxPFgRfuO/Tx8RBaet6TAoublgsL+9Xken6G6NU0=; b=jvPxHXcXmS3y0PDC6uiBrWoTuw6kL1O00lMWkPAT8PKsyZtUiVupyNszStkETl0r7X 4w3hmym3fV2qc2j9sJhWuF1EXCfkuNroOjJm04kQPkyCfZ8UAmFwI768YhaaNSSSxPjo ZOz279BKvx+e5HrXGNubLnbnvcG/YNM/uJSLf7rN6sKyliE0dfCEcJAFgjGAQ1uuLr1c ABrHFDEZjDYovtuCA7zCd+mZefpVMgs0xczjH+Zn2Q3RGgVN5xnc3QtVM4GMc/h2AImo 9Xytg6fFwPF88GX0UUwRMpbLehNURqVqu3h28sie3JJgMOIZYj2IG9I4mE+Nh0rECWMU Z0gw== X-Gm-Message-State: AFqh2kp+FXlLwV0Y/afULoUnICfZmO0gEqZZA5apIflO3zg9P8UCxFzW OQ4y88QDVBi3kDyualM41GM= X-Received: by 2002:a5d:52c9:0:b0:26a:ec28:3856 with SMTP id r9-20020a5d52c9000000b0026aec283856mr17757669wrv.3.1672368060196; Thu, 29 Dec 2022 18:41:00 -0800 (PST) Received: from beren.harmstone.com ([2a02:8010:64ea:0:8eb8:7eff:fe53:9d5f]) by smtp.gmail.com with ESMTPSA id t17-20020a05600c199100b003d99da8d30asm3726287wmq.46.2022.12.29.18.40.59 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 29 Dec 2022 18:40:59 -0800 (PST) From: Mark Harmstone To: wej22007@outlook.com, zac.walker@linaro.org, tamar.christina@arm.com, binutils@sourceware.org Cc: Mark Harmstone Subject: [PATCH 3/8] Skip ELF-specific tests when targeting pe-aarch64 Date: Fri, 30 Dec 2022 02:40:50 +0000 Message-Id: <20221230024055.31841-3-mark@harmstone.com> X-Mailer: git-send-email 2.37.4 In-Reply-To: <20221230024055.31841-1-mark@harmstone.com> References: <20221230024055.31841-1-mark@harmstone.com> MIME-Version: 1.0 X-Spam-Status: No, score=-11.1 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_EF, FREEMAIL_FORGED_FROMDOMAIN, FREEMAIL_FROM, GIT_PATCH_0, HEADER_FROM_DIFFERENT_DOMAINS, KAM_NUMSUBJECT, RCVD_IN_DNSWL_NONE, 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 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: , 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?1753605145192959553?= X-GMAIL-MSGID: =?utf-8?q?1753605145192959553?= --- binutils/testsuite/binutils-all/objcopy.exp | 1 + gas/testsuite/gas/aarch64/adr_1.d | 1 + gas/testsuite/gas/aarch64/advsimd-mov-bad.d | 1 + gas/testsuite/gas/aarch64/b_1.d | 1 + gas/testsuite/gas/aarch64/beq_1.d | 1 + gas/testsuite/gas/aarch64/bfloat16-directive-be.d | 1 + gas/testsuite/gas/aarch64/bfloat16-directive-le.d | 1 + gas/testsuite/gas/aarch64/codealign.d | 2 +- gas/testsuite/gas/aarch64/codealign_1.d | 1 + gas/testsuite/gas/aarch64/dwarf.d | 1 + gas/testsuite/gas/aarch64/ilp32-basic.d | 1 + gas/testsuite/gas/aarch64/int-insns.d | 1 + gas/testsuite/gas/aarch64/ldr_1.d | 1 + gas/testsuite/gas/aarch64/litpool.d | 2 +- gas/testsuite/gas/aarch64/mapmisc.d | 2 +- gas/testsuite/gas/aarch64/mapping.d | 2 +- gas/testsuite/gas/aarch64/mapping2.d | 2 +- gas/testsuite/gas/aarch64/mapping3.d | 2 +- gas/testsuite/gas/aarch64/mapping4.d | 2 +- gas/testsuite/gas/aarch64/mapping_5.d | 1 + gas/testsuite/gas/aarch64/mapping_6.d | 1 + gas/testsuite/gas/aarch64/mops_invalid_2.d | 1 + gas/testsuite/gas/aarch64/movw_label.d | 1 + gas/testsuite/gas/aarch64/optional.d | 1 + gas/testsuite/gas/aarch64/pac_ab_key.d | 1 + gas/testsuite/gas/aarch64/pac_negate_ra_state.d | 1 + gas/testsuite/gas/aarch64/pr20364.d | 1 + gas/testsuite/gas/aarch64/pr27217.d | 1 + gas/testsuite/gas/aarch64/pr29519.d | 1 + gas/testsuite/gas/aarch64/programmer-friendly.d | 1 + gas/testsuite/gas/aarch64/reloc-data.d | 1 + gas/testsuite/gas/aarch64/reloc-dtprel_g0-ilp32.d | 1 + gas/testsuite/gas/aarch64/reloc-dtprel_g0.d | 1 + gas/testsuite/gas/aarch64/reloc-dtprel_g0_nc-ilp32.d | 1 + gas/testsuite/gas/aarch64/reloc-dtprel_g0_nc.d | 1 + gas/testsuite/gas/aarch64/reloc-dtprel_g1-ilp32.d | 1 + gas/testsuite/gas/aarch64/reloc-dtprel_g1.d | 1 + gas/testsuite/gas/aarch64/reloc-dtprel_g1_nc.d | 1 + gas/testsuite/gas/aarch64/reloc-dtprel_g2.d | 1 + gas/testsuite/gas/aarch64/reloc-dtprel_hi12-ilp32.d | 1 + gas/testsuite/gas/aarch64/reloc-dtprel_hi12.d | 1 + gas/testsuite/gas/aarch64/reloc-dtprel_lo12-1.d | 1 + gas/testsuite/gas/aarch64/reloc-dtprel_lo12-ilp32-1.d | 1 + gas/testsuite/gas/aarch64/reloc-dtprel_lo12-ldst16.d | 1 + gas/testsuite/gas/aarch64/reloc-dtprel_lo12-ldst32.d | 1 + gas/testsuite/gas/aarch64/reloc-dtprel_lo12-ldst64.d | 1 + gas/testsuite/gas/aarch64/reloc-dtprel_lo12-ldst8.d | 1 + gas/testsuite/gas/aarch64/reloc-dtprel_lo12_nc-ilp32.d | 1 + gas/testsuite/gas/aarch64/reloc-dtprel_lo12_nc-ldst16.d | 1 + gas/testsuite/gas/aarch64/reloc-dtprel_lo12_nc-ldst32.d | 1 + gas/testsuite/gas/aarch64/reloc-dtprel_lo12_nc-ldst64.d | 1 + gas/testsuite/gas/aarch64/reloc-dtprel_lo12_nc-ldst8.d | 1 + gas/testsuite/gas/aarch64/reloc-dtprel_lo12_nc.d | 1 + gas/testsuite/gas/aarch64/reloc-gotoff_g0_nc.d | 1 + gas/testsuite/gas/aarch64/reloc-gotoff_g1.d | 1 + gas/testsuite/gas/aarch64/reloc-gottprel_g0_nc.d | 1 + gas/testsuite/gas/aarch64/reloc-gottprel_g1.d | 1 + gas/testsuite/gas/aarch64/reloc-insn.d | 1 + gas/testsuite/gas/aarch64/reloc-prel_g0.d | 1 + gas/testsuite/gas/aarch64/reloc-prel_g0_nc.d | 1 + gas/testsuite/gas/aarch64/reloc-prel_g1.d | 1 + gas/testsuite/gas/aarch64/reloc-prel_g1_nc.d | 1 + gas/testsuite/gas/aarch64/reloc-prel_g2.d | 1 + gas/testsuite/gas/aarch64/reloc-prel_g2_nc.d | 1 + gas/testsuite/gas/aarch64/reloc-prel_g3.d | 1 + gas/testsuite/gas/aarch64/reloc-tlsdesc_off_g0_nc.d | 1 + gas/testsuite/gas/aarch64/reloc-tlsdesc_off_g1.d | 1 + gas/testsuite/gas/aarch64/reloc-tlsgd_g0_nc.d | 1 + gas/testsuite/gas/aarch64/reloc-tlsgd_g1.d | 1 + gas/testsuite/gas/aarch64/reloc-tlsldm-1.d | 1 + gas/testsuite/gas/aarch64/reloc-tlsldm-ilp32-1.d | 1 + gas/testsuite/gas/aarch64/reloc-tlsldm-page-1.d | 1 + gas/testsuite/gas/aarch64/reloc-tlsldm-page-ilp32-1.d | 1 + gas/testsuite/gas/aarch64/reloc-tlsldm_lo12_nc-1.d | 1 + gas/testsuite/gas/aarch64/reloc-tlsldm_lo12_nc-ilp32-1.d | 1 + gas/testsuite/gas/aarch64/reloc-tprel_lo12-ldst16-ilp32.d | 1 + gas/testsuite/gas/aarch64/reloc-tprel_lo12-ldst16.d | 1 + gas/testsuite/gas/aarch64/reloc-tprel_lo12-ldst32-ilp32.d | 1 + gas/testsuite/gas/aarch64/reloc-tprel_lo12-ldst32.d | 1 + gas/testsuite/gas/aarch64/reloc-tprel_lo12-ldst64-ilp32.d | 1 + gas/testsuite/gas/aarch64/reloc-tprel_lo12-ldst64.d | 1 + gas/testsuite/gas/aarch64/reloc-tprel_lo12-ldst8-ilp32.d | 1 + gas/testsuite/gas/aarch64/reloc-tprel_lo12-ldst8.d | 1 + gas/testsuite/gas/aarch64/reloc-tprel_lo12_nc-ldst16-ilp32.d | 1 + gas/testsuite/gas/aarch64/reloc-tprel_lo12_nc-ldst16.d | 1 + gas/testsuite/gas/aarch64/reloc-tprel_lo12_nc-ldst32-ilp32.d | 1 + gas/testsuite/gas/aarch64/reloc-tprel_lo12_nc-ldst32.d | 1 + gas/testsuite/gas/aarch64/reloc-tprel_lo12_nc-ldst64-ilp32.d | 1 + gas/testsuite/gas/aarch64/reloc-tprel_lo12_nc-ldst64.d | 1 + gas/testsuite/gas/aarch64/reloc-tprel_lo12_nc-ldst8-ilp32.d | 1 + gas/testsuite/gas/aarch64/reloc-tprel_lo12_nc-ldst8.d | 1 + gas/testsuite/gas/aarch64/sve-movprfx_1.d | 1 + gas/testsuite/gas/aarch64/sve-movprfx_10.d | 1 + gas/testsuite/gas/aarch64/sve-movprfx_11.d | 1 + gas/testsuite/gas/aarch64/sve-movprfx_12.d | 1 + gas/testsuite/gas/aarch64/sve-movprfx_13.d | 1 + gas/testsuite/gas/aarch64/sve-movprfx_14.d | 1 + gas/testsuite/gas/aarch64/sve-movprfx_15.d | 1 + gas/testsuite/gas/aarch64/sve-movprfx_16.d | 1 + gas/testsuite/gas/aarch64/sve-movprfx_17.d | 1 + gas/testsuite/gas/aarch64/sve-movprfx_18.d | 1 + gas/testsuite/gas/aarch64/sve-movprfx_19.d | 1 + gas/testsuite/gas/aarch64/sve-movprfx_2.d | 1 + gas/testsuite/gas/aarch64/sve-movprfx_20.d | 1 + gas/testsuite/gas/aarch64/sve-movprfx_21.d | 1 + gas/testsuite/gas/aarch64/sve-movprfx_22.d | 1 + gas/testsuite/gas/aarch64/sve-movprfx_23.d | 1 + gas/testsuite/gas/aarch64/sve-movprfx_24.d | 1 + gas/testsuite/gas/aarch64/sve-movprfx_25.d | 1 + gas/testsuite/gas/aarch64/sve-movprfx_26.d | 1 + gas/testsuite/gas/aarch64/sve-movprfx_27.d | 1 + gas/testsuite/gas/aarch64/sve-movprfx_28.d | 1 + gas/testsuite/gas/aarch64/sve-movprfx_3.d | 1 + gas/testsuite/gas/aarch64/sve-movprfx_4.d | 1 + gas/testsuite/gas/aarch64/sve-movprfx_5.d | 1 + gas/testsuite/gas/aarch64/sve-movprfx_6.d | 1 + gas/testsuite/gas/aarch64/sve-movprfx_7.d | 1 + gas/testsuite/gas/aarch64/sve-movprfx_8.d | 1 + gas/testsuite/gas/aarch64/sve-movprfx_9.d | 1 + gas/testsuite/gas/aarch64/symbol-variant_pcs-1.d | 1 + gas/testsuite/gas/aarch64/symbol-variant_pcs-2.d | 1 + gas/testsuite/gas/aarch64/symbol-variant_pcs-3.d | 1 + gas/testsuite/gas/aarch64/system.d | 1 + gas/testsuite/gas/aarch64/tail_padding.d | 1 + gas/testsuite/gas/aarch64/tbz_1.d | 1 + gas/testsuite/gas/aarch64/tls-desc.d | 1 + gas/testsuite/gas/aarch64/tls.d | 1 + 127 files changed, 127 insertions(+), 7 deletions(-) diff --git a/binutils/testsuite/binutils-all/objcopy.exp b/binutils/testsuite/binutils-all/objcopy.exp index de6f3aaaef2..40d18a0dc92 100644 --- a/binutils/testsuite/binutils-all/objcopy.exp +++ b/binutils/testsuite/binutils-all/objcopy.exp @@ -1413,6 +1413,7 @@ proc objcopy_test_without_global_symbol { } { # The AArch64 and ARM targets preserve mapping symbols # in object files, so they will fail this test. setup_xfail aarch64*-*-* arm*-*-* +clear_xfail aarch64*-*-pe* aarch64*-*-mingw* objcopy_test_without_global_symbol diff --git a/gas/testsuite/gas/aarch64/adr_1.d b/gas/testsuite/gas/aarch64/adr_1.d index 4b5cc56144b..09ac6abe2a6 100644 --- a/gas/testsuite/gas/aarch64/adr_1.d +++ b/gas/testsuite/gas/aarch64/adr_1.d @@ -1,5 +1,6 @@ #as: -mabi=lp64 #objdump: -dr +#notarget: *-*-pe* *-*-mingw* .*: file format .* diff --git a/gas/testsuite/gas/aarch64/advsimd-mov-bad.d b/gas/testsuite/gas/aarch64/advsimd-mov-bad.d index 6ca98873ac2..02ac2a12715 100644 --- a/gas/testsuite/gas/aarch64/advsimd-mov-bad.d +++ b/gas/testsuite/gas/aarch64/advsimd-mov-bad.d @@ -1,5 +1,6 @@ #source: advsimd-mov-bad.s #readelf: -s --wide +#notarget: *-*-pe* *-*-mingw* Symbol table '.symtab' contains 6 entries: +Num:.* diff --git a/gas/testsuite/gas/aarch64/b_1.d b/gas/testsuite/gas/aarch64/b_1.d index 4815decb0c6..6268a8f9aec 100644 --- a/gas/testsuite/gas/aarch64/b_1.d +++ b/gas/testsuite/gas/aarch64/b_1.d @@ -1,4 +1,5 @@ #objdump: -dr +#notarget: *-*-pe* *-*-mingw* .*: file format .* diff --git a/gas/testsuite/gas/aarch64/beq_1.d b/gas/testsuite/gas/aarch64/beq_1.d index 525a17e75e5..4571e39e608 100644 --- a/gas/testsuite/gas/aarch64/beq_1.d +++ b/gas/testsuite/gas/aarch64/beq_1.d @@ -1,4 +1,5 @@ #objdump: -dr +#notarget: *-*-pe* *-*-mingw* .*: file format .* diff --git a/gas/testsuite/gas/aarch64/bfloat16-directive-be.d b/gas/testsuite/gas/aarch64/bfloat16-directive-be.d index 132d04e44fa..fad1c832f4d 100644 --- a/gas/testsuite/gas/aarch64/bfloat16-directive-be.d +++ b/gas/testsuite/gas/aarch64/bfloat16-directive-be.d @@ -2,6 +2,7 @@ # source: bfloat16-directive.s # as: -mbig-endian # objdump: -s --section=.data +#notarget: *-*-pe* *-*-mingw* .*: +file format .* diff --git a/gas/testsuite/gas/aarch64/bfloat16-directive-le.d b/gas/testsuite/gas/aarch64/bfloat16-directive-le.d index f22d610d84b..af96f4ad7b5 100644 --- a/gas/testsuite/gas/aarch64/bfloat16-directive-le.d +++ b/gas/testsuite/gas/aarch64/bfloat16-directive-le.d @@ -2,6 +2,7 @@ # source: bfloat16-directive.s # as: -mlittle-endian # objdump: -s --section=.data +#notarget: *-*-pe* *-*-mingw* .*: +file format .* diff --git a/gas/testsuite/gas/aarch64/codealign.d b/gas/testsuite/gas/aarch64/codealign.d index a44c1073e09..a3db195fc0e 100644 --- a/gas/testsuite/gas/aarch64/codealign.d +++ b/gas/testsuite/gas/aarch64/codealign.d @@ -2,7 +2,7 @@ #as: --generate-missing-build-notes=no # Minimum code alignment should be set. # This test is only valid on ELF based ports. -#notarget: *-*-pe *-*-wince +#notarget: *-*-pe* *-*-wince *-*-mingw* .*: +file format.*aarch64.* diff --git a/gas/testsuite/gas/aarch64/codealign_1.d b/gas/testsuite/gas/aarch64/codealign_1.d index c4dc5270195..2b9819f174c 100644 --- a/gas/testsuite/gas/aarch64/codealign_1.d +++ b/gas/testsuite/gas/aarch64/codealign_1.d @@ -1,6 +1,7 @@ #objdump: --section-headers #as: --generate-missing-build-notes=no # Minimum code alignment should be set. +#notarget: *-*-pe* *-*-mingw* .*: +file format.*aarch64.* diff --git a/gas/testsuite/gas/aarch64/dwarf.d b/gas/testsuite/gas/aarch64/dwarf.d index 9e4184ab6e8..98c202e3613 100644 --- a/gas/testsuite/gas/aarch64/dwarf.d +++ b/gas/testsuite/gas/aarch64/dwarf.d @@ -1,5 +1,6 @@ #readelf: -s --debug-dump=aranges #as: -g --generate-missing-build-notes=no +#notarget: *-*-pe* *-*-mingw* Symbol table '.symtab' contains 11 entries: Num:[ ]+Value[ ]+Size[ ]+Type[ ]+Bind[ ]+Vis[ ]+Ndx[ ]+Name diff --git a/gas/testsuite/gas/aarch64/ilp32-basic.d b/gas/testsuite/gas/aarch64/ilp32-basic.d index 876f28cba28..9adb6876ac0 100644 --- a/gas/testsuite/gas/aarch64/ilp32-basic.d +++ b/gas/testsuite/gas/aarch64/ilp32-basic.d @@ -1,5 +1,6 @@ #as: -mabi=ilp32 #objdump: -dr +#notarget: *-*-pe* *-*-mingw* .*: file format elf32-.*aarch64 diff --git a/gas/testsuite/gas/aarch64/int-insns.d b/gas/testsuite/gas/aarch64/int-insns.d index 76f937c4fbf..9fe31551bde 100644 --- a/gas/testsuite/gas/aarch64/int-insns.d +++ b/gas/testsuite/gas/aarch64/int-insns.d @@ -1,5 +1,6 @@ #objdump: -dr #as: -march=armv8-a -mabi=lp64 +#notarget: *-*-pe* *-*-mingw* .*: file format .* diff --git a/gas/testsuite/gas/aarch64/ldr_1.d b/gas/testsuite/gas/aarch64/ldr_1.d index f68b01d6838..399edd63672 100644 --- a/gas/testsuite/gas/aarch64/ldr_1.d +++ b/gas/testsuite/gas/aarch64/ldr_1.d @@ -1,4 +1,5 @@ #objdump: -dr +#notarget: *-*-pe* *-*-mingw* .*: file format .* diff --git a/gas/testsuite/gas/aarch64/litpool.d b/gas/testsuite/gas/aarch64/litpool.d index 56044248b2e..5cd302ad9f3 100644 --- a/gas/testsuite/gas/aarch64/litpool.d +++ b/gas/testsuite/gas/aarch64/litpool.d @@ -1,7 +1,7 @@ #objdump: -d #name: AArch64 Bignums in Literal Pool (PR 16688) # This test is only valid on ELF based ports. -#notarget: *-*-*coff *-*-pe *-*-wince *-*-*aout* *-*-netbsd *-*-riscix* +#notarget: *-*-*coff *-*-pe* *-*-wince *-*-*aout* *-*-netbsd *-*-riscix* *-*-mingw* .*: +file format.*aarch64.* diff --git a/gas/testsuite/gas/aarch64/mapmisc.d b/gas/testsuite/gas/aarch64/mapmisc.d index 1f2df6ea0d7..1a2ea4456f7 100644 --- a/gas/testsuite/gas/aarch64/mapmisc.d +++ b/gas/testsuite/gas/aarch64/mapmisc.d @@ -3,7 +3,7 @@ #name: AArch64 Mapping Symbols for miscellaneous directives #source: mapmisc.s # This test is only valid on ELF based ports. -#notarget: *-*-*coff *-*-pe *-*-wince *-*-*aout* *-*-netbsd *-*-riscix* +#notarget: *-*-*coff *-*-pe* *-*-wince *-*-*aout* *-*-netbsd *-*-riscix* *-*-mingw* .*: +file format .*aarch64.* diff --git a/gas/testsuite/gas/aarch64/mapping.d b/gas/testsuite/gas/aarch64/mapping.d index d23c0fdbd54..c0255bf7d15 100644 --- a/gas/testsuite/gas/aarch64/mapping.d +++ b/gas/testsuite/gas/aarch64/mapping.d @@ -2,7 +2,7 @@ #as: --generate-missing-build-notes=no #name: AArch64 Mapping Symbols # This test is only valid on ELF based ports. -#notarget: *-*-pe *-*-wince +#notarget: *-*-pe* *-*-wince *-*-mingw* # Test the generation of AArch64 ELF Mapping Symbols diff --git a/gas/testsuite/gas/aarch64/mapping2.d b/gas/testsuite/gas/aarch64/mapping2.d index 4ad1a079aa5..927a5cc80a2 100644 --- a/gas/testsuite/gas/aarch64/mapping2.d +++ b/gas/testsuite/gas/aarch64/mapping2.d @@ -2,7 +2,7 @@ #as: --generate-missing-build-notes=no #name: AArch64 Mapping Symbols Test 2 # This test is only valid on ELF based ports. -#notarget: *-*-pe *-*-wince +#notarget: *-*-pe* *-*-wince *-*-mingw* .*: +file format.*aarch64.* diff --git a/gas/testsuite/gas/aarch64/mapping3.d b/gas/testsuite/gas/aarch64/mapping3.d index ece7de1cb7b..7805cadebd5 100644 --- a/gas/testsuite/gas/aarch64/mapping3.d +++ b/gas/testsuite/gas/aarch64/mapping3.d @@ -2,7 +2,7 @@ #as: --generate-missing-build-notes=no #name: AArch64 Mapping Symbols Test 3 # This test is only valid on ELF based ports. -#notarget: *-*-*coff *-*-pe *-*-wince *-*-*aout* *-*-netbsd *-*-riscix* +#notarget: *-*-*coff *-*-pe* *-*-wince *-*-*aout* *-*-netbsd *-*-riscix* *-*-mingw* .*: +file format.*aarch64.* diff --git a/gas/testsuite/gas/aarch64/mapping4.d b/gas/testsuite/gas/aarch64/mapping4.d index d0495dafed4..324eea04b41 100644 --- a/gas/testsuite/gas/aarch64/mapping4.d +++ b/gas/testsuite/gas/aarch64/mapping4.d @@ -2,7 +2,7 @@ #as: --generate-missing-build-notes=no #name: AArch64 Mapping Symbols Test 4 # This test is only valid on ELF based ports. -#notarget: *-*-*coff *-*-pe *-*-wince *-*-*aout* *-*-netbsd *-*-riscix* +#notarget: *-*-*coff *-*-pe* *-*-wince *-*-*aout* *-*-netbsd *-*-riscix* *-*-mingw* .*: +file format.*aarch64.* diff --git a/gas/testsuite/gas/aarch64/mapping_5.d b/gas/testsuite/gas/aarch64/mapping_5.d index 04263484ae6..1c2ae76aef3 100644 --- a/gas/testsuite/gas/aarch64/mapping_5.d +++ b/gas/testsuite/gas/aarch64/mapping_5.d @@ -1,6 +1,7 @@ #objdump: --syms --special-syms #as: --generate-missing-build-notes=no #name: AArch64 Mapping Symbols Test 5 +#notarget: *-*-pe* *-*-mingw* .*: +file format.*aarch64.* diff --git a/gas/testsuite/gas/aarch64/mapping_6.d b/gas/testsuite/gas/aarch64/mapping_6.d index 96d0ed663c9..9da44901a65 100644 --- a/gas/testsuite/gas/aarch64/mapping_6.d +++ b/gas/testsuite/gas/aarch64/mapping_6.d @@ -1,6 +1,7 @@ #objdump: --syms --special-syms #as: --generate-missing-build-notes=no #name: AArch64 Mapping Symbols Test 6 +#notarget: *-*-pe* *-*-mingw* .*: +file format.*aarch64.* diff --git a/gas/testsuite/gas/aarch64/mops_invalid_2.d b/gas/testsuite/gas/aarch64/mops_invalid_2.d index f5e7228f6e7..8acdc8edfb4 100644 --- a/gas/testsuite/gas/aarch64/mops_invalid_2.d +++ b/gas/testsuite/gas/aarch64/mops_invalid_2.d @@ -1,5 +1,6 @@ # warning_output: mops_invalid_2.l # objdump: -dr -M notes +#notarget: *-*-pe* *-*-mingw* .* diff --git a/gas/testsuite/gas/aarch64/movw_label.d b/gas/testsuite/gas/aarch64/movw_label.d index 8466570b33c..cff34433756 100644 --- a/gas/testsuite/gas/aarch64/movw_label.d +++ b/gas/testsuite/gas/aarch64/movw_label.d @@ -1,5 +1,6 @@ #objdump: -dr #name: movw relocation symbol name +#notarget: *-*-pe* *-*-mingw* .*: file format .* diff --git a/gas/testsuite/gas/aarch64/optional.d b/gas/testsuite/gas/aarch64/optional.d index b2a123d55a2..c9971bbaf97 100644 --- a/gas/testsuite/gas/aarch64/optional.d +++ b/gas/testsuite/gas/aarch64/optional.d @@ -1,4 +1,5 @@ #objdump: -dr +#notarget: *-*-pe* *-*-mingw* .*: file format .* diff --git a/gas/testsuite/gas/aarch64/pac_ab_key.d b/gas/testsuite/gas/aarch64/pac_ab_key.d index 5e7496a86bd..4a31fbfe631 100644 --- a/gas/testsuite/gas/aarch64/pac_ab_key.d +++ b/gas/testsuite/gas/aarch64/pac_ab_key.d @@ -2,6 +2,7 @@ # Test assembling a file with functions signed by two different pointer # authentication keys. It must interpret .cfi_b_key_frame properly and emit a # 'B' character into the correct CIE's augmentation string. +#notarget: *-*-pe* *-*-mingw* .+: file .+ diff --git a/gas/testsuite/gas/aarch64/pac_negate_ra_state.d b/gas/testsuite/gas/aarch64/pac_negate_ra_state.d index 62717767608..3ca21522734 100644 --- a/gas/testsuite/gas/aarch64/pac_negate_ra_state.d +++ b/gas/testsuite/gas/aarch64/pac_negate_ra_state.d @@ -1,4 +1,5 @@ #objdump: --dwarf=frames +#notarget: *-*-pe* *-*-mingw* .+: file .+ diff --git a/gas/testsuite/gas/aarch64/pr20364.d b/gas/testsuite/gas/aarch64/pr20364.d index babcff10304..1b77a9d4ceb 100644 --- a/gas/testsuite/gas/aarch64/pr20364.d +++ b/gas/testsuite/gas/aarch64/pr20364.d @@ -1,6 +1,7 @@ # Check that ".align , " does not set the mapping state to DATA, causing unnecessary frag generation. #name: PR20364 #objdump: -d +#notarget: *-*-pe* *-*-mingw* .*: file format .* diff --git a/gas/testsuite/gas/aarch64/pr27217.d b/gas/testsuite/gas/aarch64/pr27217.d index 3397dfa2481..24434824323 100644 --- a/gas/testsuite/gas/aarch64/pr27217.d +++ b/gas/testsuite/gas/aarch64/pr27217.d @@ -1,6 +1,7 @@ # Check that expressions that generate relocations work when the symbol is a constant. #name: PR27217 #objdump: -rd +#notarget: *-*-pe* *-*-mingw* .*: file format .* diff --git a/gas/testsuite/gas/aarch64/pr29519.d b/gas/testsuite/gas/aarch64/pr29519.d index 4bfea09bee0..c70e05f95ae 100644 --- a/gas/testsuite/gas/aarch64/pr29519.d +++ b/gas/testsuite/gas/aarch64/pr29519.d @@ -1,6 +1,7 @@ # Check that AArch64 specific pseudo-ops can be separated by the ; line separator character. #name: PR29519 (Separating AArch64 pseudo-ops with ;) #objdump: -rd +#notarget: *-*-pe* *-*-mingw* .*: file format .* diff --git a/gas/testsuite/gas/aarch64/programmer-friendly.d b/gas/testsuite/gas/aarch64/programmer-friendly.d index 8fa6aa70dbf..20ace20f707 100644 --- a/gas/testsuite/gas/aarch64/programmer-friendly.d +++ b/gas/testsuite/gas/aarch64/programmer-friendly.d @@ -1,5 +1,6 @@ #as: -mabi=lp64 #objdump: -dr +#notarget: *-*-pe* *-*-mingw* .*: file format .* diff --git a/gas/testsuite/gas/aarch64/reloc-data.d b/gas/testsuite/gas/aarch64/reloc-data.d index 7bcf300f78c..9976585e40e 100644 --- a/gas/testsuite/gas/aarch64/reloc-data.d +++ b/gas/testsuite/gas/aarch64/reloc-data.d @@ -1,6 +1,7 @@ #as: -mabi=lp64 #objdump: -dr #skip: aarch64_be-*-* +#notarget: *-*-pe* *-*-mingw* .*: file format .* diff --git a/gas/testsuite/gas/aarch64/reloc-dtprel_g0-ilp32.d b/gas/testsuite/gas/aarch64/reloc-dtprel_g0-ilp32.d index 44b66762673..7a4e5c45c0e 100644 --- a/gas/testsuite/gas/aarch64/reloc-dtprel_g0-ilp32.d +++ b/gas/testsuite/gas/aarch64/reloc-dtprel_g0-ilp32.d @@ -1,5 +1,6 @@ #as: -mabi=ilp32 #objdump: -dr +#notarget: *-*-pe* *-*-mingw* .*: file format .* diff --git a/gas/testsuite/gas/aarch64/reloc-dtprel_g0.d b/gas/testsuite/gas/aarch64/reloc-dtprel_g0.d index 6a6ec00a56d..fc25265732e 100644 --- a/gas/testsuite/gas/aarch64/reloc-dtprel_g0.d +++ b/gas/testsuite/gas/aarch64/reloc-dtprel_g0.d @@ -1,4 +1,5 @@ #objdump: -dr +#notarget: *-*-pe* *-*-mingw* .*: file format .* diff --git a/gas/testsuite/gas/aarch64/reloc-dtprel_g0_nc-ilp32.d b/gas/testsuite/gas/aarch64/reloc-dtprel_g0_nc-ilp32.d index c319e3d8dc8..7a944be92df 100644 --- a/gas/testsuite/gas/aarch64/reloc-dtprel_g0_nc-ilp32.d +++ b/gas/testsuite/gas/aarch64/reloc-dtprel_g0_nc-ilp32.d @@ -1,5 +1,6 @@ #as: -mabi=ilp32 #objdump: -dr +#notarget: *-*-pe* *-*-mingw* .*: file format .* diff --git a/gas/testsuite/gas/aarch64/reloc-dtprel_g0_nc.d b/gas/testsuite/gas/aarch64/reloc-dtprel_g0_nc.d index 5d7f6cf3d5d..4da4da340fb 100644 --- a/gas/testsuite/gas/aarch64/reloc-dtprel_g0_nc.d +++ b/gas/testsuite/gas/aarch64/reloc-dtprel_g0_nc.d @@ -1,4 +1,5 @@ #objdump: -dr +#notarget: *-*-pe* *-*-mingw* .*: file format .* diff --git a/gas/testsuite/gas/aarch64/reloc-dtprel_g1-ilp32.d b/gas/testsuite/gas/aarch64/reloc-dtprel_g1-ilp32.d index 6a918065dfd..0b87c2f691c 100644 --- a/gas/testsuite/gas/aarch64/reloc-dtprel_g1-ilp32.d +++ b/gas/testsuite/gas/aarch64/reloc-dtprel_g1-ilp32.d @@ -1,5 +1,6 @@ #as: -mabi=ilp32 #objdump: -dr +#notarget: *-*-pe* *-*-mingw* .*: file format .* diff --git a/gas/testsuite/gas/aarch64/reloc-dtprel_g1.d b/gas/testsuite/gas/aarch64/reloc-dtprel_g1.d index c5995f5541a..abee16b1d21 100644 --- a/gas/testsuite/gas/aarch64/reloc-dtprel_g1.d +++ b/gas/testsuite/gas/aarch64/reloc-dtprel_g1.d @@ -1,4 +1,5 @@ #objdump: -dr +#notarget: *-*-pe* *-*-mingw* .*: file format .* diff --git a/gas/testsuite/gas/aarch64/reloc-dtprel_g1_nc.d b/gas/testsuite/gas/aarch64/reloc-dtprel_g1_nc.d index 739eaa313d6..0782c758f70 100644 --- a/gas/testsuite/gas/aarch64/reloc-dtprel_g1_nc.d +++ b/gas/testsuite/gas/aarch64/reloc-dtprel_g1_nc.d @@ -1,5 +1,6 @@ #as: -mabi=lp64 #objdump: -dr +#notarget: *-*-pe* *-*-mingw* .*: file format .* diff --git a/gas/testsuite/gas/aarch64/reloc-dtprel_g2.d b/gas/testsuite/gas/aarch64/reloc-dtprel_g2.d index 00d278b53d1..6a9d4e6de6b 100644 --- a/gas/testsuite/gas/aarch64/reloc-dtprel_g2.d +++ b/gas/testsuite/gas/aarch64/reloc-dtprel_g2.d @@ -1,5 +1,6 @@ #as: -mabi=lp64 #objdump: -dr +#notarget: *-*-pe* *-*-mingw* .*: file format .* diff --git a/gas/testsuite/gas/aarch64/reloc-dtprel_hi12-ilp32.d b/gas/testsuite/gas/aarch64/reloc-dtprel_hi12-ilp32.d index 0235aeb9729..76479531db2 100644 --- a/gas/testsuite/gas/aarch64/reloc-dtprel_hi12-ilp32.d +++ b/gas/testsuite/gas/aarch64/reloc-dtprel_hi12-ilp32.d @@ -1,5 +1,6 @@ #as: -mabi=ilp32 #objdump: -dr +#notarget: *-*-pe* *-*-mingw* .*: file format .* diff --git a/gas/testsuite/gas/aarch64/reloc-dtprel_hi12.d b/gas/testsuite/gas/aarch64/reloc-dtprel_hi12.d index f904850a9ed..f29c94c0863 100644 --- a/gas/testsuite/gas/aarch64/reloc-dtprel_hi12.d +++ b/gas/testsuite/gas/aarch64/reloc-dtprel_hi12.d @@ -1,4 +1,5 @@ #objdump: -dr +#notarget: *-*-pe* *-*-mingw* .*: file format .* diff --git a/gas/testsuite/gas/aarch64/reloc-dtprel_lo12-1.d b/gas/testsuite/gas/aarch64/reloc-dtprel_lo12-1.d index ee1f504baf5..61465b4087c 100644 --- a/gas/testsuite/gas/aarch64/reloc-dtprel_lo12-1.d +++ b/gas/testsuite/gas/aarch64/reloc-dtprel_lo12-1.d @@ -1,4 +1,5 @@ #objdump: -dr +#notarget: *-*-pe* *-*-mingw* .*: file format .* diff --git a/gas/testsuite/gas/aarch64/reloc-dtprel_lo12-ilp32-1.d b/gas/testsuite/gas/aarch64/reloc-dtprel_lo12-ilp32-1.d index a44f9d23066..403bdbad126 100644 --- a/gas/testsuite/gas/aarch64/reloc-dtprel_lo12-ilp32-1.d +++ b/gas/testsuite/gas/aarch64/reloc-dtprel_lo12-ilp32-1.d @@ -1,5 +1,6 @@ #as: -mabi=ilp32 #objdump: -dr +#notarget: *-*-pe* *-*-mingw* .*: file format .* diff --git a/gas/testsuite/gas/aarch64/reloc-dtprel_lo12-ldst16.d b/gas/testsuite/gas/aarch64/reloc-dtprel_lo12-ldst16.d index cd793bb8b12..b4bcdb3691d 100644 --- a/gas/testsuite/gas/aarch64/reloc-dtprel_lo12-ldst16.d +++ b/gas/testsuite/gas/aarch64/reloc-dtprel_lo12-ldst16.d @@ -1,5 +1,6 @@ #as: -mabi=lp64 #objdump: -dr +#notarget: *-*-pe* *-*-mingw* .*: file format .* diff --git a/gas/testsuite/gas/aarch64/reloc-dtprel_lo12-ldst32.d b/gas/testsuite/gas/aarch64/reloc-dtprel_lo12-ldst32.d index ab5d869baaa..1db57093e42 100644 --- a/gas/testsuite/gas/aarch64/reloc-dtprel_lo12-ldst32.d +++ b/gas/testsuite/gas/aarch64/reloc-dtprel_lo12-ldst32.d @@ -1,5 +1,6 @@ #as: -mabi=lp64 #objdump: -dr +#notarget: *-*-pe* *-*-mingw* .*: file format .* diff --git a/gas/testsuite/gas/aarch64/reloc-dtprel_lo12-ldst64.d b/gas/testsuite/gas/aarch64/reloc-dtprel_lo12-ldst64.d index fa46d7b1f56..14032a05570 100644 --- a/gas/testsuite/gas/aarch64/reloc-dtprel_lo12-ldst64.d +++ b/gas/testsuite/gas/aarch64/reloc-dtprel_lo12-ldst64.d @@ -1,5 +1,6 @@ #as: -mabi=lp64 #objdump: -dr +#notarget: *-*-pe* *-*-mingw* .*: file format .* diff --git a/gas/testsuite/gas/aarch64/reloc-dtprel_lo12-ldst8.d b/gas/testsuite/gas/aarch64/reloc-dtprel_lo12-ldst8.d index f754449701e..f397cbc9b62 100644 --- a/gas/testsuite/gas/aarch64/reloc-dtprel_lo12-ldst8.d +++ b/gas/testsuite/gas/aarch64/reloc-dtprel_lo12-ldst8.d @@ -1,5 +1,6 @@ #as: -mabi=lp64 #objdump: -dr +#notarget: *-*-pe* *-*-mingw* .*: file format .* diff --git a/gas/testsuite/gas/aarch64/reloc-dtprel_lo12_nc-ilp32.d b/gas/testsuite/gas/aarch64/reloc-dtprel_lo12_nc-ilp32.d index b232b2f51fb..30501411c71 100644 --- a/gas/testsuite/gas/aarch64/reloc-dtprel_lo12_nc-ilp32.d +++ b/gas/testsuite/gas/aarch64/reloc-dtprel_lo12_nc-ilp32.d @@ -1,5 +1,6 @@ #as: -mabi=ilp32 #objdump: -dr +#notarget: *-*-pe* *-*-mingw* .*: file format .* diff --git a/gas/testsuite/gas/aarch64/reloc-dtprel_lo12_nc-ldst16.d b/gas/testsuite/gas/aarch64/reloc-dtprel_lo12_nc-ldst16.d index 62ff7ab420e..5c457849bae 100644 --- a/gas/testsuite/gas/aarch64/reloc-dtprel_lo12_nc-ldst16.d +++ b/gas/testsuite/gas/aarch64/reloc-dtprel_lo12_nc-ldst16.d @@ -1,5 +1,6 @@ #as: -mabi=lp64 #objdump: -dr +#notarget: *-*-pe* *-*-mingw* .*: file format .* diff --git a/gas/testsuite/gas/aarch64/reloc-dtprel_lo12_nc-ldst32.d b/gas/testsuite/gas/aarch64/reloc-dtprel_lo12_nc-ldst32.d index 78074f5edb2..a2600f5e7f4 100644 --- a/gas/testsuite/gas/aarch64/reloc-dtprel_lo12_nc-ldst32.d +++ b/gas/testsuite/gas/aarch64/reloc-dtprel_lo12_nc-ldst32.d @@ -1,5 +1,6 @@ #as: -mabi=lp64 #objdump: -dr +#notarget: *-*-pe* *-*-mingw* .*: file format .* diff --git a/gas/testsuite/gas/aarch64/reloc-dtprel_lo12_nc-ldst64.d b/gas/testsuite/gas/aarch64/reloc-dtprel_lo12_nc-ldst64.d index 8eac3bd99d5..dcdca5e3fba 100644 --- a/gas/testsuite/gas/aarch64/reloc-dtprel_lo12_nc-ldst64.d +++ b/gas/testsuite/gas/aarch64/reloc-dtprel_lo12_nc-ldst64.d @@ -1,5 +1,6 @@ #as: -mabi=lp64 #objdump: -dr +#notarget: *-*-pe* *-*-mingw* .*: file format .* diff --git a/gas/testsuite/gas/aarch64/reloc-dtprel_lo12_nc-ldst8.d b/gas/testsuite/gas/aarch64/reloc-dtprel_lo12_nc-ldst8.d index 02695047fc9..4609ce91836 100644 --- a/gas/testsuite/gas/aarch64/reloc-dtprel_lo12_nc-ldst8.d +++ b/gas/testsuite/gas/aarch64/reloc-dtprel_lo12_nc-ldst8.d @@ -1,5 +1,6 @@ #as: -mabi=lp64 #objdump: -dr +#notarget: *-*-pe* *-*-mingw* .*: file format .* diff --git a/gas/testsuite/gas/aarch64/reloc-dtprel_lo12_nc.d b/gas/testsuite/gas/aarch64/reloc-dtprel_lo12_nc.d index 0a231f9f062..7f04bb82059 100644 --- a/gas/testsuite/gas/aarch64/reloc-dtprel_lo12_nc.d +++ b/gas/testsuite/gas/aarch64/reloc-dtprel_lo12_nc.d @@ -1,4 +1,5 @@ #objdump: -dr +#notarget: *-*-pe* *-*-mingw* .*: file format .* diff --git a/gas/testsuite/gas/aarch64/reloc-gotoff_g0_nc.d b/gas/testsuite/gas/aarch64/reloc-gotoff_g0_nc.d index 858898a0748..4ceb95986ba 100644 --- a/gas/testsuite/gas/aarch64/reloc-gotoff_g0_nc.d +++ b/gas/testsuite/gas/aarch64/reloc-gotoff_g0_nc.d @@ -1,5 +1,6 @@ #as: -mabi=lp64 #objdump: -dr +#notarget: *-*-pe* *-*-mingw* .*: file format .* diff --git a/gas/testsuite/gas/aarch64/reloc-gotoff_g1.d b/gas/testsuite/gas/aarch64/reloc-gotoff_g1.d index e6a68f06e47..2599b85a84c 100644 --- a/gas/testsuite/gas/aarch64/reloc-gotoff_g1.d +++ b/gas/testsuite/gas/aarch64/reloc-gotoff_g1.d @@ -1,5 +1,6 @@ #as: -mabi=lp64 #objdump: -dr +#notarget: *-*-pe* *-*-mingw* .*: file format .* diff --git a/gas/testsuite/gas/aarch64/reloc-gottprel_g0_nc.d b/gas/testsuite/gas/aarch64/reloc-gottprel_g0_nc.d index bae4e37b27d..46005c976db 100644 --- a/gas/testsuite/gas/aarch64/reloc-gottprel_g0_nc.d +++ b/gas/testsuite/gas/aarch64/reloc-gottprel_g0_nc.d @@ -1,5 +1,6 @@ #as: -mabi=lp64 #objdump: -dr +#notarget: *-*-pe* *-*-mingw* .*: file format .* diff --git a/gas/testsuite/gas/aarch64/reloc-gottprel_g1.d b/gas/testsuite/gas/aarch64/reloc-gottprel_g1.d index 3061c2f5007..770c4e0a932 100644 --- a/gas/testsuite/gas/aarch64/reloc-gottprel_g1.d +++ b/gas/testsuite/gas/aarch64/reloc-gottprel_g1.d @@ -1,5 +1,6 @@ #as: -mabi=lp64 #objdump: -dr +#notarget: *-*-pe* *-*-mingw* .*: file format .* diff --git a/gas/testsuite/gas/aarch64/reloc-insn.d b/gas/testsuite/gas/aarch64/reloc-insn.d index 0f3b4143d96..4626b6f57a3 100644 --- a/gas/testsuite/gas/aarch64/reloc-insn.d +++ b/gas/testsuite/gas/aarch64/reloc-insn.d @@ -1,5 +1,6 @@ #as: -mabi=lp64 #objdump: -dr +#notarget: *-*-pe* *-*-mingw* .*: file format .* diff --git a/gas/testsuite/gas/aarch64/reloc-prel_g0.d b/gas/testsuite/gas/aarch64/reloc-prel_g0.d index c5a7685b381..79667fed4c7 100644 --- a/gas/testsuite/gas/aarch64/reloc-prel_g0.d +++ b/gas/testsuite/gas/aarch64/reloc-prel_g0.d @@ -1,4 +1,5 @@ #objdump: -dr +#notarget: *-*-pe* *-*-mingw* .*: file format .* diff --git a/gas/testsuite/gas/aarch64/reloc-prel_g0_nc.d b/gas/testsuite/gas/aarch64/reloc-prel_g0_nc.d index f7a29194be2..7fd954cb0ac 100644 --- a/gas/testsuite/gas/aarch64/reloc-prel_g0_nc.d +++ b/gas/testsuite/gas/aarch64/reloc-prel_g0_nc.d @@ -1,4 +1,5 @@ #objdump: -dr +#notarget: *-*-pe* *-*-mingw* .*: file format .* diff --git a/gas/testsuite/gas/aarch64/reloc-prel_g1.d b/gas/testsuite/gas/aarch64/reloc-prel_g1.d index 63c91e0d7e8..4295fcab0fe 100644 --- a/gas/testsuite/gas/aarch64/reloc-prel_g1.d +++ b/gas/testsuite/gas/aarch64/reloc-prel_g1.d @@ -1,4 +1,5 @@ #objdump: -dr +#notarget: *-*-pe* *-*-mingw* .*: file format .* diff --git a/gas/testsuite/gas/aarch64/reloc-prel_g1_nc.d b/gas/testsuite/gas/aarch64/reloc-prel_g1_nc.d index 4c0a1d943cc..438d9b3b7d2 100644 --- a/gas/testsuite/gas/aarch64/reloc-prel_g1_nc.d +++ b/gas/testsuite/gas/aarch64/reloc-prel_g1_nc.d @@ -1,4 +1,5 @@ #objdump: -dr +#notarget: *-*-pe* *-*-mingw* .*: file format .* diff --git a/gas/testsuite/gas/aarch64/reloc-prel_g2.d b/gas/testsuite/gas/aarch64/reloc-prel_g2.d index 80d18704a57..e4c6cd21cc2 100644 --- a/gas/testsuite/gas/aarch64/reloc-prel_g2.d +++ b/gas/testsuite/gas/aarch64/reloc-prel_g2.d @@ -1,4 +1,5 @@ #objdump: -dr +#notarget: *-*-pe* *-*-mingw* .*: file format .* diff --git a/gas/testsuite/gas/aarch64/reloc-prel_g2_nc.d b/gas/testsuite/gas/aarch64/reloc-prel_g2_nc.d index dc3c58e44fd..8aeab101059 100644 --- a/gas/testsuite/gas/aarch64/reloc-prel_g2_nc.d +++ b/gas/testsuite/gas/aarch64/reloc-prel_g2_nc.d @@ -1,4 +1,5 @@ #objdump: -dr +#notarget: *-*-pe* *-*-mingw* .*: file format .* diff --git a/gas/testsuite/gas/aarch64/reloc-prel_g3.d b/gas/testsuite/gas/aarch64/reloc-prel_g3.d index 4a476ab954f..2b540f154a3 100644 --- a/gas/testsuite/gas/aarch64/reloc-prel_g3.d +++ b/gas/testsuite/gas/aarch64/reloc-prel_g3.d @@ -1,4 +1,5 @@ #objdump: -dr +#notarget: *-*-pe* *-*-mingw* .*: file format .* diff --git a/gas/testsuite/gas/aarch64/reloc-tlsdesc_off_g0_nc.d b/gas/testsuite/gas/aarch64/reloc-tlsdesc_off_g0_nc.d index 606c801d053..35a061489ca 100644 --- a/gas/testsuite/gas/aarch64/reloc-tlsdesc_off_g0_nc.d +++ b/gas/testsuite/gas/aarch64/reloc-tlsdesc_off_g0_nc.d @@ -1,5 +1,6 @@ #as: -mabi=lp64 #objdump: -dr +#notarget: *-*-pe* *-*-mingw* .*: file format .* diff --git a/gas/testsuite/gas/aarch64/reloc-tlsdesc_off_g1.d b/gas/testsuite/gas/aarch64/reloc-tlsdesc_off_g1.d index a046e787306..abe6811e1d4 100644 --- a/gas/testsuite/gas/aarch64/reloc-tlsdesc_off_g1.d +++ b/gas/testsuite/gas/aarch64/reloc-tlsdesc_off_g1.d @@ -1,5 +1,6 @@ #as: -mabi=lp64 #objdump: -dr +#notarget: *-*-pe* *-*-mingw* .*: file format .* Disassembly of section \.text: diff --git a/gas/testsuite/gas/aarch64/reloc-tlsgd_g0_nc.d b/gas/testsuite/gas/aarch64/reloc-tlsgd_g0_nc.d index f25913f4170..9749716983f 100644 --- a/gas/testsuite/gas/aarch64/reloc-tlsgd_g0_nc.d +++ b/gas/testsuite/gas/aarch64/reloc-tlsgd_g0_nc.d @@ -1,5 +1,6 @@ #as: -mabi=lp64 #objdump: -dr +#notarget: *-*-pe* *-*-mingw* .*: file format .* diff --git a/gas/testsuite/gas/aarch64/reloc-tlsgd_g1.d b/gas/testsuite/gas/aarch64/reloc-tlsgd_g1.d index 52a37aed62b..13864591246 100644 --- a/gas/testsuite/gas/aarch64/reloc-tlsgd_g1.d +++ b/gas/testsuite/gas/aarch64/reloc-tlsgd_g1.d @@ -1,5 +1,6 @@ #as: -mabi=lp64 #objdump: -dr +#notarget: *-*-pe* *-*-mingw* .*: file format .* diff --git a/gas/testsuite/gas/aarch64/reloc-tlsldm-1.d b/gas/testsuite/gas/aarch64/reloc-tlsldm-1.d index 6b7132fb07e..7034e299a4b 100644 --- a/gas/testsuite/gas/aarch64/reloc-tlsldm-1.d +++ b/gas/testsuite/gas/aarch64/reloc-tlsldm-1.d @@ -1,4 +1,5 @@ #objdump: -dr +#notarget: *-*-pe* *-*-mingw* .*: file format .* diff --git a/gas/testsuite/gas/aarch64/reloc-tlsldm-ilp32-1.d b/gas/testsuite/gas/aarch64/reloc-tlsldm-ilp32-1.d index 28686cd04ef..a7417eca554 100644 --- a/gas/testsuite/gas/aarch64/reloc-tlsldm-ilp32-1.d +++ b/gas/testsuite/gas/aarch64/reloc-tlsldm-ilp32-1.d @@ -1,5 +1,6 @@ #as: -mabi=ilp32 #objdump: -dr +#notarget: *-*-pe* *-*-mingw* .*: file format .* diff --git a/gas/testsuite/gas/aarch64/reloc-tlsldm-page-1.d b/gas/testsuite/gas/aarch64/reloc-tlsldm-page-1.d index f4faa4bddeb..472f8c33efd 100644 --- a/gas/testsuite/gas/aarch64/reloc-tlsldm-page-1.d +++ b/gas/testsuite/gas/aarch64/reloc-tlsldm-page-1.d @@ -1,4 +1,5 @@ #objdump: -dr +#notarget: *-*-pe* *-*-mingw* .*: file format .* diff --git a/gas/testsuite/gas/aarch64/reloc-tlsldm-page-ilp32-1.d b/gas/testsuite/gas/aarch64/reloc-tlsldm-page-ilp32-1.d index e2c81efdfd5..b3f47b180cc 100644 --- a/gas/testsuite/gas/aarch64/reloc-tlsldm-page-ilp32-1.d +++ b/gas/testsuite/gas/aarch64/reloc-tlsldm-page-ilp32-1.d @@ -1,5 +1,6 @@ #as: -mabi=ilp32 #objdump: -dr +#notarget: *-*-pe* *-*-mingw* .*: file format .* diff --git a/gas/testsuite/gas/aarch64/reloc-tlsldm_lo12_nc-1.d b/gas/testsuite/gas/aarch64/reloc-tlsldm_lo12_nc-1.d index c7d1f6b0448..24ea06cb479 100644 --- a/gas/testsuite/gas/aarch64/reloc-tlsldm_lo12_nc-1.d +++ b/gas/testsuite/gas/aarch64/reloc-tlsldm_lo12_nc-1.d @@ -1,4 +1,5 @@ #objdump: -dr +#notarget: *-*-pe* *-*-mingw* .*: file format .* diff --git a/gas/testsuite/gas/aarch64/reloc-tlsldm_lo12_nc-ilp32-1.d b/gas/testsuite/gas/aarch64/reloc-tlsldm_lo12_nc-ilp32-1.d index f068cfb85bb..c7a96501804 100644 --- a/gas/testsuite/gas/aarch64/reloc-tlsldm_lo12_nc-ilp32-1.d +++ b/gas/testsuite/gas/aarch64/reloc-tlsldm_lo12_nc-ilp32-1.d @@ -1,5 +1,6 @@ #as: -mabi=ilp32 #objdump: -dr +#notarget: *-*-pe* *-*-mingw* .*: file format .* diff --git a/gas/testsuite/gas/aarch64/reloc-tprel_lo12-ldst16-ilp32.d b/gas/testsuite/gas/aarch64/reloc-tprel_lo12-ldst16-ilp32.d index 11ff08f8b17..1f537fb3bc8 100644 --- a/gas/testsuite/gas/aarch64/reloc-tprel_lo12-ldst16-ilp32.d +++ b/gas/testsuite/gas/aarch64/reloc-tprel_lo12-ldst16-ilp32.d @@ -1,6 +1,7 @@ #as: -mabi=ilp32 #source: reloc-tprel_lo12-ldst16.s #objdump: -dr +#notarget: *-*-pe* *-*-mingw* .*: file format .* diff --git a/gas/testsuite/gas/aarch64/reloc-tprel_lo12-ldst16.d b/gas/testsuite/gas/aarch64/reloc-tprel_lo12-ldst16.d index 66c17a444d6..06774a3b573 100644 --- a/gas/testsuite/gas/aarch64/reloc-tprel_lo12-ldst16.d +++ b/gas/testsuite/gas/aarch64/reloc-tprel_lo12-ldst16.d @@ -1,5 +1,6 @@ #as: -mabi=lp64 #objdump: -dr +#notarget: *-*-pe* *-*-mingw* .*: file format .* diff --git a/gas/testsuite/gas/aarch64/reloc-tprel_lo12-ldst32-ilp32.d b/gas/testsuite/gas/aarch64/reloc-tprel_lo12-ldst32-ilp32.d index 79cffb51bbd..b1d45bf2c26 100644 --- a/gas/testsuite/gas/aarch64/reloc-tprel_lo12-ldst32-ilp32.d +++ b/gas/testsuite/gas/aarch64/reloc-tprel_lo12-ldst32-ilp32.d @@ -1,6 +1,7 @@ #as: -mabi=ilp32 #source: reloc-tprel_lo12-ldst32.s #objdump: -dr +#notarget: *-*-pe* *-*-mingw* .*: file format .* diff --git a/gas/testsuite/gas/aarch64/reloc-tprel_lo12-ldst32.d b/gas/testsuite/gas/aarch64/reloc-tprel_lo12-ldst32.d index 17b2de3ee48..c2caaca6f34 100644 --- a/gas/testsuite/gas/aarch64/reloc-tprel_lo12-ldst32.d +++ b/gas/testsuite/gas/aarch64/reloc-tprel_lo12-ldst32.d @@ -1,5 +1,6 @@ #as: -mabi=lp64 #objdump: -dr +#notarget: *-*-pe* *-*-mingw* .*: file format .* diff --git a/gas/testsuite/gas/aarch64/reloc-tprel_lo12-ldst64-ilp32.d b/gas/testsuite/gas/aarch64/reloc-tprel_lo12-ldst64-ilp32.d index 25c6f2353e3..1969595c7ea 100644 --- a/gas/testsuite/gas/aarch64/reloc-tprel_lo12-ldst64-ilp32.d +++ b/gas/testsuite/gas/aarch64/reloc-tprel_lo12-ldst64-ilp32.d @@ -1,6 +1,7 @@ #as: -mabi=ilp32 #source: reloc-tprel_lo12-ldst64.s #objdump: -dr +#notarget: *-*-pe* *-*-mingw* .*: file format .* diff --git a/gas/testsuite/gas/aarch64/reloc-tprel_lo12-ldst64.d b/gas/testsuite/gas/aarch64/reloc-tprel_lo12-ldst64.d index 73277b38c56..30eb3fa2138 100644 --- a/gas/testsuite/gas/aarch64/reloc-tprel_lo12-ldst64.d +++ b/gas/testsuite/gas/aarch64/reloc-tprel_lo12-ldst64.d @@ -1,5 +1,6 @@ #as: -mabi=lp64 #objdump: -dr +#notarget: *-*-pe* *-*-mingw* .*: file format .* diff --git a/gas/testsuite/gas/aarch64/reloc-tprel_lo12-ldst8-ilp32.d b/gas/testsuite/gas/aarch64/reloc-tprel_lo12-ldst8-ilp32.d index 5b6f2330e6a..6a428c49f0b 100644 --- a/gas/testsuite/gas/aarch64/reloc-tprel_lo12-ldst8-ilp32.d +++ b/gas/testsuite/gas/aarch64/reloc-tprel_lo12-ldst8-ilp32.d @@ -1,6 +1,7 @@ #as: -mabi=ilp32 #source: reloc-tprel_lo12-ldst8.s #objdump: -dr +#notarget: *-*-pe* *-*-mingw* .*: file format .* diff --git a/gas/testsuite/gas/aarch64/reloc-tprel_lo12-ldst8.d b/gas/testsuite/gas/aarch64/reloc-tprel_lo12-ldst8.d index 781997473ce..3e5cb6796ef 100644 --- a/gas/testsuite/gas/aarch64/reloc-tprel_lo12-ldst8.d +++ b/gas/testsuite/gas/aarch64/reloc-tprel_lo12-ldst8.d @@ -1,5 +1,6 @@ #as: -mabi=lp64 #objdump: -dr +#notarget: *-*-pe* *-*-mingw* .*: file format .* diff --git a/gas/testsuite/gas/aarch64/reloc-tprel_lo12_nc-ldst16-ilp32.d b/gas/testsuite/gas/aarch64/reloc-tprel_lo12_nc-ldst16-ilp32.d index 896c6ca8447..28757a8a3c9 100644 --- a/gas/testsuite/gas/aarch64/reloc-tprel_lo12_nc-ldst16-ilp32.d +++ b/gas/testsuite/gas/aarch64/reloc-tprel_lo12_nc-ldst16-ilp32.d @@ -1,6 +1,7 @@ #as: -mabi=ilp32 #source: reloc-tprel_lo12_nc-ldst16.s #objdump: -dr +#notarget: *-*-pe* *-*-mingw* .*: file format .* diff --git a/gas/testsuite/gas/aarch64/reloc-tprel_lo12_nc-ldst16.d b/gas/testsuite/gas/aarch64/reloc-tprel_lo12_nc-ldst16.d index 06aa052b949..3ccc1b432a5 100644 --- a/gas/testsuite/gas/aarch64/reloc-tprel_lo12_nc-ldst16.d +++ b/gas/testsuite/gas/aarch64/reloc-tprel_lo12_nc-ldst16.d @@ -1,5 +1,6 @@ #as: -mabi=lp64 #objdump: -dr +#notarget: *-*-pe* *-*-mingw* .*: file format .* diff --git a/gas/testsuite/gas/aarch64/reloc-tprel_lo12_nc-ldst32-ilp32.d b/gas/testsuite/gas/aarch64/reloc-tprel_lo12_nc-ldst32-ilp32.d index 7b8f6bf495f..98ac7660969 100644 --- a/gas/testsuite/gas/aarch64/reloc-tprel_lo12_nc-ldst32-ilp32.d +++ b/gas/testsuite/gas/aarch64/reloc-tprel_lo12_nc-ldst32-ilp32.d @@ -1,6 +1,7 @@ #as: -mabi=ilp32 #source: reloc-tprel_lo12_nc-ldst32.s #objdump: -dr +#notarget: *-*-pe* *-*-mingw* .*: file format .* diff --git a/gas/testsuite/gas/aarch64/reloc-tprel_lo12_nc-ldst32.d b/gas/testsuite/gas/aarch64/reloc-tprel_lo12_nc-ldst32.d index c83044b3ac0..ae9432ee952 100644 --- a/gas/testsuite/gas/aarch64/reloc-tprel_lo12_nc-ldst32.d +++ b/gas/testsuite/gas/aarch64/reloc-tprel_lo12_nc-ldst32.d @@ -1,5 +1,6 @@ #as: -mabi=lp64 #objdump: -dr +#notarget: *-*-pe* *-*-mingw* .*: file format .* diff --git a/gas/testsuite/gas/aarch64/reloc-tprel_lo12_nc-ldst64-ilp32.d b/gas/testsuite/gas/aarch64/reloc-tprel_lo12_nc-ldst64-ilp32.d index f8827505a63..34d6832583a 100644 --- a/gas/testsuite/gas/aarch64/reloc-tprel_lo12_nc-ldst64-ilp32.d +++ b/gas/testsuite/gas/aarch64/reloc-tprel_lo12_nc-ldst64-ilp32.d @@ -1,6 +1,7 @@ #as: -mabi=ilp32 #source: reloc-tprel_lo12_nc-ldst64.s #objdump: -dr +#notarget: *-*-pe* *-*-mingw* .*: file format .* diff --git a/gas/testsuite/gas/aarch64/reloc-tprel_lo12_nc-ldst64.d b/gas/testsuite/gas/aarch64/reloc-tprel_lo12_nc-ldst64.d index 8e16b09d97c..6b176f9e287 100644 --- a/gas/testsuite/gas/aarch64/reloc-tprel_lo12_nc-ldst64.d +++ b/gas/testsuite/gas/aarch64/reloc-tprel_lo12_nc-ldst64.d @@ -1,5 +1,6 @@ #as: -mabi=lp64 #objdump: -dr +#notarget: *-*-pe* *-*-mingw* .*: file format .* diff --git a/gas/testsuite/gas/aarch64/reloc-tprel_lo12_nc-ldst8-ilp32.d b/gas/testsuite/gas/aarch64/reloc-tprel_lo12_nc-ldst8-ilp32.d index 14e3345b7d3..8464db797ca 100644 --- a/gas/testsuite/gas/aarch64/reloc-tprel_lo12_nc-ldst8-ilp32.d +++ b/gas/testsuite/gas/aarch64/reloc-tprel_lo12_nc-ldst8-ilp32.d @@ -1,6 +1,7 @@ #as: -mabi=ilp32 #source: reloc-tprel_lo12_nc-ldst8.s #objdump: -dr +#notarget: *-*-pe* *-*-mingw* .*: file format .* diff --git a/gas/testsuite/gas/aarch64/reloc-tprel_lo12_nc-ldst8.d b/gas/testsuite/gas/aarch64/reloc-tprel_lo12_nc-ldst8.d index a87429f85d5..76a1e76ccd4 100644 --- a/gas/testsuite/gas/aarch64/reloc-tprel_lo12_nc-ldst8.d +++ b/gas/testsuite/gas/aarch64/reloc-tprel_lo12_nc-ldst8.d @@ -1,5 +1,6 @@ #as: -mabi=lp64 #objdump: -dr +#notarget: *-*-pe* *-*-mingw* .*: file format .* diff --git a/gas/testsuite/gas/aarch64/sve-movprfx_1.d b/gas/testsuite/gas/aarch64/sve-movprfx_1.d index 13035db1d82..5ead32cfe4e 100644 --- a/gas/testsuite/gas/aarch64/sve-movprfx_1.d +++ b/gas/testsuite/gas/aarch64/sve-movprfx_1.d @@ -1,6 +1,7 @@ #source: sve-movprfx_1.s #as: -march=armv8-a+sve -I$srcdir/$subdir --generate-missing-build-notes=no #objdump: -Dr -M notes +#notarget: *-*-pe* *-*-mingw* .* file format .* diff --git a/gas/testsuite/gas/aarch64/sve-movprfx_10.d b/gas/testsuite/gas/aarch64/sve-movprfx_10.d index 575632f9a40..1dcbbacbaf3 100644 --- a/gas/testsuite/gas/aarch64/sve-movprfx_10.d +++ b/gas/testsuite/gas/aarch64/sve-movprfx_10.d @@ -2,6 +2,7 @@ #warning_output: sve-movprfx_10.l #as: -march=armv8-a+sve -I$srcdir/$subdir --generate-missing-build-notes=no #objdump: -Dr -M notes +#notarget: *-*-pe* *-*-mingw* .* file format .* diff --git a/gas/testsuite/gas/aarch64/sve-movprfx_11.d b/gas/testsuite/gas/aarch64/sve-movprfx_11.d index 71bab8abd55..90ba848b615 100644 --- a/gas/testsuite/gas/aarch64/sve-movprfx_11.d +++ b/gas/testsuite/gas/aarch64/sve-movprfx_11.d @@ -1,6 +1,7 @@ #source: sve-movprfx_11.s #as: -march=armv8-a+sve -I$srcdir/$subdir --generate-missing-build-notes=no #objdump: -Dr -M notes +#notarget: *-*-pe* *-*-mingw* .* file format .* diff --git a/gas/testsuite/gas/aarch64/sve-movprfx_12.d b/gas/testsuite/gas/aarch64/sve-movprfx_12.d index dde3a926965..4698567b6d3 100644 --- a/gas/testsuite/gas/aarch64/sve-movprfx_12.d +++ b/gas/testsuite/gas/aarch64/sve-movprfx_12.d @@ -1,6 +1,7 @@ #source: sve-movprfx_12.s #as: -march=armv8-a+sve -I$srcdir/$subdir --generate-missing-build-notes=no #objdump: -Dr -M notes +#notarget: *-*-pe* *-*-mingw* .* file format .* diff --git a/gas/testsuite/gas/aarch64/sve-movprfx_13.d b/gas/testsuite/gas/aarch64/sve-movprfx_13.d index 46b0bb0a18f..4a12efe5008 100644 --- a/gas/testsuite/gas/aarch64/sve-movprfx_13.d +++ b/gas/testsuite/gas/aarch64/sve-movprfx_13.d @@ -2,6 +2,7 @@ #warning_output: sve-movprfx_13.l #as: -march=armv8-a+sve -I$srcdir/$subdir --generate-missing-build-notes=no #objdump: -Dr -M notes +#notarget: *-*-pe* *-*-mingw* .* file format .* diff --git a/gas/testsuite/gas/aarch64/sve-movprfx_14.d b/gas/testsuite/gas/aarch64/sve-movprfx_14.d index 1024339a7c2..9d2a8f0c29c 100644 --- a/gas/testsuite/gas/aarch64/sve-movprfx_14.d +++ b/gas/testsuite/gas/aarch64/sve-movprfx_14.d @@ -2,6 +2,7 @@ #warning_output: sve-movprfx_14.l #as: -march=armv8-a+sve -I$srcdir/$subdir --generate-missing-build-notes=no #objdump: -Dr -M notes +#notarget: *-*-pe* *-*-mingw* .* file format .* diff --git a/gas/testsuite/gas/aarch64/sve-movprfx_15.d b/gas/testsuite/gas/aarch64/sve-movprfx_15.d index 436e59f8269..9e77f04fed7 100644 --- a/gas/testsuite/gas/aarch64/sve-movprfx_15.d +++ b/gas/testsuite/gas/aarch64/sve-movprfx_15.d @@ -2,6 +2,7 @@ #warning_output: sve-movprfx_15.l #as: -march=armv8-a+sve -I$srcdir/$subdir --generate-missing-build-notes=no #objdump: -Dr -M notes +#notarget: *-*-pe* *-*-mingw* .* file format .* diff --git a/gas/testsuite/gas/aarch64/sve-movprfx_16.d b/gas/testsuite/gas/aarch64/sve-movprfx_16.d index a6550b78990..e998e62afe5 100644 --- a/gas/testsuite/gas/aarch64/sve-movprfx_16.d +++ b/gas/testsuite/gas/aarch64/sve-movprfx_16.d @@ -1,6 +1,7 @@ #source: sve-movprfx_16.s #as: -march=armv8-a+sve -I$srcdir/$subdir --generate-missing-build-notes=no #objdump: -Dr -M notes +#notarget: *-*-pe* *-*-mingw* .* file format .* diff --git a/gas/testsuite/gas/aarch64/sve-movprfx_17.d b/gas/testsuite/gas/aarch64/sve-movprfx_17.d index ce96138339d..a873bfdfaa2 100644 --- a/gas/testsuite/gas/aarch64/sve-movprfx_17.d +++ b/gas/testsuite/gas/aarch64/sve-movprfx_17.d @@ -2,6 +2,7 @@ #warning_output: sve-movprfx_17.l #as: -march=armv8-a+sve -I$srcdir/$subdir --generate-missing-build-notes=no #objdump: -Dr -M notes +#notarget: *-*-pe* *-*-mingw* .* file format .* diff --git a/gas/testsuite/gas/aarch64/sve-movprfx_18.d b/gas/testsuite/gas/aarch64/sve-movprfx_18.d index e158131331b..2868d8ed8ef 100644 --- a/gas/testsuite/gas/aarch64/sve-movprfx_18.d +++ b/gas/testsuite/gas/aarch64/sve-movprfx_18.d @@ -2,6 +2,7 @@ #warning_output: sve-movprfx_18.l #as: -march=armv8-a+sve -I$srcdir/$subdir --generate-missing-build-notes=no #objdump: -Dr -M notes +#notarget: *-*-pe* *-*-mingw* .* file format .* diff --git a/gas/testsuite/gas/aarch64/sve-movprfx_19.d b/gas/testsuite/gas/aarch64/sve-movprfx_19.d index bf3b0631ef0..996316ad599 100644 --- a/gas/testsuite/gas/aarch64/sve-movprfx_19.d +++ b/gas/testsuite/gas/aarch64/sve-movprfx_19.d @@ -1,6 +1,7 @@ #source: sve-movprfx_19.s #as: -march=armv8-a+sve -I$srcdir/$subdir --generate-missing-build-notes=no #objdump: -Dr -M notes +#notarget: *-*-pe* *-*-mingw* .* file format .* diff --git a/gas/testsuite/gas/aarch64/sve-movprfx_2.d b/gas/testsuite/gas/aarch64/sve-movprfx_2.d index 905c1f4c120..81965828201 100644 --- a/gas/testsuite/gas/aarch64/sve-movprfx_2.d +++ b/gas/testsuite/gas/aarch64/sve-movprfx_2.d @@ -2,6 +2,7 @@ #warning_output: sve-movprfx_2.l #as: -march=armv8-a+sve -I$srcdir/$subdir --generate-missing-build-notes=no #objdump: -Dr -M notes +#notarget: *-*-pe* *-*-mingw* .* file format .* diff --git a/gas/testsuite/gas/aarch64/sve-movprfx_20.d b/gas/testsuite/gas/aarch64/sve-movprfx_20.d index 80621d64adb..002879d6f33 100644 --- a/gas/testsuite/gas/aarch64/sve-movprfx_20.d +++ b/gas/testsuite/gas/aarch64/sve-movprfx_20.d @@ -2,6 +2,7 @@ #warning_output: sve-movprfx_20.l #as: -march=armv8-a+sve -I$srcdir/$subdir --generate-missing-build-notes=no #objdump: -Dr -M notes +#notarget: *-*-pe* *-*-mingw* .* file format .* diff --git a/gas/testsuite/gas/aarch64/sve-movprfx_21.d b/gas/testsuite/gas/aarch64/sve-movprfx_21.d index 20eb85b3377..2c1eeb998dd 100644 --- a/gas/testsuite/gas/aarch64/sve-movprfx_21.d +++ b/gas/testsuite/gas/aarch64/sve-movprfx_21.d @@ -1,6 +1,7 @@ #source: sve-movprfx_21.s #as: -march=armv8-a+sve -I$srcdir/$subdir --generate-missing-build-notes=no #objdump: -Dr -M notes +#notarget: *-*-pe* *-*-mingw* .* file format .* diff --git a/gas/testsuite/gas/aarch64/sve-movprfx_22.d b/gas/testsuite/gas/aarch64/sve-movprfx_22.d index de4d1a3693b..32c1f79a101 100644 --- a/gas/testsuite/gas/aarch64/sve-movprfx_22.d +++ b/gas/testsuite/gas/aarch64/sve-movprfx_22.d @@ -2,6 +2,7 @@ #warning_output: sve-movprfx_22.l #as: -march=armv8-a+sve -I$srcdir/$subdir --generate-missing-build-notes=no #objdump: -Dr -M notes +#notarget: *-*-pe* *-*-mingw* .* file format .* diff --git a/gas/testsuite/gas/aarch64/sve-movprfx_23.d b/gas/testsuite/gas/aarch64/sve-movprfx_23.d index e1c6c2c2cce..dac3a818408 100644 --- a/gas/testsuite/gas/aarch64/sve-movprfx_23.d +++ b/gas/testsuite/gas/aarch64/sve-movprfx_23.d @@ -2,6 +2,7 @@ #warning_output: sve-movprfx_23.l #as: -march=armv8-a+sve -I$srcdir/$subdir --generate-missing-build-notes=no #objdump: -Dr -M notes +#notarget: *-*-pe* *-*-mingw* .* file format .* diff --git a/gas/testsuite/gas/aarch64/sve-movprfx_24.d b/gas/testsuite/gas/aarch64/sve-movprfx_24.d index ff1bdbe7109..8459324a354 100644 --- a/gas/testsuite/gas/aarch64/sve-movprfx_24.d +++ b/gas/testsuite/gas/aarch64/sve-movprfx_24.d @@ -2,6 +2,7 @@ #warning_output: sve-movprfx_24.l #as: -march=armv8-a+sve -I$srcdir/$subdir --generate-missing-build-notes=no #objdump: -Dr -M notes +#notarget: *-*-pe* *-*-mingw* .* file format .* diff --git a/gas/testsuite/gas/aarch64/sve-movprfx_25.d b/gas/testsuite/gas/aarch64/sve-movprfx_25.d index 83a6500710c..02bcfd561a5 100644 --- a/gas/testsuite/gas/aarch64/sve-movprfx_25.d +++ b/gas/testsuite/gas/aarch64/sve-movprfx_25.d @@ -2,6 +2,7 @@ #warning_output: sve-movprfx_25.l #as: -march=armv8-a+sve -I$srcdir/$subdir --generate-missing-build-notes=no #objdump: -Dr -M notes +#notarget: *-*-pe* *-*-mingw* .* file format .* diff --git a/gas/testsuite/gas/aarch64/sve-movprfx_26.d b/gas/testsuite/gas/aarch64/sve-movprfx_26.d index f0830cc718b..9a5827759c5 100644 --- a/gas/testsuite/gas/aarch64/sve-movprfx_26.d +++ b/gas/testsuite/gas/aarch64/sve-movprfx_26.d @@ -2,6 +2,7 @@ #warning_output: sve-movprfx_26.l #as: -march=armv8-a+sve -I$srcdir/$subdir --generate-missing-build-notes=no #objdump: -Dr -M notes +#notarget: *-*-pe* *-*-mingw* .* file format .* diff --git a/gas/testsuite/gas/aarch64/sve-movprfx_27.d b/gas/testsuite/gas/aarch64/sve-movprfx_27.d index e71d1715b61..5e96bd328db 100644 --- a/gas/testsuite/gas/aarch64/sve-movprfx_27.d +++ b/gas/testsuite/gas/aarch64/sve-movprfx_27.d @@ -1,6 +1,7 @@ #source: sve-movprfx_27.s #as: -march=armv8-a+sve -I$srcdir/$subdir --generate-missing-build-notes=no #objdump: -Dr -M notes +#notarget: *-*-pe* *-*-mingw* .* file format .* diff --git a/gas/testsuite/gas/aarch64/sve-movprfx_28.d b/gas/testsuite/gas/aarch64/sve-movprfx_28.d index 808d07da892..3121b71ebec 100644 --- a/gas/testsuite/gas/aarch64/sve-movprfx_28.d +++ b/gas/testsuite/gas/aarch64/sve-movprfx_28.d @@ -2,6 +2,7 @@ #warning_output: sve-movprfx_28.l #as: -I$srcdir/$subdir --generate-missing-build-notes=no #objdump: -Dr -M notes +#notarget: *-*-pe* *-*-mingw* .* file format .* diff --git a/gas/testsuite/gas/aarch64/sve-movprfx_3.d b/gas/testsuite/gas/aarch64/sve-movprfx_3.d index 03909dbc62c..1aec576d130 100644 --- a/gas/testsuite/gas/aarch64/sve-movprfx_3.d +++ b/gas/testsuite/gas/aarch64/sve-movprfx_3.d @@ -2,6 +2,7 @@ #warning_output: sve-movprfx_3.l #as: -march=armv8-a+sve -I$srcdir/$subdir --generate-missing-build-notes=no #objdump: -Dr -M notes +#notarget: *-*-pe* *-*-mingw* .* file format .* diff --git a/gas/testsuite/gas/aarch64/sve-movprfx_4.d b/gas/testsuite/gas/aarch64/sve-movprfx_4.d index fd71a4bac28..a3dedae230d 100644 --- a/gas/testsuite/gas/aarch64/sve-movprfx_4.d +++ b/gas/testsuite/gas/aarch64/sve-movprfx_4.d @@ -2,6 +2,7 @@ #warning_output: sve-movprfx_4.l #as: -march=armv8-a+sve -I$srcdir/$subdir --generate-missing-build-notes=no #objdump: -Dr -M notes +#notarget: *-*-pe* *-*-mingw* .* file format .* diff --git a/gas/testsuite/gas/aarch64/sve-movprfx_5.d b/gas/testsuite/gas/aarch64/sve-movprfx_5.d index 511cf66c665..74a43dfd3e4 100644 --- a/gas/testsuite/gas/aarch64/sve-movprfx_5.d +++ b/gas/testsuite/gas/aarch64/sve-movprfx_5.d @@ -1,6 +1,7 @@ #source: sve-movprfx_5.s #as: -march=armv8-a+sve -I$srcdir/$subdir --generate-missing-build-notes=no #objdump: -Dr -M notes +#notarget: *-*-pe* *-*-mingw* .* file format .* diff --git a/gas/testsuite/gas/aarch64/sve-movprfx_6.d b/gas/testsuite/gas/aarch64/sve-movprfx_6.d index 4af626993aa..1ae23ed68b3 100644 --- a/gas/testsuite/gas/aarch64/sve-movprfx_6.d +++ b/gas/testsuite/gas/aarch64/sve-movprfx_6.d @@ -2,6 +2,7 @@ #warning_output: sve-movprfx_6.l #as: -march=armv8-a+sve -I$srcdir/$subdir --generate-missing-build-notes=no #objdump: -Dr -M notes +#notarget: *-*-pe* *-*-mingw* .* file format .* diff --git a/gas/testsuite/gas/aarch64/sve-movprfx_7.d b/gas/testsuite/gas/aarch64/sve-movprfx_7.d index 725a8a8604b..9be980436a4 100644 --- a/gas/testsuite/gas/aarch64/sve-movprfx_7.d +++ b/gas/testsuite/gas/aarch64/sve-movprfx_7.d @@ -2,6 +2,7 @@ #warning_output: sve-movprfx_7.l #as: -march=armv8-a+sve -I$srcdir/$subdir --generate-missing-build-notes=no #objdump: -Dr -M notes +#notarget: *-*-pe* *-*-mingw* .* file format .* diff --git a/gas/testsuite/gas/aarch64/sve-movprfx_8.d b/gas/testsuite/gas/aarch64/sve-movprfx_8.d index f853e218b93..33be771eddd 100644 --- a/gas/testsuite/gas/aarch64/sve-movprfx_8.d +++ b/gas/testsuite/gas/aarch64/sve-movprfx_8.d @@ -2,6 +2,7 @@ #warning_output: sve-movprfx_8.l #as: -march=armv8-a+sve -I$srcdir/$subdir --generate-missing-build-notes=no #objdump: -Dr -M notes +#notarget: *-*-pe* *-*-mingw* .* file format .* diff --git a/gas/testsuite/gas/aarch64/sve-movprfx_9.d b/gas/testsuite/gas/aarch64/sve-movprfx_9.d index 54a1733937b..34d85ba6d33 100644 --- a/gas/testsuite/gas/aarch64/sve-movprfx_9.d +++ b/gas/testsuite/gas/aarch64/sve-movprfx_9.d @@ -2,6 +2,7 @@ #warning_output: sve-movprfx_9.l #as: -march=armv8-a+sve -I$srcdir/$subdir --generate-missing-build-notes=no #objdump: -Dr -M notes +#notarget: *-*-pe* *-*-mingw* .* file format .* diff --git a/gas/testsuite/gas/aarch64/symbol-variant_pcs-1.d b/gas/testsuite/gas/aarch64/symbol-variant_pcs-1.d index ce99514b3da..85468aa0b0e 100644 --- a/gas/testsuite/gas/aarch64/symbol-variant_pcs-1.d +++ b/gas/testsuite/gas/aarch64/symbol-variant_pcs-1.d @@ -1,5 +1,6 @@ #objdump: -t #as: --generate-missing-build-notes=no +#notarget: *-*-pe* *-*-mingw* .*: file format .* diff --git a/gas/testsuite/gas/aarch64/symbol-variant_pcs-2.d b/gas/testsuite/gas/aarch64/symbol-variant_pcs-2.d index 5f46f27236d..001cf0da1e3 100644 --- a/gas/testsuite/gas/aarch64/symbol-variant_pcs-2.d +++ b/gas/testsuite/gas/aarch64/symbol-variant_pcs-2.d @@ -1,5 +1,6 @@ #objdump: -t #as: --generate-missing-build-notes=no +#notarget: *-*-pe* *-*-mingw* .*: file format .* diff --git a/gas/testsuite/gas/aarch64/symbol-variant_pcs-3.d b/gas/testsuite/gas/aarch64/symbol-variant_pcs-3.d index 8d05c1a6361..486a6c083b1 100644 --- a/gas/testsuite/gas/aarch64/symbol-variant_pcs-3.d +++ b/gas/testsuite/gas/aarch64/symbol-variant_pcs-3.d @@ -1,5 +1,6 @@ #objdump: -t #as: --generate-missing-build-notes=no +#notarget: *-*-pe* *-*-mingw* .*: file format .* diff --git a/gas/testsuite/gas/aarch64/system.d b/gas/testsuite/gas/aarch64/system.d index 93c84a72982..4c1d9ff16a9 100644 --- a/gas/testsuite/gas/aarch64/system.d +++ b/gas/testsuite/gas/aarch64/system.d @@ -1,4 +1,5 @@ #objdump: -dr +#notarget: *-*-pe* *-*-mingw* .*: file format .* diff --git a/gas/testsuite/gas/aarch64/tail_padding.d b/gas/testsuite/gas/aarch64/tail_padding.d index a816ac4a2de..5ef1e3a1c5e 100644 --- a/gas/testsuite/gas/aarch64/tail_padding.d +++ b/gas/testsuite/gas/aarch64/tail_padding.d @@ -1,6 +1,7 @@ #as: -mabi=lp64 #readelf: -S #name: AArch64 section tail padding +#notarget: *-*-pe* *-*-mingw* There are .* section headers, starting at offset .*: diff --git a/gas/testsuite/gas/aarch64/tbz_1.d b/gas/testsuite/gas/aarch64/tbz_1.d index 54b7dbab079..e7ca8db5466 100644 --- a/gas/testsuite/gas/aarch64/tbz_1.d +++ b/gas/testsuite/gas/aarch64/tbz_1.d @@ -1,4 +1,5 @@ #objdump: -dr +#notarget: *-*-pe* *-*-mingw* .*: file format .* diff --git a/gas/testsuite/gas/aarch64/tls-desc.d b/gas/testsuite/gas/aarch64/tls-desc.d index e393d455461..85d1f4b6a64 100644 --- a/gas/testsuite/gas/aarch64/tls-desc.d +++ b/gas/testsuite/gas/aarch64/tls-desc.d @@ -1,5 +1,6 @@ #as: -mabi=lp64 #objdump: -dr +#notarget: *-*-pe* *-*-mingw* .*: file format .* diff --git a/gas/testsuite/gas/aarch64/tls.d b/gas/testsuite/gas/aarch64/tls.d index dc18949bd0c..f8ed49725e5 100644 --- a/gas/testsuite/gas/aarch64/tls.d +++ b/gas/testsuite/gas/aarch64/tls.d @@ -1,4 +1,5 @@ #objdump: -dr +#notarget: *-*-pe* *-*-mingw* .*: file format .* From patchwork Fri Dec 30 02:40:51 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Mark Harmstone X-Patchwork-Id: 37550 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:4e01:0:0:0:0:0 with SMTP id p1csp2692113wrt; Thu, 29 Dec 2022 18:41:32 -0800 (PST) X-Google-Smtp-Source: AMrXdXutJE7esJPf4vjSOWl1/tEV/ckE1kbjwMPBVPOQ5XqUkDNaebwNIwWJGlQ8Y8zggpMQp7N1 X-Received: by 2002:a17:906:1c4e:b0:7c1:1c6:faea with SMTP id l14-20020a1709061c4e00b007c101c6faeamr35683571ejg.75.1672368092494; Thu, 29 Dec 2022 18:41:32 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1672368092; cv=none; d=google.com; s=arc-20160816; b=hzrH4LJWUQ2jMIbS87lsGzf8HOcyvextSmXGSwAzBhQitDxnmbvn+VjOyJ8H+YKaF/ LB4W30tKuJpXoBCe5oSrUsAkZYGRqzGDQbkvwj7mCiW368TG/qkoL8WNsWvK6WaPsNeA bikc+bC8Ir4F09hmsAmcYWHfInfX9xfo5vgFBqypPNGCXjlY783TU4XF3zv7C4RFZMaN QkCn07XdyctojyUMHZpjK3AHUusodvxyY9/zZDvP1ptxrSKCIZN97j4Uxrg8npunPiEr l6HdhXworqsXwlToJQelWk5lhE5hUxtOw9sA35ogeCbS9QEMTNyvcRvFbfQaf/9r0/95 5fcQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:list-subscribe:list-help:list-post:list-archive :list-unsubscribe:list-id:precedence:content-transfer-encoding :mime-version:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature:dmarc-filter:delivered-to; bh=K5G8BL+mKn2sWZ3DOX6YBwK/6VOTdGD8v/hUtsXp/Dg=; b=I+aimO0ACDTRdeS9Q1K15mMnE33TYThrwJrE/Xqcn2OOSIskkpWYEQelSrTRUCoRgu ZNAZOk/src+5Nwl3j7TWYtbvVg0zaeVlRTzgeygLlM8BhIi3e0viC1gvRVFpVpWOE7TP cr4FRSFdLj6VgPe6N7vdwBsFs+mMTDlAHQQetkW7p6XFgKAWcZzWS3gZk6++Jlwvzlfn 3MhhLu6tvdF6/UDtxJ+zj8z666Aad+wgnjAEDJlS+piX198OO59/AIb89QqTeJDrabtn oWKhr6HrUH1fW0fMFDhhmHfdY7VF4EGPePlLCZ7EccoKqa56TVmUCzDKxJWlHKRP1IjY QbLg== ARC-Authentication-Results: i=1; mx.google.com; dkim=fail header.i=@gmail.com header.s=20210112 header.b=Yv6wXW7t; spf=pass (google.com: domain of binutils-bounces+ouuuleilei=gmail.com@sourceware.org designates 8.43.85.97 as permitted sender) smtp.mailfrom="binutils-bounces+ouuuleilei=gmail.com@sourceware.org" Received: from sourceware.org (server2.sourceware.org. [8.43.85.97]) by mx.google.com with ESMTPS id xf1-20020a17090731c100b007c18b7a922dsi13991919ejb.469.2022.12.29.18.41.32 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 29 Dec 2022 18:41:32 -0800 (PST) Received-SPF: pass (google.com: domain of binutils-bounces+ouuuleilei=gmail.com@sourceware.org designates 8.43.85.97 as permitted sender) client-ip=8.43.85.97; Authentication-Results: mx.google.com; dkim=fail header.i=@gmail.com header.s=20210112 header.b=Yv6wXW7t; spf=pass (google.com: domain of binutils-bounces+ouuuleilei=gmail.com@sourceware.org designates 8.43.85.97 as permitted sender) smtp.mailfrom="binutils-bounces+ouuuleilei=gmail.com@sourceware.org" Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 43D69384E797 for ; Fri, 30 Dec 2022 02:41:14 +0000 (GMT) X-Original-To: binutils@sourceware.org Delivered-To: binutils@sourceware.org Received: from mail-wm1-x333.google.com (mail-wm1-x333.google.com [IPv6:2a00:1450:4864:20::333]) by sourceware.org (Postfix) with ESMTPS id 3704D3858C2F for ; Fri, 30 Dec 2022 02:41:02 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 3704D3858C2F Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=harmstone.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=gmail.com Received: by mail-wm1-x333.google.com with SMTP id c65-20020a1c3544000000b003cfffd00fc0so17638288wma.1 for ; Thu, 29 Dec 2022 18:41:02 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:sender:from:to:cc:subject:date :message-id:reply-to; bh=K5G8BL+mKn2sWZ3DOX6YBwK/6VOTdGD8v/hUtsXp/Dg=; b=Yv6wXW7t98KBzk/f1jm+XE020BEC3HOFG71BQHH5tF1b5nI3x8Z114ut6DaZD1mwp+ ToHdksUQtJ1p4KBWoSbvPZxvN7rQIL3Cwf1OgemJkv2gqD8/DqU68ZfjFH6PmuDkU8Zf yGzLHP3T75Ve6B+xozMNlqghiDwtkPV9meFAojgDq1nnE3vz3QgQ2vm9CZL1b7Z9caoO HZ3zHLv644VaPJr8uDbCh4AXGaT0jfLhxMzgXz61FqAjz1ZsRkSuZsYc5CWmd7rPEu6E JAcu/Kp2p1rJWLPF/zcF/6uIRJRbIzrKeL1/Vy9rcONKwNhw2FWG/mn8xgtCURg4ZHJP Z/2Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:sender:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=K5G8BL+mKn2sWZ3DOX6YBwK/6VOTdGD8v/hUtsXp/Dg=; b=LkRqmhSNcDNHIJ34GLrpdcIlQQbWQVMTamk8NF8NNx9s5XDxuJR+OC8w/EGlBidSk3 UkIfT/dBhwqRA5W/QYRE8rE5Qe5Hp9g7Zq4IC7y1zolNx623a5TpTnNz11x1R12ctS4q +T59KPE+vXFoM74/iC6FQVCVwkNp+1vOGn5YXP485hYG4IpN6auJ7A3iktqU3yBa9eZU nFX2FIfxLlAWNlfZXJ+4kEbqwjT82EEMipzC2jByjXWXQh0q/TW6EPhrbVKGS0dgotNz Z4aLvYB3U9N4edJd+/CSsR4tH4WE5UdGXnZNpNOfB3zx6iAihAI1xK0ZROBEDisMnY2j 6sIg== X-Gm-Message-State: AFqh2kpsXLuluZMCyf98FOrsQb27rpEKrbV0sZw5NcRoyo5oHtdByynD q3JkZXb+jfdTcTkEPojBfPY= X-Received: by 2002:a05:600c:295:b0:3d2:259f:9061 with SMTP id 21-20020a05600c029500b003d2259f9061mr26944198wmk.34.1672368061124; Thu, 29 Dec 2022 18:41:01 -0800 (PST) Received: from beren.harmstone.com ([2a02:8010:64ea:0:8eb8:7eff:fe53:9d5f]) by smtp.gmail.com with ESMTPSA id t17-20020a05600c199100b003d99da8d30asm3726287wmq.46.2022.12.29.18.41.00 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 29 Dec 2022 18:41:00 -0800 (PST) From: Mark Harmstone To: wej22007@outlook.com, zac.walker@linaro.org, tamar.christina@arm.com, binutils@sourceware.org Cc: Mark Harmstone Subject: [PATCH 4/8] Skip big-obj test for pe-aarch64 Date: Fri, 30 Dec 2022 02:40:51 +0000 Message-Id: <20221230024055.31841-4-mark@harmstone.com> X-Mailer: git-send-email 2.37.4 In-Reply-To: <20221230024055.31841-1-mark@harmstone.com> References: <20221230024055.31841-1-mark@harmstone.com> MIME-Version: 1.0 X-Spam-Status: No, score=-11.1 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_EF, FREEMAIL_FORGED_FROMDOMAIN, FREEMAIL_FROM, GIT_PATCH_0, HEADER_FROM_DIFFERENT_DOMAINS, KAM_NUMSUBJECT, RCVD_IN_DNSWL_NONE, 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 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: , 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?1753605045093087950?= X-GMAIL-MSGID: =?utf-8?q?1753605045093087950?= --- gas/testsuite/gas/pe/big-obj.d | 1 + 1 file changed, 1 insertion(+) diff --git a/gas/testsuite/gas/pe/big-obj.d b/gas/testsuite/gas/pe/big-obj.d index 27b351a7d60..ad44cd51310 100644 --- a/gas/testsuite/gas/pe/big-obj.d +++ b/gas/testsuite/gas/pe/big-obj.d @@ -1,6 +1,7 @@ #as: -mbig-obj #objdump: -h #name: PE big obj +#notarget: aarch64-* .*: *file format pe-bigobj-.* From patchwork Fri Dec 30 02:40:52 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Mark Harmstone X-Patchwork-Id: 37554 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:4e01:0:0:0:0:0 with SMTP id p1csp2693011wrt; Thu, 29 Dec 2022 18:45:09 -0800 (PST) X-Google-Smtp-Source: AMrXdXsPyRanFDvae2MQs50/ju+4RBWE+rN+YBFnKA0sZcZuvRqbLWWfAaiMQwBTm9e3z0ggaNU1 X-Received: by 2002:a50:9f09:0:b0:467:4df0:718c with SMTP id b9-20020a509f09000000b004674df0718cmr26341311edf.9.1672368309041; Thu, 29 Dec 2022 18:45:09 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1672368309; cv=none; d=google.com; s=arc-20160816; b=fVMxxMExJUMXfrit2EWG7qPxNBdekPaluQAJEn1xgG0Xg38zmP4Li9wnOdeHpILQ/Z SroIk+n1XdqnHl2OBSAUXe6D2lsi80hUV2gAkIMWwKnHDNv9wsRlkSqFUpb1611LibDG vveKx1gwvQLinaa7IUbXqKoGt3Ip8iGiCQumhl2r7xTP4a+UT7EyD2ZQRxpVdFk/L3uW guH7Nr3u/88i1nPcDLV3G5jyjedadx/MfqL/AuIGXkp2AP1iMvDbylkRSoYpV5laOk4I O6PL7aK6SEA8GP19hlY+vrIjUMZXuVOwa5zIyJ94JFQ2WNHLcS+peCE5Lo7neui+CgP5 fCoA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:list-subscribe:list-help:list-post:list-archive :list-unsubscribe:list-id:precedence:content-transfer-encoding :mime-version:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature:dmarc-filter:delivered-to; bh=YdlRpAUdRzd6bMh39/oECmdPL+NZ39stKtn2xPkxWyg=; b=DTwqWWCT5+xzKKX/UME8TrRNxHrkMcjCkQrl0dwCc9II/N1rEkmXNyHhw7/7drk5Uk CIF0s+lFzK9eEZR43Q6K069wPOak/Ax/k7g2JbAHWY3s+vwjB3duy9xJ9VgomMSYSZ/T WgLJmnfPqUsW9eMJQ0o/P3IrJlYqq4+U33DUTSXzhFPSFHyL5hEryV6HjHyTIZ24jfoR dVe7ttP6YDKVkimNV3qy5Sjg+Yyjx6yph0bArK3+StabTZR7yzoxV0XldPzFMS9gcUPm +KShRZOgBvDP5gIcI52ta3somTnqQ7hye0FJAg/klwC4uOvpVrrtba7c6KYejb/QyzNy OBoA== ARC-Authentication-Results: i=1; mx.google.com; dkim=fail header.i=@gmail.com header.s=20210112 header.b=OmiVYJd5; spf=pass (google.com: domain of binutils-bounces+ouuuleilei=gmail.com@sourceware.org designates 8.43.85.97 as permitted sender) smtp.mailfrom="binutils-bounces+ouuuleilei=gmail.com@sourceware.org" Received: from sourceware.org (server2.sourceware.org. [8.43.85.97]) by mx.google.com with ESMTPS id mp28-20020a1709071b1c00b007ae0ca417e4si17769404ejc.690.2022.12.29.18.45.08 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 29 Dec 2022 18:45:09 -0800 (PST) Received-SPF: pass (google.com: domain of binutils-bounces+ouuuleilei=gmail.com@sourceware.org designates 8.43.85.97 as permitted sender) client-ip=8.43.85.97; Authentication-Results: mx.google.com; dkim=fail header.i=@gmail.com header.s=20210112 header.b=OmiVYJd5; spf=pass (google.com: domain of binutils-bounces+ouuuleilei=gmail.com@sourceware.org designates 8.43.85.97 as permitted sender) smtp.mailfrom="binutils-bounces+ouuuleilei=gmail.com@sourceware.org" Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 002513832343 for ; Fri, 30 Dec 2022 02:42:24 +0000 (GMT) X-Original-To: binutils@sourceware.org Delivered-To: binutils@sourceware.org Received: from mail-wm1-x334.google.com (mail-wm1-x334.google.com [IPv6:2a00:1450:4864:20::334]) by sourceware.org (Postfix) with ESMTPS id D20323858434 for ; Fri, 30 Dec 2022 02:41:03 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org D20323858434 Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=harmstone.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=gmail.com Received: by mail-wm1-x334.google.com with SMTP id k26-20020a05600c1c9a00b003d972646a7dso11343538wms.5 for ; Thu, 29 Dec 2022 18:41:03 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:sender:from:to:cc:subject:date :message-id:reply-to; bh=YdlRpAUdRzd6bMh39/oECmdPL+NZ39stKtn2xPkxWyg=; b=OmiVYJd5nsWiPUTwQdbrBrHvMxtpWWi7QCON4X7ZAINu7UFKlRT1qshw5gPt9sM4gL OpMsKkrjOiYDCbS0tNjTAcI3E5y0qltNx1z/DEC/u1kIiVy7Pp46+FKM57eIA9RXvMVT /YidK+fZUbHlZeyJJr4UMQQgmA9gy8aOx9qkaAVFsNAM8BKmCo1XhDOGyPctukrdUlFm Jf45ynuHjt4nmXwzp4sCjdzT6GyN5sZiMkY494eUEhDY0yZd95aYJcePhC3RqJswOgyP s66T4jkKmmoqsqVVjRPO2V/LDLibGdhqHxYr6yDynZnpJqfS9ai7UIqEoFsTWDsTf3eS bPhQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:sender:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=YdlRpAUdRzd6bMh39/oECmdPL+NZ39stKtn2xPkxWyg=; b=wdnxbk7wcTZyzRZ6urevfk1I6Q0OfiIAfEyAtezvh7/XCkLhXdrVBGkjGOKRESWlxv JszQUPeczZsXsIrcKGJAJz2bFR1FTFMftrMYAxxjfWchCHiUbIA/cNMIMhWTJyaPhOKu W1Gqnwq2iPTOFNXpWQm9sHW0KmD1BL0C6sGDMmLfWbU78NcPnU3LTKxD8bwPxsECW2dA tGaYsVbYHsVp5KFIS685gLDwJXjD6d7l2rr/5v2HzxI5OjHP66ehhom+k1p1aqT/31Yt BTsP97m8msQ1BS9hAPIsArlO2NIfs5brmzEkzjeuYCPPYPHvgPNVMp3yXukYnrCj4N2w zu7A== X-Gm-Message-State: AFqh2kqHwR/UqFlus5DZBhhNsU9o6zcZMgdi52AGvIDTCbQEpwTGnIx9 XK+1yFHkoCmLKmqLdxB8bTo= X-Received: by 2002:a05:600c:3506:b0:3cf:803b:d7cc with SMTP id h6-20020a05600c350600b003cf803bd7ccmr22751616wmq.33.1672368062338; Thu, 29 Dec 2022 18:41:02 -0800 (PST) Received: from beren.harmstone.com ([2a02:8010:64ea:0:8eb8:7eff:fe53:9d5f]) by smtp.gmail.com with ESMTPSA id t17-20020a05600c199100b003d99da8d30asm3726287wmq.46.2022.12.29.18.41.01 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 29 Dec 2022 18:41:01 -0800 (PST) From: Mark Harmstone To: wej22007@outlook.com, zac.walker@linaro.org, tamar.christina@arm.com, binutils@sourceware.org Cc: Mark Harmstone Subject: [PATCH 5/8] Add pe-aarch64 relocations Date: Fri, 30 Dec 2022 02:40:52 +0000 Message-Id: <20221230024055.31841-5-mark@harmstone.com> X-Mailer: git-send-email 2.37.4 In-Reply-To: <20221230024055.31841-1-mark@harmstone.com> References: <20221230024055.31841-1-mark@harmstone.com> MIME-Version: 1.0 X-Spam-Status: No, score=-9.4 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_EF, FREEMAIL_FORGED_FROMDOMAIN, FREEMAIL_FROM, GIT_PATCH_0, HEADER_FROM_DIFFERENT_DOMAINS, RCVD_IN_DNSWL_NONE, SCC_10_SHORT_WORD_LINES, SCC_20_SHORT_WORD_LINES, SCC_35_SHORT_WORD_LINES, SCC_5_SHORT_WORD_LINES, 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 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: , 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?1753605272042823253?= X-GMAIL-MSGID: =?utf-8?q?1753605272042823253?= --- bfd/coff-aarch64.c | 674 +++++++++++++++++++++++++++++- bfd/config.bfd | 6 - gas/config/tc-aarch64.c | 24 +- gas/testsuite/gas/pe/pe-aarch64.d | 230 +++++++++- gas/testsuite/gas/pe/pe-aarch64.s | 162 ++++++- ld/testsuite/ld-pe/aarch64.d | 158 +++++++ ld/testsuite/ld-pe/aarch64a.s | 159 +++++++ ld/testsuite/ld-pe/aarch64b.s | 8 + ld/testsuite/ld-pe/pe.exp | 10 +- 9 files changed, 1388 insertions(+), 43 deletions(-) create mode 100644 ld/testsuite/ld-pe/aarch64.d create mode 100644 ld/testsuite/ld-pe/aarch64a.s create mode 100644 ld/testsuite/ld-pe/aarch64b.s diff --git a/bfd/coff-aarch64.c b/bfd/coff-aarch64.c index 0faa75c63d2..b63e21514b2 100644 --- a/bfd/coff-aarch64.c +++ b/bfd/coff-aarch64.c @@ -39,59 +39,310 @@ #include "libcoff.h" +static bfd_reloc_status_type +coff_aarch64_addr64_reloc (bfd *abfd ATTRIBUTE_UNUSED, + arelent *reloc_entry, + asymbol *symbol ATTRIBUTE_UNUSED, + void *data, + asection *input_section ATTRIBUTE_UNUSED, + bfd *output_bfd ATTRIBUTE_UNUSED, + char **error_message ATTRIBUTE_UNUSED) +{ + uint64_t val = reloc_entry->addend; + + bfd_putl64 (val, data + reloc_entry->address); + + return bfd_reloc_ok; +} + +static bfd_reloc_status_type +coff_aarch64_addr32_reloc (bfd *abfd ATTRIBUTE_UNUSED, + arelent *reloc_entry, + asymbol *symbol ATTRIBUTE_UNUSED, + void *data, + asection *input_section ATTRIBUTE_UNUSED, + bfd *output_bfd ATTRIBUTE_UNUSED, + char **error_message ATTRIBUTE_UNUSED) +{ + uint64_t val; + + if ((int64_t) reloc_entry->addend > 0x7fffffff + || (int64_t) reloc_entry->addend < -0x7fffffff) + return bfd_reloc_overflow; + + val = reloc_entry->addend; + + bfd_putl32 ((uint32_t) val, data + reloc_entry->address); + + return bfd_reloc_ok; +} + +static bfd_reloc_status_type +coff_aarch64_branch26_reloc (bfd *abfd ATTRIBUTE_UNUSED, + arelent *reloc_entry, + asymbol *symbol ATTRIBUTE_UNUSED, + void *data, + asection *input_section ATTRIBUTE_UNUSED, + bfd *output_bfd ATTRIBUTE_UNUSED, + char **error_message ATTRIBUTE_UNUSED) +{ + uint32_t op; + int32_t param; + + op = bfd_getl32 (data + reloc_entry->address); + param = reloc_entry->addend; + + if (param > 0x7ffffff || param < -0x8000000) + return bfd_reloc_overflow; + + op &= 0xfc000000; + op |= (param >> 2) & 0x3ffffff; + + bfd_putl32 (op, data + reloc_entry->address); + + return bfd_reloc_ok; +} + +static bfd_reloc_status_type +coff_aarch64_rel21_reloc (bfd *abfd ATTRIBUTE_UNUSED, + arelent *reloc_entry, + asymbol *symbol ATTRIBUTE_UNUSED, + void *data, + asection *input_section ATTRIBUTE_UNUSED, + bfd *output_bfd ATTRIBUTE_UNUSED, + char **error_message ATTRIBUTE_UNUSED) +{ + uint32_t op; + int32_t param; + + op = bfd_getl32 (data + reloc_entry->address); + param = reloc_entry->addend; + + if (param > 0xfffff || param < -0x100000) + return bfd_reloc_overflow; + + op &= 0x9f00001f; + op |= (param & 0x1ffffc) << 3; + op |= (param & 0x3) << 29; + + bfd_putl32 (op, data + reloc_entry->address); + + return bfd_reloc_ok; +} + +static bfd_reloc_status_type +coff_aarch64_po12l_reloc (bfd *abfd ATTRIBUTE_UNUSED, + arelent *reloc_entry, + asymbol *symbol ATTRIBUTE_UNUSED, + void *data, + asection *input_section ATTRIBUTE_UNUSED, + bfd *output_bfd ATTRIBUTE_UNUSED, + char **error_message ATTRIBUTE_UNUSED) +{ + uint32_t op; + int32_t param; + uint8_t shift; + + op = bfd_getl32 (data + reloc_entry->address); + param = reloc_entry->addend & 0xfff; + + if ((op & 0xff800000) == 0x3d800000) + { + /* LDR / STR with q register */ + shift = 4; + } + else + { + /* top two bits represent how much addend should be shifted */ + shift = op >> 30; + } + + if (param & ((1 << shift) - 1)) + return bfd_reloc_overflow; + + param >>= shift; + + op &= 0xffc003ff; + op |= param << 10; + + bfd_putl32 (op, data + reloc_entry->address); + + return bfd_reloc_ok; +} + +static bfd_reloc_status_type +coff_aarch64_branch19_reloc (bfd *abfd ATTRIBUTE_UNUSED, + arelent *reloc_entry, + asymbol *symbol ATTRIBUTE_UNUSED, + void *data, + asection *input_section ATTRIBUTE_UNUSED, + bfd *output_bfd ATTRIBUTE_UNUSED, + char **error_message ATTRIBUTE_UNUSED) +{ + uint32_t op; + int32_t param; + + op = bfd_getl32 (data + reloc_entry->address); + param = reloc_entry->addend; + + if (param > 0xfffff || param < -0x100000) + return bfd_reloc_overflow; + + op &= 0xff00001f; + op |= ((param >> 2) & 0x7ffff) << 5; + + bfd_putl32 (op, data + reloc_entry->address); + + return bfd_reloc_ok; +} + +static bfd_reloc_status_type +coff_aarch64_branch14_reloc (bfd *abfd ATTRIBUTE_UNUSED, + arelent *reloc_entry, + asymbol *symbol ATTRIBUTE_UNUSED, + void *data, + asection *input_section ATTRIBUTE_UNUSED, + bfd *output_bfd ATTRIBUTE_UNUSED, + char **error_message ATTRIBUTE_UNUSED) +{ + uint32_t op; + int32_t param; + + op = bfd_getl32 (data + reloc_entry->address); + param = reloc_entry->addend; + + if (param > 0x7fff || param < -0x8000) + return bfd_reloc_overflow; + + op &= 0xfff8001f; + op |= ((param >> 2) & 0x3fff) << 5; + + bfd_putl32 (op, data + reloc_entry->address); + + return bfd_reloc_ok; +} + +static bfd_reloc_status_type +coff_aarch64_po12a_reloc (bfd *abfd ATTRIBUTE_UNUSED, + arelent *reloc_entry, + asymbol *symbol ATTRIBUTE_UNUSED, + void *data, + asection *input_section ATTRIBUTE_UNUSED, + bfd *output_bfd ATTRIBUTE_UNUSED, + char **error_message ATTRIBUTE_UNUSED) +{ + uint32_t op; + int32_t param; + + op = bfd_getl32 (data + reloc_entry->address); + param = reloc_entry->addend; + + op &= 0xffc003ff; + op |= (param & 0xfff) << 10; + + bfd_putl32 (op, data + reloc_entry->address); + + return bfd_reloc_ok; +} + +static bfd_reloc_status_type +coff_aarch64_addr32nb_reloc (bfd *abfd ATTRIBUTE_UNUSED, + arelent *reloc_entry, + asymbol *symbol ATTRIBUTE_UNUSED, + void *data, + asection *input_section ATTRIBUTE_UNUSED, + bfd *output_bfd ATTRIBUTE_UNUSED, + char **error_message ATTRIBUTE_UNUSED) +{ + uint64_t val; + + if ((int64_t) reloc_entry->addend > 0x7fffffff + || (int64_t) reloc_entry->addend < -0x7fffffff) + return bfd_reloc_overflow; + + val = reloc_entry->addend; + + bfd_putl32 ((uint32_t) val, data + reloc_entry->address); + + return bfd_reloc_ok; +} + /* In case we're on a 32-bit machine, construct a 64-bit "-1" value. */ #define MINUS_ONE (~ (bfd_vma) 0) +static const reloc_howto_type arm64_reloc_howto_abs = HOWTO(IMAGE_REL_ARM64_ABSOLUTE, 0, 1, 0, false, 0, + complain_overflow_dont, + NULL, "IMAGE_REL_ARM64_ABSOLUTE", + false, 0, 0, false); + static const reloc_howto_type arm64_reloc_howto_64 = HOWTO(IMAGE_REL_ARM64_ADDR64, 0, 8, 64, false, 0, complain_overflow_bitfield, - NULL, "64", + coff_aarch64_addr64_reloc, "IMAGE_REL_ARM64_ADDR64", false, MINUS_ONE, MINUS_ONE, false); static const reloc_howto_type arm64_reloc_howto_32 = HOWTO (IMAGE_REL_ARM64_ADDR32, 0, 4, 32, false, 0, complain_overflow_bitfield, - NULL, "32", + coff_aarch64_addr32_reloc, "IMAGE_REL_ARM64_ADDR32", false, 0xffffffff, 0xffffffff, false); static const reloc_howto_type arm64_reloc_howto_32_pcrel = HOWTO (IMAGE_REL_ARM64_REL32, 0, 4, 32, true, 0, complain_overflow_bitfield, - NULL, "DISP32", + NULL, "IMAGE_REL_ARM64_REL32", false, 0xffffffff, 0xffffffff, true); static const reloc_howto_type arm64_reloc_howto_branch26 = HOWTO (IMAGE_REL_ARM64_BRANCH26, 0, 4, 26, true, 0, complain_overflow_bitfield, - NULL, "BRANCH26", + coff_aarch64_branch26_reloc, "IMAGE_REL_ARM64_BRANCH26", false, 0x03ffffff, 0x03ffffff, true); static const reloc_howto_type arm64_reloc_howto_page21 = HOWTO (IMAGE_REL_ARM64_PAGEBASE_REL21, 12, 4, 21, true, 0, complain_overflow_signed, - NULL, "PAGE21", + coff_aarch64_rel21_reloc, "IMAGE_REL_ARM64_PAGEBASE_REL21", false, 0x1fffff, 0x1fffff, false); static const reloc_howto_type arm64_reloc_howto_lo21 = HOWTO (IMAGE_REL_ARM64_REL21, 0, 4, 21, true, 0, complain_overflow_signed, - NULL, "LO21", + coff_aarch64_rel21_reloc, "IMAGE_REL_ARM64_REL21", false, 0x1fffff, 0x1fffff, true); -static const reloc_howto_type arm64_reloc_howto_pgoff12 = HOWTO (IMAGE_REL_ARM64_PAGEOFFSET_12L, 1, 4, 12, true, 0, +static const reloc_howto_type arm64_reloc_howto_pgoff12l = HOWTO (IMAGE_REL_ARM64_PAGEOFFSET_12L, 1, 4, 12, true, 0, complain_overflow_signed, - NULL, "PGOFF12", + coff_aarch64_po12l_reloc, "IMAGE_REL_ARM64_PAGEOFFSET_12L", false, 0xffe, 0xffe, true); static const reloc_howto_type arm64_reloc_howto_branch19 = HOWTO (IMAGE_REL_ARM64_BRANCH19, 2, 4, 19, true, 0, complain_overflow_signed, - NULL, "BRANCH19", + coff_aarch64_branch19_reloc, "IMAGE_REL_ARM64_BRANCH19", false, 0x7ffff, 0x7ffff, true); +static const reloc_howto_type arm64_reloc_howto_branch14 = HOWTO (IMAGE_REL_ARM64_BRANCH14, 2, 4, 14, true, 0, + complain_overflow_signed, + coff_aarch64_branch14_reloc, "IMAGE_REL_ARM64_BRANCH14", + false, 0x3fff, 0x3fff, true); + +static const reloc_howto_type arm64_reloc_howto_pgoff12a = HOWTO (IMAGE_REL_ARM64_PAGEOFFSET_12A, 2, 4, 12, true, 10, + complain_overflow_dont, + coff_aarch64_po12a_reloc, "IMAGE_REL_ARM64_PAGEOFFSET_12A", + false, 0x3ffc00, 0x3ffc00, false); + +static const reloc_howto_type arm64_reloc_howto_32nb = HOWTO (IMAGE_REL_ARM64_ADDR32NB, 0, 4, 32, false, 0, + complain_overflow_bitfield, + coff_aarch64_addr32nb_reloc, "IMAGE_REL_ARM64_ADDR32NB", + false, 0xffffffff, 0xffffffff, false); static const reloc_howto_type* const arm64_howto_table[] = { + &arm64_reloc_howto_abs, &arm64_reloc_howto_64, &arm64_reloc_howto_32, &arm64_reloc_howto_32_pcrel, &arm64_reloc_howto_branch26, &arm64_reloc_howto_page21, &arm64_reloc_howto_lo21, - &arm64_reloc_howto_pgoff12, - &arm64_reloc_howto_branch19 + &arm64_reloc_howto_pgoff12l, + &arm64_reloc_howto_branch19, + &arm64_reloc_howto_branch14, + &arm64_reloc_howto_pgoff12a, + &arm64_reloc_howto_32nb }; #ifndef NUM_ELEM @@ -118,13 +369,24 @@ coff_aarch64_reloc_type_lookup (bfd * abfd ATTRIBUTE_UNUSED, bfd_reloc_code_real case BFD_RELOC_AARCH64_JUMP26: return &arm64_reloc_howto_branch26; case BFD_RELOC_AARCH64_ADR_HI21_PCREL: + case BFD_RELOC_AARCH64_ADR_HI21_NC_PCREL: return &arm64_reloc_howto_page21; + case BFD_RELOC_AARCH64_TSTBR14: + return &arm64_reloc_howto_branch14; case BFD_RELOC_AARCH64_ADR_LO21_PCREL: return &arm64_reloc_howto_lo21; + case BFD_RELOC_AARCH64_ADD_LO12: + return &arm64_reloc_howto_pgoff12a; + case BFD_RELOC_AARCH64_LDST8_LO12: case BFD_RELOC_AARCH64_LDST16_LO12: - return &arm64_reloc_howto_pgoff12; + case BFD_RELOC_AARCH64_LDST32_LO12: + case BFD_RELOC_AARCH64_LDST64_LO12: + case BFD_RELOC_AARCH64_LDST128_LO12: + return &arm64_reloc_howto_pgoff12l; case BFD_RELOC_AARCH64_BRANCH19: return &arm64_reloc_howto_branch19; + case BFD_RELOC_RVA: + return &arm64_reloc_howto_32nb; default: BFD_FAIL (); return NULL; @@ -155,6 +417,8 @@ coff_aarch64_rtype_lookup (unsigned int code) { switch (code) { + case IMAGE_REL_ARM64_ABSOLUTE: + return &arm64_reloc_howto_abs; case IMAGE_REL_ARM64_ADDR64: return &arm64_reloc_howto_64; case IMAGE_REL_ARM64_ADDR32: @@ -168,9 +432,15 @@ coff_aarch64_rtype_lookup (unsigned int code) case IMAGE_REL_ARM64_REL21: return &arm64_reloc_howto_lo21; case IMAGE_REL_ARM64_PAGEOFFSET_12L: - return &arm64_reloc_howto_pgoff12; + return &arm64_reloc_howto_pgoff12l; case IMAGE_REL_ARM64_BRANCH19: return &arm64_reloc_howto_branch19; + case IMAGE_REL_ARM64_BRANCH14: + return &arm64_reloc_howto_branch14; + case IMAGE_REL_ARM64_PAGEOFFSET_12A: + return &arm64_reloc_howto_pgoff12a; + case IMAGE_REL_ARM64_ADDR32NB: + return &arm64_reloc_howto_32nb; default: BFD_FAIL (); return NULL; @@ -188,6 +458,7 @@ coff_aarch64_rtype_lookup (unsigned int code) #define bfd_pe_print_pdata NULL #endif +#ifdef COFF_WITH_PE /* Return TRUE if this relocation should appear in the output .reloc section. */ @@ -197,9 +468,384 @@ in_reloc_p (bfd * abfd ATTRIBUTE_UNUSED, { return !howto->pc_relative; } +#endif + +static bool +coff_pe_aarch64_relocate_section (bfd *output_bfd, + struct bfd_link_info *info, + bfd *input_bfd, + asection *input_section, + bfd_byte *contents, + struct internal_reloc *relocs, + struct internal_syment *syms, + asection **sections) +{ + struct internal_reloc *rel; + struct internal_reloc *relend; + + if (bfd_link_relocatable (info)) + return true; + + rel = relocs; + relend = rel + input_section->reloc_count; + + /* The addend for a relocation is stored in the immediate bits of each + opcode. So for each relocation, we need to extract the immediate value, + use this to calculate what it should be for the symbol, and rewrite the + opcode into the section stream. */ + + for (; rel < relend; rel++) + { + long symndx; + struct coff_link_hash_entry *h; + bfd_vma sym_value; + asection *sec = NULL; + uint64_t dest_vma; + + /* skip trivial relocations */ + if (rel->r_type == IMAGE_REL_ARM64_ADDR32 + || rel->r_type == IMAGE_REL_ARM64_ADDR64 + || rel->r_type == IMAGE_REL_ARM64_ABSOLUTE) + continue; + + symndx = rel->r_symndx; + sym_value = syms[symndx].n_value; + + h = obj_coff_sym_hashes (input_bfd)[symndx]; + + if (h && h->root.type == bfd_link_hash_defined) + { + sec = h->root.u.def.section; + sym_value = h->root.u.def.value; + } + else + { + sec = sections[symndx]; + } + + if (!sec) + continue; + + if (bfd_is_und_section (sec)) + continue; + + if (discarded_section (sec)) + continue; + + dest_vma = sec->output_section->vma + sec->output_offset + sym_value; + + if (symndx < 0 + || (unsigned long) symndx >= obj_raw_syment_count (input_bfd)) + continue; + + switch (rel->r_type) + { + case IMAGE_REL_ARM64_ADDR32NB: + { + uint64_t val; + int32_t addend; + + addend = bfd_getl32 (contents + rel->r_vaddr); + + dest_vma += addend; + + val = dest_vma; + val -= pe_data (output_bfd)->pe_opthdr.ImageBase; + + if (val > 0xffffffff) + (*info->callbacks->reloc_overflow) + (info, h ? &h->root : NULL, syms[symndx]._n._n_name, + "IMAGE_REL_ARM64_ADDR32NB", addend, input_bfd, + input_section, rel->r_vaddr - input_section->vma); + + bfd_putl32 (val, contents + rel->r_vaddr); + rel->r_type = IMAGE_REL_ARM64_ABSOLUTE; + + break; + } + + case IMAGE_REL_ARM64_BRANCH26: + { + uint64_t cur_vma; + uint32_t opcode; + int64_t addend, val; + + opcode = bfd_getl32 (contents + rel->r_vaddr); + + addend = (opcode & 0x3ffffff) << 2; + + if (addend & 0x8000000) + addend |= 0xfffffffff0000000; + + dest_vma += addend; + cur_vma = input_section->output_section->vma + + input_section->output_offset + + rel->r_vaddr; + + val = (dest_vma >> 2) - (cur_vma >> 2); + + if (val > 0x1ffffff || val < -0x2000000) + (*info->callbacks->reloc_overflow) + (info, h ? &h->root : NULL, syms[symndx]._n._n_name, + "IMAGE_REL_ARM64_BRANCH26", addend, input_bfd, + input_section, rel->r_vaddr - input_section->vma); + + opcode &= 0xfc000000; + opcode |= val & 0x3ffffff; + + bfd_putl32 (opcode, contents + rel->r_vaddr); + rel->r_type = IMAGE_REL_ARM64_ABSOLUTE; + + break; + } + + case IMAGE_REL_ARM64_BRANCH19: + { + uint64_t cur_vma; + uint32_t opcode; + int64_t addend, val; + + opcode = bfd_getl32 (contents + rel->r_vaddr); + + addend = (opcode & 0xffffe0) >> 3; + + if (addend & 0x100000) + addend |= 0xffffffffffe00000; + + dest_vma += addend; + cur_vma = input_section->output_section->vma + + input_section->output_offset + + rel->r_vaddr; + + val = (dest_vma >> 2) - (cur_vma >> 2); + + if (val > 0x3ffff || val < -0x40000) + (*info->callbacks->reloc_overflow) + (info, h ? &h->root : NULL, syms[symndx]._n._n_name, + "IMAGE_REL_ARM64_BRANCH19", addend, input_bfd, + input_section, rel->r_vaddr - input_section->vma); + + opcode &= 0xff00001f; + opcode |= (val & 0x7ffff) << 5; + + bfd_putl32 (opcode, contents + rel->r_vaddr); + rel->r_type = IMAGE_REL_ARM64_ABSOLUTE; + + break; + } + + case IMAGE_REL_ARM64_BRANCH14: + { + uint64_t cur_vma; + uint32_t opcode; + int64_t addend, val; + + opcode = bfd_getl32 (contents + rel->r_vaddr); + + addend = (opcode & 0x7ffe0) >> 3; + + if (addend & 0x8000) + addend |= 0xffffffffffff0000; + + dest_vma += addend; + cur_vma = input_section->output_section->vma + + input_section->output_offset + + rel->r_vaddr; + + val = (dest_vma >> 2) - (cur_vma >> 2); + + if (val > 0x1fff || val < -0x2000) + (*info->callbacks->reloc_overflow) + (info, h ? &h->root : NULL, syms[symndx]._n._n_name, + "IMAGE_REL_ARM64_BRANCH14", addend, input_bfd, + input_section, rel->r_vaddr - input_section->vma); + + opcode &= 0xfff8001f; + opcode |= (val & 0x3fff) << 5; + + bfd_putl32 (opcode, contents + rel->r_vaddr); + rel->r_type = IMAGE_REL_ARM64_ABSOLUTE; + + break; + } + + case IMAGE_REL_ARM64_PAGEBASE_REL21: + { + uint64_t cur_vma; + uint32_t opcode; + int64_t addend, val; + + opcode = bfd_getl32 (contents + rel->r_vaddr); + + addend = ((opcode & 0xffffe0) >> 3) + | ((opcode & 0x60000000) >> 29); + + if (addend & 0x100000) + addend |= 0xffffffffffe00000; + + dest_vma += addend; + cur_vma = input_section->output_section->vma + + input_section->output_offset + + rel->r_vaddr; + + val = (dest_vma >> 12) - (cur_vma >> 12); + + if (val > 0xfffff || val < -0x100000) + (*info->callbacks->reloc_overflow) + (info, h ? &h->root : NULL, syms[symndx]._n._n_name, + "IMAGE_REL_ARM64_PAGEBASE_REL21", addend, input_bfd, + input_section, rel->r_vaddr - input_section->vma); + + opcode &= 0x9f00001f; + opcode |= (val & 0x3) << 29; + opcode |= (val & 0x1ffffc) << 3; + + bfd_putl32 (opcode, contents + rel->r_vaddr); + rel->r_type = IMAGE_REL_ARM64_ABSOLUTE; + + break; + } + + case IMAGE_REL_ARM64_REL21: + { + uint64_t cur_vma; + uint32_t opcode; + int64_t addend, val; + + opcode = bfd_getl32 (contents + rel->r_vaddr); + + addend = ((opcode & 0xffffe0) >> 3) + | ((opcode & 0x60000000) >> 29); + + if (addend & 0x100000) + addend |= 0xffffffffffe00000; + + dest_vma += addend; + cur_vma = input_section->output_section->vma + + input_section->output_offset + + rel->r_vaddr; + + val = dest_vma - cur_vma; + + if (val > 0xfffff || val < -0x100000) + (*info->callbacks->reloc_overflow) + (info, h ? &h->root : NULL, syms[symndx]._n._n_name, + "IMAGE_REL_ARM64_REL21", addend, input_bfd, + input_section, rel->r_vaddr - input_section->vma); + + opcode &= 0x9f00001f; + opcode |= (val & 0x3) << 29; + opcode |= (val & 0x1ffffc) << 3; + + bfd_putl32 (opcode, contents + rel->r_vaddr); + rel->r_type = IMAGE_REL_ARM64_ABSOLUTE; + + break; + } + + case IMAGE_REL_ARM64_PAGEOFFSET_12L: + { + uint32_t opcode, val; + uint8_t shift; + int32_t addend; + + opcode = bfd_getl32 (contents + rel->r_vaddr); + + addend = (opcode & 0x3ffc00) >> 10; + + if ((opcode & 0xff800000) == 0x3d800000) + { + /* LDR / STR with q register */ + shift = 4; + } + else + { + /* top two bits represent how much addend should be shifted */ + shift = opcode >> 30; + } + + addend <<= shift; + + dest_vma += addend; + + /* only interested in bottom 12 bits */ + val = dest_vma & 0xfff; + + if (val & ((1 << shift) - 1)) + (*info->callbacks->reloc_overflow) + (info, h ? &h->root : NULL, syms[symndx]._n._n_name, + "IMAGE_REL_ARM64_PAGEOFFSET_12L", addend, input_bfd, + input_section, rel->r_vaddr - input_section->vma); + + val >>= shift; + + opcode &= 0xffc003ff; + opcode |= val << 10; + + bfd_putl32 (opcode, contents + rel->r_vaddr); + rel->r_type = IMAGE_REL_ARM64_ABSOLUTE; + + break; + } + + case IMAGE_REL_ARM64_PAGEOFFSET_12A: + { + uint32_t opcode, val; + int32_t addend; + + opcode = bfd_getl32 (contents + rel->r_vaddr); + + addend = (opcode & 0x3ffc00) >> 10; + + dest_vma += addend; + + /* only interested in bottom 12 bits */ + val = dest_vma & 0xfff; + + opcode &= 0xffc003ff; + opcode |= val << 10; + + bfd_putl32 (opcode, contents + rel->r_vaddr); + rel->r_type = IMAGE_REL_ARM64_ABSOLUTE; + + break; + } + + default: + info->callbacks->einfo (_("%F%P: Unhandled relocation type %u\n"), + rel->r_type); + BFD_FAIL (); + return false; + } + } + + return _bfd_coff_generic_relocate_section (output_bfd, info, input_bfd, + input_section, contents, + relocs, syms, sections); +} + +#define coff_relocate_section coff_pe_aarch64_relocate_section #include "coffcode.h" +/* Prevent assertion in md_apply_fix by forcing use_rela_p on for new + sections. */ +static bool +coff_aarch64_new_section_hook (bfd *abfd, asection *section) +{ + if (!coff_new_section_hook (abfd, section)) + return false; + + section->use_rela_p = 1; + + return true; +} + +#define coff_aarch64_close_and_cleanup coff_close_and_cleanup +#define coff_aarch64_bfd_free_cached_info coff_bfd_free_cached_info +#define coff_aarch64_get_section_contents coff_get_section_contents +#define coff_aarch64_get_section_contents_in_window coff_get_section_contents_in_window + /* Target vectors. */ const bfd_target #ifdef TARGET_SYM @@ -266,7 +912,7 @@ const bfd_target _bfd_bool_bfd_false_error }, - BFD_JUMP_TABLE_GENERIC (coff), + BFD_JUMP_TABLE_GENERIC (coff_aarch64), BFD_JUMP_TABLE_COPY (coff), BFD_JUMP_TABLE_CORE (_bfd_nocore), BFD_JUMP_TABLE_ARCHIVE (_bfd_archive_coff), diff --git a/bfd/config.bfd b/bfd/config.bfd index 0bc27fdce97..92a6cff938b 100644 --- a/bfd/config.bfd +++ b/bfd/config.bfd @@ -1495,12 +1495,6 @@ case "${targ}" in ;; esac -if test x"$targ_defvec" = x"aarch64-pe"; then - # Not currently complete (and probably not stable), warn user - echo "*** WARNING BFD aarch64-pe support not complete nor stable" - echo "*** Do not rely on this for production purposes" -fi - # All MIPS ELF targets need a 64-bit bfd_vma. case "${targ_defvec} ${targ_selvecs}" in *mips_elf*) diff --git a/gas/config/tc-aarch64.c b/gas/config/tc-aarch64.c index c679d930e88..a50cdb019e6 100644 --- a/gas/config/tc-aarch64.c +++ b/gas/config/tc-aarch64.c @@ -1889,10 +1889,9 @@ s_ltorg (int ignored ATTRIBUTE_UNUSED) } } -#ifdef OBJ_ELF +#if defined(OBJ_ELF) || defined(OBJ_COFF) /* Forward declarations for functions below, in the MD interface section. */ -static fixS *fix_new_aarch64 (fragS *, int, short, expressionS *, int, int); static struct reloc_table_entry * find_reloc_table_entry (char **); /* Directives: Data. */ @@ -1900,7 +1899,7 @@ static struct reloc_table_entry * find_reloc_table_entry (char **); implemented properly. */ static void -s_aarch64_elf_cons (int nbytes) +s_aarch64_cons (int nbytes) { expressionS exp; @@ -1950,6 +1949,12 @@ s_aarch64_elf_cons (int nbytes) input_line_pointer--; demand_empty_rest_of_line (); } +#endif + +#ifdef OBJ_ELF +/* Forward declarations for functions below, in the MD interface + section. */ + static fixS *fix_new_aarch64 (fragS *, int, short, expressionS *, int, int); /* Mark symbol that it follows a variant PCS convention. */ @@ -2119,11 +2124,13 @@ const pseudo_typeS md_pseudo_table[] = { {"tlsdescadd", s_tlsdescadd, 0}, {"tlsdesccall", s_tlsdesccall, 0}, {"tlsdescldr", s_tlsdescldr, 0}, - {"word", s_aarch64_elf_cons, 4}, - {"long", s_aarch64_elf_cons, 4}, - {"xword", s_aarch64_elf_cons, 8}, - {"dword", s_aarch64_elf_cons, 8}, {"variant_pcs", s_variant_pcs, 0}, +#endif +#if defined(OBJ_ELF) || defined(OBJ_COFF) + {"word", s_aarch64_cons, 4}, + {"long", s_aarch64_cons, 4}, + {"xword", s_aarch64_cons, 8}, + {"dword", s_aarch64_cons, 8}, #endif {"float16", float_cons, 'h'}, {"bfloat16", float_cons, 'b'}, @@ -9260,6 +9267,9 @@ md_apply_fix (fixS * fixP, valueT * valP, segT seg) /* An error will already have been reported. */ break; + case BFD_RELOC_RVA: + break; + default: as_bad_where (fixP->fx_file, fixP->fx_line, _("unexpected %s fixup"), diff --git a/gas/testsuite/gas/pe/pe-aarch64.d b/gas/testsuite/gas/pe/pe-aarch64.d index 0b8009da5c4..eb611031183 100644 --- a/gas/testsuite/gas/pe/pe-aarch64.d +++ b/gas/testsuite/gas/pe/pe-aarch64.d @@ -1,14 +1,232 @@ #as: -#objdump: -d +#objdump: -dr .*: file format pe-aarch64-little Disassembly of section .text: -0000000000000000 <_start>: - 0: d2800281 mov x1, #0x14 // #20 - 4: 14000001 b 8 +0000000000000000 <.text>: + ... -0000000000000008 : - 8: d65f03c0 ret +0000000000000010 : + 10: 12345678 and w24, w19, #0xfffff003 + 14: 12345678 and w24, w19, #0xfffff003 + 18: 00000010 udf #16 + 18: IMAGE_REL_ARM64_ADDR32 .text + 1c: 00000010 udf #16 + 1c: IMAGE_REL_ARM64_ADDR32 .text + ... + 20: IMAGE_REL_ARM64_ADDR32 bar + 24: IMAGE_REL_ARM64_ADDR32 bar + 28: 00000011 udf #17 + 28: IMAGE_REL_ARM64_ADDR32 .text + 2c: 00000011 udf #17 + 2c: IMAGE_REL_ARM64_ADDR32 .text + 30: 00000001 udf #1 + 30: IMAGE_REL_ARM64_ADDR32 bar + 34: 00000001 udf #1 + 34: IMAGE_REL_ARM64_ADDR32 bar + 38: 0000000f udf #15 + 38: IMAGE_REL_ARM64_ADDR32 .text + 3c: 0000000f udf #15 + 3c: IMAGE_REL_ARM64_ADDR32 .text + 40: ffffffff .inst 0xffffffff ; undefined + 40: IMAGE_REL_ARM64_ADDR32 bar + 44: ffffffff .inst 0xffffffff ; undefined + 44: IMAGE_REL_ARM64_ADDR32 bar + 48: 9abcdef0 .inst 0x9abcdef0 ; undefined + 4c: 12345678 and w24, w19, #0xfffff003 + 50: 9abcdef0 .inst 0x9abcdef0 ; undefined + 54: 12345678 and w24, w19, #0xfffff003 + 58: 00000010 udf #16 + 58: IMAGE_REL_ARM64_ADDR64 .text + 5c: 00000000 udf #0 + 60: 00000010 udf #16 + 60: IMAGE_REL_ARM64_ADDR64 .text + ... + 68: IMAGE_REL_ARM64_ADDR64 bar + 70: IMAGE_REL_ARM64_ADDR64 bar + 78: 00000011 udf #17 + 78: IMAGE_REL_ARM64_ADDR64 .text + 7c: 00000000 udf #0 + 80: 00000011 udf #17 + 80: IMAGE_REL_ARM64_ADDR64 .text + 84: 00000000 udf #0 + 88: 00000001 udf #1 + 88: IMAGE_REL_ARM64_ADDR64 bar + 8c: 00000000 udf #0 + 90: 00000001 udf #1 + 90: IMAGE_REL_ARM64_ADDR64 bar + 94: 00000000 udf #0 + 98: 0000000f udf #15 + 98: IMAGE_REL_ARM64_ADDR64 .text + 9c: 00000000 udf #0 + a0: 0000000f udf #15 + a0: IMAGE_REL_ARM64_ADDR64 .text + a4: 00000000 udf #0 + a8: ffffffff .inst 0xffffffff ; undefined + a8: IMAGE_REL_ARM64_ADDR64 bar + ac: ffffffff .inst 0xffffffff ; undefined + b0: ffffffff .inst 0xffffffff ; undefined + b0: IMAGE_REL_ARM64_ADDR64 bar + b4: ffffffff .inst 0xffffffff ; undefined + b8: 00000010 udf #16 + b8: IMAGE_REL_ARM64_ADDR32NB .text + bc: 00000000 udf #0 + bc: IMAGE_REL_ARM64_ADDR32NB bar + c0: 00000011 udf #17 + c0: IMAGE_REL_ARM64_ADDR32NB .text + c4: 00000001 udf #1 + c4: IMAGE_REL_ARM64_ADDR32NB bar + c8: 0000000f udf #15 + c8: IMAGE_REL_ARM64_ADDR32NB .text + cc: ffffffff .inst 0xffffffff ; undefined + cc: IMAGE_REL_ARM64_ADDR32NB bar + d0: 17ffffd0 b 10 + d4: 17ffffd0 b 14 + d8: 17ffffcd b c <.text\+0xc> + dc: 14000000 b 0 + dc: IMAGE_REL_ARM64_BRANCH26 bar + e0: 14000001 b 4 + e0: IMAGE_REL_ARM64_BRANCH26 bar + e4: 17ffffff b fffffffffffffffc + e4: IMAGE_REL_ARM64_BRANCH26 bar + e8: 97ffffca bl 10 + ec: 97ffffca bl 14 + f0: 97ffffc7 bl c <.text\+0xc> + f4: 94000000 bl 0 + f4: IMAGE_REL_ARM64_BRANCH26 bar + f8: 94000001 bl 4 + f8: IMAGE_REL_ARM64_BRANCH26 bar + fc: 97ffffff bl fffffffffffffffc + fc: IMAGE_REL_ARM64_BRANCH26 bar + 100: 97ffffbf bl fffffffffffffffc + 104: b4fff860 cbz x0, 10 + 108: b4fff860 cbz x0, 14 + 10c: b4fff800 cbz x0, c <.text\+0xc> + 110: b4000000 cbz x0, 0 + 110: IMAGE_REL_ARM64_BRANCH19 bar + 114: b4000020 cbz x0, 4 + 114: IMAGE_REL_ARM64_BRANCH19 bar + 118: b4ffffe0 cbz x0, fffffffffffffffc + 118: IMAGE_REL_ARM64_BRANCH19 bar + 11c: b4fff700 cbz x0, fffffffffffffffc + 120: 3607f780 tbz w0, #0, 10 + 124: 3607f780 tbz w0, #0, 14 + 128: 3607f720 tbz w0, #0, c <.text\+0xc> + 12c: 36000000 tbz w0, #0, 0 + 12c: IMAGE_REL_ARM64_BRANCH14 bar + 130: 36000020 tbz w0, #0, 4 + 130: IMAGE_REL_ARM64_BRANCH14 bar + 134: 3607ffe0 tbz w0, #0, fffffffffffffffc + 134: IMAGE_REL_ARM64_BRANCH14 bar + 138: 3607f620 tbz w0, #0, fffffffffffffffc + 13c: 90000080 adrp x0, 10000 + 13c: IMAGE_REL_ARM64_PAGEBASE_REL21 .text + 140: b0000080 adrp x0, 11000 + 140: IMAGE_REL_ARM64_PAGEBASE_REL21 .text + 144: f0000060 adrp x0, f000 + 144: IMAGE_REL_ARM64_PAGEBASE_REL21 .text + 148: 90000000 adrp x0, 0 + 148: IMAGE_REL_ARM64_PAGEBASE_REL21 bar + 14c: b0000000 adrp x0, 1000 + 14c: IMAGE_REL_ARM64_PAGEBASE_REL21 bar + 150: f0ffffe0 adrp x0, fffffffffffff000 + 150: IMAGE_REL_ARM64_PAGEBASE_REL21 bar + 154: 90ffffe0 adrp x0, ffffffffffffc000 + 154: IMAGE_REL_ARM64_PAGEBASE_REL21 .text + 158: 10fff5c0 adr x0, 10 + 15c: 30fff5a0 adr x0, 11 + 160: 70fff560 adr x0, f <.text\+0xf> + 164: 10000000 adr x0, 0 + 164: IMAGE_REL_ARM64_REL21 bar + 168: 30000000 adr x0, 1 + 168: IMAGE_REL_ARM64_REL21 bar + 16c: 70ffffe0 adr x0, ffffffffffffffff + 16c: IMAGE_REL_ARM64_REL21 bar + 170: 70fff460 adr x0, ffffffffffffffff + 174: 39004000 strb w0, \[x0, #16\] + 174: IMAGE_REL_ARM64_PAGEOFFSET_12L .text + 178: 39005000 strb w0, \[x0, #20\] + 178: IMAGE_REL_ARM64_PAGEOFFSET_12L .text + 17c: 39003000 strb w0, \[x0, #12\] + 17c: IMAGE_REL_ARM64_PAGEOFFSET_12L .text + 180: 39000000 strb w0, \[x0\] + 180: IMAGE_REL_ARM64_PAGEOFFSET_12L bar + 184: 39001000 strb w0, \[x0, #4\] + 184: IMAGE_REL_ARM64_PAGEOFFSET_12L bar + 188: 393ff000 strb w0, \[x0, #4092\] + 188: IMAGE_REL_ARM64_PAGEOFFSET_12L bar + 18c: 393ff000 strb w0, \[x0, #4092\] + 18c: IMAGE_REL_ARM64_PAGEOFFSET_12L .text + 190: 79002000 strh w0, \[x0, #16\] + 190: IMAGE_REL_ARM64_PAGEOFFSET_12L .text + 194: 79002800 strh w0, \[x0, #20\] + 194: IMAGE_REL_ARM64_PAGEOFFSET_12L .text + 198: 79001800 strh w0, \[x0, #12\] + 198: IMAGE_REL_ARM64_PAGEOFFSET_12L .text + 19c: 79000000 strh w0, \[x0\] + 19c: IMAGE_REL_ARM64_PAGEOFFSET_12L bar + 1a0: 79000800 strh w0, \[x0, #4\] + 1a0: IMAGE_REL_ARM64_PAGEOFFSET_12L bar + 1a4: 791ff800 strh w0, \[x0, #4092\] + 1a4: IMAGE_REL_ARM64_PAGEOFFSET_12L bar + 1a8: 791ff800 strh w0, \[x0, #4092\] + 1a8: IMAGE_REL_ARM64_PAGEOFFSET_12L .text + 1ac: b9001000 str w0, \[x0, #16\] + 1ac: IMAGE_REL_ARM64_PAGEOFFSET_12L .text + 1b0: b9001400 str w0, \[x0, #20\] + 1b0: IMAGE_REL_ARM64_PAGEOFFSET_12L .text + 1b4: b9000c00 str w0, \[x0, #12\] + 1b4: IMAGE_REL_ARM64_PAGEOFFSET_12L .text + 1b8: b9000000 str w0, \[x0\] + 1b8: IMAGE_REL_ARM64_PAGEOFFSET_12L bar + 1bc: b9000400 str w0, \[x0, #4\] + 1bc: IMAGE_REL_ARM64_PAGEOFFSET_12L bar + 1c0: b90ffc00 str w0, \[x0, #4092\] + 1c0: IMAGE_REL_ARM64_PAGEOFFSET_12L bar + 1c4: b90ffc00 str w0, \[x0, #4092\] + 1c4: IMAGE_REL_ARM64_PAGEOFFSET_12L .text + 1c8: f9000800 str x0, \[x0, #16\] + 1c8: IMAGE_REL_ARM64_PAGEOFFSET_12L .text + 1cc: f9000c00 str x0, \[x0, #24\] + 1cc: IMAGE_REL_ARM64_PAGEOFFSET_12L .text + 1d0: f9000400 str x0, \[x0, #8\] + 1d0: IMAGE_REL_ARM64_PAGEOFFSET_12L .text + 1d4: f9000000 str x0, \[x0\] + 1d4: IMAGE_REL_ARM64_PAGEOFFSET_12L bar + 1d8: f9000400 str x0, \[x0, #8\] + 1d8: IMAGE_REL_ARM64_PAGEOFFSET_12L bar + 1dc: f907fc00 str x0, \[x0, #4088\] + 1dc: IMAGE_REL_ARM64_PAGEOFFSET_12L bar + 1e0: f907fc00 str x0, \[x0, #4088\] + 1e0: IMAGE_REL_ARM64_PAGEOFFSET_12L .text + 1e4: 3d800400 str q0, \[x0, #16\] + 1e4: IMAGE_REL_ARM64_PAGEOFFSET_12L .text + 1e8: 3d800800 str q0, \[x0, #32\] + 1e8: IMAGE_REL_ARM64_PAGEOFFSET_12L .text + 1ec: 3d800000 str q0, \[x0\] + 1ec: IMAGE_REL_ARM64_PAGEOFFSET_12L .text + 1f0: 3d800000 str q0, \[x0\] + 1f0: IMAGE_REL_ARM64_PAGEOFFSET_12L bar + 1f4: 3d800400 str q0, \[x0, #16\] + 1f4: IMAGE_REL_ARM64_PAGEOFFSET_12L bar + 1f8: 3d83fc00 str q0, \[x0, #4080\] + 1f8: IMAGE_REL_ARM64_PAGEOFFSET_12L bar + 1fc: 3d83fc00 str q0, \[x0, #4080\] + 1fc: IMAGE_REL_ARM64_PAGEOFFSET_12L .text + 200: 91004000 add x0, x0, #0x10 + 200: IMAGE_REL_ARM64_PAGEOFFSET_12A .text + 204: 91004400 add x0, x0, #0x11 + 204: IMAGE_REL_ARM64_PAGEOFFSET_12A .text + 208: 91003c00 add x0, x0, #0xf + 208: IMAGE_REL_ARM64_PAGEOFFSET_12A .text + 20c: 91000000 add x0, x0, #0x0 + 20c: IMAGE_REL_ARM64_PAGEOFFSET_12A bar + 210: 91000400 add x0, x0, #0x1 + 210: IMAGE_REL_ARM64_PAGEOFFSET_12A bar + 214: 913ffc00 add x0, x0, #0xfff + 214: IMAGE_REL_ARM64_PAGEOFFSET_12A bar + 218: 913ffc00 add x0, x0, #0xfff + 218: IMAGE_REL_ARM64_PAGEOFFSET_12A .text diff --git a/gas/testsuite/gas/pe/pe-aarch64.s b/gas/testsuite/gas/pe/pe-aarch64.s index 546d55fc361..2a02d2d1c0d 100644 --- a/gas/testsuite/gas/pe/pe-aarch64.s +++ b/gas/testsuite/gas/pe/pe-aarch64.s @@ -1,11 +1,157 @@ -# A little test to ensure pe-aarch64 is working in GAS. -# Currently, the poor pe-aarch64 implementation in binutils -# couldn't do anything useful, hence, this test is rather short +.text -.section .text +.dword 0 +.dword 0 -_start: - mov x1, 20 - b foo foo: - ret + +# 4-byte literal +.long 0x12345678 +.word 0x12345678 + +# IMAGE_REL_ARM64_ADDR32 (BFD_RELOC_32) +.long foo +.word foo +.long bar +.word bar +.long foo + 1 +.word foo + 1 +.long bar + 1 +.word bar + 1 +.long foo - 1 +.word foo - 1 +.long bar - 1 +.word bar - 1 + +# 8-byte literal +.dword 0x123456789abcdef0 +.xword 0x123456789abcdef0 + +# IMAGE_REL_ARM64_ADDR64 (BFD_RELOC_64) +.dword foo +.xword foo +.dword bar +.xword bar +.dword foo + 1 +.xword foo + 1 +.dword bar + 1 +.xword bar + 1 +.dword foo - 1 +.xword foo - 1 +.dword bar - 1 +.xword bar - 1 + +# IMAGE_REL_ARM64_ADDR32NB (BFD_RELOC_RVA) +.rva foo +.rva bar +.rva foo + 1 +.rva bar + 1 +.rva foo - 1 +.rva bar - 1 + +# IMAGE_REL_ARM64_BRANCH26 (BFD_RELOC_AARCH64_JUMP26) +b foo +b foo + 4 +b foo - 4 +b bar +b bar + 4 +b bar - 4 + +# IMAGE_REL_ARM64_BRANCH26 (BFD_RELOC_AARCH64_CALL26) +bl foo +bl foo + 4 +bl foo - 4 +bl bar +bl bar + 4 +bl bar - 4 +bl .text - 4 + +# IMAGE_REL_ARM64_BRANCH19 (BFD_RELOC_AARCH64_BRANCH19) +cbz x0, foo +cbz x0, foo + 4 +cbz x0, foo - 4 +cbz x0, bar +cbz x0, bar + 4 +cbz x0, bar - 4 +cbz x0, .text - 4 + +# IMAGE_REL_ARM64_BRANCH14 (BFD_RELOC_AARCH64_TSTBR14) +tbz x0, 0, foo +tbz x0, 0, foo + 4 +tbz x0, 0, foo - 4 +tbz x0, 0, bar +tbz x0, 0, bar + 4 +tbz x0, 0, bar - 4 +tbz x0, 0, .text - 4 + +# IMAGE_REL_ARM64_PAGEBASE_REL21 (BFD_RELOC_AARCH64_ADR_HI21_PCREL) +adrp x0, foo +adrp x0, foo + 1 +adrp x0, foo - 1 +adrp x0, bar +adrp x0, bar + 1 +adrp x0, bar - 1 +adrp x0, .text - 4 + +# IMAGE_REL_ARM64_REL21 (BFD_RELOC_AARCH64_ADR_LO21_PCREL) +adr x0, foo +adr x0, foo + 1 +adr x0, foo - 1 +adr x0, bar +adr x0, bar + 1 +adr x0, bar - 1 +adr x0, .text - 1 + +# IMAGE_REL_ARM64_PAGEOFFSET_12L (BFD_RELOC_AARCH64_LDST8_LO12) +strb w0, [x0,:lo12:foo] +strb w0, [x0,:lo12:foo + 4] +strb w0, [x0,:lo12:foo - 4] +strb w0, [x0,:lo12:bar] +strb w0, [x0,:lo12:bar + 4] +strb w0, [x0,:lo12:bar - 4] +strb w0, [x0,:lo12:.text - 4] + +# IMAGE_REL_ARM64_PAGEOFFSET_12L (BFD_RELOC_AARCH64_LDST16_LO12) +strh w0, [x0,:lo12:foo] +strh w0, [x0,:lo12:foo + 4] +strh w0, [x0,:lo12:foo - 4] +strh w0, [x0,:lo12:bar] +strh w0, [x0,:lo12:bar + 4] +strh w0, [x0,:lo12:bar - 4] +strh w0, [x0,:lo12:.text - 4] + +# IMAGE_REL_ARM64_PAGEOFFSET_12L (BFD_RELOC_AARCH64_LDST32_LO12) +str w0, [x0,:lo12:foo] +str w0, [x0,:lo12:foo + 4] +str w0, [x0,:lo12:foo - 4] +str w0, [x0,:lo12:bar] +str w0, [x0,:lo12:bar + 4] +str w0, [x0,:lo12:bar - 4] +str w0, [x0,:lo12:.text - 4] + +# IMAGE_REL_ARM64_PAGEOFFSET_12L (BFD_RELOC_AARCH64_LDST64_LO12) +str x0, [x0,:lo12:foo] +str x0, [x0,:lo12:foo + 8] +str x0, [x0,:lo12:foo - 8] +str x0, [x0,:lo12:bar] +str x0, [x0,:lo12:bar + 8] +str x0, [x0,:lo12:bar - 8] +str x0, [x0,:lo12:.text - 8] + +# IMAGE_REL_ARM64_PAGEOFFSET_12L (BFD_RELOC_AARCH64_LDST128_LO12) +str q0, [x0,:lo12:foo] +str q0, [x0,:lo12:foo + 16] +str q0, [x0,:lo12:foo - 16] +str q0, [x0,:lo12:bar] +str q0, [x0,:lo12:bar + 16] +str q0, [x0,:lo12:bar - 16] +str q0, [x0,:lo12:.text - 16] + +# IMAGE_REL_ARM64_PAGEOFFSET_12A (BFD_RELOC_AARCH64_ADD_LO12) +add x0, x0, #:lo12:foo +add x0, x0, #:lo12:foo + 1 +add x0, x0, #:lo12:foo - 1 +add x0, x0, #:lo12:bar +add x0, x0, #:lo12:bar + 1 +add x0, x0, #:lo12:bar - 1 +add x0, x0, #:lo12:.text - 1 diff --git a/ld/testsuite/ld-pe/aarch64.d b/ld/testsuite/ld-pe/aarch64.d new file mode 100644 index 00000000000..cc3daf9e9cd --- /dev/null +++ b/ld/testsuite/ld-pe/aarch64.d @@ -0,0 +1,158 @@ + +tmpdir/aarch64.x: file format pei-aarch64-little + + +Disassembly of section .text: + +0000000000002000 <__rt_psrelocs_end>: + ... + +0000000000002010 : + 2010: 12345678 and w24, w19, #0xfffff003 + 2014: 12345678 and w24, w19, #0xfffff003 + 2018: 00002000 udf #8192 + 201c: 00002000 udf #8192 + 2020: 00002220 udf #8736 + 2024: 00002220 udf #8736 + 2028: 00002001 udf #8193 + 202c: 00002001 udf #8193 + 2030: 00002221 udf #8737 + 2034: 00002221 udf #8737 + 2038: 00001fff udf #8191 + 203c: 00001fff udf #8191 + 2040: 0000221f udf #8735 + 2044: 0000221f udf #8735 + 2048: 9abcdef0 .inst 0x9abcdef0 ; undefined + 204c: 12345678 and w24, w19, #0xfffff003 + 2050: 9abcdef0 .inst 0x9abcdef0 ; undefined + 2054: 12345678 and w24, w19, #0xfffff003 + 2058: 00002000 udf #8192 + 205c: 00000000 udf #0 + 2060: 00002000 udf #8192 + 2064: 00000000 udf #0 + 2068: 00002220 udf #8736 + 206c: 00000000 udf #0 + 2070: 00002220 udf #8736 + 2074: 00000000 udf #0 + 2078: 00002001 udf #8193 + 207c: 00000000 udf #0 + 2080: 00002001 udf #8193 + 2084: 00000000 udf #0 + 2088: 00002221 udf #8737 + 208c: 00000000 udf #0 + 2090: 00002221 udf #8737 + 2094: 00000000 udf #0 + 2098: 00001fff udf #8191 + 209c: 00000000 udf #0 + 20a0: 00001fff udf #8191 + 20a4: 00000000 udf #0 + 20a8: 0000221f udf #8735 + 20ac: 00000000 udf #0 + 20b0: 0000221f udf #8735 + 20b4: 00000000 udf #0 + 20b8: 00001010 udf #4112 + 20bc: 00001220 udf #4640 + 20c0: 00001011 udf #4113 + 20c4: 00001221 udf #4641 + 20c8: 0000100f udf #4111 + 20cc: 0000121f udf #4639 + 20d0: 17ffffd0 b 2010 + 20d4: 17ffffd0 b 2014 + 20d8: 17ffffcd b 200c <__rt_psrelocs_end\+0xc> + 20dc: 14000051 b 2220 + 20e0: 14000051 b 2224 + 20e4: 1400004e b 221c <.text> + 20e8: 97ffffca bl 2010 + 20ec: 97ffffca bl 2014 + 20f0: 97ffffc7 bl 200c <__rt_psrelocs_end\+0xc> + 20f4: 9400004b bl 2220 + 20f8: 9400004b bl 2224 + 20fc: 94000048 bl 221c <.text> + 2100: 97ffffbf bl 1ffc <__ImageBase\+0xffc> + 2104: b4fff860 cbz x0, 2010 + 2108: b4fff860 cbz x0, 2014 + 210c: b4fff800 cbz x0, 200c <__rt_psrelocs_end\+0xc> + 2110: b4000880 cbz x0, 2220 + 2114: b4000880 cbz x0, 2224 + 2118: b4000820 cbz x0, 221c <.text> + 211c: b4fff700 cbz x0, 1ffc <__ImageBase\+0xffc> + 2120: 3607f780 tbz w0, #0, 2010 + 2124: 3607f780 tbz w0, #0, 2014 + 2128: 3607f720 tbz w0, #0, 200c <__rt_psrelocs_end\+0xc> + 212c: 360007a0 tbz w0, #0, 2220 + 2130: 360007a0 tbz w0, #0, 2224 + 2134: 36000740 tbz w0, #0, 221c <.text> + 2138: 3607f620 tbz w0, #0, 1ffc <__ImageBase\+0xffc> + 213c: 90000000 adrp x0, 2000 <__rt_psrelocs_end> + 2140: 90000000 adrp x0, 2000 <__rt_psrelocs_end> + 2144: 90000000 adrp x0, 2000 <__rt_psrelocs_end> + 2148: 90000000 adrp x0, 2000 <__rt_psrelocs_end> + 214c: 90000000 adrp x0, 2000 <__rt_psrelocs_end> + 2150: 90000000 adrp x0, 2000 <__rt_psrelocs_end> + 2154: f0ffffe0 adrp x0, 1000 <__ImageBase> + 2158: 10fff5c0 adr x0, 2010 + 215c: 30fff5a0 adr x0, 2011 + 2160: 70fff560 adr x0, 200f <__rt_psrelocs_end\+0xf> + 2164: 100005e0 adr x0, 2220 + 2168: 300005c0 adr x0, 2221 + 216c: 70000580 adr x0, 221f <.text\+0x3> + 2170: 70fff460 adr x0, 1fff <__ImageBase\+0xfff> + 2174: 39004000 strb w0, \[x0, #16\] + 2178: 39005000 strb w0, \[x0, #20\] + 217c: 39003000 strb w0, \[x0, #12\] + 2180: 39088000 strb w0, \[x0, #544\] + 2184: 39089000 strb w0, \[x0, #548\] + 2188: 39087000 strb w0, \[x0, #540\] + 218c: 393ff000 strb w0, \[x0, #4092\] + 2190: 79002000 strh w0, \[x0, #16\] + 2194: 79002800 strh w0, \[x0, #20\] + 2198: 79001800 strh w0, \[x0, #12\] + 219c: 79044000 strh w0, \[x0, #544\] + 21a0: 79044800 strh w0, \[x0, #548\] + 21a4: 79043800 strh w0, \[x0, #540\] + 21a8: 791ff800 strh w0, \[x0, #4092\] + 21ac: b9001000 str w0, \[x0, #16\] + 21b0: b9001400 str w0, \[x0, #20\] + 21b4: b9000c00 str w0, \[x0, #12\] + 21b8: b9022000 str w0, \[x0, #544\] + 21bc: b9022400 str w0, \[x0, #548\] + 21c0: b9021c00 str w0, \[x0, #540\] + 21c4: b90ffc00 str w0, \[x0, #4092\] + 21c8: f9000800 str x0, \[x0, #16\] + 21cc: f9000c00 str x0, \[x0, #24\] + 21d0: f9000400 str x0, \[x0, #8\] + 21d4: f9011000 str x0, \[x0, #544\] + 21d8: f9011400 str x0, \[x0, #552\] + 21dc: f9010c00 str x0, \[x0, #536\] + 21e0: f907fc00 str x0, \[x0, #4088\] + 21e4: 3d800400 str q0, \[x0, #16\] + 21e8: 3d800800 str q0, \[x0, #32\] + 21ec: 3d800000 str q0, \[x0\] + 21f0: 3d808800 str q0, \[x0, #544\] + 21f4: 3d808c00 str q0, \[x0, #560\] + 21f8: 3d808400 str q0, \[x0, #528\] + 21fc: 3d83fc00 str q0, \[x0, #4080\] + 2200: 91004000 add x0, x0, #0x10 + 2204: 91004400 add x0, x0, #0x11 + 2208: 91003c00 add x0, x0, #0xf + 220c: 91088000 add x0, x0, #0x220 + 2210: 91088400 add x0, x0, #0x221 + 2214: 91087c00 add x0, x0, #0x21f + 2218: 913ffc00 add x0, x0, #0xfff + +000000000000221c <.text>: + 221c: 00000000 udf #0 + +0000000000002220 : + 2220: 9abcdef0 .inst 0x9abcdef0 ; undefined + 2224: 12345678 and w24, w19, #0xfffff003 + +0000000000002228 <__CTOR_LIST__>: + 2228: ffffffff .inst 0xffffffff ; undefined + 222c: ffffffff .inst 0xffffffff ; undefined + ... + +0000000000002238 <__DTOR_LIST__>: + 2238: ffffffff .inst 0xffffffff ; undefined + 223c: ffffffff .inst 0xffffffff ; undefined + ... diff --git a/ld/testsuite/ld-pe/aarch64a.s b/ld/testsuite/ld-pe/aarch64a.s new file mode 100644 index 00000000000..58b8f5a00c0 --- /dev/null +++ b/ld/testsuite/ld-pe/aarch64a.s @@ -0,0 +1,159 @@ +.text + +.dword 0 +.dword 0 + +# 2010 +.global foo +foo: + +# 4-byte literal +.long 0x12345678 +.word 0x12345678 + +# IMAGE_REL_ARM64_ADDR32 (BFD_RELOC_32) +.long foo +.word foo +.long bar +.word bar +.long foo + 1 +.word foo + 1 +.long bar + 1 +.word bar + 1 +.long foo - 1 +.word foo - 1 +.long bar - 1 +.word bar - 1 + +# 8-byte literal +.dword 0x123456789abcdef0 +.xword 0x123456789abcdef0 + +# IMAGE_REL_ARM64_ADDR64 (BFD_RELOC_64) +.dword foo +.xword foo +.dword bar +.xword bar +.dword foo + 1 +.xword foo + 1 +.dword bar + 1 +.xword bar + 1 +.dword foo - 1 +.xword foo - 1 +.dword bar - 1 +.xword bar - 1 + +# IMAGE_REL_ARM64_ADDR32NB (BFD_RELOC_RVA) +.rva foo +.rva bar +.rva foo + 1 +.rva bar + 1 +.rva foo - 1 +.rva bar - 1 + +# IMAGE_REL_ARM64_BRANCH26 (BFD_RELOC_AARCH64_JUMP26) +b foo +b foo + 4 +b foo - 4 +b bar +b bar + 4 +b bar - 4 + +# IMAGE_REL_ARM64_BRANCH26 (BFD_RELOC_AARCH64_CALL26) +bl foo +bl foo + 4 +bl foo - 4 +bl bar +bl bar + 4 +bl bar - 4 +bl .text - 4 + +# IMAGE_REL_ARM64_BRANCH19 (BFD_RELOC_AARCH64_BRANCH19) +cbz x0, foo +cbz x0, foo + 4 +cbz x0, foo - 4 +cbz x0, bar +cbz x0, bar + 4 +cbz x0, bar - 4 +cbz x0, .text - 4 + +# IMAGE_REL_ARM64_BRANCH14 (BFD_RELOC_AARCH64_TSTBR14) +tbz x0, 0, foo +tbz x0, 0, foo + 4 +tbz x0, 0, foo - 4 +tbz x0, 0, bar +tbz x0, 0, bar + 4 +tbz x0, 0, bar - 4 +tbz x0, 0, .text - 4 + +# IMAGE_REL_ARM64_PAGEBASE_REL21 (BFD_RELOC_AARCH64_ADR_HI21_PCREL) +adrp x0, foo +adrp x0, foo + 1 +adrp x0, foo - 1 +adrp x0, bar +adrp x0, bar + 1 +adrp x0, bar - 1 +adrp x0, .text - 4 + +# IMAGE_REL_ARM64_REL21 (BFD_RELOC_AARCH64_ADR_LO21_PCREL) +adr x0, foo +adr x0, foo + 1 +adr x0, foo - 1 +adr x0, bar +adr x0, bar + 1 +adr x0, bar - 1 +adr x0, .text - 1 + +# IMAGE_REL_ARM64_PAGEOFFSET_12L (BFD_RELOC_AARCH64_LDST8_LO12) +strb w0, [x0,:lo12:foo] +strb w0, [x0,:lo12:foo + 4] +strb w0, [x0,:lo12:foo - 4] +strb w0, [x0,:lo12:bar] +strb w0, [x0,:lo12:bar + 4] +strb w0, [x0,:lo12:bar - 4] +strb w0, [x0,:lo12:.text - 4] + +# IMAGE_REL_ARM64_PAGEOFFSET_12L (BFD_RELOC_AARCH64_LDST16_LO12) +strh w0, [x0,:lo12:foo] +strh w0, [x0,:lo12:foo + 4] +strh w0, [x0,:lo12:foo - 4] +strh w0, [x0,:lo12:bar] +strh w0, [x0,:lo12:bar + 4] +strh w0, [x0,:lo12:bar - 4] +strh w0, [x0,:lo12:.text - 4] + +# IMAGE_REL_ARM64_PAGEOFFSET_12L (BFD_RELOC_AARCH64_LDST32_LO12) +str w0, [x0,:lo12:foo] +str w0, [x0,:lo12:foo + 4] +str w0, [x0,:lo12:foo - 4] +str w0, [x0,:lo12:bar] +str w0, [x0,:lo12:bar + 4] +str w0, [x0,:lo12:bar - 4] +str w0, [x0,:lo12:.text - 4] + +# IMAGE_REL_ARM64_PAGEOFFSET_12L (BFD_RELOC_AARCH64_LDST64_LO12) +str x0, [x0,:lo12:foo] +str x0, [x0,:lo12:foo + 8] +str x0, [x0,:lo12:foo - 8] +str x0, [x0,:lo12:bar] +str x0, [x0,:lo12:bar + 8] +str x0, [x0,:lo12:bar - 8] +str x0, [x0,:lo12:.text - 8] + +# IMAGE_REL_ARM64_PAGEOFFSET_12L (BFD_RELOC_AARCH64_LDST128_LO12) +str q0, [x0,:lo12:foo] +str q0, [x0,:lo12:foo + 16] +str q0, [x0,:lo12:foo - 16] +str q0, [x0,:lo12:bar] +str q0, [x0,:lo12:bar + 16] +str q0, [x0,:lo12:bar - 16] +str q0, [x0,:lo12:.text - 16] + +# IMAGE_REL_ARM64_PAGEOFFSET_12A (BFD_RELOC_AARCH64_ADD_LO12) +add x0, x0, #:lo12:foo +add x0, x0, #:lo12:foo + 1 +add x0, x0, #:lo12:foo - 1 +add x0, x0, #:lo12:bar +add x0, x0, #:lo12:bar + 1 +add x0, x0, #:lo12:bar - 1 +add x0, x0, #:lo12:.text - 1 diff --git a/ld/testsuite/ld-pe/aarch64b.s b/ld/testsuite/ld-pe/aarch64b.s new file mode 100644 index 00000000000..3f4ec48f724 --- /dev/null +++ b/ld/testsuite/ld-pe/aarch64b.s @@ -0,0 +1,8 @@ +.text + +.long 0 + +# 2220 +.global bar +bar: +.dword 0x123456789abcdef0 diff --git a/ld/testsuite/ld-pe/pe.exp b/ld/testsuite/ld-pe/pe.exp index d8595ee61e8..80019a48778 100644 --- a/ld/testsuite/ld-pe/pe.exp +++ b/ld/testsuite/ld-pe/pe.exp @@ -79,9 +79,15 @@ if {[istarget i*86-*-cygwin*] } if {[istarget "aarch64-*-pe*"]} { - run_dump_test "pe-aarch64" -} + run_dump_test "pe-aarch64" + + set pe_tests { + {"aarch64" "--image-base 0x1000" "" "" {aarch64a.s aarch64b.s} + {{objdump -dr aarch64.d}} "aarch64.x"} + } + run_ld_link_tests $pe_tests +} run_dump_test "image_size" run_dump_test "export_dynamic_warning" From patchwork Fri Dec 30 02:40:53 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Mark Harmstone X-Patchwork-Id: 37553 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:4e01:0:0:0:0:0 with SMTP id p1csp2692543wrt; Thu, 29 Dec 2022 18:43:35 -0800 (PST) X-Google-Smtp-Source: AMrXdXsNZrYwT0VNF5Z5UObtSdMZncqXtuDSb7MnpVW1j3ks33CtMMk/hF6LXQ76J/5fHXhWv0/w X-Received: by 2002:a17:907:2155:b0:7c0:c1cf:f9e8 with SMTP id rk21-20020a170907215500b007c0c1cff9e8mr31178763ejb.30.1672368215673; Thu, 29 Dec 2022 18:43:35 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1672368215; cv=none; d=google.com; s=arc-20160816; b=lHLcWry74Ka0CyqRhfm0G+p53z47B4uGUoXdOB+JQHmXOgtrXFtIJKD1Mlw50kJTwq KL+SATRTwKOVnkv3td2H4KHwNoKZY0OO7ZJPghBSjwRRJHLgEHEnz5xIwP/OUor3HmRF Hv/DHXsZW8snlJA/WGUXEt8yv/jwLb9o6Qut8kG+eJbZQpD3jcVDE6Bp7diemJHFPyi9 KMvDUtO+8EWbAJyU+BAzOyYL5my5baKj5EAiAoGLlpCHxmXhebWBdlOh3LHknkISPDoi mgBhEC+9MLKJRn2Q9hITL0HyLQywCvqa5+qqikRu54lR7QY+bEgJX8LkeZzgff/o0Jxu zmeg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:list-subscribe:list-help:list-post:list-archive :list-unsubscribe:list-id:precedence:content-transfer-encoding :mime-version:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature:dmarc-filter:delivered-to; bh=zVp96aEv7pWcDol7R4+/6eCZKHbbwP07ngDjmm8lb3A=; b=BsitLvlapHVxI7G1azG9yqBLDH/U++ydbTcZwYXJ5lhqCIJWQQ/d+k+CgU9zROI1pa BzhcUuvF8smV4C7i5QqApwINtCTKyj1fRIV5XenXbVSGpdh+60Ch9v1Wi8G/OZrwmq+D C/WQ3d5qV03/qrT6gpGkAZc2Uev6AUxeBtW0r2zRpqw+v7oQubB6m8ZBQslwvV0Ay/5H CxLyxtymMq/B+sMNHN+dErjUfL3yg6SisgTurCGmNnM7IJp5cjnNXmRamXmxRfNc74yA oRUKhzYlGsAY105T73Yvm24xnQIeJnauXaWd+vlQPZrVPaEuOSrgqDyk+N9djRP2CCSD LNFw== ARC-Authentication-Results: i=1; mx.google.com; dkim=fail header.i=@gmail.com header.s=20210112 header.b="fryd/x5K"; spf=pass (google.com: domain of binutils-bounces+ouuuleilei=gmail.com@sourceware.org designates 8.43.85.97 as permitted sender) smtp.mailfrom="binutils-bounces+ouuuleilei=gmail.com@sourceware.org" Received: from sourceware.org (server2.sourceware.org. [8.43.85.97]) by mx.google.com with ESMTPS id wu10-20020a170906eeca00b007aac98ec3dfsi17138792ejb.303.2022.12.29.18.43.35 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 29 Dec 2022 18:43:35 -0800 (PST) Received-SPF: pass (google.com: domain of binutils-bounces+ouuuleilei=gmail.com@sourceware.org designates 8.43.85.97 as permitted sender) client-ip=8.43.85.97; Authentication-Results: mx.google.com; dkim=fail header.i=@gmail.com header.s=20210112 header.b="fryd/x5K"; spf=pass (google.com: domain of binutils-bounces+ouuuleilei=gmail.com@sourceware.org designates 8.43.85.97 as permitted sender) smtp.mailfrom="binutils-bounces+ouuuleilei=gmail.com@sourceware.org" Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id B51023887F5B for ; Fri, 30 Dec 2022 02:41:51 +0000 (GMT) X-Original-To: binutils@sourceware.org Delivered-To: binutils@sourceware.org Received: from mail-wm1-x32a.google.com (mail-wm1-x32a.google.com [IPv6:2a00:1450:4864:20::32a]) by sourceware.org (Postfix) with ESMTPS id 90DAF3858426 for ; Fri, 30 Dec 2022 02:41:03 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 90DAF3858426 Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=harmstone.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=gmail.com Received: by mail-wm1-x32a.google.com with SMTP id b24-20020a05600c4a9800b003d21efdd61dso14424735wmp.3 for ; Thu, 29 Dec 2022 18:41:03 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:sender:from:to:cc:subject:date :message-id:reply-to; bh=zVp96aEv7pWcDol7R4+/6eCZKHbbwP07ngDjmm8lb3A=; b=fryd/x5KQUCd+cVKQz55c75FNc6BC0uqR5oBhSFAKbqpaNnkXyDJXs6DXZCjOo6i0T KWgfHZPkDgFhA/4sb1YKpjIrAFdAiw4qyART0Vep3G5LKSEHGwz8d9/gez7w6cKyzfas WBXITNvbNUCIXescWrSmHUXSMsJM9hwsHM7f1d9zR7HflWuCgAfyIHhADm03+I0SigIH VQ3Ne413UwUuqAHnlBXq/v3zxBfWdSIXliKhpma1WQ3j+Knuw+tPb6IlDwYLjLgYKaj0 qoc+Km0FIQy+nHErT3RbI4kfoDa0HiYdtcY5ZzvsaR6+qeLYEzthxtz2xVOySOrbWN0X NmvA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:sender:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=zVp96aEv7pWcDol7R4+/6eCZKHbbwP07ngDjmm8lb3A=; b=LRpk5Njy+YvuYP8St/FLxspYNGIF/VJ8X+hrGhzm5bqt//8I+NPRAr1iz6CvcO2Czc G6mw5zCVGd5vHQByuW2l0RW5fn8x5RSOWJCBIzgMYlMVsu3a/OY5EcJHbquecbVxIw3f KXgQkP+3C2fC87dSaWusrt7TksZ+0JW5aUxFEk1OUFBDlHQOti9MojDhz/pwYc51CgCj i2q4wh6G6EjPa/x0QfpRBivrc0YclLXl0Su/QDy+HcX6qRLA6HwZmllWgVP9wvOCo0lw YiqUfmikmjpxYOOQJjZBCx6cbw7RKU7dtxqzcZpOSAMIGolkAt+HpStbhgoENcNzfg7v tFuA== X-Gm-Message-State: AFqh2koPePvDUpxHgJBoKsvmXOwV6XVK1glWv6mhXMsUKD9lllnFeJL3 TosaUsfscrhe4Yj9XJ/xrFk= X-Received: by 2002:a05:600c:41c2:b0:3d3:5565:3617 with SMTP id t2-20020a05600c41c200b003d355653617mr24827857wmh.24.1672368063279; Thu, 29 Dec 2022 18:41:03 -0800 (PST) Received: from beren.harmstone.com ([2a02:8010:64ea:0:8eb8:7eff:fe53:9d5f]) by smtp.gmail.com with ESMTPSA id t17-20020a05600c199100b003d99da8d30asm3726287wmq.46.2022.12.29.18.41.02 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 29 Dec 2022 18:41:02 -0800 (PST) From: Mark Harmstone To: wej22007@outlook.com, zac.walker@linaro.org, tamar.christina@arm.com, binutils@sourceware.org Cc: Mark Harmstone Subject: [PATCH 6/8] Add .secrel32 for pe-aarch64 Date: Fri, 30 Dec 2022 02:40:53 +0000 Message-Id: <20221230024055.31841-6-mark@harmstone.com> X-Mailer: git-send-email 2.37.4 In-Reply-To: <20221230024055.31841-1-mark@harmstone.com> References: <20221230024055.31841-1-mark@harmstone.com> MIME-Version: 1.0 X-Spam-Status: No, score=-11.1 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_EF, FREEMAIL_FORGED_FROMDOMAIN, FREEMAIL_FROM, GIT_PATCH_0, HEADER_FROM_DIFFERENT_DOMAINS, KAM_NUMSUBJECT, RCVD_IN_DNSWL_NONE, 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 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: , 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?1753605174486200742?= X-GMAIL-MSGID: =?utf-8?q?1753605174486200742?= --- bfd/coff-aarch64.c | 47 +++++++++++++++++++++++- gas/config/tc-aarch64.c | 75 +++++++++++++++++++++++++++++---------- gas/config/tc-aarch64.h | 4 +++ ld/testsuite/ld-pe/pe.exp | 2 ++ 4 files changed, 108 insertions(+), 20 deletions(-) diff --git a/bfd/coff-aarch64.c b/bfd/coff-aarch64.c index b63e21514b2..7f6511c82cb 100644 --- a/bfd/coff-aarch64.c +++ b/bfd/coff-aarch64.c @@ -267,6 +267,20 @@ coff_aarch64_addr32nb_reloc (bfd *abfd ATTRIBUTE_UNUSED, return bfd_reloc_ok; } +static bfd_reloc_status_type +coff_aarch64_secrel_reloc (bfd *abfd ATTRIBUTE_UNUSED, + arelent *reloc_entry, + asymbol *symbol ATTRIBUTE_UNUSED, + void *data, + asection *input_section ATTRIBUTE_UNUSED, + bfd *output_bfd ATTRIBUTE_UNUSED, + char **error_message ATTRIBUTE_UNUSED) +{ + bfd_putl32 (reloc_entry->addend, data + reloc_entry->address); + + return bfd_reloc_ok; +} + /* In case we're on a 32-bit machine, construct a 64-bit "-1" value. */ #define MINUS_ONE (~ (bfd_vma) 0) @@ -330,6 +344,11 @@ static const reloc_howto_type arm64_reloc_howto_32nb = HOWTO (IMAGE_REL_ARM64_AD coff_aarch64_addr32nb_reloc, "IMAGE_REL_ARM64_ADDR32NB", false, 0xffffffff, 0xffffffff, false); +static const reloc_howto_type arm64_reloc_howto_secrel = HOWTO (IMAGE_REL_ARM64_SECREL, 0, 4, 32, false, 0, + complain_overflow_bitfield, + coff_aarch64_secrel_reloc, "IMAGE_REL_ARM64_SECREL", + false, 0xffffffff, 0xffffffff, false); + static const reloc_howto_type* const arm64_howto_table[] = { &arm64_reloc_howto_abs, &arm64_reloc_howto_64, @@ -342,7 +361,8 @@ static const reloc_howto_type* const arm64_howto_table[] = { &arm64_reloc_howto_branch19, &arm64_reloc_howto_branch14, &arm64_reloc_howto_pgoff12a, - &arm64_reloc_howto_32nb + &arm64_reloc_howto_32nb, + &arm64_reloc_howto_secrel }; #ifndef NUM_ELEM @@ -387,6 +407,8 @@ coff_aarch64_reloc_type_lookup (bfd * abfd ATTRIBUTE_UNUSED, bfd_reloc_code_real return &arm64_reloc_howto_branch19; case BFD_RELOC_RVA: return &arm64_reloc_howto_32nb; + case BFD_RELOC_32_SECREL: + return &arm64_reloc_howto_secrel; default: BFD_FAIL (); return NULL; @@ -441,6 +463,8 @@ coff_aarch64_rtype_lookup (unsigned int code) return &arm64_reloc_howto_pgoff12a; case IMAGE_REL_ARM64_ADDR32NB: return &arm64_reloc_howto_32nb; + case IMAGE_REL_ARM64_SECREL: + return &arm64_reloc_howto_secrel; default: BFD_FAIL (); return NULL; @@ -811,6 +835,27 @@ coff_pe_aarch64_relocate_section (bfd *output_bfd, break; } + case IMAGE_REL_ARM64_SECREL: + { + uint64_t val; + int32_t addend; + + addend = bfd_getl32 (contents + rel->r_vaddr); + + val = sec->output_offset + sym_value + addend; + + if (val > 0xffffffff) + (*info->callbacks->reloc_overflow) + (info, h ? &h->root : NULL, syms[symndx]._n._n_name, + "IMAGE_REL_ARM64_SECREL", addend, input_bfd, + input_section, rel->r_vaddr - input_section->vma); + + bfd_putl32 (val, contents + rel->r_vaddr); + rel->r_type = IMAGE_REL_ARM64_ABSOLUTE; + + break; + } + default: info->callbacks->einfo (_("%F%P: Unhandled relocation type %u\n"), rel->r_type); diff --git a/gas/config/tc-aarch64.c b/gas/config/tc-aarch64.c index a50cdb019e6..a72b96ffca7 100644 --- a/gas/config/tc-aarch64.c +++ b/gas/config/tc-aarch64.c @@ -2097,6 +2097,27 @@ s_tlsdescldr (int ignored ATTRIBUTE_UNUSED) } #endif /* OBJ_ELF */ +#ifdef TE_PE +static void +s_secrel (int dummy ATTRIBUTE_UNUSED) +{ + expressionS exp; + + do + { + expression (&exp); + if (exp.X_op == O_symbol) + exp.X_op = O_secrel; + + emit_expr (&exp, 4); + } + while (*input_line_pointer++ == ','); + + input_line_pointer--; + demand_empty_rest_of_line (); +} +#endif /* TE_PE */ + static void s_aarch64_arch (int); static void s_aarch64_cpu (int); static void s_aarch64_arch_extension (int); @@ -2131,6 +2152,9 @@ const pseudo_typeS md_pseudo_table[] = { {"long", s_aarch64_cons, 4}, {"xword", s_aarch64_cons, 8}, {"dword", s_aarch64_cons, 8}, +#endif +#ifdef TE_PE + {"secrel32", s_secrel, 0}, #endif {"float16", float_cons, 'h'}, {"bfloat16", float_cons, 'b'}, @@ -9268,6 +9292,7 @@ md_apply_fix (fixS * fixP, valueT * valP, segT seg) break; case BFD_RELOC_RVA: + case BFD_RELOC_32_SECREL: break; default: @@ -9353,27 +9378,39 @@ cons_fix_new_aarch64 (fragS * frag, int where, int size, expressionS * exp) bfd_reloc_code_real_type type; int pcrel = 0; - /* Pick a reloc. - FIXME: @@ Should look at CPU word size. */ - switch (size) +#ifdef TE_PE + if (exp->X_op == O_secrel) { - case 1: - type = BFD_RELOC_8; - break; - case 2: - type = BFD_RELOC_16; - break; - case 4: - type = BFD_RELOC_32; - break; - case 8: - type = BFD_RELOC_64; - break; - default: - as_bad (_("cannot do %u-byte relocation"), size); - type = BFD_RELOC_UNUSED; - break; + exp->X_op = O_symbol; + type = BFD_RELOC_32_SECREL; } + else + { +#endif + /* Pick a reloc. + FIXME: @@ Should look at CPU word size. */ + switch (size) + { + case 1: + type = BFD_RELOC_8; + break; + case 2: + type = BFD_RELOC_16; + break; + case 4: + type = BFD_RELOC_32; + break; + case 8: + type = BFD_RELOC_64; + break; + default: + as_bad (_("cannot do %u-byte relocation"), size); + type = BFD_RELOC_UNUSED; + break; + } +#ifdef TE_PE + } +#endif fix_new_exp (frag, where, (int) size, exp, pcrel, type); } diff --git a/gas/config/tc-aarch64.h b/gas/config/tc-aarch64.h index 7a9a4e77bff..5f82dd23824 100644 --- a/gas/config/tc-aarch64.h +++ b/gas/config/tc-aarch64.h @@ -314,4 +314,8 @@ extern void aarch64_handle_align (struct frag *); extern int tc_aarch64_regname_to_dw2regnum (char *regname); extern void tc_aarch64_frame_initial_instructions (void); +#ifdef TE_PE +#define O_secrel O_md1 +#endif /* TE_PE */ + #endif /* TC_AARCH64 */ diff --git a/ld/testsuite/ld-pe/pe.exp b/ld/testsuite/ld-pe/pe.exp index 80019a48778..83b20d0da45 100644 --- a/ld/testsuite/ld-pe/pe.exp +++ b/ld/testsuite/ld-pe/pe.exp @@ -84,6 +84,8 @@ if {[istarget "aarch64-*-pe*"]} { set pe_tests { {"aarch64" "--image-base 0x1000" "" "" {aarch64a.s aarch64b.s} {{objdump -dr aarch64.d}} "aarch64.x"} + {".secrel32" "--disable-reloc-section" "" "" {secrel1.s secrel2.s} + {{objdump -s secrel_64.d}} "secrel.x"} } run_ld_link_tests $pe_tests From patchwork Fri Dec 30 02:40:54 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Mark Harmstone X-Patchwork-Id: 37555 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:4e01:0:0:0:0:0 with SMTP id p1csp2693137wrt; Thu, 29 Dec 2022 18:45:32 -0800 (PST) X-Google-Smtp-Source: AMrXdXu+Mbvx0VHwFksf90wtGD+LlIS4TYtJEk3eoqYB7naPL2ONn9XoHI/IBb330JFRgNikS58A X-Received: by 2002:a17:907:8e93:b0:7ae:bfec:74c7 with SMTP id tx19-20020a1709078e9300b007aebfec74c7mr26552901ejc.72.1672368332672; Thu, 29 Dec 2022 18:45:32 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1672368332; cv=none; d=google.com; s=arc-20160816; b=cfxHDCXZJhUJVUWvHrg1B8f56oLzxk4aXfnmMuuKnnOE3y6fMvVQnOgieUE9bZA3zg 8lnD/PsTw0VtriLJ/ay7Mxliyyxos8UYngO1lUBpBopyT2DqB1CJzV9SNtMpw0oUGM8D 2vyIEvAOUgR3iB72mFFphKGBP2baVbWPK6YKYhsF2WF6602R8RWMsJmd1opnGP/FpAY0 SnQaMnB1523ntyxhto5HTaSx8hIZCAlP00wga+We5bcqKhY1g0FPIAwq0d8N9GmYiyZy e0iciSBipshYfqErH+jwgm+VCL/7xxKwVnlWcj34JwfZEG1/XCGhYpxkax5NkweIGVIT MOzQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:list-subscribe:list-help:list-post:list-archive :list-unsubscribe:list-id:precedence:content-transfer-encoding :mime-version:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature:dmarc-filter:delivered-to; bh=ikh63ou9Fgbi5KkOAT62iEXdYU8iy7phT5TtIt2RC88=; b=gr+VA13+4K9D7qK8t27FwUfivTKb8maW2D2Quf/hHyRrXJQ3VaekUJxDuVkIJIvEcc 4p2Gwsujp1sR6XYAS37QKoZyaAcW9QVwGx5KJFoUa/KP6dMzoW3N3AFowwJRrgegpCpY RFy/Nt5bto14kUrK7n0KH6dPmBrlsUf5m7L7x0iZJfwPZCdfFqZ61arJOpHrHxC8/e+G bc/A4x33E2+UcRuTC0sbSdJ2AepDnT93VcoI4DbhYj8yEUULUEQW0j9Ge0LmXUgUMj7K qi6aDMt8XJQH1h8DnH6GXFmYBnik/FCiqC5UvEXtVOek/SbkpLtFNG0iOwdRZqBfr75Y 6+ng== ARC-Authentication-Results: i=1; mx.google.com; dkim=fail header.i=@gmail.com header.s=20210112 header.b=ZI1G1ELk; 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" Received: from sourceware.org (server2.sourceware.org. [2620:52:3:1:0:246e:9693:128c]) by mx.google.com with ESMTPS id e9-20020a17090658c900b0078d112eaf80si17937617ejs.86.2022.12.29.18.45.32 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 29 Dec 2022 18:45:32 -0800 (PST) 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=fail header.i=@gmail.com header.s=20210112 header.b=ZI1G1ELk; 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" Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id E5EDB3818FC2 for ; Fri, 30 Dec 2022 02:42:35 +0000 (GMT) X-Original-To: binutils@sourceware.org Delivered-To: binutils@sourceware.org Received: from mail-wm1-x32d.google.com (mail-wm1-x32d.google.com [IPv6:2a00:1450:4864:20::32d]) by sourceware.org (Postfix) with ESMTPS id 7DEDD3857C44 for ; Fri, 30 Dec 2022 02:41:05 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 7DEDD3857C44 Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=harmstone.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=gmail.com Received: by mail-wm1-x32d.google.com with SMTP id b24-20020a05600c4a9800b003d21efdd61dso14424748wmp.3 for ; Thu, 29 Dec 2022 18:41:05 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:sender:from:to:cc:subject:date :message-id:reply-to; bh=ikh63ou9Fgbi5KkOAT62iEXdYU8iy7phT5TtIt2RC88=; b=ZI1G1ELkzE9Q7f747bUAN9DwadwEQWDq4oYS9mum5k32vFZPIF24ZvKbFbvuXwYezN Z03FH0STYF7oNqEjgTLoxTORjJLteQL8Ou1+TPoTn0jreIpcxCXU1hd6Owi1vjMFL1J/ L751VqUIxsqOpr88Rf2q3P3u9glMMqPdUTCmRsL4B3SXsqLeARIqildkZQUqAk/zVgrc e8bZoP8xPqRBZHh+h72jiX0AfwElbR4ckLTgUvJRt8hWowCB3UYS6Tx8tWlBhBGtH2rX ZE5eCn7M4XFD80xCbqrYd3N1Ebvd2W8eKVuM2GAsFkZZfleIKC8ButAPnU0F/9QztNOu 8j3Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:sender:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=ikh63ou9Fgbi5KkOAT62iEXdYU8iy7phT5TtIt2RC88=; b=15lU4UooIWCG/CU49bpI9YahoHbsJhTobf6mvOClvo4Lb/g3SoCuWX7RMmx+S2RyDH XIkreIhEMcBVkC9Nr7r+Lyw30Q0FV03UaOtsgBtDNT4Mbr96hh8DT+vF7kcaAa/eRPfX 2pVWKNElecktrZw+9/EkW0i3IqDEFqGcr73afRs3MaQua5tCllY0DqoWtOCAyW8cfwtS U/hFJRR2LhE14NY9rrADNKDNWNg+PrhJcnEj7VVaEMHog801ZpuFRIrcsHkFlmxytHo2 kTQ9K1eGlXHLi26Y8BGnHe7GqzHqqYcYkn1zyIB+POWqDwhTM3rqGVBwG6SnzWZwsV4/ +k9w== X-Gm-Message-State: AFqh2kpCV4BDPmh3ks57B4rGNT4e52/lt4NQc6nXDBgUctMUu20qM1C1 MBXIaooFNCNLqbMBImz0XiI= X-Received: by 2002:a05:600c:1c20:b0:3d2:2f48:9443 with SMTP id j32-20020a05600c1c2000b003d22f489443mr21093393wms.15.1672368064303; Thu, 29 Dec 2022 18:41:04 -0800 (PST) Received: from beren.harmstone.com ([2a02:8010:64ea:0:8eb8:7eff:fe53:9d5f]) by smtp.gmail.com with ESMTPSA id t17-20020a05600c199100b003d99da8d30asm3726287wmq.46.2022.12.29.18.41.03 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 29 Dec 2022 18:41:03 -0800 (PST) From: Mark Harmstone To: wej22007@outlook.com, zac.walker@linaro.org, tamar.christina@arm.com, binutils@sourceware.org Cc: Mark Harmstone Subject: [PATCH 7/8] Add aarch64-w64-mingw32 target Date: Fri, 30 Dec 2022 02:40:54 +0000 Message-Id: <20221230024055.31841-7-mark@harmstone.com> X-Mailer: git-send-email 2.37.4 In-Reply-To: <20221230024055.31841-1-mark@harmstone.com> References: <20221230024055.31841-1-mark@harmstone.com> MIME-Version: 1.0 X-Spam-Status: No, score=-11.4 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_EF, FREEMAIL_FORGED_FROMDOMAIN, FREEMAIL_FROM, GIT_PATCH_0, HEADER_FROM_DIFFERENT_DOMAINS, RCVD_IN_DNSWL_NONE, 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 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: , 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?1753605296687790607?= X-GMAIL-MSGID: =?utf-8?q?1753605296687790607?= --- bfd/config.bfd | 4 +-- bfd/peicode.h | 2 +- binutils/configure | 10 ++++++ binutils/configure.ac | 10 ++++++ binutils/dlltool.c | 57 +++++++++++++++++++++++++++++--- binutils/rescoff.c | 3 ++ gas/configure.tgt | 2 +- gas/testsuite/gas/pe/pe.exp | 2 +- ld/configure.tgt | 4 +-- ld/emultempl/pep.em | 11 +++--- ld/pe-dll.c | 12 +++---- ld/testsuite/ld-pe/pe-aarch64.d | 13 ++++++-- ld/testsuite/ld-pe/pe.exp | 2 +- ld/testsuite/ld-scripts/weak.exp | 1 + 14 files changed, 109 insertions(+), 24 deletions(-) diff --git a/bfd/config.bfd b/bfd/config.bfd index 92a6cff938b..de1c4cd4fd7 100644 --- a/bfd/config.bfd +++ b/bfd/config.bfd @@ -249,9 +249,9 @@ case "${targ}" in targ_selvecs="aarch64_elf64_be_vec aarch64_elf32_le_vec aarch64_elf32_be_vec arm_elf32_le_vec arm_elf32_be_vec aarch64_pei_le_vec aarch64_pe_le_vec" want64=true ;; - aarch64-*-pe*) + aarch64-*-pe* | aarch64-*-mingw*) targ_defvec=aarch64_pe_le_vec - targ_selvecs="aarch64_pe_le_vec aarch64_pei_le_vec" + targ_selvecs="aarch64_pe_le_vec aarch64_pei_le_vec aarch64_elf64_le_vec aarch64_elf64_be_vec aarch64_elf32_le_vec aarch64_elf32_be_vec arm_elf32_le_vec arm_elf32_be_vec pdb_vec" want64=true targ_underscore=no ;; diff --git a/bfd/peicode.h b/bfd/peicode.h index f7ba24ae10a..26e95dc1f1b 100644 --- a/bfd/peicode.h +++ b/bfd/peicode.h @@ -440,7 +440,7 @@ pe_bfd_copy_private_bfd_data (bfd *ibfd, bfd *obfd) #define SIZEOF_IDATA2 (5 * 4) /* For PEx64 idata4 & 5 have thumb size of 8 bytes. */ -#ifdef COFF_WITH_pex64 +#if defined(COFF_WITH_pex64) || defined(COFF_WITH_peAArch64) #define SIZEOF_IDATA4 (2 * 4) #define SIZEOF_IDATA5 (2 * 4) #else diff --git a/binutils/configure b/binutils/configure index 5a3e5017b46..a88b66dae8f 100755 --- a/binutils/configure +++ b/binutils/configure @@ -14578,6 +14578,16 @@ do esac case $targ in + aarch64-*-mingw*) + BUILD_DLLTOOL='$(DLLTOOL_PROG)$(EXEEXT)' + if test -z "$DLLTOOL_DEFAULT"; then + DLLTOOL_DEFAULT="-DDLLTOOL_DEFAULT_AARCH64" + fi + DLLTOOL_DEFS="$DLLTOOL_DEFS -DDLLTOOL_AARCH64" + BUILD_WINDRES='$(WINDRES_PROG)$(EXEEXT)' + BUILD_WINDMC='$(WINDMC_PROG)$(EXEEXT)' + BUILD_DLLWRAP='$(DLLWRAP_PROG)$(EXEEXT)' + ;; arm-wince-pe* | arm-*-wince | arm*-*-cegcc* | arm*-*-mingw32ce*) BUILD_DLLTOOL='$(DLLTOOL_PROG)$(EXEEXT)' if test -z "$DLLTOOL_DEFAULT"; then diff --git a/binutils/configure.ac b/binutils/configure.ac index 6243a2b0c2d..b51aeb9f38f 100644 --- a/binutils/configure.ac +++ b/binutils/configure.ac @@ -355,6 +355,16 @@ do esac case $targ in + aarch64-*-mingw*) + BUILD_DLLTOOL='$(DLLTOOL_PROG)$(EXEEXT)' + if test -z "$DLLTOOL_DEFAULT"; then + DLLTOOL_DEFAULT="-DDLLTOOL_DEFAULT_AARCH64" + fi + DLLTOOL_DEFS="$DLLTOOL_DEFS -DDLLTOOL_AARCH64" + BUILD_WINDRES='$(WINDRES_PROG)$(EXEEXT)' + BUILD_WINDMC='$(WINDMC_PROG)$(EXEEXT)' + BUILD_DLLWRAP='$(DLLWRAP_PROG)$(EXEEXT)' + ;; arm-wince-pe* | arm-*-wince | arm*-*-cegcc* | arm*-*-mingw32ce*) BUILD_DLLTOOL='$(DLLTOOL_PROG)$(EXEEXT)' if test -z "$DLLTOOL_DEFAULT"; then diff --git a/binutils/dlltool.c b/binutils/dlltool.c index a3c5e0f778e..c9c53919dbf 100644 --- a/binutils/dlltool.c +++ b/binutils/dlltool.c @@ -442,6 +442,11 @@ static const char *mname = "arm"; static const char *mname = "arm-wince"; #endif +#ifdef DLLTOOL_DEFAULT_AARCH64 +/* arm64 rather than aarch64 to match llvm-dlltool */ +static const char *mname = "arm64"; +#endif + #ifdef DLLTOOL_DEFAULT_I386 static const char *mname = "i386"; #endif @@ -560,6 +565,14 @@ static const unsigned char mcore_le_jtab[] = 0x00, 0x00, 0x00, 0x00 /*
*/ }; +static const unsigned char aarch64_jtab[] = +{ + 0x10, 0x00, 0x00, 0x90, /* adrp x16, 0 */ + 0x10, 0x02, 0x00, 0x91, /* add x16, x16, #0x0 */ + 0x10, 0x02, 0x40, 0xf9, /* ldr x16, [x16] */ + 0x00, 0x02, 0x1f, 0xd6 /* br x16 */ +}; + static const char i386_trampoline[] = "\tpushl %%ecx\n" "\tpushl %%edx\n" @@ -717,6 +730,15 @@ mtable[] = i386_x64_dljtab, sizeof (i386_x64_dljtab), 2, 9, 14, true, i386_x64_trampoline } , + { +#define MAARCH64 10 + "arm64", ".byte", ".short", ".long", ".asciz", "//", + "bl ", ".global", ".space", ".balign\t2", ".balign\t4", "", + "pe-aarch64-little", bfd_arch_aarch64, + aarch64_jtab, sizeof (aarch64_jtab), 0, + 0, 0, 0, 0, 0, false, 0 + } + , { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }; @@ -864,6 +886,7 @@ rvaafter (int mach) case MMCORE_ELF: case MMCORE_ELF_LE: case MARM_WINCE: + case MAARCH64: break; default: /* xgettext:c-format */ @@ -888,6 +911,7 @@ rvabefore (int mach) case MMCORE_ELF: case MMCORE_ELF_LE: case MARM_WINCE: + case MAARCH64: return ".rva\t"; default: /* xgettext:c-format */ @@ -910,6 +934,7 @@ asm_prefix (int mach, const char *name) case MMCORE_ELF: case MMCORE_ELF_LE: case MARM_WINCE: + case MAARCH64: break; case M386: case MX86: @@ -2474,6 +2499,8 @@ make_one_lib_file (export_type *exp, int i, int delay) case TEXT: if (! exp->data) { + unsigned int rpp_len; + si->size = HOW_JTAB_SIZE; si->data = xmalloc (HOW_JTAB_SIZE); memcpy (si->data, HOW_JTAB, HOW_JTAB_SIZE); @@ -2481,7 +2508,12 @@ make_one_lib_file (export_type *exp, int i, int delay) /* Add the reloc into idata$5. */ rel = xmalloc (sizeof (arelent)); - rpp = xmalloc (sizeof (arelent *) * (delay ? 4 : 2)); + rpp_len = delay ? 4 : 2; + + if (machine == MAARCH64) + rpp_len++; + + rpp = xmalloc (sizeof (arelent *) * rpp_len); rpp[0] = rel; rpp[1] = 0; @@ -2507,6 +2539,22 @@ make_one_lib_file (export_type *exp, int i, int delay) BFD_RELOC_32_PCREL); rel->sym_ptr_ptr = iname_pp; } + else if (machine == MAARCH64) + { + arelent *rel_add; + + rel->howto = bfd_reloc_type_lookup (abfd, BFD_RELOC_AARCH64_ADR_HI21_NC_PCREL); + rel->sym_ptr_ptr = secdata[IDATA5].sympp; + + rel_add = xmalloc (sizeof (arelent)); + rel_add->address = 4; + rel_add->howto = bfd_reloc_type_lookup (abfd, BFD_RELOC_AARCH64_ADD_LO12); + rel_add->sym_ptr_ptr = secdata[IDATA5].sympp; + rel_add->addend = 0; + + rpp[rpp_len - 2] = rel_add; + rpp[rpp_len - 1] = 0; + } else { rel->howto = bfd_reloc_type_lookup (abfd, BFD_RELOC_32); @@ -2527,7 +2575,7 @@ make_one_lib_file (export_type *exp, int i, int delay) } sec->orelocation = rpp; - sec->reloc_count = delay ? 3 : 1; + sec->reloc_count = rpp_len - 1; } break; @@ -3674,7 +3722,7 @@ usage (FILE *file, int status) fprintf (file, _("Usage %s \n"), program_name); /* xgetext:c-format */ fprintf (file, _(" -m --machine Create as DLL for . [default: %s]\n"), mname); - fprintf (file, _(" possible : arm[_interwork], i386, mcore[-elf]{-le|-be}, thumb\n")); + fprintf (file, _(" possible : arm[_interwork], arm64, i386, mcore[-elf]{-le|-be}, thumb\n")); fprintf (file, _(" -e --output-exp Generate an export file.\n")); fprintf (file, _(" -l --output-lib Generate an interface library.\n")); fprintf (file, _(" -y --output-delaylib Create a delay-import library.\n")); @@ -3967,7 +4015,8 @@ main (int ac, char **av) machine = i; /* Check if we generated PE+. */ - create_for_pep = strcmp (mname, "i386:x86-64") == 0; + create_for_pep = strcmp (mname, "i386:x86-64") == 0 || + strcmp (mname, "arm64") == 0; { /* Check the default underscore */ diff --git a/binutils/rescoff.c b/binutils/rescoff.c index 83b08634c7f..1ae02598313 100644 --- a/binutils/rescoff.c +++ b/binutils/rescoff.c @@ -463,6 +463,9 @@ write_coff_file (const char *filename, const char *target, #elif defined DLLTOOL_ARM if (! bfd_set_arch_mach (abfd, bfd_arch_arm, 0)) bfd_fatal ("bfd_set_arch_mach(arm)"); +#elif defined DLLTOOL_AARCH64 + if (! bfd_set_arch_mach (abfd, bfd_arch_aarch64, 0)) + bfd_fatal ("bfd_set_arch_mach(aarch64)"); #else /* FIXME: This is obviously i386 specific. */ if (! bfd_set_arch_mach (abfd, bfd_arch_i386, 0)) diff --git a/gas/configure.tgt b/gas/configure.tgt index 82f2d44f418..ba49003bc80 100644 --- a/gas/configure.tgt +++ b/gas/configure.tgt @@ -135,7 +135,7 @@ case ${generic_target} in esac ;; aarch64*-*-netbsd*) fmt=elf em=nbsd;; aarch64*-*-openbsd*) fmt=elf;; - aarch64*-*-pe*) fmt=coff em=pepaarch64 ;; + aarch64*-*-pe* | aarch64*-*-mingw*) fmt=coff em=pepaarch64 ;; alpha-*-*vms*) fmt=evax ;; alpha-*-osf*) fmt=ecoff ;; alpha-*-linux*ecoff*) fmt=ecoff ;; diff --git a/gas/testsuite/gas/pe/pe.exp b/gas/testsuite/gas/pe/pe.exp index 8df750f9dd0..231cdecb12b 100644 --- a/gas/testsuite/gas/pe/pe.exp +++ b/gas/testsuite/gas/pe/pe.exp @@ -54,7 +54,7 @@ if ([istarget "x86_64-*-mingw*"]) then { # This test is only for AArch64 -if ([istarget "aarch64-*-pe*"]) { +if {[istarget "aarch64-*-pe*"] || [istarget "aarch64-*-mingw*"]} { run_dump_test "pe-aarch64" } diff --git a/ld/configure.tgt b/ld/configure.tgt index 6b833f26248..d8566daf8cf 100644 --- a/ld/configure.tgt +++ b/ld/configure.tgt @@ -118,9 +118,9 @@ aarch64-*-linux*) targ_emul=aarch64linux aarch64-*-haiku*) targ_emul=aarch64haiku targ_extra_emuls="aarch64elf aarch64elf32 aarch64elf32b aarch64elfb armelf armelfb armelf_haiku $targ_extra_libpath" ;; -aarch64-*-pe*) +aarch64-*-pe* | aarch64-*-mingw*) targ_emul=arm64pe - targ_extra_ofiles="deffilep.o pep-dll-aarch64.o" + targ_extra_ofiles="deffilep.o pep-dll-aarch64.o pe-dll.o" ;; alpha*-*-freebsd* | alpha*-*-kfreebsd*-gnu) targ_emul=elf64alpha_fbsd diff --git a/ld/emultempl/pep.em b/ld/emultempl/pep.em index e20339fa874..e5cc15723a4 100644 --- a/ld/emultempl/pep.em +++ b/ld/emultempl/pep.em @@ -106,7 +106,7 @@ fragment <owner, addend); break; + case 26: case 32: suc = bfd_get_section_contents (s->owner, s, addend, rel->address, 4); if (suc && rel->howto->pc_relative) @@ -1541,14 +1542,14 @@ gld${EMULATION_NAME}_after_open (void) if (pep_enable_stdcall_fixup) /* -1=warn or 1=enable */ pep_fixup_stdcalls (); -#ifndef TARGET_IS_i386pep +#if !defined(TARGET_IS_i386pep) && !defined(TARGET_IS_arm64pe) if (bfd_link_pic (&link_info)) #else if (!bfd_link_relocatable (&link_info)) #endif pep_dll_build_sections (link_info.output_bfd, &link_info); -#ifndef TARGET_IS_i386pep +#if !defined(TARGET_IS_i386pep) && !defined(TARGET_IS_arm64pe) else pep_exe_build_sections (link_info.output_bfd, &link_info); #endif @@ -1844,6 +1845,8 @@ gld${EMULATION_NAME}_recognized_file (lang_input_statement_type *entry ATTRIBUTE #ifdef DLL_SUPPORT #ifdef TARGET_IS_i386pep pep_dll_id_target ("pei-x86-64"); +#elif defined(TARGET_IS_arm64pe) + pep_dll_id_target ("pei-aarch64-little"); #endif if (pep_bfd_is_dll (entry->the_bfd)) return pep_implied_import_dll (entry->filename); diff --git a/ld/pe-dll.c b/ld/pe-dll.c index df16e85bbe0..edfcda9cf16 100644 --- a/ld/pe-dll.c +++ b/ld/pe-dll.c @@ -2257,13 +2257,12 @@ static const unsigned char jmp_ix86_bytes[] = 0xff, 0x25, 0x00, 0x00, 0x00, 0x00, 0x90, 0x90 }; -/* _function: - b <__imp_function> - nop */ static const unsigned char jmp_aarch64_bytes[] = { - 0x00, 0x00, 0x00, 0x14, - 0x1f, 0x20, 0x03, 0xD5 + 0x10, 0x00, 0x00, 0x90, /* adrp x16, 0 */ + 0x10, 0x02, 0x00, 0x91, /* add x16, x16, #0x0 */ + 0x10, 0x02, 0x40, 0xf9, /* ldr x16, [x16] */ + 0x00, 0x02, 0x1f, 0xd6 /* br x16 */ }; /* _function: @@ -2431,7 +2430,8 @@ make_one (def_file_export *exp, bfd *parent, bool include_jmp_stub) quick_reloc (abfd, 8, BFD_RELOC_32, 2); break; case PE_ARCH_aarch64: - quick_reloc (abfd, 0, BFD_RELOC_AARCH64_JUMP26, 2); + quick_reloc (abfd, 0, BFD_RELOC_AARCH64_ADR_HI21_NC_PCREL, 2); + quick_reloc (abfd, 4, BFD_RELOC_AARCH64_ADD_LO12, 2); break; default: abort (); diff --git a/ld/testsuite/ld-pe/pe-aarch64.d b/ld/testsuite/ld-pe/pe-aarch64.d index fac02b5fd87..ab6370fb514 100644 --- a/ld/testsuite/ld-pe/pe-aarch64.d +++ b/ld/testsuite/ld-pe/pe-aarch64.d @@ -6,11 +6,20 @@ Disassembly of section .text: -0000000140001000 <__rt_psrelocs_end>: +0000000140001000 <___crt_xc_end__>: 140001000: d2800281 mov x1, #0x14 // #20 140001004: 14000001 b 140001008 0000000140001008 : 140001008: d65f03c0 ret 14000100c: 00000000 udf #0 -#... + +0000000140001010 <__CTOR_LIST__>: + 140001010: ffffffff .inst 0xffffffff ; undefined + 140001014: ffffffff .inst 0xffffffff ; undefined + ... + +0000000140001020 <__DTOR_LIST__>: + 140001020: ffffffff .inst 0xffffffff ; undefined + 140001024: ffffffff .inst 0xffffffff ; undefined + ... diff --git a/ld/testsuite/ld-pe/pe.exp b/ld/testsuite/ld-pe/pe.exp index 83b20d0da45..58158cc657d 100644 --- a/ld/testsuite/ld-pe/pe.exp +++ b/ld/testsuite/ld-pe/pe.exp @@ -78,7 +78,7 @@ if {[istarget i*86-*-cygwin*] run_ld_link_tests $pe_tests } -if {[istarget "aarch64-*-pe*"]} { +if {[istarget "aarch64-*-pe*"] || [istarget "aarch64-*-mingw*"]} { run_dump_test "pe-aarch64" set pe_tests { diff --git a/ld/testsuite/ld-scripts/weak.exp b/ld/testsuite/ld-scripts/weak.exp index 68d70240f7b..2826e3bee78 100644 --- a/ld/testsuite/ld-scripts/weak.exp +++ b/ld/testsuite/ld-scripts/weak.exp @@ -31,6 +31,7 @@ if {! [is_elf_format] && ! [is_pecoff_format]} { # Weak symbols are broken for most PE targets. if {! [istarget i?86-*-*] && ! [istarget sh-*-*]} { setup_xfail *-*-pe* + setup_xfail *-*-mingw* } # hppa64 is incredibly broken From patchwork Fri Dec 30 02:40:55 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Mark Harmstone X-Patchwork-Id: 37552 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:4e01:0:0:0:0:0 with SMTP id p1csp2692475wrt; Thu, 29 Dec 2022 18:43:13 -0800 (PST) X-Google-Smtp-Source: AMrXdXvAmWJyN7KObuLwiU0WkhtBpJl9LC5FR3s3x5DTM8sEK+681RLcRlkYv8mVt7AiHZ+2sUK6 X-Received: by 2002:a17:907:d684:b0:7c1:11fd:9b98 with SMTP id wf4-20020a170907d68400b007c111fd9b98mr25162619ejc.27.1672368193112; Thu, 29 Dec 2022 18:43:13 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1672368193; cv=none; d=google.com; s=arc-20160816; b=yeqbrqev/+Hgr9uSB7+3/98WvQ7WT4I9RQKKDf8WKh6JfcnwyjV47lfYqQBg2oQ/mX 1tmmazOT2iUWTDQePP35nQZy5u6UW56AXymvxsI7zVrUR6Yn0kE43KXJb8syRNJ2DGRz 5UNG0ICn7yAH9wiAyJnc3sC0z3K5Q8RA32pu7o1cii9qyRLYJVFpdCH2EBcSqchCx8Ui 3irUcN3nNm3adAGy4+ljlKolpemRaSZs0Osjd8gmSkv0AH7FsyL7vCjLWBDT5V77Q9sT G+ByKXmgnsUEmd+RFGJWKs6yBpIh2o6HJM4JtkN3b4ycxYAtfO6U/pXERKPQpHm3aJve WQUg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:list-subscribe:list-help:list-post:list-archive :list-unsubscribe:list-id:precedence:content-transfer-encoding :mime-version:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature:dmarc-filter:delivered-to; bh=qrv2cJsDnD4N+IpGoPr0++XsGku6bef+6jRXHBSaLJc=; b=CxgSnjTzfjHqdmrHgkWhV29aEORJC6YyxLGJIcUEVgWoPMEtiqB7DCKCYaGzyj2D8V igfc//oRqRUcaa2ATnXo3xEWqZu/hGk0tWcRlxi358F5G3UmFjc2S6klksWzoe6+2osd 8Trjg7rTGVqUN9bFZu5i7OTp5NZVwVO0rNM1kuroAs3SC13CupbfVePjDuQ5jve54/Ao 5W+tXVEdDKj/RILDB0pa7vNyZ9uCI5N77x0y08s0S/sW/5kv7cj+dW0mY2hcUqcpeeMx vYq62UMHmsR5SzjAtojLEy+8wH0q+l206zydSZBGnt6RoM1t4wv37GwkcuJ34v5EoRto NCRw== ARC-Authentication-Results: i=1; mx.google.com; dkim=fail header.i=@gmail.com header.s=20210112 header.b=gxdtcGoH; spf=pass (google.com: domain of binutils-bounces+ouuuleilei=gmail.com@sourceware.org designates 8.43.85.97 as permitted sender) smtp.mailfrom="binutils-bounces+ouuuleilei=gmail.com@sourceware.org" Received: from sourceware.org (server2.sourceware.org. [8.43.85.97]) by mx.google.com with ESMTPS id sh36-20020a1709076ea400b0084c45d8a688si3895691ejc.891.2022.12.29.18.43.12 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 29 Dec 2022 18:43:13 -0800 (PST) Received-SPF: pass (google.com: domain of binutils-bounces+ouuuleilei=gmail.com@sourceware.org designates 8.43.85.97 as permitted sender) client-ip=8.43.85.97; Authentication-Results: mx.google.com; dkim=fail header.i=@gmail.com header.s=20210112 header.b=gxdtcGoH; spf=pass (google.com: domain of binutils-bounces+ouuuleilei=gmail.com@sourceware.org designates 8.43.85.97 as permitted sender) smtp.mailfrom="binutils-bounces+ouuuleilei=gmail.com@sourceware.org" Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 7B67E382FAE2 for ; Fri, 30 Dec 2022 02:41:45 +0000 (GMT) X-Original-To: binutils@sourceware.org Delivered-To: binutils@sourceware.org Received: from mail-wm1-x330.google.com (mail-wm1-x330.google.com [IPv6:2a00:1450:4864:20::330]) by sourceware.org (Postfix) with ESMTPS id 78440385782B for ; Fri, 30 Dec 2022 02:41:06 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 78440385782B Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=harmstone.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=gmail.com Received: by mail-wm1-x330.google.com with SMTP id o15so14390625wmr.4 for ; Thu, 29 Dec 2022 18:41:06 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:sender:from:to:cc:subject:date :message-id:reply-to; bh=qrv2cJsDnD4N+IpGoPr0++XsGku6bef+6jRXHBSaLJc=; b=gxdtcGoHqAKp5u4HsEaFj55zNgQLw8OB8+dngSGfvfixFQgVOJpk2yeNmceEe1C6mZ CbSKe332rlusafXmoGojm0BrakNUSX1qenoOJOaRI7X6MR9Rf/uwkuvjlFFG1pzP/AGs NMNtm+Tyfxu5Hd3Kk84K7OVeu2LICqSQvaMun13dr2FVCd+CUfecC6qLevG7tHeE16CZ fJYiC6m7c6lPAzMNUAKx3xPdtK6hwf5Wg4msWUlX5mjUlk6Wv2Ap0gfuKmSmr1fyX84C ekW9xhBL0UgQqBrm+kCT2a1QaDEEYK8Vjoh7KOcRCwS1UYIULa4iP9EjXcpbZ3+pNOsj R2TQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:sender:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=qrv2cJsDnD4N+IpGoPr0++XsGku6bef+6jRXHBSaLJc=; b=0Fa06ZNrn1lduJ5hsROzkWNfoHKPpyVS3tLbrwIYaVOLxJ1q8M0SonMBcS6A4U3YxX I1VSPze/dkInNFL+U5S7u9uF5vAN5Nqx6qYS+uFiBTVrFdzyl0cPtUZ5BeYfvVsaS8w1 YLWofQHuQzcilk0UPfFymuPP+IJdk1wC9A8LryzzzgBXT4yOylxmsV05blE2JfH2z17l bXnIPujlzO8/t96bTHuXUgTvAuBAnjsWD0AG186kzAg4RQUf6m6yM/B7868xMTIuSM67 L7zmr04Mhg4Tj+WMKE8XFhjgl/olUD3BC/L/wyy19xlELdbWoZrBBRwEejYLGldxKgdJ UVtw== X-Gm-Message-State: AFqh2ko+VeYJDL2SeaZeHRb9G3meJdzPVnBGiN3FrYR95e33BLUHFZw7 lr+jvjWGR54z44WzU0CWjlM= X-Received: by 2002:a05:600c:1d89:b0:3d3:58cb:f6a6 with SMTP id p9-20020a05600c1d8900b003d358cbf6a6mr21312633wms.41.1672368065272; Thu, 29 Dec 2022 18:41:05 -0800 (PST) Received: from beren.harmstone.com ([2a02:8010:64ea:0:8eb8:7eff:fe53:9d5f]) by smtp.gmail.com with ESMTPSA id t17-20020a05600c199100b003d99da8d30asm3726287wmq.46.2022.12.29.18.41.04 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 29 Dec 2022 18:41:04 -0800 (PST) From: Mark Harmstone To: wej22007@outlook.com, zac.walker@linaro.org, tamar.christina@arm.com, binutils@sourceware.org Cc: Mark Harmstone Subject: [PATCH 8/8] gas: Restore tc_pe_dwarf2_emit_offset for pe-aarch64 Date: Fri, 30 Dec 2022 02:40:55 +0000 Message-Id: <20221230024055.31841-8-mark@harmstone.com> X-Mailer: git-send-email 2.37.4 In-Reply-To: <20221230024055.31841-1-mark@harmstone.com> References: <20221230024055.31841-1-mark@harmstone.com> MIME-Version: 1.0 X-Spam-Status: No, score=-11.1 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_EF, FREEMAIL_FORGED_FROMDOMAIN, FREEMAIL_FROM, GIT_PATCH_0, HEADER_FROM_DIFFERENT_DOMAINS, KAM_NUMSUBJECT, RCVD_IN_DNSWL_NONE, 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 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: , 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?1753605150830111407?= X-GMAIL-MSGID: =?utf-8?q?1753605150830111407?= --- gas/config/tc-aarch64.c | 11 +++++++++++ gas/config/tc-aarch64.h | 5 +++++ 2 files changed, 16 insertions(+) diff --git a/gas/config/tc-aarch64.c b/gas/config/tc-aarch64.c index a72b96ffca7..233a709f370 100644 --- a/gas/config/tc-aarch64.c +++ b/gas/config/tc-aarch64.c @@ -2116,6 +2116,17 @@ s_secrel (int dummy ATTRIBUTE_UNUSED) input_line_pointer--; demand_empty_rest_of_line (); } + +void +tc_pe_dwarf2_emit_offset (symbolS *symbol, unsigned int size) +{ + expressionS exp; + + exp.X_op = O_secrel; + exp.X_add_symbol = symbol; + exp.X_add_number = 0; + emit_expr (&exp, size); +} #endif /* TE_PE */ static void s_aarch64_arch (int); diff --git a/gas/config/tc-aarch64.h b/gas/config/tc-aarch64.h index 5f82dd23824..0bf83f7618d 100644 --- a/gas/config/tc-aarch64.h +++ b/gas/config/tc-aarch64.h @@ -315,7 +315,12 @@ extern int tc_aarch64_regname_to_dw2regnum (char *regname); extern void tc_aarch64_frame_initial_instructions (void); #ifdef TE_PE + #define O_secrel O_md1 + +#define TC_DWARF2_EMIT_OFFSET tc_pe_dwarf2_emit_offset +void tc_pe_dwarf2_emit_offset (symbolS *, unsigned int); + #endif /* TE_PE */ #endif /* TC_AARCH64 */