mirror of https://github.com/acidanthera/audk.git
Add information on gcc and EdkUnixPkg.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@2187 6f19259b-4bc3-4df7-8a09-765794883524
This commit is contained in:
parent
377fc2ae71
commit
c9b1cad8e6
|
@ -21,6 +21,8 @@ Package Contents
|
||||||
EdkFatBinPkg - Binary DXE drivers for the Fat 32 file system
|
EdkFatBinPkg - Binary DXE drivers for the Fat 32 file system
|
||||||
EdkShellBinPkg - Binary Shell applications and commands
|
EdkShellBinPkg - Binary Shell applications and commands
|
||||||
EdkNt32Pkg - NT32 Emulation platform reference
|
EdkNt32Pkg - NT32 Emulation platform reference
|
||||||
|
EdkUnixPkg - Posix/Unix Emulation platform reference (Currently this
|
||||||
|
builds only on ia32 Linux, but is meant to be portable.)
|
||||||
|
|
||||||
Note: MDE and MDK that appear in other documentation refer to the MdePkg and
|
Note: MDE and MDK that appear in other documentation refer to the MdePkg and
|
||||||
Tools packages, respectively. While, these two packages are the minimum
|
Tools packages, respectively. While, these two packages are the minimum
|
||||||
|
@ -213,10 +215,10 @@ Cygwin, Linux, and many other POSIX-compliant host operating environments. To
|
||||||
compile the custom gcc tool chain, you need the following tools on your host
|
compile the custom gcc tool chain, you need the following tools on your host
|
||||||
computer: bash, gcc, gmake, curl (or wget).
|
computer: bash, gcc, gmake, curl (or wget).
|
||||||
|
|
||||||
Only the MdePkg and EdkModulePkg are currently supported by gcc builds. Other
|
Only the MdePkg, EdkModulePkg and EdkUnixPkg are currently supported by gcc
|
||||||
builds, such as the EdkNt32Pkg, will not compile with gcc. By default, the edk2
|
builds. Other builds, such as the EdkNt32Pkg, will not compile with gcc. By
|
||||||
will try to build the NT32.fpd, which is not supported by gcc. So, you need to
|
default, the edk2 will try to build the NT32.fpd, which is not supported by
|
||||||
change the Tools/Conf/target.txt.
|
gcc. So, you need to change the Tools/Conf/target.txt.
|
||||||
|
|
||||||
The cross-compile build script has been tested on Cygwin, OS X and Linux. You
|
The cross-compile build script has been tested on Cygwin, OS X and Linux. You
|
||||||
should expect to hack on these scripts to make them work on your system. You
|
should expect to hack on these scripts to make them work on your system. You
|
||||||
|
@ -318,8 +320,37 @@ not support the EFIAPI calling convention the x64 tools do not support generatin
|
||||||
PE32+ image. The EFIAPI calling convention is very similar to the Microsoft x64
|
PE32+ image. The EFIAPI calling convention is very similar to the Microsoft x64
|
||||||
calling convention.
|
calling convention.
|
||||||
|
|
||||||
|
We have added prelinary support for the MinGW64 Tool chain. This gcc tool
|
||||||
|
chain is ported to follow the Microsft X64 ABI, and therefore is compatible
|
||||||
|
with the EFI specification.
|
||||||
|
|
||||||
On Itanium?Processors the gcc compiler does not support generating a PE32+ image.
|
On Itanium?Processors the gcc compiler does not support generating a PE32+ image.
|
||||||
|
|
||||||
|
----------------------------------------
|
||||||
|
A Word on EdkUnixPkg -- The Unix simulator
|
||||||
|
----------------------------------------
|
||||||
|
|
||||||
|
A unix port of the Nt32 simulator has been added to the project. It currently
|
||||||
|
builds and runs on 32 bit Linux, but should be portable to other Unix
|
||||||
|
variants. In order to build it, you should use the ELFGCC tool chain defintion
|
||||||
|
in tools_def.txt, which is set in target.txt. These are two settings to make
|
||||||
|
in Tools/Conf/target.txt:
|
||||||
|
|
||||||
|
ACTIVE_PLATFORM = EdkUnixPkg/Unix.fpd
|
||||||
|
TOOL_CHAIN_TAG = ELFGCC
|
||||||
|
|
||||||
|
Once that is setup, type build, and then you will end up with the simulator in
|
||||||
|
Build/Unix/DEBUG_ELFGCC/IA32/SecMain.exe.
|
||||||
|
|
||||||
|
In order to use the gdb debugger with the simulator, you may need to load the
|
||||||
|
correct symbol file for the various modules that are loaded. For example,
|
||||||
|
|
||||||
|
add-symbol-file EdkModulePkg/Bus/Pci/PciBus/Dxe/PciBus/DEBUG/./PciBus.dll
|
||||||
|
0x45dc6000
|
||||||
|
|
||||||
|
You can see the names of the symbol files (they are in ELF format even though
|
||||||
|
the extension is .dll) printed on the screen as the simulator comes up.
|
||||||
|
|
||||||
-----------------------
|
-----------------------
|
||||||
Notes on Documentation
|
Notes on Documentation
|
||||||
-----------------------
|
-----------------------
|
||||||
|
@ -687,4 +718,4 @@ Of particular note:
|
||||||
Virus scanned by McAfee VirusScan Enterprise 8.0.0, Virus Definitions 4890, no
|
Virus scanned by McAfee VirusScan Enterprise 8.0.0, Virus Definitions 4890, no
|
||||||
virus detected.
|
virus detected.
|
||||||
|
|
||||||
vim:tw=78:ts=2:fo=qa:com=fb\:- :ai
|
vim:tw=78:ts=2:com=fb\:- :ai
|
||||||
|
|
Loading…
Reference in New Issue