<feed xmlns='http://www.w3.org/2005/Atom'>
<title>Tianocore/edk2.git/BaseTools/Source, branch trunk</title>
<subtitle>EDK II (mirror)</subtitle>
<id>https://git.radix-linux.su/Tianocore/edk2.git/atom?h=trunk</id>
<link rel='self' href='https://git.radix-linux.su/Tianocore/edk2.git/atom?h=trunk'/>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/Tianocore/edk2.git/'/>
<updated>2024-06-04T03:43:08+00:00</updated>
<entry>
<title>Renormalized end-of-lines from master@27b044605cd5f6b33a3d231576003850b3fe305b</title>
<updated>2024-06-04T03:43:08+00:00</updated>
<author>
<name>kx</name>
<email>kx@radix.pro</email>
</author>
<published>2024-06-04T03:43:08+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/Tianocore/edk2.git/commit/?id=7e2ccccace24636f29ddc210b94606abd4c7e42b'/>
<id>urn:sha1:7e2ccccace24636f29ddc210b94606abd4c7e42b</id>
<content type='text'>
</content>
</entry>
<entry>
<title>BaseTools/Fmmt.py: Python 3.12 support</title>
<updated>2024-04-23T21:36:22+00:00</updated>
<author>
<name>Gua Guo</name>
<email>gua.guo@intel.com</email>
</author>
<published>2024-04-22T01:46:51+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/Tianocore/edk2.git/commit/?id=d97f964f7ce063f9861f4d21cc6352f6861f95a8'/>
<id>urn:sha1:d97f964f7ce063f9861f4d21cc6352f6861f95a8</id>
<content type='text'>
Ref to https://docs.python.org/3/whatsnew/3.12.html
A backslash-character pair that is not a valid
escape sequence now generates

Cc: Rebecca Cran &lt;rebecca@bsdio.com&gt;
Cc: Liming Gao &lt;gaoliming@byosoft.com.cn&gt;
Cc: Bob Feng &lt;bob.c.feng@intel.com&gt;
Cc: Yuwei Chen &lt;yuwei.chen@intel.com&gt;
Signed-off-by: Gua Guo &lt;gua.guo@intel.com&gt;
Reviewed-by: Liming Gao &lt;gaoliming@byosoft.com.cn&gt;
</content>
</entry>
<entry>
<title>BaseTools: Use Stronger Matching for NULL Linked Libraries</title>
<updated>2024-04-15T19:04:08+00:00</updated>
<author>
<name>Taylor Beebe</name>
<email>taylor.d.beebe@gmail.com</email>
</author>
<published>2024-02-28T18:47:23+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/Tianocore/edk2.git/commit/?id=5ba3602e4580d6b65dacf4292a031627f93e1167'/>
<id>urn:sha1:5ba3602e4580d6b65dacf4292a031627f93e1167</id>
<content type='text'>
To prevent the possibility that a library with a name like
NULLTestLib is interpreted as a NULL linked library, use
more explicit pattern matching to ensure that the library
name follows the pattern NULL%d.

Cc: Rebecca Cran &lt;rebecca@bsdio.com&gt;
Cc: Liming Gao &lt;gaoliming@byosoft.com.cn&gt;
Cc: Bob Feng &lt;bob.c.feng@intel.com&gt;
Cc: Yuwei Chen &lt;yuwei.chen@intel.com&gt;

Signed-off-by: Taylor Beebe &lt;taylor.d.beebe@gmail.com&gt;
Reviewed-by: Liming Gao &lt;gaoliming@byosoft.com.cn&gt;
</content>
</entry>
<entry>
<title>BaseTools: Don't Recurse NULL Includes Not Linked to Module</title>
<updated>2024-04-15T19:04:08+00:00</updated>
<author>
<name>Taylor Beebe</name>
<email>taylor.d.beebe@gmail.com</email>
</author>
<published>2024-02-10T19:46:19+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/Tianocore/edk2.git/commit/?id=d77efa2ebef9a0feca97df787138d132393e1130'/>
<id>urn:sha1:d77efa2ebef9a0feca97df787138d132393e1130</id>
<content type='text'>
When collecting the required library instances for modules and
libraries, included libraries will be recursed to ensure the module is
built with all the libraries directly linked to it and indirectly
linked to it via included libraries.

