EmulatorPkg/Unix/Host: Fix XCODE5 IA32/X64 build failure

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>
Reviewed-by: Ray Ni <ray.ni@intel.com>
This commit is contained in:
Michael D Kinney 2019-08-01 17:55:26 -07:00
parent b98504b514
commit 538d8aaaf3
4 changed files with 10 additions and 10 deletions

View File

@ -30,7 +30,7 @@ SPDX-License-Identifier: BSD-2-Clause-Patent
int settimer_initialized; int settimer_initialized;
struct timeval settimer_timeval; struct timeval settimer_timeval;
void (*settimer_callback)(UINT64 delta); UINTN settimer_callback = 0;
BOOLEAN gEmulatorInterruptEnabled = FALSE; BOOLEAN gEmulatorInterruptEnabled = FALSE;
@ -194,7 +194,7 @@ SecSetTimer (
if (setitimer (ITIMER_REAL, &timerval, NULL) != 0) { if (setitimer (ITIMER_REAL, &timerval, NULL) != 0) {
printf ("SetTimer: setitimer error %s\n", strerror (errno)); printf ("SetTimer: setitimer error %s\n", strerror (errno));
} }
settimer_callback = CallBack; settimer_callback = (UINTN)CallBack;
} }

View File

@ -1,7 +1,7 @@
/** @file /** @file
Copyright (c) 2008 - 2011, Apple Inc. All rights reserved.<BR> 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 SPDX-License-Identifier: BSD-2-Clause-Patent
@ -195,7 +195,7 @@ void
UINTN UINTN
ReverseGasketUint64 ( ReverseGasketUint64 (
CALL_BACK CallBack, UINTN CallBack,
UINT64 a UINT64 a
); );

View File

@ -2,7 +2,7 @@
# Entry Point of Emu Emulator # Entry Point of Emu Emulator
# #
# Main executable file of Unix Emulator that loads PEI core after initialization finished. # 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> # Portions copyright (c) 2008 - 2011, Apple Inc. All rights reserved.<BR>
# #
# SPDX-License-Identifier: BSD-2-Clause-Patent # SPDX-License-Identifier: BSD-2-Clause-Patent
@ -132,11 +132,11 @@
# Need to do this link via gcc and not ld as the pathing to libraries changes from OS version to OS version # 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_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_DLINK_FLAGS == -arch i386 -o $(BIN_DIR)/Host -L/usr/X11R6/lib -lXext -lX11 -framework Carbon
XCODE:*_*_IA32_ASM_FLAGS == -arch i386 -g XCODE:*_*_IA32_ASM_FLAGS == -arch i386 -g
XCODE:*_*_X64_DLINK_PATH == gcc 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_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))"

View File

@ -2,7 +2,7 @@
POSIX Pthreads to emulate APs and implement threads POSIX Pthreads to emulate APs and implement threads
Copyright (c) 2011, Apple Inc. All rights reserved. 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 SPDX-License-Identifier: BSD-2-Clause-Patent
@ -109,7 +109,7 @@ SecFakePthreadStart (
// This is a great example of how all problems in computer // This is a great example of how all problems in computer
// science can be solved by adding another level of indirection // 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 UINTN