Branch: refs/heads/master Home: https://github.com/tianocore/edk2 Commit: e2a30df32e523ec19abd980f9665dee4ab620917 https://github.com/tianocore/edk2/commit/e2a30df32e523ec19abd980f9665dee4ab620917 Author: Nate DeSimone <nathaniel.l.desim...@intel.com> Date: 2025-07-09 (Wed, 09 Jul 2025)
Changed paths: M BaseTools/Conf/tools_def.template Log Message: ----------- BaseTools/tools_def: Use MSVC ABI for CLANGPDB Targets Update the CLANGPDB toolchain configuration to use MSVC ABI targets and retain frame pointers in generated code. This improves compatibility with the Microsoft Debug Interface Access (DIA) SDK and improves debuggability with any debugger that uses the Microsoft PDB parser, for example the Visual Studio debugger or windbg. Without these changes, code generated by the Clang compiler will have a mix of calling conventions. With the current configuration, any function declared with EFIAPI will use the Microsoft x64 calling convention. However, the default calling convention will be the SysV x64 calling convention. This mixing of calling conventions prevents debuggers from decoding the call stack. With these changes, only the Microsoft x64 calling convention will be used. These modifications enable debuggers to properly parse and display call stacks on binaries built with the CLANGPDB toolchain. The changes include: - Switch from GNU ABI target (*-unknown-windowsl-gnu) to MSVC ABI targets (*-pc-windows-msvc) for both IA32 and X64 architectures. - Remove -fseh-exceptions as not supported. - Add -fno-omit-frame-pointer as required for call stack. - Undefine the _MSC_VER macro, and define the __GNUC__ macro, so that pre-processor conditionals will continue to function as expected. Co-authored-by: Muhammad Mustafa <muhammad.must...@intel.com> Signed-off-by: Nate DeSimone <nathaniel.l.desim...@intel.com> To unsubscribe from these emails, change your notification settings at https://github.com/tianocore/edk2/settings/notifications _______________________________________________ edk2-commits mailing list edk2-commits@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/edk2-commits