[PATCH] Cygwin: dumper: add Aarch64 support

Aswin Kalies Ramkumar Mangayarkarasi <[email protected]> Thu, 9 Jul 2026 10:13:37 +0000
Newsgroups gmane.os.cygwin.patches
Message-ID <PN3P287MB13206A5CED8DE6D538D83E40F7FE2@PN3P287MB1320.INDP287.PROD.OUTLOOK.COM>
--_004_PN3P287MB13206A5CED8DE6D538D83E40F7FE2PN3P287MB1320INDP_
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable

Hi Everyone,
This patch adds Aarch64 support to the core dumper utility. Previously, dum=
per.cc used "elf64-aarch64" as the BFD target name, which is not a valid BF=
D target vector which caused bfd_openw() to fail with "invalid bfd target" =
on Aarch64. This has been corrected to "elf64-littleaarch64", matching the =
aarch64_elf64_le_vec vector registered by BFD.
 Additionally, bfd_set_arch_mach() was unconditionally called with bfd_arch=
_i386, which is only correct for the x86_64 build. This is now conditionali=
zed so Aarch64 builds use bfd_arch_aarch64 / bfd_mach_aarch64 instead.
Thanks and Regards,
Aswin Kalies
Inline Patch
---
 winsup/utils/Makefile.am |  2 +-
 winsup/utils/dumper.cc   | 20 ++++++++++++++------
 2 files changed, 15 insertions(+), 7 deletions(-)

diff --git a/winsup/utils/Makefile.am b/winsup/utils/Makefile.am
index e44079a41..a4521f2ab 100644
--- a/winsup/utils/Makefile.am
+++ b/winsup/utils/Makefile.am
@@ -79,7 +79,7 @@ LDADD =3D -lnetapi32
 cygpath_CXXFLAGS =3D -fno-threadsafe-statics $(AM_CXXFLAGS)
 cygpath_LDADD =3D $(LDADD) -luserenv -lntdll
 dumper_CXXFLAGS =3D -I$(top_srcdir)/../include $(AM_CXXFLAGS)
-dumper_LDADD =3D $(LDADD) -lpsapi -lntdll -lbfd @BFD_LIBS@
+dumper_LDADD =3D $(LDADD) -lpsapi -lntdll -lbfd -lsframe @BFD_LIBS@
 dumper_LDFLAGS =3D -Wl,--disable-high-entropy-va
 ldd_LDADD =3D $(LDADD) -lpsapi -lntdll
 mount_CXXFLAGS =3D -DFSTAB_ONLY $(AM_CXXFLAGS)
diff --git a/winsup/utils/dumper.cc b/winsup/utils/dumper.cc
index b3151e66d..830cf9ce1 100644
--- a/winsup/utils/dumper.cc
+++ b/winsup/utils/dumper.cc
@@ -703,7 +703,7 @@ dumper::init_core_dump ()
 #if defined(__x86_64__)
   const char *target =3D "elf64-x86-64";
 #elif defined(__aarch64__)
-  const char *target =3D "elf64-aarch64";
+  const char *target =3D "elf64-littleaarch64";
 #else
 #error unimplemented for this target
 #endif
@@ -721,11 +721,19 @@ dumper::init_core_dump ()
       goto failed;
     }

-  if (!bfd_set_arch_mach (core_bfd, bfd_arch_i386, 0 /* =3D default */))
-    {
-      bfd_perror ("setting bfd architecture");
-      goto failed;
-    }
+#if defined(__x86_64__)
+  if (!bfd_set_arch_mach(core_bfd, bfd_arch_i386, 0 /* =3D default */))
+  {
+   bfd_perror("setting bfd architecture");
+   goto failed;
+  }
+#elif defined(__aarch64__)
+  if (!bfd_set_arch_mach(core_bfd, bfd_arch_aarch64, bfd_mach_aarch64))
+  {
+   bfd_perror("setting bfd architecture");
+   goto failed;
+  }
+#endif

   return 1;

--
2.49.0.windows.1





--_004_PN3P287MB13206A5CED8DE6D538D83E40F7FE2PN3P287MB1320INDP_
Content-Type: application/octet-stream;
	name="Cygwin-dumper-add-Aarch64-support.patch"
Content-Description: Cygwin-dumper-add-Aarch64-support.patch
Content-Disposition: attachment;
	filename="Cygwin-dumper-add-Aarch64-support.patch"; size=2634;
	creation-date="Thu, 09 Jul 2026 10:13:10 GMT";
	modification-date="Thu, 09 Jul 2026 10:13:37 GMT"
