<feed xmlns='http://www.w3.org/2005/Atom'>
<title>Tianocore/edk2.git/BaseTools/Source/Python/Workspace, branch master</title>
<subtitle>EDK II (mirror)</subtitle>
<id>https://git.radix-linux.su/Tianocore/edk2.git/atom?h=master</id>
<link rel='self' href='https://git.radix-linux.su/Tianocore/edk2.git/atom?h=master'/>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/Tianocore/edk2.git/'/>
<updated>2026-10-08T03:58:55+00:00</updated>
<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: Make DSC arch macro expansion owner-aware</title>
<updated>2026-09-01T14:42:26+00:00</updated>
<author>
<name>Bob Chen (UST Global Singapore Pte Limited)</name>
<email>v-kuanlchen@microsoft.com</email>
</author>
<published>2026-08-25T14:08:31+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/Tianocore/edk2.git/commit/?id=7b01c71a83e0bf6a89f5e803a4f60adc29c1f70f'/>
<id>urn:sha1:7b01c71a83e0bf6a89f5e803a4f60adc29c1f70f</id>
<content type='text'>
PR #12628 expanded architecture macros for every DSC record so
component-private records match their component. A positive raw owner can
also represent include provenance, so broad expansion changes records
outside component scope.

Expand architecture macros only for Component records and records whose
owner maps to a final Component. Reset the owner mapping whenever the
post-processed table is rebuilt to prevent stale ownership across
DoPostProcess calls.

Add regression coverage for component-private LibraryClasses and PCDs,
nested and private includes, multiple architectures, unresolved macros,
repeated sections, and repeated post-processing.

Signed-off-by: Bob Chen (UST Global Singapore Pte Limited) &lt;v-kuanlchen@microsoft.com&gt;
</content>
</entry>
<entry>
<title>BaseTools/Build: Output warning message for library class mismatch</title>
<updated>2026-08-06T04:55:34+00:00</updated>
<author>
<name>Joey Vagedes</name>
<email>joey.vagedes@gmail.com</email>
</author>
<published>2024-07-02T17:27:02+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/Tianocore/edk2.git/commit/?id=c5aa7e7d94c0e6b3c0202e15dbf7a5c92dd6a01d'/>
<id>urn:sha1:c5aa7e7d94c0e6b3c0202e15dbf7a5c92dd6a01d</id>
<content type='text'>
Performs a check that will verify that the library instance implements
the library specified in the dsc by ensuring a LIBRARY_CLASS definition
exists in the INF [Defines] section and the value matches the library it
says it is implementing.

As an example, from a platform dsc file:
BaseBmpSupportLib|MdeModulePkg/Library/BaseBmpSupportLib/BaseBmpSupportLib.inf

BaseBmpSupportLib is supposed to be of library class BmpSupportLib, but the
dsc defines it incorrectly, the warning message will be displayed during
build.

Signed-off-by: Aaron Pop &lt;aaronpop@microsoft.com&gt;
Co-authored-by: Poncho Figueroa &lt;poncho.figueroa.esqueda@intel.com&gt;
</content>
</entry>
<entry>
<title>BaseTools: Fix Clang -Wtautological-overlap-compare in PcdValueInit.c</title>
<updated>2026-08-01T16:17:54+00:00</updated>
<author>
<name>Phil Noh</name>
<email>Phil.Noh@amd.com</email>
</author>
<published>2026-07-21T20:02:20+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/Tianocore/edk2.git/commit/?id=d45f882a1bf077f7e8e828fc9dfb14f3187142c1'/>
<id>urn:sha1:d45f882a1bf077f7e8e828fc9dfb14f3187142c1</id>
<content type='text'>
For each structured-PCD field copied via memcpy, DscBuildData.py
emits the clamp expression, '(FieldSize &gt; 0 &amp;&amp; FieldSize &lt; ValueSize) ?
FieldSize : ValueSize'. When ValueSize == 1 and FieldSize is unsigned,
it reduces to (FieldSize &gt; 0 &amp;&amp; FieldSize &lt; 1) - always-false comparison.

Clang flags it under -Wtautological-overlap-compare, and because
PcdValueInit builds with -Werror, autogen fails and the build aborts with
'PcdValueInit.c: error: overlapping comparisons always evaluate to false
[-Werror,-Wtautological-overlap-compare]'. This is specific to Clang host.

To fix it, this update changes '&lt;' to '&lt;=' at all five generator sites in
DscBuildData.py (GenerateDefaultValueAssignFunction,
GenerateInitValueFunction, GenerateCommandLineValue,
GenerateModuleScopeValue, GenerateFdfValue). Behavior is unchanged:
both branches copy the same byte count when FieldSize == ValueSize.
GCC and MSVC builds are unaffected.

