[PATCH 5/5] Add aarch64-w64-mingw32 target

Martin Storsjö martin@martin.st
Sun Dec 18 22:44:58 GMT 2022


On Fri, 16 Dec 2022, Jan Beulich via Binutils wrote:

> On 16.12.2022 03:14, Mark Harmstone wrote:
>> --- 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"
>>      want64=true
>>      targ_underscore=no
>>      ;;
>
> Here and elsewhere - are you really targeting a 32-bit ABI (as per the
> title)? Or do you instead mean aarch64-*-mingw64, or yet more generically
> aarch64-*-mingw*? (From the *-s I used you can see that I also find a
> middle component "w64" odd.

Despite being 64 bit, the OS part of these triples have traditionally 
always been "mingw32" (where the arch part of the triple indicates whether 
it is 32 or 64 bit). Some tools/libraries/build systems only ever match 
for "mingw32" here, while some might tolerate "mingw64" too even though 
it's not the norm.

The "w64" bit in the vendor field is usually used to indicate the use of 
the "mingw-w64" fork of the mingw runtime (as opposed to the original 
mingw.org runtime). This is also used for 32 bit targets, such as 
i686-w64-mingw32.

// Martin



More information about the Binutils mailing list