On Tue, Nov 4, 2014 at 9:28 AM, Andrew Fish <af...@apple.com> wrote:
> So my 1st question is why do you need to mix calling conventions, and depend
> on EFIAPI for interoperability. Why not just change the ABI on all
> functions?

GCC 4.4 doesn't support the command line option to change everything
over. So, EFIAPI was the only option then.

> Problems with the mixed calling convention:
> 1) All assembly routines must be marked as EFIAPI, or the C code will
> generate the wrong calling convention. Not an issue in the MdePkg, but
> potentially an issue in other packages.

I don't see this as a problem. I think this is the rules that we have
set up for EDK II. It just so happens that the GCC4X toolchains are
the only ones that use EFIAPI, and thus are the only ones that allow
us to keep our codebase clean with regards to EFIAPI.

For GCC >= 4.5, I actually think we should convert *RELEASE* builds
over to using the ms-abi all the time to generate smaller code. I
think we should leave DEBUG builds as mixed to help clean up EFIAPI
issues.

-Jordan

------------------------------------------------------------------------------
_______________________________________________
edk2-devel mailing list
edk2-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/edk2-devel

Reply via email to