From mboxrd@z Thu Jan 1 00:00:00 1970 Authentication-Results: mx.groups.io; dkim=missing; spf=fail (domain: intel.com, ip: , mailfrom: michael.d.kinney@intel.com) Received: from mga14.intel.com (mga14.intel.com []) by groups.io with SMTP; Thu, 01 Aug 2019 20:23:16 -0700 X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga001.jf.intel.com ([10.7.209.18]) by fmsmga103.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 01 Aug 2019 20:23:16 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.64,336,1559545200"; d="scan'208";a="256855695" Received: from mdkinney-mobl2.amr.corp.intel.com ([10.251.130.221]) by orsmga001.jf.intel.com with ESMTP; 01 Aug 2019 20:23:15 -0700 From: "Michael D Kinney" To: devel@edk2.groups.io Cc: Jordan Justen , Andrew Fish , Ray Ni Subject: [Patch 3/4] EmulatorPkg/Unix/Host: Fix XCODE5 IA32/X64 build failure Date: Thu, 1 Aug 2019 20:23:08 -0700 Message-Id: <20190802032309.29000-4-michael.d.kinney@intel.com> X-Mailer: git-send-email 2.21.0.windows.1 In-Reply-To: <20190802032309.29000-1-michael.d.kinney@intel.com> References: <20190802032309.29000-1-michael.d.kinney@intel.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit 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 Cc: Andrew Fish Cc: Ray Ni Signed-off-by: Michael D Kinney --- 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.
- Copyright (c) 2011, Intel Corporation. All rights reserved.
+ Copyright (c) 2011 - 2019, Intel Corporation. All rights reserved.
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.
+# Copyright (c) 2008 - 2019, Intel Corporation. All rights reserved.
# Portions copyright (c) 2008 - 2011, Apple Inc. All rights reserved.
# # 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.
+Copyright (c) 2011 - 2019, Intel Corporation. All rights reserved.
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