Content-Transfer-Encoding: base64

RnJvbSA1YWE2MTA4M2FlOGI5NDk5MjM5MjczYzM4MThiMjdkMjFjM2JjOTQ1IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBjaGFuZHJ1LW1jdyA8Y2hhbmRydS5rdW1hcmVzYW5AbXVsdGlj
b3Jld2FyZWluYy5jb20+CkRhdGU6IE1vbiwgNiBKdWwgMjAyNiAxNzozMToxNSArMDUzMApTdWJq
ZWN0OiBbUEFUQ0hdIEN5Z3dpbjogZHVtcGVyOiBhZGQgQWFyY2g2NCBzdXBwb3J0CgpVc2UgdGhl
IGNvcnJlY3QgQkZEIHRhcmdldCB2ZWN0b3IgbmFtZSBmb3IgQUFyY2g2NCwKImVsZjY0LWxpdHRs
ZWFhcmNoNjQiLCBtYXRjaGluZyB0aGUgYWFyY2g2NF9lbGY2NF9sZV92ZWMKdmVjdG9yIHJlZ2lz
dGVyZWQgYnkgQkZELCBpbnN0ZWFkIG9mIHRoZSBwcmV2aW91c2x5CnVzZWQiZWxmNjQtYWFyY2g2
NCIsIHdoaWNoIGlzIG5vdCBhIHZhbGlkIEJGRCB0YXJnZXQKbmFtZSBhbmQgY2F1c2VkIGJmZF9v
cGVudygpIHRvIGZhaWwgd2l0aCAiaW52YWxpZCBiZmQgdGFyZ2V0Ii4KClNldCB0aGUgQkZEIGFy
Y2hpdGVjdHVyZS9tYWNoaW5lIGFwcHJvcHJpYXRlbHkgZm9yCkFBcmNoNjQgKGJmZF9hcmNoX2Fh
cmNoNjQgLyBiZmRfbWFjaF9hYXJjaDY0KSByYXRoZXIKdGhhbiB1bmNvbmRpdGlvbmFsbHkgdXNp
bmcgYmZkX2FyY2hfaTM4Niwgd2hpY2ggb25seQphcHBsaWVzIHRvIHRoZSB4ODZfNjQgYnVpbGQu
ClNpZ25lZC1vZmYtYnk6IENoYW5kcnUgS3VtYXJlc2FuIDxjaGFuZHJ1Lmt1bWFyZXNhbkBtdWx0
aWNvcmV3YXJlaW5jLmNvbT4KU2lnbmVkLW9mZi1ieTogQXN3aW4gS2FsaWVzIDxhc3dpbi5rYWxp
ZXNAbXVsdGljb3Jld2FyZWluYy5jb20+Ci0tLQogd2luc3VwL3V0aWxzL01ha2VmaWxlLmFtIHwg
IDIgKy0KIHdpbnN1cC91dGlscy9kdW1wZXIuY2MgICB8IDIwICsrKysrKysrKysrKysrLS0tLS0t
CiAyIGZpbGVzIGNoYW5nZWQsIDE1IGluc2VydGlvbnMoKyksIDcgZGVsZXRpb25zKC0pCgpkaWZm
IC0tZ2l0IGEvd2luc3VwL3V0aWxzL01ha2VmaWxlLmFtIGIvd2luc3VwL3V0aWxzL01ha2VmaWxl
LmFtCmluZGV4IGU0NDA3OWE0MS4uYTQ1MjFmMmFiIDEwMDY0NAotLS0gYS93aW5zdXAvdXRpbHMv
TWFrZWZpbGUuYW0KKysrIGIvd2luc3VwL3V0aWxzL01ha2VmaWxlLmFtCkBAIC03OSw3ICs3OSw3
IEBAIExEQUREID0gLWxuZXRhcGkzMgogY3lncGF0aF9DWFhGTEFHUyA9IC1mbm8tdGhyZWFkc2Fm
ZS1zdGF0aWNzICQoQU1fQ1hYRkxBR1MpCiBjeWdwYXRoX0xEQUREID0gJChMREFERCkgLWx1c2Vy
ZW52IC1sbnRkbGwKIGR1bXBlcl9DWFhGTEFHUyA9IC1JJCh0b3Bfc3JjZGlyKS8uLi9pbmNsdWRl
ICQoQU1fQ1hYRkxBR1MpCi1kdW1wZXJfTERBREQgPSAkKExEQUREKSAtbHBzYXBpIC1sbnRkbGwg
LWxiZmQgQEJGRF9MSUJTQAorZHVtcGVyX0xEQUREID0gJChMREFERCkgLWxwc2FwaSAtbG50ZGxs
IC1sYmZkIC1sc2ZyYW1lIEBCRkRfTElCU0AKIGR1bXBlcl9MREZMQUdTID0gLVdsLC0tZGlzYWJs
ZS1oaWdoLWVudHJvcHktdmEKIGxkZF9MREFERCA9ICQoTERBREQpIC1scHNhcGkgLWxudGRsbAog
bW91bnRfQ1hYRkxBR1MgPSAtREZTVEFCX09OTFkgJChBTV9DWFhGTEFHUykKZGlmZiAtLWdpdCBh
L3dpbnN1cC91dGlscy9kdW1wZXIuY2MgYi93aW5zdXAvdXRpbHMvZHVtcGVyLmNjCmluZGV4IGIz
MTUxZTY2ZC4uODMwY2Y5Y2UxIDEwMDY0NAotLS0gYS93aW5zdXAvdXRpbHMvZHVtcGVyLmNjCisr
KyBiL3dpbnN1cC91dGlscy9kdW1wZXIuY2MKQEAgLTcwMyw3ICs3MDMsNyBAQCBkdW1wZXI6Omlu
aXRfY29yZV9kdW1wICgpCiAjaWYgZGVmaW5lZChfX3g4Nl82NF9fKQogICBjb25zdCBjaGFyICp0
YXJnZXQgPSAiZWxmNjQteDg2LTY0IjsKICNlbGlmIGRlZmluZWQoX19hYXJjaDY0X18pCi0gIGNv
bnN0IGNoYXIgKnRhcmdldCA9ICJlbGY2NC1hYXJjaDY0IjsKKyAgY29uc3QgY2hhciAqdGFyZ2V0
ID0gImVsZjY0LWxpdHRsZWFhcmNoNjQiOwogI2Vsc2UKICNlcnJvciB1bmltcGxlbWVudGVkIGZv
ciB0aGlzIHRhcmdldAogI2VuZGlmCkBAIC03MjEsMTEgKzcyMSwxOSBAQCBkdW1wZXI6OmluaXRf
Y29yZV9kdW1wICgpCiAgICAgICBnb3RvIGZhaWxlZDsKICAgICB9CiAKLSAgaWYgKCFiZmRfc2V0
X2FyY2hfbWFjaCAoY29yZV9iZmQsIGJmZF9hcmNoX2kzODYsIDAgLyogPSBkZWZhdWx0ICovKSkK
LSAgICB7Ci0gICAgICBiZmRfcGVycm9yICgic2V0dGluZyBiZmQgYXJjaGl0ZWN0dXJlIik7Ci0g
ICAgICBnb3RvIGZhaWxlZDsKLSAgICB9CisjaWYgZGVmaW5lZChfX3g4Nl82NF9fKQorICBpZiAo
IWJmZF9zZXRfYXJjaF9tYWNoKGNvcmVfYmZkLCBiZmRfYXJjaF9pMzg2LCAwIC8qID0gZGVmYXVs
dCAqLykpCisgIHsKKwkgIGJmZF9wZXJyb3IoInNldHRpbmcgYmZkIGFyY2hpdGVjdHVyZSIpOwor
CSAgZ290byBmYWlsZWQ7CisgIH0KKyNlbGlmIGRlZmluZWQoX19hYXJjaDY0X18pCisgIGlmICgh
YmZkX3NldF9hcmNoX21hY2goY29yZV9iZmQsIGJmZF9hcmNoX2FhcmNoNjQsIGJmZF9tYWNoX2Fh
cmNoNjQpKQorICB7CisJICBiZmRfcGVycm9yKCJzZXR0aW5nIGJmZCBhcmNoaXRlY3R1cmUiKTsK
KwkgIGdvdG8gZmFpbGVkOworICB9CisjZW5kaWYKIAogICByZXR1cm4gMTsKIAotLSAKMi40OS4w
LndpbmRvd3MuMQoK

--_004_PN3P287MB13206A5CED8DE6D538D83E40F7FE2PN3P287MB1320INDP_--