From mboxrd@z Thu Jan 1 00:00:00 1970 From: Alexander Graf Date: Thu, 21 Jun 2018 11:40:35 +0200 Subject: [U-Boot] [PATCH v4 11/21] efi_loader: Introduce ms abi vararg helpers In-Reply-To: References: <20180618152315.34233-1-agraf@suse.de> <20180618152315.34233-12-agraf@suse.de> Message-ID: <0fc2b227-6b52-23ba-2a66-7ae2c3ecef16@suse.de> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de On 06/21/2018 04:02 AM, Simon Glass wrote: > Hi Alex, > > On 18 June 2018 at 09:23, Alexander Graf wrote: >> Varargs differ between sysv and ms abi. On x86_64 we have to follow the ms >> abi though, so we also need to make sure we use x86_64 varargs helpers. >> >> This patch introduces generic efi vararg helpers that adhere to the >> respective EFI ABI. That way we can deal with them properly from efi >> loader code and properly interpret variable arguments. >> >> This fixes the InstallMultipleProtocolInterfaces tests in the efi selftests >> on x86_64 for me. >> >> Signed-off-by: Alexander Graf >> --- >> include/efi.h | 8 ++++++++ >> lib/efi_loader/efi_boottime.c | 36 ++++++++++++++++++------------------ >> 2 files changed, 26 insertions(+), 18 deletions(-) > I thought this was a bug in gcc. Should we include this workaround > only for older gcc versions? The bug is something different - it's about using unannotated helper functions on an ms_abi declared vararg list. This patch really just implements expected behavior regardless of that bug. Alex