public inbox for devel@edk2.groups.io
 help / color / mirror / Atom feed
From: Jordan Justen <jordan.l.justen@intel.com>
To: "Gao, Liming" <liming.gao@intel.com>,
	Andrew Fish <afish@apple.com>,
	Andrew Fish via edk2-devel <edk2-devel@lists.01.org>,
	Mike Kinney <michael.d.kinney@intel.com>,
	Zhichao Gao <zhichao.gao@intel.com>
Cc: Hao Wu <hao.a.wu@intel.com>, edk2-devel <edk2-devel@lists.01.org>,
	Bret Barkelew <Bret.Barkelew@microsoft.com>,
	Michael Turner <Michael.Turner@microsoft.com>,
	Star Zeng <star.zeng@intel.com>,
	Ard Biesheuvel <ard.biesheuvel@linaro.org>,
	Laszlo Ersek <lersek@redhat.com>
Subject: Re: [PATCH V2 17/17] MdeModulePkg: Add PEIM and lib to dsc file
Date: Sun, 31 Mar 2019 23:33:29 -0700	[thread overview]
Message-ID: <155410040881.23262.16879145141824426653@jljusten-skl> (raw)
In-Reply-To: <155409943250.23072.1800190734018760556@jljusten-skl>

Whoops. It looks like this was specifically addressed in v3 of the
series. I just didn't see a follow up email discussion to Andrew's
email.

Please disregard.

-Jordan

On 2019-03-31 23:17:12, Jordan Justen wrote:
> On 2019-03-14 22:54:24, Andrew Fish via edk2-devel wrote:
> > I understand the motivation for this change as I've done something
> > much less portable that looks a lot like this to save the PEI XIP
> > space....
> > 
> > I seem to remember a long time ago we add a public VA_LIST to an API
> > and we ran into an issue due to the marker format being compiler
> > specific. You don't tend to see this on VC++ as it mostly uses a
> > pointer to the frame, but GCC and clang can use a data structure
> > especially not on IA32 (i386) for a VA_LIST (this is part of the
> > reason there are so many #ifdefs in the Base.h VA_LIST section).
> > 
> > In the past to fix this Mike Kinney added BASE_LIST. I seem to
> > remember MdeModulePkg/Library/PeiDxeDebugLibReportStatusCode passes
> > a BASE_LIST into ReportStatusCode vs. a VA_LIST for this reason. Was
> > this VA_LIST portability concern taken into consideration for this
> > new API?
> > 
> > In general VA_LIST is not an issue as long as all the code is
> > compiled with the same compiler but if binaries are in play then you
> > can have issues. So things like FSB, Option ROMs, OS Loaders, EFI
> > Shell, EFI Apps. are when you can see the issue.
> > 
> 
> I didn't see a reply to Andrew's concern. Was it considered, and
> addressed?
> 
> I remember having several issues in the past with var-args. I haven't
> seen it show up in quite a while.
> 
> I know we have to make sure to consistently apply EFIAPI to such
> function declarations.
> 
> I did think we still considered it forbidden to use var-args across a
> binary interface. (PPI, Protocol, Core functions)
> 
> I'm not sure if EFIAPI is enough to make it safe as long as all code
> is compiled by the same compiler, or if it truely makes it safe for a
> binary compiled with one compiler to be called from a binary compiled
> with any other compiler.
> 
> I'll add Ard and Laszlo to the Cc, as I seem to recall they may have
> looked at it before. (Although, I think they've been Cc'd on the
> series, so maybe they've already considered this, and don't expect
> there is a problem.)
> 
> -Jordan


  reply	other threads:[~2019-04-01  6:33 UTC|newest]

Thread overview: 32+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-03-15  5:17 [PATCH V2 00/17] Add a new API DebugVPrint for DebugLib Zhichao Gao
2019-03-15  5:17 ` [PATCH V2 01/17] MdePkg/DebugLib.h: Add a new api " Zhichao Gao
2019-03-15  6:15   ` Jordan Justen
2019-03-18  0:14     ` Gao, Zhichao
2019-03-18  6:20       ` Jordan Justen
2019-03-18 15:09         ` Gao, Liming
2019-03-18 18:34           ` Jordan Justen
2019-03-19 14:45             ` Gao, Liming
2019-03-19 15:44               ` stephano
2019-03-15  5:17 ` [PATCH V2 02/17] MdePkg/BaseDebugLibNull: " Zhichao Gao
2019-03-15  5:17 ` [PATCH V2 03/17] MdePkg/BaseDebugLibSerialPort: Add a new api DebugVPrint Zhichao Gao
2019-03-15  5:17 ` [PATCH V2 04/17] MdePkg/UefidebugLibConOut: " Zhichao Gao
2019-03-15  5:17 ` [PATCH V2 05/17] MdePkg/UefiDebugLibStdErr: " Zhichao Gao
2019-03-15  5:17 ` [PATCH V2 06/17] MdePkg/DxeRuntimeDebugLibSerialPort: " Zhichao Gao
2019-03-15  5:17 ` [PATCH V2 07/17] MdePkg/UefiDebuglibDebugPortProtocol: " Zhichao Gao
2019-03-15  5:17 ` [PATCH V2 08/17] ArmPkg/SemiHostingDebugLib: " Zhichao Gao
2019-03-15  5:17 ` [PATCH V2 09/17] OvmfPkg/PlatformDebugLibIoPort: " Zhichao Gao
2019-03-20 16:13   ` Laszlo Ersek
2019-03-15  5:17 ` [PATCH V2 10/17] IntelFsp2Pkg/BaseFspDebugLibSerialPort: " Zhichao Gao
2019-03-15  7:31   ` Chiu, Chasel
2019-03-15  5:17 ` [PATCH V2 11/17] IntelFspPkg/BaseFspDebugLibSerialPort: " Zhichao Gao
2019-03-15  7:32   ` Chiu, Chasel
2019-03-15  5:17 ` [PATCH V2 12/17] IntelFramworkModulePkg/PeiDxeDebugLibReportStatusCode: Add a new api Zhichao Gao
2019-03-15  5:17 ` [PATCH V2 13/17] MdeModulePkg/PeiDxeDebugLibReportStatusCode: " Zhichao Gao
2019-03-15  5:17 ` [PATCH V2 14/17] MdeModulePkg: Add definitions for EDKII DEBUG PPI Zhichao Gao
2019-03-15  5:17 ` [PATCH V2 15/17] MdeModulePkg: Add a PEIM to install Debug PPI Zhichao Gao
2019-03-15  5:17 ` [PATCH V2 16/17] MdeModulePkg/PeiDebugLibDebugPpi: Add PEI debug lib Zhichao Gao
2019-03-15  5:17 ` [PATCH V2 17/17] MdeModulePkg: Add PEIM and lib to dsc file Zhichao Gao
2019-03-15  5:54   ` Andrew Fish
2019-04-01  6:17     ` Jordan Justen
2019-04-01  6:33       ` Jordan Justen [this message]
2019-04-01  6:37         ` Gao, Zhichao

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-list from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=155410040881.23262.16879145141824426653@jljusten-skl \
    --to=devel@edk2.groups.io \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox