Hi, 
  I do the minimal change in Edk2 to make sure EmulatorPkg pass build in MAC. 
Here is the code https://github.com/lgao4/edk2/tree/XcodeEmulator. Please try 
to verify its functionality. If you request add this support, please enter one 
BZ (https://bugzilla.tianocore.org) for it. 

Thanks
Liming
> -----Original Message-----
> From: edk2-devel [mailto:edk2-devel-boun...@lists.01.org] On Behalf Of Gao, 
> Liming
> Sent: Wednesday, January 16, 2019 12:10 AM
> To: 唐佳诚 <chasont...@warmbloom.com>; edk2-devel <edk2-devel@lists.01.org>
> Subject: Re: [edk2] EmulatorPkg build issue with macOS mojave and Xcode 10
> 
> I check the history. EmulatorPkg doesn't support macOS. EmulatorePkg depends 
> on XCODE32 tool chain to generate the host application.
> But, XCODE32 tool chain has been removed at edk2 
> f7bd152c2a05bd75471305184c25f14f01ccf0b7.
> 
> I just try to add back this change, and call build.sh without the change. I 
> meet with new issue. Seemly, I need to install XQuartz. I will
> continue to try it. Besides, I suggest you directly use edk2 master instead 
> of UDK2018 branch. If I do some fix, you can directly get it.
> 
> /Users/tiano/lgao4/AllPkg/Edk2/EmulatorPkg/Unix/Host/X11GraphicsWindow.c:21:10:
>  fatal error: 'X11/Xlib.h' file not found
> 
> Thanks
> Liming
> > -----Original Message-----
> > From: edk2-devel [mailto:edk2-devel-boun...@lists.01.org] On Behalf Of 唐佳诚
> > Sent: Tuesday, January 15, 2019 10:57 AM
> > To: edk2-devel <edk2-devel@lists.01.org>
> > Subject: [edk2] EmulatorPkg build issue with macOS mojave and Xcode 10
> >
> > Hi Dear EmulatorPkg Maintainer:
> >   I'm a newbie at this, I am sorry for the wrong format of the previous 
> > mail. There are some issue when building EmulatorPkg. Any
> > inspiration or help will appreciated!
> >
> > OS Environment: macOS mojave with Xcode 10 command line tool and installed 
> > macOS_SDK_headers_for_macOS_10.14.pkg
> > Download edk2-UDK2018.zip
> > Initializing workspace
> > > source ./edk2setup.sh
> >
> > WORKSPACE: /Users/QianYun/Downloads/edk2-vUDK2018
> > EDK_TOOLS_PATH: /Users/QianYun/Downloads/edk2-vUDK2018/BaseTools
> > CONF_PATH: /Users/QianYun/Downloads/edk2-vUDK2018/Conf
> > Copying $EDK_TOOLS_PATH/Conf/build_rule.template
> >      to /Users/QianYun/Downloads/edk2-vUDK2018/Conf/build_rule.txt
> > Copying $EDK_TOOLS_PATH/Conf/tools_def.template
> >      to /Users/QianYun/Downloads/edk2-vUDK2018/Conf/tools_def.txt
> > Copying $EDK_TOOLS_PATH/Conf/target.template
> >      to /Users/QianYun/Downloads/edk2-vUDK2018/Conf/target.txt
> >
> > > cd EmulatorPkg && ./build.sh
> >
> > The BaseTools will build successfully, and EmulatorPkg will fail to build.
> >
> > 'import sitecustomize' failed; use -v for traceback
> > Build environment: Darwin-18.2.0-x86_64-i386-64bit
> > Build start time: 15:10:45, Jan.14 2019
> >
> > WORKSPACE        = /Users/QianYun/Downloads/edk2-vUDK2018
> > ECP_SOURCE       = 
> > /Users/QianYun/Downloads/edk2-vUDK2018/EdkCompatibilityPkg
> > EDK_SOURCE       = 
> > /Users/QianYun/Downloads/edk2-vUDK2018/EdkCompatibilityPkg
> > EFI_SOURCE       = 
> > /Users/QianYun/Downloads/edk2-vUDK2018/EdkCompatibilityPkg
> > EDK_TOOLS_PATH   = /Users/QianYun/Downloads/edk2-vUDK2018/BaseTools
> > CONF_PATH        = /Users/QianYun/Downloads/edk2-vUDK2018/Conf
> > build: : warning: Tool chain [XCODE32] is not defined
> >
> >
> > build.py...
> >  : error 4000: Not available
> >     [XCODE32] not defined. No toolchain available for build!
> >
> >
> > - Failed -
> > Build end time: 15:10:46, Jan.14 2019
> > Build total time: 00:00:00
> >
> > Edit EmulatorPkg/build.sh and ./build.sh again
> >
> > diff --git a/build.sh.new b/build.sh
> > index 4f653d2..339c6b3 100755
> > --- a/build.sh.new
> > +++ b/build.sh
> > @@ -63,8 +63,17 @@ case `uname` in
> >          echo UnixPkg requires Snow Leopard or later OS
> >          exit 1
> >        else
> > -        HOST_TOOLS=XCODE5
> > -        TARGET_TOOLS=XCODE5
> > +        CLANG_VER=$(clang -ccc-host-triple x86_64-pc-win32-macho 2>&1 
> > >/dev/null) || true
> > +        if [[ "$CLANG_VER" == *-ccc-host-triple* ]]
> > +        then
> > +        # only older versions of Xcode support -ccc-host-tripe, for newer 
> > versions
> > +        # it is -target
> > +          HOST_TOOLS=XCODE32
> > +          TARGET_TOOLS=XCODE5
> > +        else
> > +          HOST_TOOLS=XCODE32
> > +          TARGET_TOOLS=XCLANG
> > +        fi
> >        fi
> >        BUILD_NEW_SHELL="-D BUILD_NEW_SHELL"
> >        BUILD_FAT="-D BUILD_FAT"
> >
> > However, this attempt still failed.
> >
> > Building ... 
> > /Users/QianYun/Downloads/edk2-vUDK2018/EmulatorPkg/Unix/Host/Host.inf [X64]
> > "clang" -target x86_64-pc-win32-macho -c -g -Os -Wall -Werror -Wextra 
> > -include AutoGen.h -funsigned-char -fno-ms-extensions
> > -fno-stack-protector -fno-builtin -fshort-wchar -mno-implicit-float 
> > -mms-bitfields -Wno-unused-parameter -Wno-missing-braces
> > -Wno-missing-field-initializers -Wno-tautological-compare -Wno-sign-compare 
> > -Wno-varargs
> > -ftrap-function=undefined_behavior_has_been_optimized_away_by_clang -D 
> > NO_MSABI_VA_FUNCS
> > -I/Users/QianYun/Downloads/edk2-vUDK2018/EmulatorPkg/Unix/Host/X11IncludeHack
> >  -o
> > /Users/QianYun/Downloads/edk2-vUDK2018/Build/Emulator/DEBUG_XCODE5/X64/EmulatorPkg/Unix/Host/Host/OUTPUT/./Host.obj
> > -I/Users/QianYun/Downloads/edk2-vUDK2018/EmulatorPkg/Unix/Host/X64
> > -I/Users/QianYun/Downloads/edk2-vUDK2018/EmulatorPkg/Unix/Host
> > -I/Users/QianYun/Downloads/edk2-vUDK2018/Build/Emulator/DEBUG_XCODE5/X64/EmulatorPkg/Unix/Host/Host/DEBUG
> > -I/Users/QianYun/Downloads/edk2-vUDK2018/MdePkg 
> > -I/Users/QianYun/Downloads/edk2-vUDK2018/MdePkg/Include
> > -I/Users/QianYun/Downloads/edk2-v
> >  UDK2018/MdePkg/Include/X64 
> > -I/Users/QianYun/Downloads/edk2-vUDK2018/MdeModulePkg
> > -I/Users/QianYun/Downloads/edk2-vUDK2018/MdeModulePkg/Include 
> > -I/Users/QianYun/Downloads/edk2-vUDK2018/EmulatorPkg
> > -I/Users/QianYun/Downloads/edk2-vUDK2018/EmulatorPkg/Include
> > /Users/QianYun/Downloads/edk2-vUDK2018/EmulatorPkg/Unix/Host/Host.c
> > "clang" -target x86_64-pc-win32-macho -c -g -Os -Wall -Werror -Wextra 
> > -include AutoGen.h -funsigned-char -fno-ms-extensions
> > -fno-stack-protector -fno-builtin -fshort-wchar -mno-implicit-float 
> > -mms-bitfields -Wno-unused-parameter -Wno-missing-braces
> > -Wno-missing-field-initializers -Wno-tautological-compare -Wno-sign-compare 
> > -Wno-varargs
> > -ftrap-function=undefined_behavior_has_been_optimized_away_by_clang -D 
> > NO_MSABI_VA_FUNCS  -o
> >
> /Users/QianYun/Downloads/edk2-vUDK2018/Build/Emulator/DEBUG_XCODE5/X64/ShellPkg/Library/UefiShellNetwork1CommandsLib/U
> > efiShellNetwork1CommandsLib/OUTPUT/./AutoGen.obj
> > -I/Users/QianYun/Downloads/edk2-vUDK2018/ShellPkg/Library/UefiShellNetwork1CommandsLib
> >
> -I/Users/QianYun/Downloads/edk2-vUDK2018/Build/Emulator/DEBUG_XCODE5/X64/ShellPkg/Library/UefiShellNetwork1CommandsLib/
> > UefiShellNetwork1CommandsLib/DEBUG 
> > -I/Users/QianYun/Downloads/edk2-vUDK2018/MdePkg
> > -I/Users/QianYun/Downloads/edk2-vUDK2018/MdePkg/Include 
> > -I/Users/QianYun/Downloads/edk2-vUDK2018/MdePkg/Include
> >  /X64 -I/Users/QianYun/Downloads/edk2-vUDK2018/ShellPkg 
> > -I/Users/QianYun/Downloads/edk2-vUDK2018/ShellPkg/Include
> > -I/Users/QianYun/Downloads/edk2-vUDK2018/MdeModulePkg 
> > -I/Users/QianYun/Downloads/edk2-vUDK2018/MdeModulePkg/Include
> >
> /Users/QianYun/Downloads/edk2-vUDK2018/Build/Emulator/DEBUG_XCODE5/X64/ShellPkg/Library/UefiShellNetwork1CommandsLib/U
> > efiShellNetwork1CommandsLib/DEBUG/AutoGen.c
> > In file included from 
> > /Users/QianYun/Downloads/edk2-vUDK2018/EmulatorPkg/Unix/Host/Host.c:15:
> > /Users/QianYun/Downloads/edk2-vUDK2018/EmulatorPkg/Unix/Host/Host.h:28:10: 
> > fatal error: 'stdio.h' file not found
> > #include <stdio.h>
> >          ^~~~~~~~~
> > "clang" -target x86_64-pc-win32-macho -c -g -Os -Wall -Werror -Wextra 
> > -include AutoGen.h -funsigned-char -fno-ms-extensions
> > -fno-stack-protector -fno-builtin -fshort-wchar -mno-implicit-float 
> > -mms-bitfields -Wno-unused-parameter -Wno-missing-braces
> > -Wno-missing-field-initializers -Wno-tautological-compare -Wno-sign-compare 
> > -Wno-varargs
> > -ftrap-function=undefined_behavior_has_been_optimized_away_by_clang -D 
> > NO_MSABI_VA_FUNCS  -o
> >
> /Users/QianYun/Downloads/edk2-vUDK2018/Build/Emulator/DEBUG_XCODE5/X64/ShellPkg/Library/UefiShellDebug1CommandsLib/Uef
> > iShellDebug1CommandsLib/OUTPUT/./SerMode.obj
> > -I/Users/QianYun/Downloads/edk2-vUDK2018/ShellPkg/Library/UefiShellDebug1CommandsLib/HexEdit
> > -I/Users/QianYun/Downloads/edk2-vUDK2018/ShellPkg/Library/UefiShellDebug1CommandsLib/Edit
> > -I/Users/QianYun/Downloads/edk2-vUDK2018/ShellPkg/Library/UefiShellDebug1CommandsLib/SmbiosView
> > -I/Users/QianYun/Downloads/edk2-vUDK2018/ShellPkg/Library/UefiShellDebug1CommandsLib
> > -I/Users/QianYun/Downloads/edk2-vUDK2018
> >  
> > /Build/Emulator/DEBUG_XCODE5/X64/ShellPkg/Library/UefiShellDebug1CommandsLib/UefiShellDebug1CommandsLib/DEBUG
> > -I/Users/QianYun/Downloads/edk2-vUDK2018/MdePkg 
> > -I/Users/QianYun/Downloads/edk2-vUDK2018/MdePkg/Include
> > -I/Users/QianYun/Downloads/edk2-vUDK2018/MdePkg/Include/X64 
> > -I/Users/QianYun/Downloads/edk2-vUDK2018/ShellPkg
> > -I/Users/QianYun/Downloads/edk2-vUDK2018/ShellPkg/Include 
> > -I/Users/QianYun/Downloads/edk2-vUDK2018/MdeModulePkg
> > -I/Users/QianYun/Downloads/edk2-vUDK2018/MdeModulePkg/Include
> > /Users/QianYun/Downloads/edk2-vUDK2018/ShellPkg/Library/UefiShellDebug1CommandsLib/SerMode.c
> > 1 error generated.
> > make: ***
> > [/Users/QianYun/Downloads/edk2-vUDK2018/Build/Emulator/DEBUG_XCODE5/X64/EmulatorPkg/Unix/Host/Host/OUTPUT/Host.obj]
> > Error 1
> >
> >
> > build.py...
> >  : error 7000: Failed to execute command
> >     make tbuild 
> > [/Users/QianYun/Downloads/edk2-vUDK2018/Build/Emulator/DEBUG_XCODE5/X64/EmulatorPkg/Unix/Host/Host]
> >
> >
> > build.py...
> >  : error F002: Failed to build module
> >     /Users/QianYun/Downloads/edk2-vUDK2018/EmulatorPkg/Unix/Host/Host.inf 
> > [X64, XCODE5, DEBUG]
> >
> > - Failed -
> > Build end time: 15:16:01, Jan.14 2019
> > Build total time: 00:00:39
> >
> > After careful analysis, i find out that the include search path is wrong. 
> > clang will search some path below by default.
> >
> > > clang++ -E -x c++ - -v < /dev/null
> >
> > Apple LLVM version 10.0.0 (clang-1000.11.45.5)
> > Target: x86_64-apple-darwin18.2.0
> > Thread model: posix
> > InstalledDir: 
> > /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin
> >  
> > "/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang"
> >  -cc1 -triple
> > x86_64-apple-macosx10.14.0 -Wdeprecated-objc-isa-usage 
> > -Werror=deprecated-objc-isa-usage -E -disable-free -disable-llvm-verifier
> > -discard-value-names -main-file-name - -mrelocation-model pic -pic-level 2 
> > -mthread-model posix -mdisable-fp-elim -fno-strict-return
> > -masm-verbose -munwind-tables -target-cpu penryn -dwarf-column-info 
> > -debugger-tuning=lldb -target-linker-version 409.12 -v
> > -resource-dir 
> > /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/clang/10.0.0
> >  -stdlib=libc++
> > -fdeprecated-macro -fdebug-compilation-dir 
> > /Users/QianYun/Downloads/edk2-vUDK2018/EmulatorPkg -ferror-limit 19
> > -fmessage-length 181 -stack-protector 1 -fblocks 
> > -fencode-extended-block-signature -fobjc-runtime=macosx-10.14.0 
> > -fcxx-exceptions
> > -fexceptions -fmax-type-align=16 -fdiagnostics-show-option 
> > -fcolor-diagnostics -o - -x c++ -
> > clang -cc1 version 10.0.0 (clang-1000.11.45.5) default target 
> > x86_64-apple-darwin18.2.0
> > ignoring nonexistent directory "/usr/include/c++/v1"
> > #include "..." search starts here:
> > #include <...> search starts here:
> >  
> > /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1
> >  /usr/local/include
> >  
> > /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/clang/10.0.0/include
> >  
> > /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include
> >  /usr/include
> >  /System/Library/Frameworks (framework directory)
> >  /Library/Frameworks (framework directory)
> > End of search list.
> > # 1 "<stdin>"
> > # 1 "<built-in>" 1
> > # 1 "<built-in>" 3
> > # 373 "<built-in>" 3
> > # 1 "<command line>" 1
> > # 1 "<built-in>" 2
> > # 1 "<stdin>" 2
> >
> > But -target x86_64-pc-win32-macho will working in cross-compilation mode. 
> > it will search this path and stdio.h will not found
> >
> > > clang++ -target x86_64-pc-win32-macho -E -x c++ - -v < /dev/null
> >
> > Apple LLVM version 10.0.0 (clang-1000.11.45.5)
> > Target: x86_64-pc-windows-macho
> > Thread model: posix
> > InstalledDir: 
> > /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin
> >  
> > "/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang"
> >  -cc1 -triple
> > x86_64-pc-windows-macho -E -disable-free -disable-llvm-verifier 
> > -discard-value-names -main-file-name - -mrelocation-model pic
> > -pic-level 2 -mthread-model posix -mdisable-fp-elim -fmath-errno 
> > -masm-verbose -mconstructor-aliases -target-cpu x86-64
> > -dwarf-column-info -debugger-tuning=gdb -target-linker-version 409.12 -v 
> > -resource-dir
> > /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/clang/10.0.0
> >  -internal-isystem
> > /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/clang/10.0.0/include
> >  -fdeprecated-macro
> > -fdebug-compilation-dir /Users/QianYun/Downloads/edk2-vUDK2018/EmulatorPkg 
> > -ferror-limit 19 -fmessage-length 181
> > -fno-use-cxa-atexit -fms-extensions -fms-compatibility 
> > -fms-compatibility-version=19.11 -std=c++14 -fdelayed-template-parsing
> > -fobjc-runtime=gcc -fcxx-exceptions -fexceptions -fseh-exceptions -fdiag
> >  nostics-show-option -fcolor-diagnostics -o - -x c++ -
> > clang -cc1 version 10.0.0 (clang-1000.11.45.5) default target 
> > x86_64-apple-darwin18.2.0
> > #include "..." search starts here:
> > #include <...> search starts here:
> >  
> > /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/clang/10.0.0/include
> > End of search list.
> > # 1 "<stdin>"
> > # 1 "<built-in>" 1
> > # 1 "<built-in>" 3
> > # 366 "<built-in>" 3
> > # 1 "<command line>" 1
> > # 1 "<built-in>" 2
> > # 1 "<stdin>" 2
> >
> > We can obviously see that the 
> > XcodeDefault.xctoolchain/usr/lib/clang/10.0.0/include is not include the 
> > stdio.h, so that, preview build
> > error is stdio.h not found.
> >
> > And there is another thing that puzzles me. The 
> > EmulatorPkg/Unix/Host/Host.h define some name mangle, and include 
> > stdio.h(this file
> > include endian.h), That will cause the macro definition to be redefined.
> > This thing made me spend a lot of energy.Is there are anyone can solve my 
> > confusion.
> > Thanks,
> > ChasonTang
> > _______________________________________________
> > edk2-devel mailing list
> > edk2-devel@lists.01.org
> > https://lists.01.org/mailman/listinfo/edk2-devel
> _______________________________________________
> edk2-devel mailing list
> edk2-devel@lists.01.org
> https://lists.01.org/mailman/listinfo/edk2-devel
_______________________________________________
edk2-devel mailing list
edk2-devel@lists.01.org
https://lists.01.org/mailman/listinfo/edk2-devel

Reply via email to