From: "Michael D Kinney" <michael.d.kinney@intel.com>
To: devel@edk2.groups.io
Cc: Jordan Justen <jordan.l.justen@intel.com>,
Andrew Fish <afish@apple.com>, Ray Ni <ray.ni@intel.com>
Subject: [Patch 3/4] EmulatorPkg/Unix/Host: Fix XCODE5 IA32/X64 build failure
Date: Thu, 1 Aug 2019 20:23:08 -0700 [thread overview]
Message-ID: <20190802032309.29000-4-michael.d.kinney@intel.com> (raw)
In-Reply-To: <20190802032309.29000-1-michael.d.kinney@intel.com>
https://bugzilla.tianocore.org/show_bug.cgi?id=2046
* Clean up XCODE5 IA32 [BuildOptions] and fix IA32
X11 include path.
* Add -DEFIAPI=__attribute__((ms_abi)) to X64 XCODE5
[BuildOptions]
* Use -target x86_64-apple-darwin for X64 XCODE5
[BuildOptions]
* Add Wl,-no_pie to X64 XCODE5 [BuildOptions]
* Address function type mismatch reported by XCODE5
in reverse gasket callback between UEFI ABI and
MacOS ABI. Use a UINTN to pass function address
to assembly code.
Cc: Jordan Justen <jordan.l.justen@intel.com>
Cc: Andrew Fish <afish@apple.com>
Cc: Ray Ni <ray.ni@intel.com>
Signed-off-by: Michael D Kinney <michael.d.kinney@intel.com>
---
EmulatorPkg/Unix/Host/EmuThunk.c | 4 ++--
EmulatorPkg/Unix/Host/Gasket.h | 4 ++--
EmulatorPkg/Unix/Host/Host.inf | 8 ++++----
EmulatorPkg/Unix/Host/Pthreads.c | 4 ++--
4 files changed, 10 insertions(+), 10 deletions(-)
diff --git a/EmulatorPkg/Unix/Host/EmuThunk.c b/EmulatorPkg/Unix/Host/EmuThunk.c
index 1c261a63cc..1e9dc99187 100644
--- a/EmulatorPkg/Unix/Host/EmuThunk.c
+++ b/EmulatorPkg/Unix/Host/EmuThunk.c
@@ -30,7 +30,7 @@ SPDX-License-Identifier: BSD-2-Clause-Patent
int settimer_initialized;
struct timeval settimer_timeval;
-void (*settimer_callback)(UINT64 delta);
+UINTN settimer_callback = 0;
BOOLEAN gEmulatorInterruptEnabled = FALSE;
@@ -194,7 +194,7 @@ SecSetTimer (
if (setitimer (ITIMER_REAL, &timerval, NULL) != 0) {
printf ("SetTimer: setitimer error %s\n", strerror (errno));
}
- settimer_callback = CallBack;
+ settimer_callback = (UINTN)CallBack;
}
diff --git a/EmulatorPkg/Unix/Host/Gasket.h b/EmulatorPkg/Unix/Host/Gasket.h
index e66f334960..e082397d23 100644
--- a/EmulatorPkg/Unix/Host/Gasket.h
+++ b/EmulatorPkg/Unix/Host/Gasket.h
@@ -1,7 +1,7 @@
/** @file
Copyright (c) 2008 - 2011, Apple Inc. All rights reserved.<BR>
- Copyright (c) 2011, Intel Corporation. All rights reserved.<BR>
+ Copyright (c) 2011 - 2019, Intel Corporation. All rights reserved.<BR>
SPDX-License-Identifier: BSD-2-Clause-Patent
@@ -195,7 +195,7 @@ void
UINTN
ReverseGasketUint64 (
- CALL_BACK CallBack,
+ UINTN CallBack,
UINT64 a
);
diff --git a/EmulatorPkg/Unix/Host/Host.inf b/EmulatorPkg/Unix/Host/Host.inf
index efe8a2b5e5..ca4294249b 100644
--- a/EmulatorPkg/Unix/Host/Host.inf
+++ b/EmulatorPkg/Unix/Host/Host.inf
@@ -2,7 +2,7 @@
# Entry Point of Emu Emulator
#
# Main executable file of Unix Emulator that loads PEI core after initialization finished.
-# Copyright (c) 2008 - 2018, Intel Corporation. All rights reserved.<BR>
+# Copyright (c) 2008 - 2019, Intel Corporation. All rights reserved.<BR>
# Portions copyright (c) 2008 - 2011, Apple Inc. All rights reserved.<BR>
#
# SPDX-License-Identifier: BSD-2-Clause-Patent
@@ -132,11 +132,11 @@ [BuildOptions]
# Need to do this link via gcc and not ld as the pathing to libraries changes from OS version to OS version
#
XCODE:*_*_IA32_DLINK_PATH == gcc
- XCODE:*_*_IA32_CC_FLAGS == -arch i386 -O0 -g -include $(DEST_DIR_DEBUG)/AutoGen.h -c -fshort-wchar -fno-strict-aliasing
+ XCODE:*_*_IA32_CC_FLAGS = -I$(WORKSPACE)/EmulatorPkg/Unix/Host/X11IncludeHack
XCODE:*_*_IA32_DLINK_FLAGS == -arch i386 -o $(BIN_DIR)/Host -L/usr/X11R6/lib -lXext -lX11 -framework Carbon
XCODE:*_*_IA32_ASM_FLAGS == -arch i386 -g
XCODE:*_*_X64_DLINK_PATH == gcc
- XCODE:*_*_X64_DLINK_FLAGS == -o $(BIN_DIR)/Host -L/usr/X11R6/lib -lXext -lX11 -framework Carbon
+ XCODE:*_*_X64_DLINK_FLAGS == -L/usr/X11R6/lib -lXext -lX11 -framework Carbon -Wl,-no_pie
XCODE:*_*_X64_ASM_FLAGS == -g
- XCODE:*_*_X64_CC_FLAGS = -I$(WORKSPACE)/EmulatorPkg/Unix/Host/X11IncludeHack
+ XCODE:*_*_X64_CC_FLAGS = -target x86_64-apple-darwin -I$(WORKSPACE)/EmulatorPkg/Unix/Host/X11IncludeHack "-DEFIAPI=__attribute__((ms_abi))"
diff --git a/EmulatorPkg/Unix/Host/Pthreads.c b/EmulatorPkg/Unix/Host/Pthreads.c
index 7c71a2da4f..f07bcfce66 100644
--- a/EmulatorPkg/Unix/Host/Pthreads.c
+++ b/EmulatorPkg/Unix/Host/Pthreads.c
@@ -2,7 +2,7 @@
POSIX Pthreads to emulate APs and implement threads
Copyright (c) 2011, Apple Inc. All rights reserved.
-Copyright (c) 2011, Intel Corporation. All rights reserved.<BR>
+Copyright (c) 2011 - 2019, Intel Corporation. All rights reserved.<BR>
SPDX-License-Identifier: BSD-2-Clause-Patent
@@ -109,7 +109,7 @@ SecFakePthreadStart (
// This is a great example of how all problems in computer
// science can be solved by adding another level of indirection
//
- return (VOID *)ReverseGasketUint64 ((CALL_BACK)Start, (UINTN)Context);
+ return (VOID *)ReverseGasketUint64 ((UINTN)Start, (UINTN)Context);
}
UINTN
--
2.21.0.windows.1
next prev parent reply other threads:[~2019-08-02 3:23 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-08-02 3:23 [Patch 0/4] EmulatorPkg: Fix XCODE5 and VS2015 build failures Michael D Kinney
2019-08-02 3:23 ` [Patch 1/4] EmulatorPkg: Fix VS2015 build when VS2017 also installed Michael D Kinney
2019-08-02 3:23 ` [Patch 2/4] EmulatorPkg/Unix/Host: Fix NetworkPkg dependencies Michael D Kinney
2019-08-02 3:23 ` Michael D Kinney [this message]
2019-08-02 3:23 ` [Patch 4/4] MdePkg/X64/ProcessorBind.h: Fix EmulatorPkg X64 XCODE5 Michael D Kinney
2019-08-07 11:38 ` Liming Gao
2019-08-06 1:55 ` [Patch 0/4] EmulatorPkg: Fix XCODE5 and VS2015 build failures Ni, Ray
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=20190802032309.29000-4-michael.d.kinney@intel.com \
--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