summaryrefslogtreecommitdiff
path: root/EmulatorPkg/Unix
AgeCommit message (Collapse)AuthorFilesLines
2026-06-09EmulatorPkg: Replace manual alignment checks with helper macrosMingjie Shen1-1/+1
Replace manual alignment checks with IS_ALIGNED() and ADDRESS_IS_ALIGNED(). Convert the following bitmask and modulo forms: - ((E & ((PowOf2Expr) - ONE)) == ZERO) - ((E & ((PowOf2Expr) - ONE)) != ZERO) - ((E % (PowOf2Expr)) == ZERO) - ((E % (PowOf2Expr)) != ZERO) to the corresponding helper macro forms: + IS_ALIGNED (E, PowOf2Expr) + !IS_ALIGNED (E, PowOf2Expr) PowOf2Expr is limited to known power-of-two expressions, including SIZE_* and BASE_* macros, EFI_PAGE_SIZE, CPU_STACK_ALIGNMENT, RUNTIME_PAGE_ALLOCATION_GRANULARITY, sizeof() of UEFI integer types (e.g. BOOLEAN, CHAR16, UINT32, UINTN) and pointer types, and 1 << E1 expressions. Address checks that cast the checked value to UINTN are written with ADDRESS_IS_ALIGNED(). The change was generated with the Coccinelle semantic patch below. ```smpl @power_of_2_expr@ expression PowOf2Expr; expression E1; typedef BOOLEAN, CHAR8, CHAR16, INT8, UINT8, INT16, UINT16, INT32, UINT32, INT64, UINT64, INTN, UINTN; type ScalarType = { BOOLEAN, CHAR8, CHAR16, INT8, UINT8, INT16, UINT16, INT32, UINT32, INT64, UINT64, INTN, UINTN }; type AnyType; type PointerType = AnyType *; idexpression ScalarType ScalarValue; idexpression PointerType PointerValue; constant SizeBase =~ "^(SIZE|BASE)_(1|2|4|8|16|32|64|128|256|512)[KMGTPE]B$"; constant NamedPowerOf2 =~ "^(EFI_PAGE_SIZE|CPU_STACK_ALIGNMENT|RUNTIME_PAGE_ALLOCATION_GRANULARITY)$"; constant ONE = {1, 1U, 1u}; @@ ( ( SizeBase | NamedPowerOf2 | ONE << E1 | sizeof (ScalarType) | sizeof (PointerType) | sizeof (ScalarValue) | sizeof (PointerValue) ) & PowOf2Expr ) @aligned depends on power_of_2_expr disable is_zero,isnt_zero@ expression E; expression power_of_2_expr.PowOf2Expr; constant ONE = {1, 1U, 1u}; constant ZERO = {0, 0U, 0u}; @@ ( ((E & (E - ONE)) == ZERO) | - ((E & ((PowOf2Expr) - ONE)) == ZERO) + IS_ALIGNED (E, PowOf2Expr) | ((E & (E - ONE)) != ZERO) | - ((E & ((PowOf2Expr) - ONE)) != ZERO) + !IS_ALIGNED (E, PowOf2Expr) | - ((E % (PowOf2Expr)) == ZERO) + IS_ALIGNED (E, PowOf2Expr) | - ((E % (PowOf2Expr)) != ZERO) + !IS_ALIGNED (E, PowOf2Expr) ) @address_is_aligned@ typedef UINTN; expression *Address; expression Alignment; @@ - IS_ALIGNED ((UINTN) Address, Alignment) + ADDRESS_IS_ALIGNED (Address, Alignment) @normalize_aligned disable paren expression@ expression E, SZ; @@ ( - (IS_ALIGNED (E, SZ)) + IS_ALIGNED (E, SZ) | - (!IS_ALIGNED (E, SZ)) + !IS_ALIGNED (E, SZ) ) @normalize_macro_args disable paren expression@ expression E, SZ; @@ ( - IS_ALIGNED ((E), SZ) + IS_ALIGNED (E, SZ) | - IS_ALIGNED (E, (SZ)) + IS_ALIGNED (E, SZ) ) ``` Signed-off-by: Mingjie Shen <shen497@purdue.edu>
2026-04-29EmulatorPkg/Host: Remove duplicate procotol in INF fileQihang Gao1-1/+0
In EmulatorPkg/Unix/Host driver, gEmuIoThunkProtocolGuid appears twice in [Procotols] section, so remove the duplicate one. Signed-off-by: Qihang Gao <gaoqihang@loongson.cn>
2026-02-24EmulatorPkg: Replace include guards with #pragma onceMichael Kubacki2-8/+2
Replace traditional `#ifndef`/`#define`/`#endif` include guards with `#pragma` once. `#pragma once` is a widely supported preprocessor directive that prevents header files from being included multiple times. It is supported by all toolchains used to build edk2: GCC, Clang/LLVM, and MSVC. Compared to macro-based include guards, `#pragma once`: - Eliminates the risk of macro name collisions or copy/paste errors where two headers inadvertently use the same guard macro. - Eliminate inconsistency in the way include guard macros are named (e.g., some files use `__FILE_H__`, others use `FILE_H_`, etc.). - Reduces boilerplate (three lines replaced by one). - Avoids polluting the macro namespace with guard symbols. - Can improve build times as the preprocessor can skip re-opening the file entirely, rather than re-reading it to find the matching `#endif` ("multiple-include optimization"). - Note that some compilers may already optimize traditional include guards, by recognzining the idiomatic pattern. This change is made acknowledging that overall portability of the code will technically be reduced, as `#pragma once` is not part of the C/C++ standards. However, this is considered acceptable given: 1. edk2 already defines a subset of supported compilers in BaseTools/Conf/tools_def.template, all of which have supported `#pragma once` for over two decades. 2. There have been concerns raised to the project about inconsistent include guard naming and potential macro collisions. Approximate compiler support dates: - MSVC: Supported since Visual C++ 4.2 (1996) - GCC: Supported since 3.4 (2004) (http://gnu.ist.utl.pt/software/gcc/gcc-3.4/changes.html) - Clang (LLVM based): Since initial release in 2007 Signed-off-by: Michael Kubacki <michael.kubacki@microsoft.com>
2026-01-07EmulatorPkg: Use HOST_APPLICATION and add MINGW CLANGMichael D Kinney1-26/+1
* Update EmulatorPkg to use HOST_APPLICATION module type instead of USER_DEFINED to align with UnitTestFrameworkPkg that uses HOST_APPLICATION for all Host-based unit tests. * Move [BuildOptions] from host module INFs files to EmulatorPkg DSC file. This is required to have finer control over build options for MINGW CLANG builds. * Add support for MINGW CLANG builds. * Use WIN_HOST_BUILD to simplify the selection of the Windows host module or the Linux host module. * Add missing StackCheckLib mapping * Override PcdOpensslLibAssemblySourceStyleNasm to TRUE for MINGW CLANG builds that use Windows calling convention. * Add checks for support tool chains with error messages * Set linker BASE to correct values for DLLs and Applications for 32-bit and 64-bit Windows builds. * Update DEBUG, RELEASE, and NOOPT profiles with correct optimization settings and source level debug settings. * Reduce Visual Studio support to VS2019 and VS2022 * Simplify linker settings for Visual Studio builds. Signed-off-by: Michael D Kinney <michael.d.kinney@intel.com>
2026-01-07EmulatorPkg/Unix: Load symbols when modules are loadedMichael D Kinney2-8/+13
Update GdbRun.sh to load symbols as modules are loaded and executed in the EmulatorPkg by executing a command each time the function SecGdbScriptBreak is executed. Set PcdEmulatorLazyLoadSymbols to FALSE to disable lazy symbol loading. With these changes, a break point can be set in any source file that is part of the EmulatorPkg build before the EmulatorPkg is executed. Signed-off-by: Michael D Kinney <michael.d.kinney@intel.com>
2026-01-05EmulatorPkg/Unix/Host: Fix gPpiList multiply definedMichael D Kinney1-3/+3
Multiple defined symbols are reported by clang builds for the symbol gPpiList. Change the name of the variable gPpiList in Host.c to mPpiList to guarantee unique symbols names within the Unit/Host component. Signed-off-by: Michael D Kinney <michael.d.kinney@intel.com>
2026-01-05EmulatorPkg/Unix/Host: Fix symbol loading with clangMichael D Kinney1-2/+11
Fix symbol loading issues with clang compilers where SecGdbSciptBreak() is optimized away and the gdb/lldb breakpoint on that symbol is never hit and no symbols are loaded for any modules. Update the implementation of SecGdbScriptBreak() so it is never inlined and add code to the implementation of SecGdbScriptBreak() to guarantee that the entire function is never optimized away by using a volatile loop variable. Signed-off-by: Michael D Kinney <michael.d.kinney@intel.com>
2025-11-21EmulatorPkg: Do not require deprecated termio.hOliver Steffen1-1/+0
The termio.h of glibc has been deprecated for decades and was finally removed in glibc 2.42. EmulatorPkg still pulls it in for no reason (the "new" termios.h is being included already). Remove the include of termio.h. Signed-off-by: Oliver Steffen <osteffen@redhat.com>
2025-09-22EmulatorPkg/Unix/Host: Add CLANGDWARF support and reduce warningsMichael D Kinney1-16/+9
Use GCC family and remove references to specific tool chain tags. This allows all GCC families to be supported including CLANGDWARF. Add -z noexecstack to reduce warnings. Signed-off-by: Michael D Kinney <michael.d.kinney@intel.com>
2025-09-22EmulatorPkg/Unix/Host: Fix set but unused variablesMichael D Kinney3-67/+4
Signed-off-by: Michael D Kinney <michael.d.kinney@intel.com>
2025-07-08EmulatorPkg: Remove UGA supportGuoMinJ5-49/+48
The Universal Graphics Adapter (UGA) is a graphic abstraction. The UGA I/O and Draw protocols are deprecated since UEFI 2.0 was introduced. Cf. the UEFI spec v2.9: "Appendix L - EFI 1.10 Protocol Changes and Deprecation List" section L.2 "Deprecated Protocols" Remove the UGA support. Signed-off-by: GuoMinJ <newexplorerj@gmail.com> Signed-off-by: Pierre Gondois <pierre.gondois@arm.com>
2025-02-24EmulatorPkg/Unix/Host: Skip symbol unloading for stripped imagesanandhkrishnau1-2/+2
Skip symbol unloading for the PE/COFF images which dont have pdb area when it built in RELEASE MODE. Signed-off-by: Anandh krishna U <anandhkrishnau@ami.com>
2025-02-07MdePkg: Move StackCheckLibStaticInit to StackCheckLibOliver Smith-Denny1-0/+1
This commit oves StackCheckLib from a NULL lib to an instance of StackCheckLib. This requires every entry point to add a library dependency on StackCheckLib. It also requires every SEC module to have a dependency on StackCheckLib because there is no standard SEC entry point. It allows for greater flexibility for a platform to apply stack cookies and simplifies DSC logic. Continuous-integration-options: PatchCheck.ignore-multi-package Signed-off-by: Oliver Smith-Denny <osde@microsoft.com>
2024-09-05EmulatorPkg: fix X64 Unix/Host segfault with GCC toolchain profileLeif Lindholm1-0/+1
Add the necessary toolchain override flags for ms_abi and LTO on X64 for the unversioned GCC toolchain profile. This resolves a runtime segmentation fault. Signed-off-by: Leif Lindholm <quic_llindhol@quicinc.com>
2024-05-30EmulatorPkg: fix build error.Gerd Hoffmann1-1/+1
GasketSecSetTime is EMU_SET_TIME and returns EFI_STATUS. Fix the declaration accordingly. Fixes build error with gcc 14. /home/kraxel/projects/edk2/EmulatorPkg/Unix/Host/EmuThunk.c:429:3: error: initialization of ‘EFI_STATUS (__attribute__((ms_abi)) *)(EFI_TIME *)’ {aka ‘long long unsigned int (__attribute__((ms_abi)) *)(EFI_TIME *)’} from incompatible pointer type ‘void (__attribute__((ms_abi)) *)(EFI_TIME *)’ [-Wincompatible-pointer-types] 429 | GasketSecSetTime, | ^~~~~~~~~~~~~~~~ Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
2024-01-05Add EFI_STATUS return to EMU_THUNK_PROTOCOL.SetTime()Nate DeSimone1-2/+2
There is an inconsistency between the UNIX and Windows implementations of EMU_THUNK_PROTOCOL.SetTime(). The Windows version returns an EFI_STATUS value whereas the the UNIX implementation is VOID. However, the UNIX implementation is an unimplemented stub whereas the Windows version is implementated. The current EMU_THUNK_PROTOCOL function pointer definition specifies a VOID return type. However, EMU_THUNK_PROTOCOL.SetTime() is close to the spec defined gRT->SetTime() except for missing the EFI_STATUS return type. Therefore, I conclude that the most sensible reconciliation is to add the EFI_STATUS return type to the protocol definition. Cc: Andrew Fish <afish@apple.com> Reviewed-by: Ray Ni <ray.ni@intel.com> Cc: Michael D Kinney <michael.d.kinney@intel.com> Cc: Chasel Chiu <chasel.chiu@intel.com> Signed-off-by: Nate DeSimone <nathaniel.l.desimone@intel.com>
2023-09-27EmulatorPkg: Fix Terminal IssuesNate DeSimone1-1/+17
After running EmulatorPkg, one will notice that their terminal acts strangely. This is caused by the EmulatorPkg Host changing the terminal mode and not restoring the original mode, which is now fixed. Reviewed-by: Michael D Kinney <michael.d.kinney@intel.com> Cc: Andrew Fish <afish@apple.com> Cc: Ray Ni <ray.ni@intel.com> Cc: Chasel Chiu <chasel.chiu@intel.com> Signed-off-by: Nate DeSimone <nathaniel.l.desimone@intel.com>
2022-12-08EmulatorPkg: Record Argc, Argv and Envp in EmuThunk PpiLiu, Zhiguang1-0/+3
Record Argc, Argv and Envp in EmuThunk Ppi so that other modules can use these fields to change behavior depends on boot parameters or environment. Cc: Andrew Fish <afish@apple.com> Reviewed-by: Ray Ni <ray.ni@intel.com> Signed-off-by: Zhiguang Liu <zhiguang.liu@intel.com>
2022-12-08EmulatorPkg: Add persistent memory in EmuThunkPpiLiu, Zhiguang2-3/+13
The persistent memory is for PEIM to use, and won't lose during cold or warm reset. PcdPersistentMemorySize is only used by WinHost.c, other modules can check the persistent memory size using the field PersistentMemorySize. Cc: Andrew Fish <afish@apple.com> Reviewed-by: Ray Ni <ray.ni@intel.com> Signed-off-by: Zhiguang Liu <zhiguang.liu@intel.com>
2022-07-21EmulatorPkg/PosixFileSystem: Add NULL check on memory allocationShindo, Miki1-1/+1
REF: https://bugzilla.tianocore.org/show_bug.cgi?id=4001 This commit adds NULL check on memory allocation of the size for FileName in ASCII string format at PosixFileSetInfo(). Signed-off-by: Miki Shindo <miki.shindo@intel.com> Cc: Andrew Fish <afish@apple.com> Reviewed-by: Ray Ni <ray.ni@intel.com>
2021-12-13EmulatorPkg: Update lldbefi.py to work with current lldb which uses python3Rebecca Cran1-9/+8
The version of lldb shipping with macOS Big Sur is lldb-1205.0.27.3, and it uses python3. Update lldbefi.py to work with it, including removing the unused 'commands' import and fixing the print statements. Signed-off-by: Rebecca Cran <rebecca@bsdio.com> Reviewed-by: Andrew Fish <afish@apple.com>
2021-12-07EmulatorPkg: Apply uncrustify changesMichael Kubacki12-1748/+1753
REF: https://bugzilla.tianocore.org/show_bug.cgi?id=3737 Apply uncrustify changes to .c/.h files in the EmulatorPkg package Cc: Andrew Fish <afish@apple.com> Cc: Leif Lindholm <leif@nuviainc.com> Cc: Michael D Kinney <michael.d.kinney@intel.com> Signed-off-by: Michael Kubacki <michael.kubacki@microsoft.com> Reviewed-by: Ray Ni <ray.ni@intel.com>
2021-12-07EmulatorPkg: Change OPTIONAL keyword usage styleMichael D Kinney2-7/+4
REF: https://bugzilla.tianocore.org/show_bug.cgi?id=3760 Update all use of ', OPTIONAL' to ' OPTIONAL,' for function params. Cc: Andrew Fish <afish@apple.com> Cc: Leif Lindholm <leif@nuviainc.com> Cc: Michael Kubacki <michael.kubacki@microsoft.com> Signed-off-by: Michael D Kinney <michael.d.kinney@intel.com> Reviewed-by: Ray Ni <ray.ni@intel.com>
2021-12-07EmulatorPkg: Change use of EFI_D_* to DEBUG_*Michael D Kinney1-10/+8
REF: https://bugzilla.tianocore.org/show_bug.cgi?id=3739 Update all use of EFI_D_* defines in DEBUG() macros to DEBUG_* defines. Cc: Andrew Fish <afish@apple.com> Cc: Leif Lindholm <leif@nuviainc.com> Cc: Michael Kubacki <michael.kubacki@microsoft.com> Signed-off-by: Michael D Kinney <michael.d.kinney@intel.com> Reviewed-by: Ray Ni <ray.ni@intel.com>
2020-02-11EmulatorPkg/Unix: Fix various typosAntoine Coeur10-35/+35
Fix various typos in comments and documentation. Cc: Jordan Justen <jordan.l.justen@intel.com> Cc: Andrew Fish <afish@apple.com> Cc: Ray Ni <ray.ni@intel.com> Signed-off-by: Antoine Coeur <coeur@gmx.fr> Reviewed-by: Philippe Mathieu-Daude <philmd@redhat.com> Reviewed-by: Ray Ni <ray.ni@intel.com> Signed-off-by: Philippe Mathieu-Daude <philmd@redhat.com> Message-Id: <20200207010831.9046-6-philmd@redhat.com>
2019-08-19EmulatorPkg/Unix/Host: Remove debug code from BerkeleyPacketFilter.cAndrew Fish1-4/+0
Remove old debug code that generates an exception. Cc: Jordan Justen <jordan.l.justen@intel.com> Cc: Ray Ni <ray.ni@intel.com> Cc: Michael D Kinney <michael.d.kinney@intel.com> Signed-off-by: Andrew Fish <afish@apple.com> Reviewed-by: Michael D Kinney <michael.d.kinney@intel.com> Reviewed-by: Jordan Justen <jordan.l.justen@intel.com> Tested-by: Andrew Fish <afish@apple.com>
2019-08-19EmulatorPkg/Unix/Host: Initialize field in BerkeleyPacketFilter.cAndrew Fish1-0/+1
Initialize Private->ReadBuffer to NULL. Cc: Jordan Justen <jordan.l.justen@intel.com> Cc: Ray Ni <ray.ni@intel.com> Cc: Michael D Kinney <michael.d.kinney@intel.com> Signed-off-by: Andrew Fish <afish@apple.com> Reviewed-by: Michael D Kinney <michael.d.kinney@intel.com> Reviewed-by: Jordan Justen <jordan.l.justen@intel.com> Tested-by: Andrew Fish <afish@apple.com>
2019-08-19EmulatorPkg: Fix XCODE5 lldb issuesAndrew Fish1-3/+9
Fix scripts to support lldb symbolic debugging when using XCODE5 tool chain. Cc: Jordan Justen <jordan.l.justen@intel.com> Cc: Ray Ni <ray.ni@intel.com> Cc: Michael D Kinney <michael.d.kinney@intel.com> Signed-off-by: Andrew Fish <afish@apple.com> Reviewed-by: Michael D Kinney <michael.d.kinney@intel.com> Acked-by: Jordan Justen <jordan.l.justen@intel.com> Tested-by: Andrew Fish <afish@apple.com>
2019-08-19EmulatorPkg/Unix/Host: Disable inline/optimizations for XCODE5Andrew Fish2-2/+5
* Disable XCODE5 compiler optimizations fort Unix/Host. * Disable inline of SecGdbScriptBreak() to improve compatibility with XCODE5 * For X64 XCODE5 builds place output Host application in $(BIN_DIR) to match all other EmulatorPkg Host application builds. 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: Michael D Kinney <michael.d.kinney@intel.com> Acked-by: Jordan Justen <jordan.l.justen@intel.com> Tested-by: Andrew Fish <afish@apple.com>
2019-08-19EmulatorPkg: Add -D DISABLE_NEW_DEPRECATED_INTERFACESMichael D Kinney3-27/+67
https://bugzilla.tianocore.org/show_bug.cgi?id=162 Update EmulatorPkg specific modules and libraries to use safe string functions in BaseLib and safe PcdSetxx() functions in PcdLib. With these updates, the define DISABLE_NEW_DEPRECATED_INTERFACES is enabled in the DSC file. 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: Hao A Wu <hao.a.wu@intel.com> Acked-by: Jordan Justen <jordan.l.justen@intel.com> Tested-by: Andrew Fish <afish@apple.com>
2019-08-06EmulatorPkg/Unix/Host: Fix XCODE5 IA32/X64 build failureMichael D Kinney4-10/+10
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>
2019-08-06EmulatorPkg/Unix/Host: Fix NetworkPkg dependenciesMichael D Kinney2-1/+6
https://bugzilla.tianocore.org/show_bug.cgi?id=2046 * Add NetworkPkg to UNIX Host.inf dependencies * Fix MacOS redefinition of NTOHLL and HTONLL macros between EDK II and standard includes in UNIX Host.h. 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>
2019-07-14EmulatorPkg/Unix: Convert timezone from seconds to minutesJordan Justen2-3/+4
Fixes and assert seen when running ls under the shell. It appears the assert was added in: commit 99849a906e15ea3a9a0330d69bbae0d21ff49808 ShellPkg/ls: Display the file time in local time. Signed-off-by: Jordan Justen <jordan.l.justen@intel.com> Reviewed-by: Ray Ni <ray.ni@intel.com>
2019-04-16EmulatorPkg/Unix: Rename GdbRun to GdbRun.shKinney, Michael D4-3/+3
https://bugzilla.tianocore.org/show_bug.cgi?id=1657 Add .sh file extension to the shell script GdbRun so changes to this file will pass PatchCheck.py. Also update all scripts that execute GdbRun to execute GdbRun.sh instead. Cc: Jordan Justen <jordan.l.justen@intel.com> Cc: Andrew Fish <afish@apple.com> Cc: Ray Ni <ray.ni@intel.com> Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Michael D Kinney <michael.d.kinney@intel.com> Reviewed-by: Jordan Justen <jordan.l.justen@intel.com>
2019-04-09EmulatorPkg: Replace BSD License with BSD+Patent LicenseMichael D Kinney20-138/+20
https://bugzilla.tianocore.org/show_bug.cgi?id=1373 Replace BSD 2-Clause License with BSD+Patent License. This change is based on the following emails: https://lists.01.org/pipermail/edk2-devel/2019-February/036260.html https://lists.01.org/pipermail/edk2-devel/2018-October/030385.html RFCs with detailed process for the license change: V3: https://lists.01.org/pipermail/edk2-devel/2019-March/038116.html V2: https://lists.01.org/pipermail/edk2-devel/2019-March/037669.html V1: https://lists.01.org/pipermail/edk2-devel/2019-March/037500.html Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Michael D Kinney <michael.d.kinney@intel.com> Reviewed-by: Ray Ni <ray.ni@intel.com>
2019-01-08EmulatorPkg: require GCC48 or laterLaszlo Ersek1-4/+0
We're about to remove BaseTools support for GCC44..GCC47. Reject those gcc versions cleanly in "EmulatorPkg/build.sh", and drop build flags too that are specific to them. No GCC44..GCC47 references remain under EmulatorPkg after this patch. Cc: Andrew Fish <afish@apple.com> Cc: Jordan Justen <jordan.l.justen@intel.com> Cc: Ruiyu Ni <ruiyu.ni@intel.com> Ref: https://bugzilla.tianocore.org/show_bug.cgi?id=1377 Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Laszlo Ersek <lersek@redhat.com> Reviewed-by: Jordan Justen <jordan.l.justen@intel.com> Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com> Reviewed-by: Liming Gao <liming.gao@intel.com>
2018-09-25EmulatorPkg: Removing ipf which is no longer supported from edk2.Chen A Chen1-2/+2
Removing rules for Ipf sources file: * Remove the source file which path with "ipf" and also listed in [Sources.IPF] section of INF file. * Remove the source file which listed in [Components.IPF] section of DSC file and not listed in any other [Components] section. * Remove the embedded Ipf code for MDE_CPU_IPF. Removing rules for Inf file: * Remove IPF from VALID_ARCHITECTURES comments. * Remove DXE_SAL_DRIVER from LIBRARY_CLASS in [Defines] section. * Remove the INF which only listed in [Components.IPF] section in DSC. * Remove statements from [BuildOptions] that provide IPF specific flags. * Remove any IPF sepcific sections. Removing rules for Dec file: * Remove [Includes.IPF] section from Dec. Removing rules for Dsc file: * Remove IPF from SUPPORTED_ARCHITECTURES in [Defines] section of DSC. * Remove any IPF specific sections. * Remove statements from [BuildOptions] that provide IPF specific flags. Cc: Jordan Justen <jordan.l.justen@intel.com> Cc: Andrew Fish <afish@apple.com> Cc: Michael D Kinney <michael.d.kinney@intel.com> Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Chen A Chen <chen.a.chen@intel.com> Reviewed-by: Jordan Justen <jordan.l.justen@intel.com>
2018-08-30EmulatorPkg: formalize line endingsRuiyu Ni13-7189/+7189
The patch is the result of running "BaseTools/Scripts/FormatDosFiles.py EmulatorPkg/" No functionality impact. Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Ruiyu Ni <ruiyu.ni@intel.com> Reviewed-by: Hao A Wu <hao.a.wu@intel.com> Cc: Liming Gao <liming.gao@intel.com>
2018-02-27EmulatorPkg: Undefine CR3 macro in Host.hLiming Gao1-1/+1
CR3 has been used as structure field name in BaseLib IA32_TASK_STATE_SEGMENT. Undefine CR3 to make sure there is no conflict to it. Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Liming Gao <liming.gao@intel.com> Cc: Andrew Fish <afish@apple.com> Reviewed-by: Jordan Justen <jordan.l.justen@intel.com>
2017-07-08EmulatorPkg/Unix/Host: Add GCC5 CC/DLINK commands (for GCC >= 5)Jordan Justen1-0/+2
These flags are based on the flags from the GCC5 toolchain in tools_def.template. Since the GCC5 toolchain uses link-time optimizations (LTO), we must compile and link the 'Host' files with LTO enabled so we can link to other modules. Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Jordan Justen <jordan.l.justen@intel.com> Cc: Laszlo Ersek <lersek@redhat.com> Cc: Ard Biesheuvel <ard.biesheuvel@linaro.org> Reviewed-by: Laszlo Ersek <lersek@redhat.com>
2016-10-19EmulatorPkg: Fix typos in comments and variablesGary Lin2-14/+14
- Predfined -> Predefined - minimue -> minimum - predeined -> predefined - excute -> execute - availible -> available - discontiguous -> discontinuous - permenent -> permanent - immediatly -> immediately - environmemt -> environment - Seperator -> Separator - remmeber -> remember - initailized -> initialized Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Gary Lin <glin@suse.com> Reviewed-by: Jordan Justen <jordan.l.justen@intel.com>
2016-08-02BaseTools GCC: use 'gcc' as the linker command for GCC44 and laterArd Biesheuvel1-3/+3
To accommodate upcoming GCCx toolchain versions that require 'gcc' to be used as the linker in order to support LTO, switch GCC44 and later (including CLANG35) to a new DLINK build rule that invokes 'gcc' as the linker instead of 'ld'. Since gcc expects its command line arguments in a different format, and expects arguments that it needs to pass to the linker to be prefixed with '-Wl,', this involves changes to most of the DLINK_FLAGS definitions in tools_def.template, as well as some changes to module .INF files that set their own linker options. Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org> Reviewed-by: Jordan Justen <jordan.l.justen@intel.com> Reviewed-by: Liming Gao <liming.gao@intel.com>
2015-02-05EmulatorPkg: Update web page and wiki urlsJordan Justen1-1/+1
Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Jordan Justen <jordan.l.justen@intel.com> Reviewed-by: Bruce Cran <bruce.cran@gmail.com> git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@16780 6f19259b-4bc3-4df7-8a09-765794883524
2015-02-05EmulatorPkg: EmulatorPkg/Unix/Host/Host.c line-endings to CRLFJordan Justen1-1286/+1286
Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Jordan Justen <jordan.l.justen@intel.com> git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@16779 6f19259b-4bc3-4df7-8a09-765794883524
2014-08-29EmulatorPkg: Unix: Add LLDB support for Xcode 5Anderw Fish3-2/+550
Xcode5 retired gdb, so this patch adds support for using, and loading symbols in, lldb. It also supports building with Xcode 5. The lldb script also supports dumping out the build generated guid database and it prints guids out with thier Cname if available. lldbefi.py also contains some EFI specific type formatters. Symbols are loaded via the lldbefi.py script setting a breakpoint on SecGdbScriptBreak() and runing a breakpoint action Python function that uses the arguments to SecGdbScriptBreak() to load symbols. The location of SecGdbScriptBreak() in Host.c was updated to move symbol loading control into the lldb Python script, since lldb only uses the arguments to SecGdbScriptBreak() and not the files generated by the emulator. The +1 on the SecGdbScriptBreak() argument makes it string size, not string length, as this is what the lldb script is looking for. Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Anderw Fish <afish@apple.com> Reviewed-by: Jordan Justen <jordan.l.justen@intel.com> git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@15982 6f19259b-4bc3-4df7-8a09-765794883524
2014-08-29EmulatorPkg: Unix: Fix uninitiailzed variable bug.Anderw Fish1-1/+1
clang warns on this error. Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Anderw Fish <afish@apple.com> Reviewed-by: Jordan Justen <jordan.l.justen@intel.com> git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@15981 6f19259b-4bc3-4df7-8a09-765794883524
2014-08-28EmulatorPkg:Unix: Add support for X11 on Mac OS X via XQuartzAnderw Fish2-1/+2
Starting in OS X Mountain Lion X11 is not longer part of the OS install, so you must download it from http://xquartz.macosforge.org. To make XQuartz work with the EmulatorPkg an include path needs to be added. The build tools fail the build if you try to add an absolute inculde path to the X11 headers, so Unix/Host/X11IncludeHack, a symbolic link, was added to get the system building. Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Anderw Fish <afish@apple.com> Reviewed-by: Jordan Justen <jordan.l.justen@intel.com> git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@15929 6f19259b-4bc3-4df7-8a09-765794883524
2014-07-28EmulatorPkg: Add support for GCC48 & GCC49 toolchainsJordan Justen1-0/+2
Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Jordan Justen <jordan.l.justen@intel.com> git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@15699 6f19259b-4bc3-4df7-8a09-765794883524
2014-04-16EmulatorPkg/Unix GCC: Add additional library search pathsJordan Justen1-2/+2
IA32: add /usr/lib/i386-linux-gnu X64: add /usr/lib/x86_64-linux-gnu Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Jordan Justen <jordan.l.justen@intel.com> git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@15471 6f19259b-4bc3-4df7-8a09-765794883524
2014-04-16EmulatorPkg/Unix GCC: Link to libdlJordan Justen1-1/+1
libdl is used for the dlopen and dlclose calls. We were already linking to it, but it appears it may have been pulled in automatically by the linker before. Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Jordan Justen <jordan.l.justen@intel.com> git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@15470 6f19259b-4bc3-4df7-8a09-765794883524