Signed-off-by: Phil Noh &lt;Phil.Noh@amd.com&gt;
</content>
</entry>
<entry>
<title>BaseTools/Build: Fix arch macro expansion scope in DSC parser</title>
<updated>2026-06-23T02:21:25+00:00</updated>
<author>
<name>Kirk Chou</name>
<email>kirk.chou@hpe.com</email>
</author>
<published>2026-05-28T16:45:49+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/Tianocore/edk2.git/commit/?id=34a3cc89de27dbeacd8b5ceecafaa2c212f87085'/>
<id>urn:sha1:34a3cc89de27dbeacd8b5ceecafaa2c212f87085</id>
<content type='text'>
Signed-off-by: Kirk Chou &lt;kirk.chou@hpe.com&gt;
</content>
</entry>
<entry>
<title>Revert "BaseTools: Add support for out-of-tree builds"</title>
<updated>2026-02-11T22:53:29+00:00</updated>
<author>
<name>Michael D Kinney</name>
<email>michael.d.kinney@intel.com</email>
</author>
<published>2026-02-11T18:00:05+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/Tianocore/edk2.git/commit/?id=12f785f106216eedbedb02427255e257d506367f'/>
<id>urn:sha1:12f785f106216eedbedb02427255e257d506367f</id>
<content type='text'>
This reverts commit 3fe1d56cc98e011bbde8348f13dfa5e38c95f49e.

PR https://github.com/tianocore/edk2/pull/11757 introduced a
"Breaking Change" feature for out of tree builds of tools.

This breaking change is blocking testing of edk2-stable202602
due to side effects on building FitGen tool in edk2-platforms.

Revert this feature for the edk2-stable202602 release and
work on this feature after the release.

Signed-off-by: Michael D Kinney &lt;michael.d.kinney@intel.com&gt;
</content>
</entry>
<entry>
<title>BaseTools: Add support for out-of-tree builds</title>
<updated>2026-02-02T08:56:31+00:00</updated>
<author>
<name>Oleksandr Tymoshenko</name>
<email>ovt@google.com</email>
</author>
<published>2025-10-25T00:18:59+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/Tianocore/edk2.git/commit/?id=3fe1d56cc98e011bbde8348f13dfa5e38c95f49e'/>
<id>urn:sha1:3fe1d56cc98e011bbde8348f13dfa5e38c95f49e</id>
<content type='text'>
Main EDK2 build supports out-of-tree builds but BaseTools make process
still creates tools and object files in-tree. In order to make
out-of-tree build support complete move the generated tools and
interim obj files to $WORKSPACE location as well.

This patch also changes the location of BaseTools for in-tree builds
(default behavior when WORKSPACE is not provided before calling
edksetup) to $WORKSPACE/BaseTools/Build/... It may potentially break
external workflows that invoke tools from the default location outside
of the build tool.

Signed-off-by: Oleksandr Tymoshenko &lt;ovt@google.com&gt;
</content>
</entry>
<entry>
<title>BaseTools: Prevent Subsection PCDs from polluting global expressions</title>
<updated>2026-01-30T09:55:39+00:00</updated>
<author>
<name>PaddyDeng</name>
<email>paddydeng@ami.com</email>
</author>
<published>2026-01-19T03:26:25+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/Tianocore/edk2.git/commit/?id=c2915d24a1832138b5f680b31612bf6198adfb5f'/>
<id>urn:sha1:c2915d24a1832138b5f680b31612bf6198adfb5f</id>
<content type='text'>
The PCD value defined in module subsections can be added to global PCD
database. Therefore the unsolved expressions, even belongs to the global
scope, can incorrectly refer to the value from module subsection.

This only happens when the referred PCD has no value assignment in the
platform dsc file. Which also should raise an error.

Signed-off-by: Paddy Deng &lt;paddydeng@ami.com&gt;
</content>
</entry>
<entry>
<title>BaseTools: fix various typos</title>
<updated>2025-11-21T21:49:59+00:00</updated>
<author>
<name>Philipp Schuster</name>
<email>philipp.schuster@cyberus-technology.de</email>
</author>
<published>2025-11-04T07:24:54+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/Tianocore/edk2.git/commit/?id=e0184abff13fccd9df69bb44fa9edbd4062cc99e'/>
<id>urn:sha1:e0184abff13fccd9df69bb44fa9edbd4062cc99e</id>
<content type='text'>
This commit is the first in a series of multiple commits to fix various
typos in the code, originating mostly from copy&amp;paste over the years.

Most of them only affect documentation and not code.

Signed-off-by: Philipp Schuster &lt;philipp.schuster@cyberus-technology.de&gt;
</content>
</entry>
<entry>
<title>BaseTools: Remove DXE_SAL_DRIVER</title>
<updated>2025-10-30T10:00:32+00:00</updated>
<author>
<name>Sathya Ravichandran</name>
<email>sathyar@ami.com</email>
</author>
<published>2025-09-23T11:07:43+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/Tianocore/edk2.git/commit/?id=98d1f8a6fd94c32834087a8ecfc1cce7827496e7'/>
<id>urn:sha1:98d1f8a6fd94c32834087a8ecfc1cce7827496e7</id>
<content type='text'>
The DXE_SAL_DRIVER module type was introduced to support
Itanium (IPF) platforms. Since support for Itanium processors has been
dropped, the instances of DXE_SAL_DRIVER have been removed.

Ref: [3cb0a311cb7e747d7be5c5076d0fff76ad256d2b]

Cc: Sachin Ganesh &lt;sachinganesh@ami.com&gt;
Signed-off-by: Sathya Ravichandran &lt;sathyar@ami.com&gt;
</content>
</entry>
</feed>
