Unfortunately I don’t think it’s that simple.. Sadly the name Arm64 is the one Microsoft has chosen to call their target ABI. https://learn.microsoft.com/en-us/windows/arm/overview Further this is extended to Arm64EC etc https://learn.microsoft.com/en-us/cpp/build/arm64-windows-abi-conventions?view=msvc-170. So even though this is not the official naming that Arm uses, it’s however the official one on Windows and so it’s reasonable that the PE target in LD follow this. So this is reasonable so long as the actual target itself stays aarch64-little. Kind Regards, Tamar From: NightStrike Sent: Tuesday, January 3, 2023 12:00 PM To: Mark Harmstone Cc: wej22007@outlook.com; zac.walker@linaro.org; Tamar Christina ; binutils Subject: Re: [PATCH 1/8] ld: Rename aarch64pe emulation target to arm64pe On Thu, Dec 29, 2022, 21:41 Mark Harmstone > wrote: * 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. Or just fix clang. Seems like if clang wants to work with ld, clang should use ld's name.