rainers / cv2pdb

converter of DMD CodeView/DWARF debug information to PDB files
Artistic License 2.0
466 stars 110 forks source link

Add Windows ARM64 support #81

Closed dennisameling closed 1 year ago

dennisameling commented 1 year ago

This adds ARM64 support to the cv2pdb.vcxproj build. Needed for Git for Windows ARM64 support.

rainers commented 1 year ago

The original purpose of cv2pdb is to translate old style CodeView debug information of the reference D compiler to pdb files. Later support for DWARF as emitted by the gcc based D compiler was added. The code in demangle.cpp is used to convert the mangled symbols of D functions or variables back to human readable form. It is unlikely to be useful for translating C++ debug information.

The code failing to compile is inline assembly that converts 80-bit floating point real values to something the C++ compiler understands, namely 64-bit floating point. I doubt that you will need that on ARM, so if you replace the usage of #ifdef _M_X64 with #ifndef _M_X86, you will just have to implement cvt80to64() which could error out if it is called for ARM builds.

dennisameling commented 1 year ago

Thanks for the hint! Have implemented the changes as you suggested. Here's a successful CI run: https://github.com/dennisameling/cv2pdb/actions/runs/3077972033

Curious to hear what you think!

rainers commented 1 year ago

Thank you for your contribution.