<feed xmlns='http://www.w3.org/2005/Atom'>
<title>Tianocore/edk2.git/BaseTools, branch dependabot/github_actions/github/codeql-action-4.39.1</title>
<subtitle>EDK II (mirror)</subtitle>
<id>https://git.radix-linux.su/Tianocore/edk2.git/atom?h=dependabot%2Fgithub_actions%2Fgithub%2Fcodeql-action-4.39.1</id>
<link rel='self' href='https://git.radix-linux.su/Tianocore/edk2.git/atom?h=dependabot%2Fgithub_actions%2Fgithub%2Fcodeql-action-4.39.1'/>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/Tianocore/edk2.git/'/>
<updated>2026-10-26T11:57:25+00:00</updated>
<entry>
<title>BaseTools: Fix CLANGDWARF LoongArch64 ASLC build</title>
<updated>2026-10-26T11:57:25+00:00</updated>
<author>
<name>Qihang Gao</name>
<email>gaoqihang@loongson.cn</email>
</author>
<published>2026-10-26T07:14:57+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/Tianocore/edk2.git/commit/?id=5c148d5a90825929283615136c20127bd7d14a69'/>
<id>urn:sha1:5c148d5a90825929283615136c20127bd7d14a69</id>
<content type='text'>
When building a module containing .aslc files on the CLANGDWARF LoongArch64
platform, errors occur because the target and linker are set incorrectly.
Therefore, this patch:
- Add the missing target triplet to ASLCC_FLAGS so ACPI objects are
compiled for LoongArch64 rather than the host architecture.
- Add -fuse-ld=lld to ASLDLINK_FLAGS so linking does not fall back to the
GCC ld, which lacks elf64loongarch support.

Signed-off-by: Qihang Gao &lt;gaoqihang@loongson.cn&gt;
Signed-off-by: Chao Li &lt;lichao@loongson.cn&gt;
</content>
</entry>
<entry>
<title>BaseTools: FMMT: Add replacement regression tests</title>
<updated>2026-10-22T01:36:43+00:00</updated>
<author>
<name>Kun Qin</name>
<email>kuqin@microsoft.com</email>
</author>
<published>2026-09-17T04:08:56+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/Tianocore/edk2.git/commit/?id=ef03ae623f254e4914e99df21220cb7a00c68f08'/>
<id>urn:sha1:ef03ae623f254e4914e99df21220cb7a00c68f08</id>
<content type='text'>
This change adds a few unit test cases to validate the FMMT tool.

Signed-off-by: Kun Qin &lt;kun.qin@microsoft.com&gt;
</content>
</entry>
<entry>
<title>BaseTools: FvHandler: Safely update FV free-space nodes</title>
<updated>2026-10-22T01:36:43+00:00</updated>
<author>
<name>Kun Qin</name>
<email>kuqin@microsoft.com</email>
</author>
<published>2026-09-17T04:20:32+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/Tianocore/edk2.git/commit/?id=68360d273c9788e75b9aca13f839563a5a6cb498'/>
<id>urn:sha1:68360d273c9788e75b9aca13f839563a5a6cb498</id>
<content type='text'>
Current FV resize routine assumes that the final child is always a free-
space node. However, when no such node exists, these routines can remove
or overwrite valid trailing FFS nodes. One replacement path also inserts
the free-space byte count instead of the constructed tree node.

This change centralizes free-space node creation, resizing, and removal,
using the helper for direct replacements and recursive parent resizing.

Signed-off-by: Kun Qin &lt;kun.qin@microsoft.com&gt;
</content>
</entry>
<entry>
<title>BaseTools: FMMTOperation: Use distinct FFS trees for repeated replacement</title>
<updated>2026-10-22T01:36:43+00:00</updated>
<author>
<name>Kun Qin</name>
<email>kuqin@microsoft.com</email>
</author>
<published>2026-09-17T04:20:21+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/Tianocore/edk2.git/commit/?id=26d6e1f5f26a7456f63011a3107d0ca577eed489'/>
<id>urn:sha1:26d6e1f5f26a7456f63011a3107d0ca577eed489</id>
<content type='text'>
Current `ReplaceFfs` reuses the parsed replacement FFS tree for every
matching target. However, `FvHandler` mutates the tree while attaching it
to a target, causing later replacements inherit state from an earlier
replaced instance and hang the process.

This change uses deep-copy of the replacement tree for each target to
avoid the failure case.

Signed-off-by: Kun Qin &lt;kun.qin@microsoft.com&gt;
</content>
</entry>
<entry>
<title>BaseTools/Plugin/HostBasedUnitTestRunner: Skip empty architectures</title>
<updated>2026-10-21T00:41:20+00:00</updated>
<author>
<name>Bosco Chen (AMI US Holdings Inc)</name>
<email>v-chenbosco@microsoft.com</email>
</author>
<published>2026-10-16T02:53:25+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/Tianocore/edk2.git/commit/?id=85854ac470a7e089758aee6fe0095c2c1881af29'/>
<id>urn:sha1:85854ac470a7e089758aee6fe0095c2c1881af29</id>
<content type='text'>
The host unit test runner returns success when an architecture has no
test executables. This skips later architectures and can hide earlier
test or coverage failures.

Continue to the next architecture instead and include the architecture
in the warning. Preserve the accumulated failure count.