Using the following scenario as an example:

[LibraryClasses.common.DXE_CORE]
NULL|Path/To/Library1.inf // Includes DebugLib

[LibraryClasses.common.DXE_DRIVER]
NULL|Path/To/Library2.inf // Includes DebugLib

[LibraryClasses.common.DXE_CORE, LibraryClasses.common.DXE_DRIVER]
DebugLib|MdePkg/Library/BaseDebugLibSerialPort/BaseDebugLibSerialPort.inf

[Components]
MdeModulePkg/Core/Dxe/DxeMain.inf // Includes DebugLib

The DXE_CORE NULL library will be assigned a fake library class like
NULL1 and the DXE_DRIVER will be assigned NULL2. The recursion logic
will see NULL1 as a directly linked and will add an instance of it to
the list of libraries which need to be included in the module. When
DebugLib is evaluated, the recursion logic will add the libraries
DebugLib depends on to the queue which includes both NULL1 and NULL2.
When NULL2 is unqueued, an instance of it will also be added to the
list of libraries needed to build DxeMain which now means that both
NULL1 and NULL2 have been linked.

NULL includes outside of module overrides are not supported according
to the spec, but we do it anyways so this seems like a case which
should be fixed. This change updates the recursion logic to skip
evaluating NULL libraries unless they are linked directly to the
module/library being evaluated.

Cc: Rebecca Cran &lt;rebecca@bsdio.com&gt;
Cc: Liming Gao &lt;gaoliming@byosoft.com.cn&gt;
Cc: Bob Feng &lt;bob.c.feng@intel.com&gt;
Cc: Yuwei Chen &lt;yuwei.chen@intel.com&gt;

Signed-off-by: Taylor Beebe &lt;taylor.d.beebe@gmail.com&gt;
Reviewed-by: Liming Gao &lt;gaoliming@byosoft.com.cn&gt;
</content>
</entry>
<entry>
<title>BaseTools/GenFds: Apply OEM_CAPSULE_FLAGS during Capsule generation.</title>
<updated>2024-03-13T10:53:30+00:00</updated>
<author>
<name>Igniculus Fu</name>
<email>Igniculus.Fu@amd.com</email>
</author>
<published>2024-01-08T03:51:13+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/Tianocore/edk2.git/commit/?id=5572b43c6767f7cc46b074ae1fc288f6eccdc65d'/>
<id>urn:sha1:5572b43c6767f7cc46b074ae1fc288f6eccdc65d</id>
<content type='text'>
Bugzilla ticket 4633

FdfParser.py has defined a key named OEM_CAPSULE_FLAGS to set the
lower 16 bits of EFI_CAPSULE_HEADER.Flags. However, this key is totally
"forgotten" in Capsule.py, making it impossible to set lower 16 bits of
this field, and leading to an always FALSE when comparing to
gEfiMdeModulePkgTokenSpaceGuid.PcdSystemRebootAfterCapsuleProcessFlag
in MdeModulePkg/Library/DxeCapsuleLibFmp/DxeCapsuleProcessLib.c:
ProcessTheseCapsules().

This patch ORs the value of OEM_CAPSULE_FLAGS with previously calculated
CAPSULE_FLAGS value, making the lower 16 bits of value being correctly set.

Signed-off-by: Igniculus Fu &lt;igniculus.fu@amd.com&gt;
Cc: Bob Feng &lt;bob.c.feng@intel.com&gt;
Cc: Liming Gao &lt;gaoliming@byosoft.com.cn&gt;
Cc: Yuwei Chen &lt;yuwei.chen@intel.com&gt;
Cc: Abner Chang &lt;abner.chang@amd.com&gt;
Cc: Eric Xing &lt;eric.xing@amd.com&gt;
Cc: Abdul Lateef Attar &lt;abdattar@amd.com&gt;
Reviewed-by: Liming Gao &lt;gaoliming@byosoft.com.cn&gt;
</content>
</entry>
<entry>
<title>BaseTools/GenFds: Resolve absolute workspace INF paths</title>
<updated>2024-03-04T16:23:58+00:00</updated>
<author>
<name>Michael Kubacki</name>
<email>michael.kubacki@microsoft.com</email>
</author>
<published>2024-02-15T20:39:10+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/Tianocore/edk2.git/commit/?id=bff9815b616669f1cf743e412bc0000efe22dfb4'/>
<id>urn:sha1:bff9815b616669f1cf743e412bc0000efe22dfb4</id>
<content type='text'>
Currently, if an INF path is an absolute path on Linux (begins with
"/"), the "/" character will be removed. If the path is an absolute
system path, this creates an invalid path.

