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;
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;
}

View File

@ -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
);

View File

@ -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 @@
# 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))"

View File

@ -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