Signed-off-by: Bosco Chen (AMI US Holdings Inc) &lt;v-chenbosco@microsoft.com&gt;
</content>
</entry>
<entry>
<title>BaseTools: Reject trailing content after !else and !endif</title>
<updated>2026-10-08T03:58:55+00:00</updated>
<author>
<name>Dongyan Qian</name>
<email>qiandongyan@loongson.cn</email>
</author>
<published>2026-09-16T06:45:38+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/Tianocore/edk2.git/commit/?id=c51403090f63efa4e463cd17095dd9f012a00c4b'/>
<id>urn:sha1:c51403090f63efa4e463cd17095dd9f012a00c4b</id>
<content type='text'>
The DSC parser accepts "!else if &lt;expression&gt;" as an unconditional
!else branch without evaluating the trailing condition. This can select
an unintended build branch instead of reporting the syntax error.

For example, the following incorrect syntax is currently accepted:

  !if $(MODE) == 1
    # Branch A
  !else if $(MODE) == 2
    # Branch B
  !endif

When MODE is 3, the parser treats the second directive as a plain !else
and selects branch B. Replacing it with "!elseif $(MODE) == 2" would
correctly select neither branch.

Reject trailing content after !else and !endif. When the first word
following !else is "if", suggest "!elseif &lt;expression&gt;" instead.
Trailing comments remain valid because they are removed before
directive parsing.

Cc: Fei Shen &lt;shenfei@loongson.cn&gt;
Signed-off-by: Dongyan Qian &lt;qiandongyan@loongson.cn&gt;
</content>
</entry>
<entry>
<title>BaseTools/FMMT: Return non-zero exit status on failure</title>
<updated>2026-09-29T17:12:07+00:00</updated>
<author>
<name>Zhaoqi Xu</name>
<email>lzy00419@outlook.com</email>
</author>
<published>2026-08-31T08:33:43+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/Tianocore/edk2.git/commit/?id=53d441a7402aab3ecd02909ae1a0ae6a2e135332'/>
<id>urn:sha1:53d441a7402aab3ecd02909ae1a0ae6a2e135332</id>
<content type='text'>
FMMT catches exceptions from operations such as viewing a missing
input file, prints the error, and then returns status 0. Callers
and scripts treat that as success.

Set status to 1 in the exception handler so the process exit code
matches the failure.

A regression test covers FMMT -v not-a-file.

Signed-off-by: Zhaoqi Xu &lt;lzy00419@outlook.com&gt;
</content>
</entry>
<entry>
<title>BaseTools: WindowsVsToolChain: Filter vs vars on specific vc</title>
<updated>2026-09-28T21:19:11+00:00</updated>
<author>
<name>Joey Vagedes</name>
<email>joeyvagedes@microsoft.com</email>
</author>
<published>2026-08-31T21:32:01+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/Tianocore/edk2.git/commit/?id=d07d3f5a5769cc8c9f76385174b73ea85525077d'/>
<id>urn:sha1:d07d3f5a5769cc8c9f76385174b73ea85525077d</id>
<content type='text'>
Filters the extra vs vars gathered via QueryVcVariables() to specifically
be the ones associated with the vc version set in the same plugin. This
is to prevent the version compiler version differenting from the
version of any included .c / .h files that are made available through the
vs vars such as LIB, INCLUDE, etc.

Additionally logs a message when multiple vc versions are detected on
the system and specifically which vc version is being used.

Signed-off-by: Joey Vagedes &lt;joey.vagedes@gmail.com&gt;
</content>
</entry>
<entry>
<title>BaseTools: Add ClangToolChain build plugin</title>
<updated>2026-09-17T17:11:50+00:00</updated>
<author>
<name>Aaron Pop</name>
<email>aaronpop@microsoft.com</email>
</author>
<published>2026-03-13T06:01:18+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/Tianocore/edk2.git/commit/?id=debbfa2ede69e231b9199cce1de7657049e0873c'/>
<id>urn:sha1:debbfa2ede69e231b9199cce1de7657049e0873c</id>
<content type='text'>
Add a new edk2-pytools build plugin that automatically configures
CLANG_BIN for CLANGPDB and CLANGDWARF tool chains. The plugin
resolves the clang binary path by checking, in order:

1. CLANG_BIN environment variable
2. System PATH
3. Default LLVM install path (Windows)
4. VS-installed clang (Windows)

The plugin also reports clang and linker (lld-link/lld) versions
to the version aggregator for build logging.

Signed-off-by: Aaron Pop &lt;aaronpop@microsoft.com&gt;
</content>
</entry>
<entry>
<title>BaseTools/FirmwareStorageFormat: Fix FV ext entry struct factory functions</title>
<updated>2026-09-13T19:05:51+00:00</updated>
<author>
<name>Michael D Kinney</name>
<email>michael.d.kinney@intel.com</email>
</author>
<published>2026-07-15T21:13:25+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/Tianocore/edk2.git/commit/?id=203bf1ffa12e890e238d710c6c6cf9d15615951b'/>
<id>urn:sha1:203bf1ffa12e890e238d710c6c6cf9d15615951b</id>
<content type='text'>
The Refine_FV_EXT_ENTRY_OEM_TYPE_Header() and
Refine_FV_EXT_ENTRY_GUID_TYPE_Header() functions incorrectly return
an instantiation attempt of the local class with `Structure` as an
argument (e.g., `return ClassName(Structure)`) instead of returning the
class itself (e.g., `return ClassName`).

This causes FMMT to fail with:
  "expected EFI_FIRMWARE_VOLUME_EXT_ENTRY instance, got
   _ctypes.PyCStructType"

When processing FVs that contain ext header entries of type 0x01
(OEM Type) or type 0x02 (GUID Type, used for FV UI Name when
FvNameString = TRUE).

Fix by returning the class directly, matching the pattern used by
Refine_FV_Header() which correctly returns the class for subsequent
.from_buffer_copy() calls.

Signed-off-by: Michael D Kinney &lt;michael.d.kinney@intel.com&gt;
</content>
</entry>
</feed>
