Adding Windows on ARM Support

Saleem Abdulrasool abdulras at fb.com
Thu Feb 27 11:53:09 PST 2014


On Feb 27, 2014, at 11:21 AM, Reid Kleckner <rnk at google.com> wrote:

> On Thu, Feb 27, 2014 at 11:05 AM, Saleem Abdulrasool <abdulras at fb.com> wrote:
> 
> On Feb 27, 2014, at 10:59 AM, Reid Kleckner <rnk at google.com> wrote:
> 
> > Cool!  Do you intend to aim for MSVC C++ ABI compatibility on ARM, or is that not a goal for you?  We assume the ARM C++ ABI looks similar to the x86 one, but we haven't gone out of our way to check.  There might be dragons.
> 
> Right now Im planning on using IA-64 ABI (which is unfortunately incompatible with msvcrp).  Longer term, I think that getting C++ MS ABI on ARM would be incredible.
> 
> That seems reasonable.  There are still lots of bugs in the Microsoft C++ ABI support in Clang.
> 
> What triple were you planning to use?  We got rid of the -cxx-abi flag and made -win32 imply the Microsoft C++ ABI.  I don't want to make arm*-*-win32 imply the Itanium C++ ABI, since eventually we'd like it to use the Microsoft C++ ABI.

I think having the ability to switch between the ABIs would be nice.  I was thinking armv7-windows-pe.  That is much more in line with the naming of triples (Architecture is ARMv7, OS is Windows, Environment is PE/COFF).  I do agree that this is more representative of the MS ABI.  I would say that armv7-windows-peia64 has a certain appeal to it.  My only issue with using mingw32 as the environment name is that it implies MinGW, and the changes do not actually use the MinGW support libraries.

> At least on x86, the mingw32 target is C ABI compatible with MSVC, so you could use a triple like arm*-*-mingw32.  I don't know if the mingw project even supports ARM yet, but if and when they do I expect them to be C ABI compatible with MSVC and use the Itanium-derived ARM C++ ABI.

Yes, the C ABI is compatible with MSVCRT.

-- 
Saleem Abdulrasool
abdulras (at) fb (dot) com









More information about the llvm-commits mailing list