An example of when this may be an issue is in external dependencies
where an INF is within the external dependency, the `set_build_var`
flag is set, and DSC files refer to files by its build variable
(e.g. `$(SHARED_BINARIES)/Module.inf`). INFs in a binary distribution
like this example may contain a [Binaries] section and refer to
different section files that can be used by a platform to compose an
FFS file. For example, the PE32 (.efi) and DEPEX (.depex) files.

In this case, `$(SHARED_BINARIES)` will be an absolute path to the
ext dep directory and `FfsInfStatement.__InfParse__` will remove the
leading "/" character so the path is invalid.

This change first checks if the absolute path will resolve into the
current workspace. If it does (as will happen in the shared crypto
ext dep example above), it modifies the path to be relative to the
workspace so later logic dependent on relative paths can operate on
it. If the absolute path is not within the current workspace, it
follows previous behavior for backward compatibility to that
scenario.

Cc: Rebecca Cran &lt;rebecca@bsdio.com&gt;
Cc: Liming Gao &lt;gaoliming@byosoft.com.cn&gt;
Cc: Bob Feng &lt;bob.c.feng@intel.com&gt;
Cc: Yuwei Chen &lt;yuwei.chen@intel.com&gt;
Signed-off-by: Michael Kubacki &lt;michael.kubacki@microsoft.com&gt;
Reviewed-by: Rebecca Cran &lt;rebecca@bsdio.com&gt;
</content>
</entry>
<entry>
<title>BaseTools/AutoGen: declare ProcessLibraryConstructorList() for SEC modules</title>
<updated>2024-02-29T09:56:38+00:00</updated>
<author>
<name>Laszlo Ersek</name>
<email>lersek@redhat.com</email>
</author>
<published>2024-02-24T21:05:04+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/Tianocore/edk2.git/commit/?id=bac9c74080cf36590af0f572c07257c3541f8c02'/>
<id>urn:sha1:bac9c74080cf36590af0f572c07257c3541f8c02</id>
<content type='text'>
Most module types have standardized entry point function prototypes. They
are declared in headers like

- MdePkg/Include/Library/PeiCoreEntryPoint.h
- MdePkg/Include/Library/PeimEntryPoint.h
- MdePkg/Include/Library/DxeCoreEntryPoint.h
- MdePkg/Include/Library/UefiDriverEntryPoint.h
- MdePkg/Include/Library/UefiApplicationEntryPoint.h

These header files also declare matching ProcessLibraryConstructorList()
prototypes.

The SEC module type does not have a standardized entry point prototype
(aka parameter list), therefore no header file like the above ones exists
for SEC. Consequently, no header file *declares*
ProcessLibraryConstructorList() for SEC modules, even though AutoGen
always *defines* ProcessLibraryConstructorList() with the same, empty,
parameter list (i.e., just (VOID)).

The lack of a central declaration is a problem because in SEC code,
ProcessLibraryConstructorList() needs to be called manually, and those
calls need a prototype. Most SEC modules in edk2 get around this by
declaring ProcessLibraryConstructorList() manually, while some others use
an incorrect (PEIM) prototype.

Liming suggested in
&lt;https://bugzilla.tianocore.org/show_bug.cgi?id=991#c2&gt; that AutoGen
provide the declaration as well; implement that in this patch.

Mike suggested that the feature be gated with INF_VERSION, for
compatibility reasons. (INF_VERSION &gt;= 1.30) reflects that the latest
(draft) version of the INF specification, as of this writing, is commit
a31e3c842bee / version 1.29.

For example, if we modify "OvmfPkg/Sec/SecMain.inf" as follows:

&gt; diff --git a/OvmfPkg/Sec/SecMain.inf b/OvmfPkg/Sec/SecMain.inf
&gt; index 3c47a664a95d..dca932a474ee 100644
&gt; --- a/OvmfPkg/Sec/SecMain.inf
&gt; +++ b/OvmfPkg/Sec/SecMain.inf
&gt; @@ -8,7 +8,7 @@
&gt;  ##
&gt;
&gt;  [Defines]
&gt; -  INF_VERSION                    = 0x00010005
&gt; +  INF_VERSION                    = 1.30
&gt;    BASE_NAME                      = SecMain
&gt;    FILE_GUID                      = df1ccef6-f301-4a63-9661-fc6030dcc880
&gt;    MODULE_TYPE                    = SEC

then the patch produces the following difference in
"Build/OvmfX64/NOOPT_GCC5/X64/OvmfPkg/Sec/SecMain/DEBUG/AutoGen.h":

&gt; --- AutoGen.h.orig      2024-02-06 23:10:23.469535345 +0100
&gt; +++ AutoGen.h   2024-02-07 00:00:57.361294055 +0100
&gt; @@ -220,6 +220,13 @@
&gt;
&gt;  // Definition of PCDs used in libraries is in AutoGen.c
&gt;
&gt; +// ProcessLibraryConstructorList() declared here because SEC has no standard entry point.
&gt; +VOID
&gt; +EFIAPI
&gt; +ProcessLibraryConstructorList (
&gt; +  VOID
&gt; +  );
&gt; +
&gt;
&gt;  #ifdef __cplusplus
&gt;  }

which presently (as of edk2 commit edc6681206c1) triggers the following
build error:

&gt; In file included from OvmfPkg/Sec/SecMain.c:14:
&gt; MdePkg/Include/Library/PeimEntryPoint.h:74:1: error: conflicting types for
&gt; ‘ProcessLibraryConstructorList’; have ‘void(void *, const
&gt; EFI_PEI_SERVICES **)’ {aka ‘void(void *, const struct _EFI_PEI_SERVICES
&gt; **)’}
&gt;    74 | ProcessLibraryConstructorList (
&gt;       | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
&gt; In file included from &lt;command-line&gt;:
&gt; Build/OvmfX64/NOOPT_GCC5/X64/OvmfPkg/Sec/SecMain/DEBUG/AutoGen.h:226:1: note:
&gt; previous declaration of ‘ProcessLibraryConstructorList’ with type
&gt; ‘void(void)’
&gt;   226 | ProcessLibraryConstructorList (
&gt;       | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~

That's a genuine bug in OvmfPkg that needs to be fixed, but we keep
compatibility with existent SEC modules until/unless they upgrade
INF_VERSION to 1.30+.

Cc: Bob Feng &lt;bob.c.feng@intel.com&gt;
Cc: Liming Gao &lt;gaoliming@byosoft.com.cn&gt;
Cc: Michael D Kinney &lt;michael.d.kinney@intel.com&gt;
Cc: Rebecca Cran &lt;rebecca@bsdio.com&gt;
Cc: Yuwei Chen &lt;yuwei.chen@intel.com&gt;
Ref: https://bugzilla.tianocore.org/show_bug.cgi?id=991
Suggested-by: Liming Gao &lt;gaoliming@byosoft.com.cn&gt;
Suggested-by: Michael D Kinney &lt;michael.d.kinney@intel.com&gt;
Signed-off-by: Laszlo Ersek &lt;lersek@redhat.com&gt;
Message-Id: &lt;20240224210504.41873-1-lersek@redhat.com&gt;
Reviewed-by: Liming Gao &lt;gaoliming@byosoft.com.cn&gt;
</content>
</entry>
<entry>
<title>BaseTools: Syntax warning invalid escape sequence \C</title>
<updated>2024-02-28T00:23:58+00:00</updated>
<author>
<name>Jayaprakash, N</name>
<email>n.jayaprakash@intel.com</email>
</author>
<published>2024-02-06T07:02:34+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/Tianocore/edk2.git/commit/?id=3e91e421365027ee3e655feab33c67a4f544c777'/>
<id>urn:sha1:3e91e421365027ee3e655feab33c67a4f544c777</id>
<content type='text'>
REF: https://bugzilla.tianocore.org/show_bug.cgi?id=4666

This commit fixes the issue reported through BZ4666.
The Syntax warning related to invalid escape sequence
for \C is seen on Windows OS based builds of edk2 sources.
On Windows the path seperator needs to prefixed with \
so essentially we need to use \\ as path seperator.

Cc: Rebecca Cran &lt;rebecca@bsdio.com&gt;
Cc: Michael D Kinney &lt;michael.d.kinney@intel.com&gt;
Cc: Laszlo Ersek &lt;lersek@redhat.com&gt;
Cc: Liming Gao &lt;gaoliming@byosoft.com.cn&gt;
Cc: Bob Feng &lt;bob.c.feng@intel.com&gt;
Cc: Yuwei Chen &lt;yuwei.chen@intel.com&gt;
Cc: Jayaprakash N &lt;n.jayaprakash@intel.com&gt;
Signed-off-by: Jayaprakash N &lt;n.jayaprakash@intel.com&gt;
Reviewed-by: Laszlo Ersek &lt;lersek@redhat.com&gt;
Reviewed-by: Rebecca Cran &lt;rebecca@bsdio.com&gt;
</content>
</entry>
<entry>
<title>BaseTools: Update keybaord map based on UEFI spec 2.10</title>
<updated>2024-02-26T15:32:09+00:00</updated>
<author>
<name>Yi Li</name>
<email>yi1.li@intel.com</email>
</author>
<published>2023-12-22T02:23:30+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/Tianocore/edk2.git/commit/?id=44fdc4f3983be77dda709d7a0c3fb8905fbf920b'/>
<id>urn:sha1:44fdc4f3983be77dda709d7a0c3fb8905fbf920b</id>
<content type='text'>
REF: UEFI SPEC 2.10 34.8.10 EFI_KEY

Add EfiKeyIntl0-9.

Signed-off-by: Yi Li &lt;yi1.li@intel.com&gt;

Cc: Rebecca Cran &lt;rebecca@bsdio.com&gt;
Cc: Liming Gao &lt;gaoliming@byosoft.com.cn&gt;
Cc: Bob Feng &lt;bob.c.feng@intel.com&gt;
Cc: Yuwei Chen &lt;yuwei.chen@intel.com&gt;
Reviewed-by: Liming Gao &lt;gaoliming@byosoft.com.cn&gt;
</content>
</entry>
<entry>
<title>BaseTools: Remove Duplicate sets of SkuName and SkuId from allskuset</title>
<updated>2024-02-08T19:27:18+00:00</updated>
<author>
<name>Ashraf Ali S</name>
<email>ashraf.ali.s@intel.com</email>
</author>
<published>2023-12-25T15:27:52+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/Tianocore/edk2.git/commit/?id=e32b58ab5a12d37c82327f28376e7d12cccc8b3a'/>
<id>urn:sha1:e32b58ab5a12d37c82327f28376e7d12cccc8b3a</id>
<content type='text'>
Currently when the platform has many SKUs then allskuset will be having
so many duplicate. and while parsing the allskuset will take longer
time while assigning Pcd.SkuInfoList.
This patch is to eliminate those duplicate entries to reduce the
build time

Cc: Yuwei Chen &lt;yuwei.chen@intel.com&gt;
Cc: Rebecca Cran &lt;rebecca@bsdio.com&gt;
Cc: Liming Gao &lt;gaoliming@byosoft.com.cn&gt;
Cc: Bob Feng &lt;bob.c.feng@intel.com&gt;
Cc: Amy Chan &lt;amy.chan@intel.com&gt;
Cc: Sai Chaganty &lt;rangasai.v.chaganty@intel.com&gt;
Signed-off-by: Ashraf Ali S &lt;ashraf.ali.s@intel.com&gt;
Reviewed-by: Yuwei Chen &lt;yuwei.chen@intel.com&gt;
Reviewed-by: Amy Chan &lt;amy.chan@intel.com&gt;
Reviewed-by: Bob Feng &lt;bob.c.feng@intel.com&gt;
</content>
</entry>
</feed>
