<feed xmlns='http://www.w3.org/2005/Atom'>
<title>Tianocore/edk2.git/EmulatorPkg/Unix, branch dependabot/github_actions/actions/setup-python-7</title>
<subtitle>EDK II (mirror)</subtitle>
<id>https://git.radix-linux.su/Tianocore/edk2.git/atom?h=dependabot%2Fgithub_actions%2Factions%2Fsetup-python-7</id>
<link rel='self' href='https://git.radix-linux.su/Tianocore/edk2.git/atom?h=dependabot%2Fgithub_actions%2Factions%2Fsetup-python-7'/>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/Tianocore/edk2.git/'/>
<updated>2026-06-09T07:20:10+00:00</updated>
<entry>
<title>EmulatorPkg: Replace manual alignment checks with helper macros</title>
<updated>2026-06-09T07:20:10+00:00</updated>
<author>
<name>Mingjie Shen</name>
<email>shen497@purdue.edu</email>
</author>
<published>2026-05-14T02:19:41+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/Tianocore/edk2.git/commit/?id=0f9f85f41be3518c75274043b9d476d2c6144392'/>
<id>urn:sha1:0f9f85f41be3518c75274043b9d476d2c6144392</id>
<content type='text'>
Replace manual alignment checks with IS_ALIGNED() and
ADDRESS_IS_ALIGNED().

Convert the following bitmask and modulo forms:

- ((E &amp; ((PowOf2Expr) - ONE)) == ZERO)
- ((E &amp; ((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 &lt;&lt; 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 &lt;&lt; E1
|
  sizeof (ScalarType)
|
  sizeof (PointerType)
|
  sizeof (ScalarValue)
|
  sizeof (PointerValue)
)
&amp;
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 &amp; (E - ONE)) == ZERO)
|
- ((E &amp; ((PowOf2Expr) - ONE)) == ZERO)
+ IS_ALIGNED (E, PowOf2Expr)
|
  ((E &amp; (E - ONE)) != ZERO)
|
- ((E &amp; ((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 &lt;shen497@purdue.edu&gt;
</content>
</entry>
<entry>
<title>EmulatorPkg/Host: Remove duplicate procotol in INF file</title>
<updated>2026-04-29T09:18:10+00:00</updated>
<author>
<name>Qihang Gao</name>
<email>gaoqihang@loongson.cn</email>
</author>
<published>2026-04-22T09:50:57+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/Tianocore/edk2.git/commit/?id=482b4bf0a51a7a26ef35965d33afbbc971307945'/>
<id>urn:sha1:482b4bf0a51a7a26ef35965d33afbbc971307945</id>
<content type='text'>
In EmulatorPkg/Unix/Host driver, gEmuIoThunkProtocolGuid appears twice
in [Procotols] section, so remove the duplicate one.

Signed-off-by: Qihang Gao &lt;gaoqihang@loongson.cn&gt;
</content>
</entry>
<entry>
<title>EmulatorPkg: Replace include guards with #pragma once</title>
<updated>2026-02-23T21:01:28+00:00</updated>
<author>
<name>Michael Kubacki</name>
<email>michael.kubacki@microsoft.com</email>
</author>
<published>2026-02-03T18:22:31+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/Tianocore/edk2.git/commit/?id=e6797413058281e76caed111fa4a90090f876bb6'/>
<id>urn:sha1:e6797413058281e76caed111fa4a90090f876bb6</id>
<content type='text'>
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 &lt;michael.kubacki@microsoft.com&gt;
</content>
</entry>
<entry>
<title>EmulatorPkg: Use HOST_APPLICATION and add MINGW CLANG</title>
<updated>2026-01-07T16:58:11+00:00</updated>
<author>
<name>Michael D Kinney</name>
<email>michael.d.kinney@intel.com</email>
</author>
<published>2025-12-28T22:19:43+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/Tianocore/edk2.git/commit/?id=deeeaa76c0773c31bfe9994ef551d78d0f5e9e85'/>
<id>urn:sha1:deeeaa76c0773c31bfe9994ef551d78d0f5e9e85</id>
<content type='text'>
* 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 &lt;michael.d.kinney@intel.com&gt;
</content>
</entry>
<entry>
<title>EmulatorPkg/Unix: Load symbols when modules are loaded</title>
<updated>2026-01-07T16:58:11+00:00</updated>
<author>
<name>Michael D Kinney</name>
<email>michael.d.kinney@intel.com</email>
</author>
<published>2025-12-28T22:04:28+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/Tianocore/edk2.git/commit/?id=f99a7af7c61cbdee6341875ddf3d669f6873cf84'/>
<id>urn:sha1:f99a7af7c61cbdee6341875ddf3d669f6873cf84</id>
<content type='text'>
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 &lt;michael.d.kinney@intel.com&gt;
</content>
</entry>
<entry>
<title>EmulatorPkg/Unix/Host: Fix gPpiList multiply defined</title>
<updated>2026-01-05T20:32:28+00:00</updated>
<author>
<name>Michael D Kinney</name>
<email>michael.d.kinney@intel.com</email>
</author>
<published>2025-12-22T20:08:46+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/Tianocore/edk2.git/commit/?id=a02ebcfed88da72d73ae65f16c914e5c31788e9e'/>
<id>urn:sha1:a02ebcfed88da72d73ae65f16c914e5c31788e9e</id>
<content type='text'>
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 &lt;michael.d.kinney@intel.com&gt;
</content>
</entry>
<entry>
<title>EmulatorPkg/Unix/Host: Fix symbol loading with clang</title>
<updated>2026-01-05T20:32:28+00:00</updated>
<author>
<name>Michael D Kinney</name>
<email>michael.d.kinney@intel.com</email>
</author>
<published>2025-12-22T19:57:16+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/Tianocore/edk2.git/commit/?id=1aaa37e00a71446adc7a7e78018715c91fbd173e'/>
<id>urn:sha1:1aaa37e00a71446adc7a7e78018715c91fbd173e</id>
<content type='text'>
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 &lt;michael.d.kinney@intel.com&gt;
</content>
</entry>
<entry>
<title>EmulatorPkg: Do not require deprecated termio.h</title>
<updated>2025-11-21T16:33:06+00:00</updated>
<author>
<name>Oliver Steffen</name>
<email>osteffen@redhat.com</email>
</author>
<published>2025-11-14T11:48:20+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/Tianocore/edk2.git/commit/?id=53d7f87c9b85bd15c47a1c220b9f555d03e0b2e5'/>
<id>urn:sha1:53d7f87c9b85bd15c47a1c220b9f555d03e0b2e5</id>
<content type='text'>
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 &lt;osteffen@redhat.com&gt;
</content>
</entry>
<entry>
<title>EmulatorPkg/Unix/Host: Add CLANGDWARF support and reduce warnings</title>
<updated>2025-09-22T07:12:48+00:00</updated>
<author>
<name>Michael D Kinney</name>
<email>michael.d.kinney@intel.com</email>
</author>
<published>2025-08-20T17:27:43+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/Tianocore/edk2.git/commit/?id=a63bbb35d9ce87aa9c7782f5bc6821cbf99db1a1'/>
<id>urn:sha1:a63bbb35d9ce87aa9c7782f5bc6821cbf99db1a1</id>
<content type='text'>
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 &lt;michael.d.kinney@intel.com&gt;
</content>
</entry>
<entry>
<title>EmulatorPkg/Unix/Host: Fix set but unused variables</title>
<updated>2025-09-22T07:12:48+00:00</updated>
<author>
<name>Michael D Kinney</name>
<email>michael.d.kinney@intel.com</email>
</author>
<published>2025-08-20T22:33:44+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/Tianocore/edk2.git/commit/?id=7f557cd133ddcc33c305e3bccfbfbd8405024eb2'/>
<id>urn:sha1:7f557cd133ddcc33c305e3bccfbfbd8405024eb2</id>
<content type='text'>
Signed-off-by: Michael D Kinney &lt;michael.d.kinney@intel.com&gt;
</content>
</entry>
</feed>
