public inbox for devel@edk2.groups.io
 help / color / mirror / Atom feed
* [edk2-devel] BaseTools/AutoGen: declare ProcessLibraryConstructorList() for SEC modules
@ 2024-02-07  0:50 Laszlo Ersek
  2024-02-07  1:04 ` [edk2-devel] [PATCH 00/11] " Laszlo Ersek
                   ` (2 more replies)
  0 siblings, 3 replies; 36+ messages in thread
From: Laszlo Ersek @ 2024-02-07  0:50 UTC (permalink / raw)
  To: edk2-devel-groups-io
  Cc: Abdul Lateef Attar, Abner Chang, Andrei Warkentin, Andrew Fish,
	Ard Biesheuvel, Ashraf Ali S, Bibo Mao, Bob Feng, Catharine West,
	Chao Li, Chasel Chiu, Duggapu Chinni B, Duke Zhai, Erdem Aktas,
	Eric Xing, Gerd Hoffmann, Gua Guo, Guo Dong, Igniculus Fu,
	James Lu, Jiewen Yao, Kelly Steele, Ken Yao, Leif Lindholm,
	Liming Gao, Michael D Kinney, Michael Roth, Min Xu, Nate DeSimone,
	Paul Grimes, Rahul Kumar, Ray Ni, Rebecca Cran, Sai Chaganty,
	Sami Mujawar, Sean Rhodes, Star Zeng, Sunil V L,
	Susovan Mohapatra, Ted Kuo, Tom Lendacky, USER0FISH, Xianglai li,
	Yuwei Chen, caiyuqing379, dahogn, meng-cz

Bugzillas:
- https://bugzilla.tianocore.org/show_bug.cgi?id=990
- https://bugzilla.tianocore.org/show_bug.cgi?id=991

Personal build:
- https://github.com/tianocore/edk2/pull/5354

I'll follow up with two series, in response to this message. One of
those sets makes AutoGen declare ProcessLibraryConstructorList() for SEC
modules (as Liming suggested), and cleans up the buggy or superfluous
manual declarations in edk2. The other set cleans up edk2-platforms
similarly. The edk2 set is intended to be bisectable. The edk2-platforms
set can't be like that (separate repo anyway). I build-tested everything
that I could, but the coverage is not complete in edk2-platforms.

Note that the personal build (PR#5354) failed. The reason is that CI
uses an out-of-tree BaseTools installation / package (version 0.1.48 at
the moment). This just goes on to show why it's a bad idea to develop
BaseTools in separation from edk2: even though the edk2 series *is*
fully bisectable, it's impossible to get it through CI (because CI
ignores the BaseTools update inside the series); and if we get the
central BaseTools patch from the edk2 series into "that other"
(separate) project *first*, then the series will not be bisectable any
longer (because the BaseTools/AutoGen update at the front, without
further patches in the series applied, will trigger build errors).

Laszlo



-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#115193): https://edk2.groups.io/g/devel/message/115193
Mute This Topic: https://groups.io/mt/104210524/7686176
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [rebecca@openfw.io]
-=-=-=-=-=-=-=-=-=-=-=-



^ permalink raw reply	[flat|nested] 36+ messages in thread

* [edk2-devel] [PATCH 00/11] BaseTools/AutoGen: declare ProcessLibraryConstructorList() for SEC modules
  2024-02-07  0:50 [edk2-devel] BaseTools/AutoGen: declare ProcessLibraryConstructorList() for SEC modules Laszlo Ersek
@ 2024-02-07  1:04 ` Laszlo Ersek
  2024-02-07  1:04   ` [edk2-devel] [PATCH 01/11] OvmfPkg/Sec: Use correct prototype of ProcessLibraryConstructorList() Laszlo Ersek
                     ` (10 more replies)
  2024-02-07  1:09 ` [edk2-devel] [edk2-platforms PATCH 0/6] clean up SEC ProcessLibraryConstructorList() declarations Laszlo Ersek
  2024-02-07  1:16 ` [edk2-devel] BaseTools/AutoGen: declare ProcessLibraryConstructorList() for SEC modules Michael D Kinney
  2 siblings, 11 replies; 36+ messages in thread
From: Laszlo Ersek @ 2024-02-07  1:04 UTC (permalink / raw)
  To: edk2-devel-groups-io
  Cc: Andrei Warkentin, Andrew Fish, Ard Biesheuvel, Ashraf Ali S,
	Bob Feng, Catharine West, Chasel Chiu, Duggapu Chinni B,
	Erdem Aktas, Gerd Hoffmann, Gua Guo, Guo Dong, James Lu,
	Jiewen Yao, Leif Lindholm, Liming Gao, Michael Roth, Min Xu,
	Nate DeSimone, Rahul Kumar, Ray Ni, Rebecca Cran, Sami Mujawar,
	Sean Rhodes, Star Zeng, Sunil V L, Susovan Mohapatra, Ted Kuo,
	Tom Lendacky, Yuwei Chen

Please refer to the parent cover letter. This is the edk2 series.

Laszlo

Cc: Andrei Warkentin <andrei.warkentin@intel.com>
Cc: Andrew Fish <afish@apple.com>
Cc: Ard Biesheuvel <ardb+tianocore@kernel.org>
Cc: Ashraf Ali S <ashraf.ali.s@intel.com>
Cc: Bob Feng <bob.c.feng@intel.com>
Cc: Catharine West <catharine.west@intel.com>
Cc: Chasel Chiu <chasel.chiu@intel.com>
Cc: Duggapu Chinni B <chinni.b.duggapu@intel.com>
Cc: Erdem Aktas <erdemaktas@google.com>
Cc: Gerd Hoffmann <kraxel@redhat.com>
Cc: Gua Guo <gua.guo@intel.com>
Cc: Guo Dong <guo.dong@intel.com>
Cc: James Lu <james.lu@intel.com>
Cc: Jiewen Yao <jiewen.yao@intel.com>
Cc: Leif Lindholm <quic_llindhol@quicinc.com>
Cc: Liming Gao <gaoliming@byosoft.com.cn>
Cc: Michael Roth <michael.roth@amd.com>
Cc: Min Xu <min.m.xu@intel.com>
Cc: Nate DeSimone <nathaniel.l.desimone@intel.com>
Cc: Rahul Kumar <rahul1.kumar@intel.com>
Cc: Ray Ni <ray.ni@intel.com>
Cc: Rebecca Cran <rebecca@bsdio.com>
Cc: Sami Mujawar <sami.mujawar@arm.com>
Cc: Sean Rhodes <sean@starlabs.systems>
Cc: Star Zeng <star.zeng@intel.com>
Cc: Sunil V L <sunilvl@ventanamicro.com>
Cc: Susovan Mohapatra <susovan.mohapatra@intel.com>
Cc: Ted Kuo <ted.kuo@intel.com>
Cc: Tom Lendacky <thomas.lendacky@amd.com>
Cc: Yuwei Chen <yuwei.chen@intel.com>

Ard Biesheuvel (1):
  OvmfPkg/Sec: Use correct prototype of ProcessLibraryConstructorList()

Laszlo Ersek (10):
  OvmfPkg/RiscVVirt/Sec: don't #include <Library/PeimEntryPoint.h>
  BaseTools/AutoGen: declare ProcessLibraryConstructorList() for SEC
    modules
  ArmPlatformPkg: remove SEC ProcessLibraryConstructorList()
    declarations
  ArmVirtPkg: remove SEC ProcessLibraryConstructorList() declaration
  EmulatorPkg: remove SEC ProcessLibraryConstructorList() declaration
  IntelFsp2Pkg: remove SEC ProcessLibraryConstructorList() declaration
  OvmfPkg/RiscVVirt: remove SEC ProcessLibraryConstructorList()
    declaration
  OvmfPkg: remove SEC ProcessLibraryConstructorList() declaration
  UefiCpuPkg: remove SEC ProcessLibraryConstructorList() declaration
  UefiPayloadPkg: remove SEC ProcessLibraryConstructorList() declaration

 ArmPlatformPkg/PrePeiCore/PrePeiCore.h             | 10 ----------
 ArmPlatformPkg/PrePi/PrePi.h                       |  6 ------
 ArmVirtPkg/PrePi/PrePi.c                           |  6 ------
 BaseTools/Source/Python/AutoGen/GenC.py            |  8 ++++++++
 EmulatorPkg/Sec/Sec.h                              |  9 ---------
 IntelFsp2Pkg/FspSecCore/SecMain.h                  | 12 ------------
 OvmfPkg/RiscVVirt/Sec/Memory.c                     |  1 -
 OvmfPkg/RiscVVirt/Sec/SecMain.h                    | 12 ------------
 OvmfPkg/Sec/SecMain.c                              |  3 +--
 UefiCpuPkg/SecCore/SecMain.h                       | 12 ------------
 UefiPayloadPkg/UefiPayloadEntry/UefiPayloadEntry.h | 10 ----------
 11 files changed, 9 insertions(+), 80 deletions(-)


base-commit: 1d0b95f6457d225c5108302a9da74b4ed7aa5a38


-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#115195): https://edk2.groups.io/g/devel/message/115195
Mute This Topic: https://groups.io/mt/104210771/7686176
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [rebecca@openfw.io]
-=-=-=-=-=-=-=-=-=-=-=-



^ permalink raw reply	[flat|nested] 36+ messages in thread

* [edk2-devel] [PATCH 01/11] OvmfPkg/Sec: Use correct prototype of ProcessLibraryConstructorList()
  2024-02-07  1:04 ` [edk2-devel] [PATCH 00/11] " Laszlo Ersek
@ 2024-02-07  1:04   ` Laszlo Ersek
  2024-02-14 14:27     ` Ard Biesheuvel
  2024-02-07  1:04   ` [edk2-devel] [PATCH 02/11] OvmfPkg/RiscVVirt/Sec: don't #include <Library/PeimEntryPoint.h> Laszlo Ersek
                     ` (9 subsequent siblings)
  10 siblings, 1 reply; 36+ messages in thread
From: Laszlo Ersek @ 2024-02-07  1:04 UTC (permalink / raw)
  To: edk2-devel-groups-io
  Cc: Ard Biesheuvel, Erdem Aktas, Gerd Hoffmann, Jiewen Yao,
	Michael Roth, Min Xu, Tom Lendacky

From: Ard Biesheuvel <ardb@kernel.org>

The prototype of ProcessLibraryConstructorList(), which is generated by
the build tools, depends on the boot phase, and SEC and PEI differ in
this regard. However, OVMF's SEC implemention includes PeimEntryPoint.h
and calls the PEI version of the protoype (passing NULL arguments),
whereas the actual implementation observed by the compiler follows the
SEC version, which takes VOID.

The compiler usually doesn't spot the difference, but the LTO linker
does, and throws an error:

MdePkg/Include/Library/PeimEntryPoint.h:74:1: error: type of 'ProcessLibraryConstructorList' does not match original declaration [-Werror=lto-type-mismatch]
   74 | ProcessLibraryConstructorList (
      | ^
Build/OvmfX64/RELEASE_GCC5/X64/OvmfPkg/Sec/SecMain/DEBUG/AutoGen.c:310:1: note: type mismatch in parameter 1
  310 | ProcessLibraryConstructorList (
      | ^
Build/OvmfX64/RELEASE_GCC5/X64/OvmfPkg/Sec/SecMain/DEBUG/AutoGen.c:310:1: note: type 'void' should match type 'void *'
Build/OvmfX64/RELEASE_GCC5/X64/OvmfPkg/Sec/SecMain/DEBUG/AutoGen.c:310:1: note: 'ProcessLibraryConstructorList' was previously declared here

Fix this by dropping the #include, and providing a declaration of
ProcessLibraryConstructorList() in SecMain.c

Ref: https://bugzilla.tianocore.org/show_bug.cgi?id=4643
Signed-off-by: Ard Biesheuvel <ardb@kernel.org>
Message-Id: <20240202182455.1535328-1-ardb+git@google.com>
Cc: Ard Biesheuvel <ardb+tianocore@kernel.org>
Cc: Erdem Aktas <erdemaktas@google.com>
Cc: Gerd Hoffmann <kraxel@redhat.com>
Cc: Jiewen Yao <jiewen.yao@intel.com>
Cc: Michael Roth <michael.roth@amd.com>
Cc: Min Xu <min.m.xu@intel.com>
Cc: Tom Lendacky <thomas.lendacky@amd.com>
Ref: https://bugzilla.tianocore.org/show_bug.cgi?id=990
Signed-off-by: Laszlo Ersek <lersek@redhat.com>
---

Notes:
    Picked up Ard's patch from the list with no changes. The URL is
    <https://edk2.groups.io/g/devel/message/115091>; see also the Message-Id
    included by git-am in the commit message.
    
    This patch is necessary at the front of the series; otherwise a
    subsequent patch causes a build error (conflicting prototypes).

 OvmfPkg/Sec/SecMain.c | 9 +++++++--
 1 file changed, 7 insertions(+), 2 deletions(-)

diff --git a/OvmfPkg/Sec/SecMain.c b/OvmfPkg/Sec/SecMain.c
index 31da5d0ace51..7b7d4793984c 100644
--- a/OvmfPkg/Sec/SecMain.c
+++ b/OvmfPkg/Sec/SecMain.c
@@ -11,7 +11,6 @@
 
 #include <PiPei.h>
 
-#include <Library/PeimEntryPoint.h>
 #include <Library/BaseLib.h>
 #include <Library/DebugLib.h>
 #include <Library/BaseMemoryLib.h>
@@ -39,6 +38,12 @@ typedef struct _SEC_IDT_TABLE {
   IA32_IDT_GATE_DESCRIPTOR    IdtTable[SEC_IDT_ENTRY_COUNT];
 } SEC_IDT_TABLE;
 
+VOID
+EFIAPI
+ProcessLibraryConstructorList (
+  VOID
+  );
+
 VOID
 EFIAPI
 SecStartupPhase2 (
@@ -844,7 +849,7 @@ SecCoreStartupWithStack (
     InitializeCpuExceptionHandlers (NULL);
   }
 
-  ProcessLibraryConstructorList (NULL, NULL);
+  ProcessLibraryConstructorList ();
 
   if (!SevEsIsEnabled ()) {
     //



-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#115198): https://edk2.groups.io/g/devel/message/115198
Mute This Topic: https://groups.io/mt/104210775/7686176
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [rebecca@openfw.io]
-=-=-=-=-=-=-=-=-=-=-=-



^ permalink raw reply related	[flat|nested] 36+ messages in thread

* [edk2-devel] [PATCH 02/11] OvmfPkg/RiscVVirt/Sec: don't #include <Library/PeimEntryPoint.h>
  2024-02-07  1:04 ` [edk2-devel] [PATCH 00/11] " Laszlo Ersek
  2024-02-07  1:04   ` [edk2-devel] [PATCH 01/11] OvmfPkg/Sec: Use correct prototype of ProcessLibraryConstructorList() Laszlo Ersek
@ 2024-02-07  1:04   ` Laszlo Ersek
  2024-02-07  1:04   ` [edk2-devel] [PATCH 03/11] BaseTools/AutoGen: declare ProcessLibraryConstructorList() for SEC modules Laszlo Ersek
                     ` (8 subsequent siblings)
  10 siblings, 0 replies; 36+ messages in thread
From: Laszlo Ersek @ 2024-02-07  1:04 UTC (permalink / raw)
  To: edk2-devel-groups-io
  Cc: Andrei Warkentin, Ard Biesheuvel, Gerd Hoffmann, Jiewen Yao,
	Sunil V L

"OvmfPkg/RiscVVirt/Sec/Memory.c" #includes <Library/PeimEntryPoint.h>.
This exposes a declaration of ProcessLibraryConstructorList() that is
bogus for a SEC module in general, but harmless (unused) in this
particular instance ("Memory.c" does not call
ProcessLibraryConstructorList(), and "SecMain.c", which does, gets the
proper prototype from the manual declaration in "SecMain.h", not from
<Library/PeimEntryPoint.h>).

However, after a subsequent patch in this series starts generating the
right prototype for SEC ProcessLibraryConstructorList(), just the
inclusion of <Library/PeimEntryPoint.h> will cause a build error in
"Memory.c" ("conflicting prototypes"). Remove the #include directive now.

Cc: Andrei Warkentin <andrei.warkentin@intel.com>
Cc: Ard Biesheuvel <ardb+tianocore@kernel.org>
Cc: Gerd Hoffmann <kraxel@redhat.com>
Cc: Jiewen Yao <jiewen.yao@intel.com>
Cc: Sunil V L <sunilvl@ventanamicro.com>
Ref: https://bugzilla.tianocore.org/show_bug.cgi?id=990
Signed-off-by: Laszlo Ersek <lersek@redhat.com>
---
 OvmfPkg/RiscVVirt/Sec/Memory.c | 1 -
 1 file changed, 1 deletion(-)

diff --git a/OvmfPkg/RiscVVirt/Sec/Memory.c b/OvmfPkg/RiscVVirt/Sec/Memory.c
index 7c6d920bd2a6..14c9569c78d4 100644
--- a/OvmfPkg/RiscVVirt/Sec/Memory.c
+++ b/OvmfPkg/RiscVVirt/Sec/Memory.c
@@ -25,7 +25,6 @@ Module Name:
 #include <Library/HobLib.h>
 #include <Library/IoLib.h>
 #include <Library/PcdLib.h>
-#include <Library/PeimEntryPoint.h>
 #include <Library/ResourcePublicationLib.h>
 #include <Library/BaseRiscVSbiLib.h>
 #include <Register/RiscV64/RiscVEncoding.h>



-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#115196): https://edk2.groups.io/g/devel/message/115196
Mute This Topic: https://groups.io/mt/104210773/7686176
Mute #include:https://edk2.groups.io/g/devel/mutehashtag/include
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [rebecca@openfw.io]
-=-=-=-=-=-=-=-=-=-=-=-



^ permalink raw reply related	[flat|nested] 36+ messages in thread

* [edk2-devel] [PATCH 03/11] BaseTools/AutoGen: declare ProcessLibraryConstructorList() for SEC modules
  2024-02-07  1:04 ` [edk2-devel] [PATCH 00/11] " Laszlo Ersek
  2024-02-07  1:04   ` [edk2-devel] [PATCH 01/11] OvmfPkg/Sec: Use correct prototype of ProcessLibraryConstructorList() Laszlo Ersek
  2024-02-07  1:04   ` [edk2-devel] [PATCH 02/11] OvmfPkg/RiscVVirt/Sec: don't #include <Library/PeimEntryPoint.h> Laszlo Ersek
@ 2024-02-07  1:04   ` Laszlo Ersek
  2024-02-07  1:04   ` [edk2-devel] [PATCH 04/11] ArmPlatformPkg: remove SEC ProcessLibraryConstructorList() declarations Laszlo Ersek
                     ` (7 subsequent siblings)
  10 siblings, 0 replies; 36+ messages in thread
From: Laszlo Ersek @ 2024-02-07  1:04 UTC (permalink / raw)
  To: edk2-devel-groups-io; +Cc: Bob Feng, Liming Gao, Rebecca Cran, Yuwei Chen

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
<https://bugzilla.tianocore.org/show_bug.cgi?id=991#c2> that AutoGen
provide the declaration as well; implement that in this patch.

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

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

Cc: Bob Feng <bob.c.feng@intel.com>
Cc: Liming Gao <gaoliming@byosoft.com.cn>
Cc: Rebecca Cran <rebecca@bsdio.com>
Cc: Yuwei Chen <yuwei.chen@intel.com>
Ref: https://bugzilla.tianocore.org/show_bug.cgi?id=991
Suggested-by: Liming Gao <gaoliming@byosoft.com.cn>
Signed-off-by: Laszlo Ersek <lersek@redhat.com>
---
 BaseTools/Source/Python/AutoGen/GenC.py | 8 ++++++++
 1 file changed, 8 insertions(+)

diff --git a/BaseTools/Source/Python/AutoGen/GenC.py b/BaseTools/Source/Python/AutoGen/GenC.py
index a2053d548521..ca4afb2e9501 100755
--- a/BaseTools/Source/Python/AutoGen/GenC.py
+++ b/BaseTools/Source/Python/AutoGen/GenC.py
@@ -1371,6 +1371,14 @@ def CreateLibraryConstructorCode(Info, AutoGenC, AutoGenH):
     else:
         if Info.ModuleType in [SUP_MODULE_BASE, SUP_MODULE_SEC, SUP_MODULE_USER_DEFINED, SUP_MODULE_HOST_APPLICATION]:
             AutoGenC.Append(gLibraryString[SUP_MODULE_BASE].Replace(Dict))
+            if Info.ModuleType == SUP_MODULE_SEC:
+                AutoGenH.Append(("\n"
+                                 "// ProcessLibraryConstructorList() declared here because SEC has no standard entry point.\n"
+                                 "VOID\n"
+                                 "EFIAPI\n"
+                                 "ProcessLibraryConstructorList (\n"
+                                 "  VOID\n"
+                                 "  );\n"))
         elif Info.ModuleType in SUP_MODULE_SET_PEI:
             AutoGenC.Append(gLibraryString['PEI'].Replace(Dict))
         elif Info.ModuleType in [SUP_MODULE_DXE_CORE, SUP_MODULE_DXE_DRIVER, SUP_MODULE_DXE_SMM_DRIVER, SUP_MODULE_DXE_RUNTIME_DRIVER,



-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#115200): https://edk2.groups.io/g/devel/message/115200
Mute This Topic: https://groups.io/mt/104210777/7686176
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [rebecca@openfw.io]
-=-=-=-=-=-=-=-=-=-=-=-



^ permalink raw reply related	[flat|nested] 36+ messages in thread

* [edk2-devel] [PATCH 04/11] ArmPlatformPkg: remove SEC ProcessLibraryConstructorList() declarations
  2024-02-07  1:04 ` [edk2-devel] [PATCH 00/11] " Laszlo Ersek
                     ` (2 preceding siblings ...)
  2024-02-07  1:04   ` [edk2-devel] [PATCH 03/11] BaseTools/AutoGen: declare ProcessLibraryConstructorList() for SEC modules Laszlo Ersek
@ 2024-02-07  1:04   ` Laszlo Ersek
  2024-02-07  1:04   ` [edk2-devel] [PATCH 05/11] ArmVirtPkg: remove SEC ProcessLibraryConstructorList() declaration Laszlo Ersek
                     ` (6 subsequent siblings)
  10 siblings, 0 replies; 36+ messages in thread
From: Laszlo Ersek @ 2024-02-07  1:04 UTC (permalink / raw)
  To: edk2-devel-groups-io; +Cc: Ard Biesheuvel, Leif Lindholm

Every such declaration is now generated by AutoGen.

Build-tested with "ArmPlatformPkg/ArmPlatformPkg.dsc". Verified the
generated files

- Build/ArmPlatform/NOOPT_GCC5/AARCH64/ArmPlatformPkg/PrePeiCore/PrePeiCoreMPCore/DEBUG/AutoGen.h
- Build/ArmPlatform/NOOPT_GCC5/AARCH64/ArmPlatformPkg/PrePeiCore/PrePeiCoreUniCore/DEBUG/AutoGen.h
- Build/ArmPlatform/NOOPT_GCC5/AARCH64/ArmPlatformPkg/PrePi/PeiMPCore/DEBUG/AutoGen.h
- Build/ArmPlatform/NOOPT_GCC5/AARCH64/ArmPlatformPkg/PrePi/PeiUniCore/DEBUG/AutoGen.h

Cc: Ard Biesheuvel <ardb+tianocore@kernel.org>
Cc: Leif Lindholm <quic_llindhol@quicinc.com>
Ref: https://bugzilla.tianocore.org/show_bug.cgi?id=990
Signed-off-by: Laszlo Ersek <lersek@redhat.com>
---
 ArmPlatformPkg/PrePeiCore/PrePeiCore.h | 10 ----------
 ArmPlatformPkg/PrePi/PrePi.h           |  6 ------
 2 files changed, 16 deletions(-)

diff --git a/ArmPlatformPkg/PrePeiCore/PrePeiCore.h b/ArmPlatformPkg/PrePeiCore/PrePeiCore.h
index c1e13e23e11e..fbf6207db816 100644
--- a/ArmPlatformPkg/PrePeiCore/PrePeiCore.h
+++ b/ArmPlatformPkg/PrePeiCore/PrePeiCore.h
@@ -73,14 +73,4 @@ PeiCommonExceptionEntry (
   IN UINTN   LR
   );
 
-/*
- * Autogenerated function that calls the library constructors for all of the
- * module's dependent libraries.
- */
-VOID
-EFIAPI
-ProcessLibraryConstructorList (
-  VOID
-  );
-
 #endif
diff --git a/ArmPlatformPkg/PrePi/PrePi.h b/ArmPlatformPkg/PrePi/PrePi.h
index 6074a22108d2..1d47ba26be3a 100644
--- a/ArmPlatformPkg/PrePi/PrePi.h
+++ b/ArmPlatformPkg/PrePi/PrePi.h
@@ -79,10 +79,4 @@ ArchInitialize (
   VOID
   );
 
-VOID
-EFIAPI
-ProcessLibraryConstructorList (
-  VOID
-  );
-
 #endif /* _PREPI_H_ */



-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#115197): https://edk2.groups.io/g/devel/message/115197
Mute This Topic: https://groups.io/mt/104210774/7686176
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [rebecca@openfw.io]
-=-=-=-=-=-=-=-=-=-=-=-



^ permalink raw reply related	[flat|nested] 36+ messages in thread

* [edk2-devel] [PATCH 05/11] ArmVirtPkg: remove SEC ProcessLibraryConstructorList() declaration
  2024-02-07  1:04 ` [edk2-devel] [PATCH 00/11] " Laszlo Ersek
                     ` (3 preceding siblings ...)
  2024-02-07  1:04   ` [edk2-devel] [PATCH 04/11] ArmPlatformPkg: remove SEC ProcessLibraryConstructorList() declarations Laszlo Ersek
@ 2024-02-07  1:04   ` Laszlo Ersek
  2024-02-07  1:04   ` [edk2-devel] [PATCH 06/11] EmulatorPkg: " Laszlo Ersek
                     ` (5 subsequent siblings)
  10 siblings, 0 replies; 36+ messages in thread
From: Laszlo Ersek @ 2024-02-07  1:04 UTC (permalink / raw)
  To: edk2-devel-groups-io
  Cc: Ard Biesheuvel, Gerd Hoffmann, Leif Lindholm, Sami Mujawar

Every such declaration is now generated by AutoGen.

Build-tested with "ArmVirtPkg/ArmVirtQemuKernel.dsc".

Cc: Ard Biesheuvel <ardb+tianocore@kernel.org>
Cc: Gerd Hoffmann <kraxel@redhat.com>
Cc: Leif Lindholm <quic_llindhol@quicinc.com>
Cc: Sami Mujawar <sami.mujawar@arm.com>
Ref: https://bugzilla.tianocore.org/show_bug.cgi?id=990
Signed-off-by: Laszlo Ersek <lersek@redhat.com>
---
 ArmVirtPkg/PrePi/PrePi.c | 6 ------
 1 file changed, 6 deletions(-)

diff --git a/ArmVirtPkg/PrePi/PrePi.c b/ArmVirtPkg/PrePi/PrePi.c
index ff51a757a21a..f27e0ad3d223 100755
--- a/ArmVirtPkg/PrePi/PrePi.c
+++ b/ArmVirtPkg/PrePi/PrePi.c
@@ -22,12 +22,6 @@
 
 #include "PrePi.h"
 
-VOID
-EFIAPI
-ProcessLibraryConstructorList (
-  VOID
-  );
-
 VOID
 PrePiMain (
   IN  UINTN   UefiMemoryBase,



-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#115199): https://edk2.groups.io/g/devel/message/115199
Mute This Topic: https://groups.io/mt/104210776/7686176
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [rebecca@openfw.io]
-=-=-=-=-=-=-=-=-=-=-=-



^ permalink raw reply related	[flat|nested] 36+ messages in thread

* [edk2-devel] [PATCH 06/11] EmulatorPkg: remove SEC ProcessLibraryConstructorList() declaration
  2024-02-07  1:04 ` [edk2-devel] [PATCH 00/11] " Laszlo Ersek
                     ` (4 preceding siblings ...)
  2024-02-07  1:04   ` [edk2-devel] [PATCH 05/11] ArmVirtPkg: remove SEC ProcessLibraryConstructorList() declaration Laszlo Ersek
@ 2024-02-07  1:04   ` Laszlo Ersek
  2024-02-07  1:04   ` [edk2-devel] [PATCH 07/11] IntelFsp2Pkg: " Laszlo Ersek
                     ` (4 subsequent siblings)
  10 siblings, 0 replies; 36+ messages in thread
From: Laszlo Ersek @ 2024-02-07  1:04 UTC (permalink / raw)
  To: edk2-devel-groups-io; +Cc: Andrew Fish, Ray Ni

Every such declaration is now generated by AutoGen.

Build-tested with "EmulatorPkg/EmulatorPkg.dsc".

Cc: Andrew Fish <afish@apple.com>
Cc: Ray Ni <ray.ni@intel.com>
Ref: https://bugzilla.tianocore.org/show_bug.cgi?id=990
Signed-off-by: Laszlo Ersek <lersek@redhat.com>
---
 EmulatorPkg/Sec/Sec.h | 9 ---------
 1 file changed, 9 deletions(-)

diff --git a/EmulatorPkg/Sec/Sec.h b/EmulatorPkg/Sec/Sec.h
index 29272a29ffa5..94689eb41d35 100644
--- a/EmulatorPkg/Sec/Sec.h
+++ b/EmulatorPkg/Sec/Sec.h
@@ -20,15 +20,6 @@ SPDX-License-Identifier: BSD-2-Clause-Patent
 
 #include <Ppi/TemporaryRamSupport.h>
 
-//
-// I think this should be defined in a MdePkg include file?
-//
-VOID
-EFIAPI
-ProcessLibraryConstructorList (
-  VOID
-  );
-
 EFI_STATUS
 EFIAPI
 SecTemporaryRamSupport (



-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#115201): https://edk2.groups.io/g/devel/message/115201
Mute This Topic: https://groups.io/mt/104210778/7686176
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [rebecca@openfw.io]
-=-=-=-=-=-=-=-=-=-=-=-



^ permalink raw reply related	[flat|nested] 36+ messages in thread

* [edk2-devel] [PATCH 07/11] IntelFsp2Pkg: remove SEC ProcessLibraryConstructorList() declaration
  2024-02-07  1:04 ` [edk2-devel] [PATCH 00/11] " Laszlo Ersek
                     ` (5 preceding siblings ...)
  2024-02-07  1:04   ` [edk2-devel] [PATCH 06/11] EmulatorPkg: " Laszlo Ersek
@ 2024-02-07  1:04   ` Laszlo Ersek
  2024-02-07  1:04   ` [edk2-devel] [PATCH 08/11] OvmfPkg/RiscVVirt: " Laszlo Ersek
                     ` (3 subsequent siblings)
  10 siblings, 0 replies; 36+ messages in thread
From: Laszlo Ersek @ 2024-02-07  1:04 UTC (permalink / raw)
  To: edk2-devel-groups-io
  Cc: Ashraf Ali S, Chasel Chiu, Duggapu Chinni B, Nate DeSimone,
	Star Zeng, Susovan Mohapatra, Ted Kuo

Every such declaration is now generated by AutoGen.

Build-tested with "IntelFsp2Pkg/IntelFsp2Pkg.dsc".

Cc: Ashraf Ali S <ashraf.ali.s@intel.com>
Cc: Chasel Chiu <chasel.chiu@intel.com>
Cc: Duggapu Chinni B <chinni.b.duggapu@intel.com>
Cc: Nate DeSimone <nathaniel.l.desimone@intel.com>
Cc: Star Zeng <star.zeng@intel.com>
Cc: Susovan Mohapatra <susovan.mohapatra@intel.com>
Cc: Ted Kuo <ted.kuo@intel.com>
Ref: https://bugzilla.tianocore.org/show_bug.cgi?id=990
Signed-off-by: Laszlo Ersek <lersek@redhat.com>
---
 IntelFsp2Pkg/FspSecCore/SecMain.h | 12 ------------
 1 file changed, 12 deletions(-)

diff --git a/IntelFsp2Pkg/FspSecCore/SecMain.h b/IntelFsp2Pkg/FspSecCore/SecMain.h
index 023deb7e2bda..eb1458d19773 100644
--- a/IntelFsp2Pkg/FspSecCore/SecMain.h
+++ b/IntelFsp2Pkg/FspSecCore/SecMain.h
@@ -110,18 +110,6 @@ SecStartup (
   IN UINT32          ApiIdx
   );
 
-/**
-  Autogenerated function that calls the library constructors for all of the module's
-  dependent libraries.  This function must be called by the SEC Core once a stack has
-  been established.
-
-**/
-VOID
-EFIAPI
-ProcessLibraryConstructorList (
-  VOID
-  );
-
 /**
 
   Return value of esp.



-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#115202): https://edk2.groups.io/g/devel/message/115202
Mute This Topic: https://groups.io/mt/104210779/7686176
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [rebecca@openfw.io]
-=-=-=-=-=-=-=-=-=-=-=-



^ permalink raw reply related	[flat|nested] 36+ messages in thread

* [edk2-devel] [PATCH 08/11] OvmfPkg/RiscVVirt: remove SEC ProcessLibraryConstructorList() declaration
  2024-02-07  1:04 ` [edk2-devel] [PATCH 00/11] " Laszlo Ersek
                     ` (6 preceding siblings ...)
  2024-02-07  1:04   ` [edk2-devel] [PATCH 07/11] IntelFsp2Pkg: " Laszlo Ersek
@ 2024-02-07  1:04   ` Laszlo Ersek
  2024-02-07  1:04   ` [edk2-devel] [PATCH 09/11] OvmfPkg: " Laszlo Ersek
                     ` (2 subsequent siblings)
  10 siblings, 0 replies; 36+ messages in thread
From: Laszlo Ersek @ 2024-02-07  1:04 UTC (permalink / raw)
  To: edk2-devel-groups-io
  Cc: Andrei Warkentin, Ard Biesheuvel, Gerd Hoffmann, Jiewen Yao,
	Sunil V L

Every such declaration is now generated by AutoGen.

Build-tested with "OvmfPkg/RiscVVirt/RiscVVirtQemu.dsc".

Cc: Andrei Warkentin <andrei.warkentin@intel.com>
Cc: Ard Biesheuvel <ardb+tianocore@kernel.org>
Cc: Gerd Hoffmann <kraxel@redhat.com>
Cc: Jiewen Yao <jiewen.yao@intel.com>
Cc: Sunil V L <sunilvl@ventanamicro.com>
Ref: https://bugzilla.tianocore.org/show_bug.cgi?id=990
Signed-off-by: Laszlo Ersek <lersek@redhat.com>
---
 OvmfPkg/RiscVVirt/Sec/SecMain.h | 12 ------------
 1 file changed, 12 deletions(-)

diff --git a/OvmfPkg/RiscVVirt/Sec/SecMain.h b/OvmfPkg/RiscVVirt/Sec/SecMain.h
index 7c7650f0d298..fd7c48f87653 100644
--- a/OvmfPkg/RiscVVirt/Sec/SecMain.h
+++ b/OvmfPkg/RiscVVirt/Sec/SecMain.h
@@ -49,18 +49,6 @@ SecStartup (
   IN  VOID   *DeviceTreeAddress
   );
 
-/**
-  Auto-generated function that calls the library constructors for all of the module's
-  dependent libraries.  This function must be called by the SEC Core once a stack has
-  been established.
-
-**/
-VOID
-EFIAPI
-ProcessLibraryConstructorList (
-  VOID
-  );
-
 /**
   Perform Platform PEIM initialization.
 



-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#115203): https://edk2.groups.io/g/devel/message/115203
Mute This Topic: https://groups.io/mt/104210780/7686176
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [rebecca@openfw.io]
-=-=-=-=-=-=-=-=-=-=-=-



^ permalink raw reply related	[flat|nested] 36+ messages in thread

* [edk2-devel] [PATCH 09/11] OvmfPkg: remove SEC ProcessLibraryConstructorList() declaration
  2024-02-07  1:04 ` [edk2-devel] [PATCH 00/11] " Laszlo Ersek
                     ` (7 preceding siblings ...)
  2024-02-07  1:04   ` [edk2-devel] [PATCH 08/11] OvmfPkg/RiscVVirt: " Laszlo Ersek
@ 2024-02-07  1:04   ` Laszlo Ersek
  2024-02-07  1:04   ` [edk2-devel] [PATCH 10/11] UefiCpuPkg: " Laszlo Ersek
  2024-02-07  1:04   ` [edk2-devel] [PATCH 11/11] UefiPayloadPkg: " Laszlo Ersek
  10 siblings, 0 replies; 36+ messages in thread
From: Laszlo Ersek @ 2024-02-07  1:04 UTC (permalink / raw)
  To: edk2-devel-groups-io
  Cc: Ard Biesheuvel, Erdem Aktas, Gerd Hoffmann, Jiewen Yao,
	Michael Roth, Min Xu, Tom Lendacky

Every such declaration is now generated by AutoGen.

Build-tested with "OvmfPkg/OvmfPkgX64.dsc".

Cc: Ard Biesheuvel <ardb+tianocore@kernel.org>
Cc: Erdem Aktas <erdemaktas@google.com>
Cc: Gerd Hoffmann <kraxel@redhat.com>
Cc: Jiewen Yao <jiewen.yao@intel.com>
Cc: Michael Roth <michael.roth@amd.com>
Cc: Min Xu <min.m.xu@intel.com>
Cc: Tom Lendacky <thomas.lendacky@amd.com>
Ref: https://bugzilla.tianocore.org/show_bug.cgi?id=990
Signed-off-by: Laszlo Ersek <lersek@redhat.com>
---
 OvmfPkg/Sec/SecMain.c | 6 ------
 1 file changed, 6 deletions(-)

diff --git a/OvmfPkg/Sec/SecMain.c b/OvmfPkg/Sec/SecMain.c
index 7b7d4793984c..a30d4ce09ea8 100644
--- a/OvmfPkg/Sec/SecMain.c
+++ b/OvmfPkg/Sec/SecMain.c
@@ -38,12 +38,6 @@ typedef struct _SEC_IDT_TABLE {
   IA32_IDT_GATE_DESCRIPTOR    IdtTable[SEC_IDT_ENTRY_COUNT];
 } SEC_IDT_TABLE;
 
-VOID
-EFIAPI
-ProcessLibraryConstructorList (
-  VOID
-  );
-
 VOID
 EFIAPI
 SecStartupPhase2 (



-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#115205): https://edk2.groups.io/g/devel/message/115205
Mute This Topic: https://groups.io/mt/104210783/7686176
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [rebecca@openfw.io]
-=-=-=-=-=-=-=-=-=-=-=-



^ permalink raw reply related	[flat|nested] 36+ messages in thread

* [edk2-devel] [PATCH 10/11] UefiCpuPkg: remove SEC ProcessLibraryConstructorList() declaration
  2024-02-07  1:04 ` [edk2-devel] [PATCH 00/11] " Laszlo Ersek
                     ` (8 preceding siblings ...)
  2024-02-07  1:04   ` [edk2-devel] [PATCH 09/11] OvmfPkg: " Laszlo Ersek
@ 2024-02-07  1:04   ` Laszlo Ersek
  2024-02-07  1:04   ` [edk2-devel] [PATCH 11/11] UefiPayloadPkg: " Laszlo Ersek
  10 siblings, 0 replies; 36+ messages in thread
From: Laszlo Ersek @ 2024-02-07  1:04 UTC (permalink / raw)
  To: edk2-devel-groups-io; +Cc: Catharine West, Gerd Hoffmann, Rahul Kumar, Ray Ni

Every such declaration is now generated by AutoGen.

Build-tested with "UefiCpuPkg/UefiCpuPkg.dsc".

Cc: Catharine West <catharine.west@intel.com>
Cc: Gerd Hoffmann <kraxel@redhat.com>
Cc: Rahul Kumar <rahul1.kumar@intel.com>
Cc: Ray Ni <ray.ni@intel.com>
Ref: https://bugzilla.tianocore.org/show_bug.cgi?id=990
Signed-off-by: Laszlo Ersek <lersek@redhat.com>
---
 UefiCpuPkg/SecCore/SecMain.h | 12 ------------
 1 file changed, 12 deletions(-)

diff --git a/UefiCpuPkg/SecCore/SecMain.h b/UefiCpuPkg/SecCore/SecMain.h
index b50d96e45b33..81c561424e3b 100644
--- a/UefiCpuPkg/SecCore/SecMain.h
+++ b/UefiCpuPkg/SecCore/SecMain.h
@@ -101,18 +101,6 @@ FindAndReportEntryPoints (
   OUT EFI_PEI_CORE_ENTRY_POINT    *PeiCoreEntryPoint
   );
 
-/**
-  Auto-generated function that calls the library constructors for all of the module's
-  dependent libraries.  This function must be called by the SEC Core once a stack has
-  been established.
-
-**/
-VOID
-EFIAPI
-ProcessLibraryConstructorList (
-  VOID
-  );
-
 /**
   Implementation of the PlatformInformation service in EFI_SEC_PLATFORM_INFORMATION_PPI.
 



-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#115204): https://edk2.groups.io/g/devel/message/115204
Mute This Topic: https://groups.io/mt/104210781/7686176
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [rebecca@openfw.io]
-=-=-=-=-=-=-=-=-=-=-=-



^ permalink raw reply related	[flat|nested] 36+ messages in thread

* [edk2-devel] [PATCH 11/11] UefiPayloadPkg: remove SEC ProcessLibraryConstructorList() declaration
  2024-02-07  1:04 ` [edk2-devel] [PATCH 00/11] " Laszlo Ersek
                     ` (9 preceding siblings ...)
  2024-02-07  1:04   ` [edk2-devel] [PATCH 10/11] UefiCpuPkg: " Laszlo Ersek
@ 2024-02-07  1:04   ` Laszlo Ersek
  10 siblings, 0 replies; 36+ messages in thread
From: Laszlo Ersek @ 2024-02-07  1:04 UTC (permalink / raw)
  To: edk2-devel-groups-io; +Cc: Gua Guo, Guo Dong, James Lu, Sean Rhodes

Every such declaration is now generated by AutoGen.

Build-tested with "UefiPayloadPkg/UefiPayloadPkg.dsc".

Cc: Gua Guo <gua.guo@intel.com>
Cc: Guo Dong <guo.dong@intel.com>
Cc: James Lu <james.lu@intel.com>
Cc: Sean Rhodes <sean@starlabs.systems>
Ref: https://bugzilla.tianocore.org/show_bug.cgi?id=990
Signed-off-by: Laszlo Ersek <lersek@redhat.com>
---
 UefiPayloadPkg/UefiPayloadEntry/UefiPayloadEntry.h | 10 ----------
 1 file changed, 10 deletions(-)

diff --git a/UefiPayloadPkg/UefiPayloadEntry/UefiPayloadEntry.h b/UefiPayloadPkg/UefiPayloadEntry/UefiPayloadEntry.h
index ad8a9fd22b66..80ccc5072c55 100644
--- a/UefiPayloadPkg/UefiPayloadEntry/UefiPayloadEntry.h
+++ b/UefiPayloadPkg/UefiPayloadEntry/UefiPayloadEntry.h
@@ -51,16 +51,6 @@
 #define E820_PMEM       7
 #define E820_UNDEFINED  8
 
-/**
-  Auto-generated function that calls the library constructors for all of the module's
-  dependent libraries.
-**/
-VOID
-EFIAPI
-ProcessLibraryConstructorList (
-  VOID
-  );
-
 /**
   Add a new HOB to the HOB List.
 


-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#115206): https://edk2.groups.io/g/devel/message/115206
Mute This Topic: https://groups.io/mt/104210785/7686176
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [rebecca@openfw.io]
-=-=-=-=-=-=-=-=-=-=-=-



^ permalink raw reply related	[flat|nested] 36+ messages in thread

* [edk2-devel] [edk2-platforms PATCH 0/6] clean up SEC ProcessLibraryConstructorList() declarations
  2024-02-07  0:50 [edk2-devel] BaseTools/AutoGen: declare ProcessLibraryConstructorList() for SEC modules Laszlo Ersek
  2024-02-07  1:04 ` [edk2-devel] [PATCH 00/11] " Laszlo Ersek
@ 2024-02-07  1:09 ` Laszlo Ersek
  2024-02-07  1:09   ` [edk2-devel] [edk2-platforms PATCH 1/6] ChachaniBoardPkg: remove SEC ProcessLibraryConstructorList() declaration Laszlo Ersek
                     ` (6 more replies)
  2024-02-07  1:16 ` [edk2-devel] BaseTools/AutoGen: declare ProcessLibraryConstructorList() for SEC modules Michael D Kinney
  2 siblings, 7 replies; 36+ messages in thread
From: Laszlo Ersek @ 2024-02-07  1:09 UTC (permalink / raw)
  To: edk2-devel-groups-io
  Cc: Abdul Lateef Attar, Abner Chang, Ard Biesheuvel, Bibo Mao,
	Chao Li, Duke Zhai, Eric Xing, Igniculus Fu, Kelly Steele,
	Ken Yao, Leif Lindholm, Michael D Kinney, Nate DeSimone,
	Paul Grimes, Sai Chaganty, Sunil V L, USER0FISH, Xianglai li,
	caiyuqing379, dahogn, meng-cz

Please refer to the parent cover letter. This is the edk2-platforms
series.

Laszlo

Cc: Abdul Lateef Attar <abdattar@amd.com>
Cc: Abner Chang <abner.chang@amd.com>
Cc: Ard Biesheuvel <ardb+tianocore@kernel.org>
Cc: Bibo Mao <maobibo@loongson.cn>
Cc: Chao Li <lichao@loongson.cn>
Cc: Duke Zhai <duke.zhai@amd.com>
Cc: Eric Xing <eric.xing@amd.com>
Cc: Igniculus Fu <igniculus.fu@amd.com>
Cc: Kelly Steele <kelly.steele@intel.com>
Cc: Ken Yao <ken.yao@amd.com>
Cc: Leif Lindholm <quic_llindhol@quicinc.com>
Cc: Michael D Kinney <michael.d.kinney@intel.com>
Cc: Nate DeSimone <nathaniel.l.desimone@intel.com>
Cc: Paul Grimes <paul.grimes@amd.com>
Cc: Sai Chaganty <rangasai.v.chaganty@intel.com>
Cc: Sunil V L <sunilvl@ventanamicro.com>
Cc: USER0FISH <libing1202@outlook.com>
Cc: Xianglai li <lixianglai@loongson.cn>
Cc: caiyuqing379 <caiyuqing_hz@outlook.com>
Cc: dahogn <dahogn@hotmail.com>
Cc: meng-cz <mengcz1126@gmail.com>

Laszlo Ersek (6):
  ChachaniBoardPkg: remove SEC ProcessLibraryConstructorList()
    declaration
  BeagleBoardPkg: remove SEC ProcessLibraryConstructorList() declaration
  QuarkPlatformPkg: remove SEC ProcessLibraryConstructorList()
    declaration
  SimicsOpenBoardPkg: fix SEC ProcessLibraryConstructorList() prototype
  LoongArchQemuPkg: fix SEC ProcessLibraryConstructorList() prototype
  SG2042Pkg: clean up SEC ProcessLibraryConstructorList() declaration

 Platform/AMD/VanGoghBoard/ChachaniBoardPkg/Library/PlatformSecLib/PlatformSecLib.c | 12 ------------
 Platform/BeagleBoard/BeagleBoardPkg/PrePi/PrePi.h                                  |  6 ------
 Platform/Intel/QuarkPlatformPkg/Library/PlatformSecLib/PlatformSecLib.c            | 12 ------------
 Platform/Intel/SimicsOpenBoardPkg/SecCore/SecMain.c                                |  3 +--
 Platform/Loongson/LoongArchQemuPkg/Sec/SecMain.c                                   |  3 +--
 Silicon/Sophgo/SG2042Pkg/Sec/Memory.c                                              |  1 -
 Silicon/Sophgo/SG2042Pkg/Sec/SecMain.h                                             | 12 ------------
 7 files changed, 2 insertions(+), 47 deletions(-)


base-commit: 98abaca059d0eac8c91ef653b2741f0bcaea7821


-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#115214): https://edk2.groups.io/g/devel/message/115214
Mute This Topic: https://groups.io/mt/104210909/7686176
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [rebecca@openfw.io]
-=-=-=-=-=-=-=-=-=-=-=-



^ permalink raw reply	[flat|nested] 36+ messages in thread

* [edk2-devel] [edk2-platforms PATCH 1/6] ChachaniBoardPkg: remove SEC ProcessLibraryConstructorList() declaration
  2024-02-07  1:09 ` [edk2-devel] [edk2-platforms PATCH 0/6] clean up SEC ProcessLibraryConstructorList() declarations Laszlo Ersek
@ 2024-02-07  1:09   ` Laszlo Ersek
  2024-02-07  1:09   ` [edk2-devel] [edk2-platforms PATCH 2/6] BeagleBoardPkg: " Laszlo Ersek
                     ` (5 subsequent siblings)
  6 siblings, 0 replies; 36+ messages in thread
From: Laszlo Ersek @ 2024-02-07  1:09 UTC (permalink / raw)
  To: edk2-devel-groups-io
  Cc: Abdul Lateef Attar, Abner Chang, Duke Zhai, Eric Xing,
	Igniculus Fu, Ken Yao, Paul Grimes

Every such declaration is now generated by AutoGen.

Untested (couldn't build
"Platform/AMD/VanGoghBoard/ChachaniBoardPkg/Project.dsc" anyway, due to
"Set.env" not being found in $PACKAGES_PATH).

Cc: Abdul Lateef Attar <abdattar@amd.com>
Cc: Abner Chang <abner.chang@amd.com>
Cc: Duke Zhai <duke.zhai@amd.com>
Cc: Eric Xing <eric.xing@amd.com>
Cc: Igniculus Fu <igniculus.fu@amd.com>
Cc: Ken Yao <ken.yao@amd.com>
Cc: Paul Grimes <paul.grimes@amd.com>
Ref: https://bugzilla.tianocore.org/show_bug.cgi?id=990
Signed-off-by: Laszlo Ersek <lersek@redhat.com>
---
 Platform/AMD/VanGoghBoard/ChachaniBoardPkg/Library/PlatformSecLib/PlatformSecLib.c | 12 ------------
 1 file changed, 12 deletions(-)

diff --git a/Platform/AMD/VanGoghBoard/ChachaniBoardPkg/Library/PlatformSecLib/PlatformSecLib.c b/Platform/AMD/VanGoghBoard/ChachaniBoardPkg/Library/PlatformSecLib/PlatformSecLib.c
index c5f7cc60185f..92bfb9f01a38 100644
--- a/Platform/AMD/VanGoghBoard/ChachaniBoardPkg/Library/PlatformSecLib/PlatformSecLib.c
+++ b/Platform/AMD/VanGoghBoard/ChachaniBoardPkg/Library/PlatformSecLib/PlatformSecLib.c
@@ -36,18 +36,6 @@ SecStartup (
   IN VOID    *BootFirmwareVolume
   );
 
-/**
-  Auto-generated function that calls the library constructors for all of the module's
-  dependent libraries.  This function must be called by the SEC Core once a stack has
-  been established.
-
-**/
-VOID
-EFIAPI
-ProcessLibraryConstructorList (
-  VOID
-  );
-
 /**
 
   Entry point to the C language phase of PlatformSecLib.  After the SEC assembly



-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#115208): https://edk2.groups.io/g/devel/message/115208
Mute This Topic: https://groups.io/mt/104210894/7686176
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [rebecca@openfw.io]
-=-=-=-=-=-=-=-=-=-=-=-



^ permalink raw reply related	[flat|nested] 36+ messages in thread

* [edk2-devel] [edk2-platforms PATCH 2/6] BeagleBoardPkg: remove SEC ProcessLibraryConstructorList() declaration
  2024-02-07  1:09 ` [edk2-devel] [edk2-platforms PATCH 0/6] clean up SEC ProcessLibraryConstructorList() declarations Laszlo Ersek
  2024-02-07  1:09   ` [edk2-devel] [edk2-platforms PATCH 1/6] ChachaniBoardPkg: remove SEC ProcessLibraryConstructorList() declaration Laszlo Ersek
@ 2024-02-07  1:09   ` Laszlo Ersek
  2024-02-07  1:09   ` [edk2-devel] [edk2-platforms PATCH 3/6] QuarkPlatformPkg: " Laszlo Ersek
                     ` (4 subsequent siblings)
  6 siblings, 0 replies; 36+ messages in thread
From: Laszlo Ersek @ 2024-02-07  1:09 UTC (permalink / raw)
  To: edk2-devel-groups-io; +Cc: Ard Biesheuvel, Leif Lindholm

Every such declaration is now generated by AutoGen.

Build-tested with
"Platform/BeagleBoard/BeagleBoardPkg/BeagleBoardPkg.dsc".

Cc: Ard Biesheuvel <ardb+tianocore@kernel.org>
Cc: Leif Lindholm <quic_llindhol@quicinc.com>
Ref: https://bugzilla.tianocore.org/show_bug.cgi?id=990
Signed-off-by: Laszlo Ersek <lersek@redhat.com>
---
 Platform/BeagleBoard/BeagleBoardPkg/PrePi/PrePi.h | 6 ------
 1 file changed, 6 deletions(-)

diff --git a/Platform/BeagleBoard/BeagleBoardPkg/PrePi/PrePi.h b/Platform/BeagleBoard/BeagleBoardPkg/PrePi/PrePi.h
index b64dd764a435..a2932f0f5116 100644
--- a/Platform/BeagleBoard/BeagleBoardPkg/PrePi/PrePi.h
+++ b/Platform/BeagleBoard/BeagleBoardPkg/PrePi/PrePi.h
@@ -81,10 +81,4 @@ ArchInitialize (
   VOID
   );
 
-VOID
-EFIAPI
-ProcessLibraryConstructorList (
-  VOID
-  );
-
 #endif /* _PREPI_H_ */



-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#115211): https://edk2.groups.io/g/devel/message/115211
Mute This Topic: https://groups.io/mt/104210905/7686176
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [rebecca@openfw.io]
-=-=-=-=-=-=-=-=-=-=-=-



^ permalink raw reply related	[flat|nested] 36+ messages in thread

* [edk2-devel] [edk2-platforms PATCH 3/6] QuarkPlatformPkg: remove SEC ProcessLibraryConstructorList() declaration
  2024-02-07  1:09 ` [edk2-devel] [edk2-platforms PATCH 0/6] clean up SEC ProcessLibraryConstructorList() declarations Laszlo Ersek
  2024-02-07  1:09   ` [edk2-devel] [edk2-platforms PATCH 1/6] ChachaniBoardPkg: remove SEC ProcessLibraryConstructorList() declaration Laszlo Ersek
  2024-02-07  1:09   ` [edk2-devel] [edk2-platforms PATCH 2/6] BeagleBoardPkg: " Laszlo Ersek
@ 2024-02-07  1:09   ` Laszlo Ersek
  2024-02-07  1:09   ` [edk2-devel] [edk2-platforms PATCH 4/6] SimicsOpenBoardPkg: fix SEC ProcessLibraryConstructorList() prototype Laszlo Ersek
                     ` (3 subsequent siblings)
  6 siblings, 0 replies; 36+ messages in thread
From: Laszlo Ersek @ 2024-02-07  1:09 UTC (permalink / raw)
  To: edk2-devel-groups-io
  Cc: Kelly Steele, Michael D Kinney, Nate DeSimone, Sai Chaganty

Every such declaration is now generated by AutoGen.

Untested (couldn't build either
"Platform/Intel/QuarkPlatformPkg/Quark.dsc" or
"Platform/Intel/QuarkPlatformPkg/QuarkMin.dsc" anyway, due to the
corresponding FDF files not being found).

Cc: Kelly Steele <kelly.steele@intel.com>
Cc: Michael D Kinney <michael.d.kinney@intel.com>
Cc: Nate DeSimone <nathaniel.l.desimone@intel.com>
Cc: Sai Chaganty <rangasai.v.chaganty@intel.com>
Ref: https://bugzilla.tianocore.org/show_bug.cgi?id=990
Signed-off-by: Laszlo Ersek <lersek@redhat.com>
---
 Platform/Intel/QuarkPlatformPkg/Library/PlatformSecLib/PlatformSecLib.c | 12 ------------
 1 file changed, 12 deletions(-)

diff --git a/Platform/Intel/QuarkPlatformPkg/Library/PlatformSecLib/PlatformSecLib.c b/Platform/Intel/QuarkPlatformPkg/Library/PlatformSecLib/PlatformSecLib.c
index 9383d3dfbf93..f651c64f293a 100644
--- a/Platform/Intel/QuarkPlatformPkg/Library/PlatformSecLib/PlatformSecLib.c
+++ b/Platform/Intel/QuarkPlatformPkg/Library/PlatformSecLib/PlatformSecLib.c
@@ -38,18 +38,6 @@ SecStartup (
   IN VOID                     *BootFirmwareVolume
   );
 
-/**
-  Auto-generated function that calls the library constructors for all of the module's
-  dependent libraries.  This function must be called by the SEC Core once a stack has
-  been established.
-
-**/
-VOID
-EFIAPI
-ProcessLibraryConstructorList (
-  VOID
-  );
-
 /**
 
   Entry point to the C language phase of PlatformSecLib.  After the SEC assembly



-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#115209): https://edk2.groups.io/g/devel/message/115209
Mute This Topic: https://groups.io/mt/104210899/7686176
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [rebecca@openfw.io]
-=-=-=-=-=-=-=-=-=-=-=-



^ permalink raw reply related	[flat|nested] 36+ messages in thread

* [edk2-devel] [edk2-platforms PATCH 4/6] SimicsOpenBoardPkg: fix SEC ProcessLibraryConstructorList() prototype
  2024-02-07  1:09 ` [edk2-devel] [edk2-platforms PATCH 0/6] clean up SEC ProcessLibraryConstructorList() declarations Laszlo Ersek
                     ` (2 preceding siblings ...)
  2024-02-07  1:09   ` [edk2-devel] [edk2-platforms PATCH 3/6] QuarkPlatformPkg: " Laszlo Ersek
@ 2024-02-07  1:09   ` Laszlo Ersek
  2024-02-09  0:07     ` Nate DeSimone
  2024-02-07  1:09   ` [edk2-devel] [edk2-platforms PATCH 5/6] LoongArchQemuPkg: " Laszlo Ersek
                     ` (2 subsequent siblings)
  6 siblings, 1 reply; 36+ messages in thread
From: Laszlo Ersek @ 2024-02-07  1:09 UTC (permalink / raw)
  To: edk2-devel-groups-io; +Cc: Nate DeSimone, Sai Chaganty

The current declaration of, and call to, SEC
ProcessLibraryConstructorList() in SimicsOpenBoardPkg matches the PEIM
entry point parameter list. Fix the call, and rely on AutoGen for the
declaration.

Untested (no idea what hoops to jump through to get this built).

Cc: Nate DeSimone <nathaniel.l.desimone@intel.com>
Cc: Sai Chaganty <rangasai.v.chaganty@intel.com>
Ref: https://bugzilla.tianocore.org/show_bug.cgi?id=990
Signed-off-by: Laszlo Ersek <lersek@redhat.com>
---
 Platform/Intel/SimicsOpenBoardPkg/SecCore/SecMain.c | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/Platform/Intel/SimicsOpenBoardPkg/SecCore/SecMain.c b/Platform/Intel/SimicsOpenBoardPkg/SecCore/SecMain.c
index 39e879e9223e..09d43c6bf63b 100644
--- a/Platform/Intel/SimicsOpenBoardPkg/SecCore/SecMain.c
+++ b/Platform/Intel/SimicsOpenBoardPkg/SecCore/SecMain.c
@@ -9,7 +9,6 @@
 
 #include <PiPei.h>
 
-#include <Library/PeimEntryPoint.h>
 #include <Library/BaseLib.h>
 #include <Library/DebugLib.h>
 #include <Library/BaseMemoryLib.h>
@@ -738,7 +737,7 @@ SecCoreStartupWithStack (
     Table[Index] = 0;
   }
 
-  ProcessLibraryConstructorList (NULL, NULL);
+  ProcessLibraryConstructorList ();
 
   DEBUG ((EFI_D_INFO,
     "SecCoreStartupWithStack(0x%x, 0x%x)\n",



-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#115213): https://edk2.groups.io/g/devel/message/115213
Mute This Topic: https://groups.io/mt/104210908/7686176
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [rebecca@openfw.io]
-=-=-=-=-=-=-=-=-=-=-=-



^ permalink raw reply related	[flat|nested] 36+ messages in thread

* [edk2-devel] [edk2-platforms PATCH 5/6] LoongArchQemuPkg: fix SEC ProcessLibraryConstructorList() prototype
  2024-02-07  1:09 ` [edk2-devel] [edk2-platforms PATCH 0/6] clean up SEC ProcessLibraryConstructorList() declarations Laszlo Ersek
                     ` (3 preceding siblings ...)
  2024-02-07  1:09   ` [edk2-devel] [edk2-platforms PATCH 4/6] SimicsOpenBoardPkg: fix SEC ProcessLibraryConstructorList() prototype Laszlo Ersek
@ 2024-02-07  1:09   ` Laszlo Ersek
  2024-02-19  2:21     ` Chao Li
  2024-02-07  1:09   ` [edk2-devel] [edk2-platforms PATCH 6/6] SG2042Pkg: clean up SEC ProcessLibraryConstructorList() declaration Laszlo Ersek
  2024-02-14 14:25   ` [edk2-devel] [edk2-platforms PATCH 0/6] clean up SEC ProcessLibraryConstructorList() declarations Ard Biesheuvel
  6 siblings, 1 reply; 36+ messages in thread
From: Laszlo Ersek @ 2024-02-07  1:09 UTC (permalink / raw)
  To: edk2-devel-groups-io; +Cc: Bibo Mao, Chao Li, Xianglai li

The current declaration of, and call to, SEC
ProcessLibraryConstructorList() in LoongArchQemuPkg matches the PEIM entry
point parameter list. Fix the call, and rely on AutoGen for the
declaration.

Untested (have no cross-toolchain installed for LOONGARCH64).

Cc: Bibo Mao <maobibo@loongson.cn>
Cc: Chao Li <lichao@loongson.cn>
Cc: Xianglai li <lixianglai@loongson.cn>
Ref: https://bugzilla.tianocore.org/show_bug.cgi?id=990
Signed-off-by: Laszlo Ersek <lersek@redhat.com>
---
 Platform/Loongson/LoongArchQemuPkg/Sec/SecMain.c | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/Platform/Loongson/LoongArchQemuPkg/Sec/SecMain.c b/Platform/Loongson/LoongArchQemuPkg/Sec/SecMain.c
index 3f1998c48c12..50d898859a99 100644
--- a/Platform/Loongson/LoongArchQemuPkg/Sec/SecMain.c
+++ b/Platform/Loongson/LoongArchQemuPkg/Sec/SecMain.c
@@ -9,7 +9,6 @@
 
 #include <PiPei.h>
 
-#include <Library/PeimEntryPoint.h>
 #include <Library/BaseLib.h>
 #include <Library/DebugLib.h>
 #include <Library/BaseMemoryLib.h>
@@ -378,7 +377,7 @@ SecCoreStartupWithStack (
 
   DEBUG ((DEBUG_INFO, "Entering C environment\n"));
 
-  ProcessLibraryConstructorList (NULL, NULL);
+  ProcessLibraryConstructorList ();
 
   DEBUG ((DEBUG_INFO,
     "SecCoreStartupWithStack (0x%lx, 0x%lx)\n",



-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#115212): https://edk2.groups.io/g/devel/message/115212
Mute This Topic: https://groups.io/mt/104210907/7686176
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [rebecca@openfw.io]
-=-=-=-=-=-=-=-=-=-=-=-



^ permalink raw reply related	[flat|nested] 36+ messages in thread

* [edk2-devel] [edk2-platforms PATCH 6/6] SG2042Pkg: clean up SEC ProcessLibraryConstructorList() declaration
  2024-02-07  1:09 ` [edk2-devel] [edk2-platforms PATCH 0/6] clean up SEC ProcessLibraryConstructorList() declarations Laszlo Ersek
                     ` (4 preceding siblings ...)
  2024-02-07  1:09   ` [edk2-devel] [edk2-platforms PATCH 5/6] LoongArchQemuPkg: " Laszlo Ersek
@ 2024-02-07  1:09   ` Laszlo Ersek
  2024-02-14 14:25   ` [edk2-devel] [edk2-platforms PATCH 0/6] clean up SEC ProcessLibraryConstructorList() declarations Ard Biesheuvel
  6 siblings, 0 replies; 36+ messages in thread
From: Laszlo Ersek @ 2024-02-07  1:09 UTC (permalink / raw)
  To: edk2-devel-groups-io; +Cc: Sunil V L, USER0FISH, caiyuqing379, dahogn, meng-cz

Every such declaration is now generated by AutoGen.

At the same time, remove the bogus #include <Library/PeimEntryPoint.h>
from "Silicon/Sophgo/SG2042Pkg/Sec/Memory.c" -- that header file is not
used for anything, but it exposes a conflicting (i.e., PEIM) prototype for
ProcessLibraryConstructorList().

Build-tested with "Platform/Sophgo/SG2042_EVB_Board/SG2042.dsc".

Cc: Sunil V L <sunilvl@ventanamicro.com>
Cc: USER0FISH <libing1202@outlook.com>
Cc: caiyuqing379 <caiyuqing_hz@outlook.com>
Cc: dahogn <dahogn@hotmail.com>
Cc: meng-cz <mengcz1126@gmail.com>
Ref: https://bugzilla.tianocore.org/show_bug.cgi?id=990
Signed-off-by: Laszlo Ersek <lersek@redhat.com>
---
 Silicon/Sophgo/SG2042Pkg/Sec/SecMain.h | 12 ------------
 Silicon/Sophgo/SG2042Pkg/Sec/Memory.c  |  1 -
 2 files changed, 13 deletions(-)

diff --git a/Silicon/Sophgo/SG2042Pkg/Sec/SecMain.h b/Silicon/Sophgo/SG2042Pkg/Sec/SecMain.h
index 8d2c4a4c25e0..daab7c78b409 100644
--- a/Silicon/Sophgo/SG2042Pkg/Sec/SecMain.h
+++ b/Silicon/Sophgo/SG2042Pkg/Sec/SecMain.h
@@ -49,18 +49,6 @@ SecStartup (
   IN  VOID   *DeviceTreeAddress
   );
 
-/**
-  Auto-generated function that calls the library constructors for all of the module's
-  dependent libraries.  This function must be called by the SEC Core once a stack has
-  been established.
-
-**/
-VOID
-EFIAPI
-ProcessLibraryConstructorList (
-  VOID
-  );
-
 /**
   Perform Platform PEIM initialization.
 
diff --git a/Silicon/Sophgo/SG2042Pkg/Sec/Memory.c b/Silicon/Sophgo/SG2042Pkg/Sec/Memory.c
index 51974cf2dc28..df49a17695d1 100644
--- a/Silicon/Sophgo/SG2042Pkg/Sec/Memory.c
+++ b/Silicon/Sophgo/SG2042Pkg/Sec/Memory.c
@@ -19,7 +19,6 @@ Module Name:
 #include <Library/HobLib.h>
 #include <Library/IoLib.h>
 #include <Library/PcdLib.h>
-#include <Library/PeimEntryPoint.h>
 #include <Library/ResourcePublicationLib.h>
 #include <Register/RiscV64/RiscVEncoding.h>
 #include <Library/PrePiLib.h>


-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#115210): https://edk2.groups.io/g/devel/message/115210
Mute This Topic: https://groups.io/mt/104210904/7686176
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [rebecca@openfw.io]
-=-=-=-=-=-=-=-=-=-=-=-



^ permalink raw reply related	[flat|nested] 36+ messages in thread

* Re: [edk2-devel] BaseTools/AutoGen: declare ProcessLibraryConstructorList() for SEC modules
  2024-02-07  0:50 [edk2-devel] BaseTools/AutoGen: declare ProcessLibraryConstructorList() for SEC modules Laszlo Ersek
  2024-02-07  1:04 ` [edk2-devel] [PATCH 00/11] " Laszlo Ersek
  2024-02-07  1:09 ` [edk2-devel] [edk2-platforms PATCH 0/6] clean up SEC ProcessLibraryConstructorList() declarations Laszlo Ersek
@ 2024-02-07  1:16 ` Michael D Kinney
  2024-02-07 15:40   ` Laszlo Ersek
  2 siblings, 1 reply; 36+ messages in thread
From: Michael D Kinney @ 2024-02-07  1:16 UTC (permalink / raw)
  To: Laszlo Ersek, edk2-devel-groups-io
  Cc: Abdul Lateef Attar, Abner Chang, Warkentin, Andrei, Andrew Fish,
	Ard Biesheuvel, S, Ashraf Ali, Bibo Mao, Feng, Bob C,
	West, Catharine, Chao Li, Chiu, Chasel, Duggapu, Chinni B,
	Duke Zhai, Aktas, Erdem, Eric Xing, Gerd Hoffmann, Guo, Gua,
	Dong, Guo, Igniculus Fu, Lu, James, Yao, Jiewen, Kelly Steele,
	Ken Yao, Leif Lindholm, Liming Gao, Michael Roth, Xu, Min M,
	Desimone, Nathaniel L, Paul Grimes, Kumar, Rahul R, Ni, Ray,
	Rebecca Cran, Chaganty, Rangasai V, Sami Mujawar, Rhodes, Sean,
	Zeng, Star, Sunil V L, Mohapatra, Susovan, Kuo, Ted, Tom Lendacky,
	USER0FISH, Xianglai li, Chen, Christine, caiyuqing379, dahogn,
	meng-cz, Kinney, Michael D

Hi Laszlo,

The main issue is that a non-backwards compatible change is being
proposed to BaseTools.

In order for this to work, BaseTools needs to support both the 
old style and new style SEC autogen.

The guarantee of backwards compatibility is something that is required
for BaseTools.  Similar to constrains on compilers/linkers.  New features
can be added, but the old behavior has to always be supported.  Removing
old behavior takes a very long time.

Mike

> -----Original Message-----
> From: Laszlo Ersek <lersek@redhat.com>
> Sent: Tuesday, February 6, 2024 4:51 PM
> To: edk2-devel-groups-io <devel@edk2.groups.io>
> Cc: Abdul Lateef Attar <abdattar@amd.com>; Abner Chang
> <abner.chang@amd.com>; Warkentin, Andrei <andrei.warkentin@intel.com>;
> Andrew Fish <afish@apple.com>; Ard Biesheuvel
> <ardb+tianocore@kernel.org>; S, Ashraf Ali <ashraf.ali.s@intel.com>;
> Bibo Mao <maobibo@loongson.cn>; Feng, Bob C <bob.c.feng@intel.com>;
> West, Catharine <catharine.west@intel.com>; Chao Li
> <lichao@loongson.cn>; Chiu, Chasel <chasel.chiu@intel.com>; Duggapu,
> Chinni B <chinni.b.duggapu@intel.com>; Duke Zhai <duke.zhai@amd.com>;
> Aktas, Erdem <erdemaktas@google.com>; Eric Xing <eric.xing@amd.com>;
> Gerd Hoffmann <kraxel@redhat.com>; Guo, Gua <gua.guo@intel.com>; Dong,
> Guo <guo.dong@intel.com>; Igniculus Fu <igniculus.fu@amd.com>; Lu,
> James <james.lu@intel.com>; Yao, Jiewen <jiewen.yao@intel.com>; Kelly
> Steele <kelly.steele@intel.com>; Ken Yao <ken.yao@amd.com>; Leif
> Lindholm <quic_llindhol@quicinc.com>; Liming Gao
> <gaoliming@byosoft.com.cn>; Kinney, Michael D
> <michael.d.kinney@intel.com>; Michael Roth <michael.roth@amd.com>; Xu,
> Min M <min.m.xu@intel.com>; Desimone, Nathaniel L
> <nathaniel.l.desimone@intel.com>; Paul Grimes <paul.grimes@amd.com>;
> Kumar, Rahul R <rahul.r.kumar@intel.com>; Ni, Ray <ray.ni@intel.com>;
> Rebecca Cran <rebecca@bsdio.com>; Chaganty, Rangasai V
> <rangasai.v.chaganty@intel.com>; Sami Mujawar <sami.mujawar@arm.com>;
> Rhodes, Sean <sean@starlabs.systems>; Zeng, Star <star.zeng@intel.com>;
> Sunil V L <sunilvl@ventanamicro.com>; Mohapatra, Susovan
> <susovan.mohapatra@intel.com>; Kuo, Ted <ted.kuo@intel.com>; Tom
> Lendacky <thomas.lendacky@amd.com>; USER0FISH <libing1202@outlook.com>;
> Xianglai li <lixianglai@loongson.cn>; Chen, Christine
> <yuwei.chen@intel.com>; caiyuqing379 <caiyuqing_hz@outlook.com>; dahogn
> <dahogn@hotmail.com>; meng-cz <mengcz1126@gmail.com>
> Subject: BaseTools/AutoGen: declare ProcessLibraryConstructorList() for
> SEC modules
> 
> Bugzillas:
> - https://bugzilla.tianocore.org/show_bug.cgi?id=990
> - https://bugzilla.tianocore.org/show_bug.cgi?id=991
> 
> Personal build:
> - https://github.com/tianocore/edk2/pull/5354
> 
> I'll follow up with two series, in response to this message. One of
> those sets makes AutoGen declare ProcessLibraryConstructorList() for
> SEC
> modules (as Liming suggested), and cleans up the buggy or superfluous
> manual declarations in edk2. The other set cleans up edk2-platforms
> similarly. The edk2 set is intended to be bisectable. The edk2-
> platforms
> set can't be like that (separate repo anyway). I build-tested
> everything
> that I could, but the coverage is not complete in edk2-platforms.
> 
> Note that the personal build (PR#5354) failed. The reason is that CI
> uses an out-of-tree BaseTools installation / package (version 0.1.48 at
> the moment). This just goes on to show why it's a bad idea to develop
> BaseTools in separation from edk2: even though the edk2 series *is*
> fully bisectable, it's impossible to get it through CI (because CI
> ignores the BaseTools update inside the series); and if we get the
> central BaseTools patch from the edk2 series into "that other"
> (separate) project *first*, then the series will not be bisectable any
> longer (because the BaseTools/AutoGen update at the front, without
> further patches in the series applied, will trigger build errors).
> 
> Laszlo



-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#115215): https://edk2.groups.io/g/devel/message/115215
Mute This Topic: https://groups.io/mt/104210524/7686176
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [rebecca@openfw.io]
-=-=-=-=-=-=-=-=-=-=-=-



^ permalink raw reply	[flat|nested] 36+ messages in thread

* Re: [edk2-devel] BaseTools/AutoGen: declare ProcessLibraryConstructorList() for SEC modules
  2024-02-07  1:16 ` [edk2-devel] BaseTools/AutoGen: declare ProcessLibraryConstructorList() for SEC modules Michael D Kinney
@ 2024-02-07 15:40   ` Laszlo Ersek
  2024-02-08 16:40     ` Michael D Kinney
  0 siblings, 1 reply; 36+ messages in thread
From: Laszlo Ersek @ 2024-02-07 15:40 UTC (permalink / raw)
  To: Kinney, Michael D, edk2-devel-groups-io
  Cc: Abdul Lateef Attar, Abner Chang, Warkentin, Andrei, Andrew Fish,
	Ard Biesheuvel, S, Ashraf Ali, Bibo Mao, Feng, Bob C,
	West, Catharine, Chao Li, Chiu, Chasel, Duggapu, Chinni B,
	Duke Zhai, Aktas, Erdem, Eric Xing, Gerd Hoffmann, Guo, Gua,
	Dong, Guo, Igniculus Fu, Lu, James, Yao, Jiewen, Kelly Steele,
	Ken Yao, Leif Lindholm, Liming Gao, Michael Roth, Xu, Min M,
	Desimone, Nathaniel L, Paul Grimes, Kumar, Rahul R, Ni, Ray,
	Rebecca Cran, Chaganty, Rangasai V, Sami Mujawar, Rhodes, Sean,
	Zeng, Star, Sunil V L, Mohapatra, Susovan, Kuo, Ted, Tom Lendacky,
	USER0FISH, Xianglai li, Chen, Christine, caiyuqing379, dahogn,
	meng-cz

On 2/7/24 02:16, Kinney, Michael D wrote:
> Hi Laszlo,
> 
> The main issue is that a non-backwards compatible change is being
> proposed to BaseTools.
> 
> In order for this to work, BaseTools needs to support both the 
> old style and new style SEC autogen.
> 
> The guarantee of backwards compatibility is something that is required
> for BaseTools.  Similar to constrains on compilers/linkers.  New features
> can be added, but the old behavior has to always be supported.  Removing
> old behavior takes a very long time.

This change consists of three parts:

(1) generate the SEC ProcessLibraryConstructorList() declaration in
"AutoGen.h"

(2) in those modules that declare SEC ProcessLibraryConstructorList()
themselves *properly*, remove the (now superfluous, but certainly *not
conflicting*) manual declarations

(3) in those modules that declare SEC ProcessLibraryConstructorList()
themselves *incorrectly*, either manually, or by way of including
<Library/PeimEntryPoint.h>, remove the *now-conflicting* manual
declarations / inclusions.

For modules that fall in category (2), the AutoGen change (1) is
compatible. The AutoGen change (1) is incompatible only with modules
that fall into category (3) -- that is, with modules that already
declare SEC ProcessLibraryConstructorList() incorrectly.

In other words, the compatibility we're talking about here is *bug
compatibility*.

If bug compat is a goal, then the AutoGen patch cannot be merged at all.

If bug compat is not a goal, then:

(a) the AutoGen change could be / should be merged into the separate
BaseTools repository at first,

(b) for edk2, I should rework this series such that:

- modules from category (3) be brought to category (2) at first (i.e.,
replacing the bogus calls / manual declarations with proper calls /
manual declarations),

- the edk2-basetools dependency in "pip-requirements.txt" be bumped from
0.1.48 to the new version,

- finally, the manual (but otherwise, now-correct) declarations in the
modules of category (2) be eliminated.

Therefore, my question is: do we intend to preserve bug compatibility?

Thanks!
Laszlo



> 
> Mike
> 
>> -----Original Message-----
>> From: Laszlo Ersek <lersek@redhat.com>
>> Sent: Tuesday, February 6, 2024 4:51 PM
>> To: edk2-devel-groups-io <devel@edk2.groups.io>
>> Cc: Abdul Lateef Attar <abdattar@amd.com>; Abner Chang
>> <abner.chang@amd.com>; Warkentin, Andrei <andrei.warkentin@intel.com>;
>> Andrew Fish <afish@apple.com>; Ard Biesheuvel
>> <ardb+tianocore@kernel.org>; S, Ashraf Ali <ashraf.ali.s@intel.com>;
>> Bibo Mao <maobibo@loongson.cn>; Feng, Bob C <bob.c.feng@intel.com>;
>> West, Catharine <catharine.west@intel.com>; Chao Li
>> <lichao@loongson.cn>; Chiu, Chasel <chasel.chiu@intel.com>; Duggapu,
>> Chinni B <chinni.b.duggapu@intel.com>; Duke Zhai <duke.zhai@amd.com>;
>> Aktas, Erdem <erdemaktas@google.com>; Eric Xing <eric.xing@amd.com>;
>> Gerd Hoffmann <kraxel@redhat.com>; Guo, Gua <gua.guo@intel.com>; Dong,
>> Guo <guo.dong@intel.com>; Igniculus Fu <igniculus.fu@amd.com>; Lu,
>> James <james.lu@intel.com>; Yao, Jiewen <jiewen.yao@intel.com>; Kelly
>> Steele <kelly.steele@intel.com>; Ken Yao <ken.yao@amd.com>; Leif
>> Lindholm <quic_llindhol@quicinc.com>; Liming Gao
>> <gaoliming@byosoft.com.cn>; Kinney, Michael D
>> <michael.d.kinney@intel.com>; Michael Roth <michael.roth@amd.com>; Xu,
>> Min M <min.m.xu@intel.com>; Desimone, Nathaniel L
>> <nathaniel.l.desimone@intel.com>; Paul Grimes <paul.grimes@amd.com>;
>> Kumar, Rahul R <rahul.r.kumar@intel.com>; Ni, Ray <ray.ni@intel.com>;
>> Rebecca Cran <rebecca@bsdio.com>; Chaganty, Rangasai V
>> <rangasai.v.chaganty@intel.com>; Sami Mujawar <sami.mujawar@arm.com>;
>> Rhodes, Sean <sean@starlabs.systems>; Zeng, Star <star.zeng@intel.com>;
>> Sunil V L <sunilvl@ventanamicro.com>; Mohapatra, Susovan
>> <susovan.mohapatra@intel.com>; Kuo, Ted <ted.kuo@intel.com>; Tom
>> Lendacky <thomas.lendacky@amd.com>; USER0FISH <libing1202@outlook.com>;
>> Xianglai li <lixianglai@loongson.cn>; Chen, Christine
>> <yuwei.chen@intel.com>; caiyuqing379 <caiyuqing_hz@outlook.com>; dahogn
>> <dahogn@hotmail.com>; meng-cz <mengcz1126@gmail.com>
>> Subject: BaseTools/AutoGen: declare ProcessLibraryConstructorList() for
>> SEC modules
>>
>> Bugzillas:
>> - https://bugzilla.tianocore.org/show_bug.cgi?id=990
>> - https://bugzilla.tianocore.org/show_bug.cgi?id=991
>>
>> Personal build:
>> - https://github.com/tianocore/edk2/pull/5354
>>
>> I'll follow up with two series, in response to this message. One of
>> those sets makes AutoGen declare ProcessLibraryConstructorList() for
>> SEC
>> modules (as Liming suggested), and cleans up the buggy or superfluous
>> manual declarations in edk2. The other set cleans up edk2-platforms
>> similarly. The edk2 set is intended to be bisectable. The edk2-
>> platforms
>> set can't be like that (separate repo anyway). I build-tested
>> everything
>> that I could, but the coverage is not complete in edk2-platforms.
>>
>> Note that the personal build (PR#5354) failed. The reason is that CI
>> uses an out-of-tree BaseTools installation / package (version 0.1.48 at
>> the moment). This just goes on to show why it's a bad idea to develop
>> BaseTools in separation from edk2: even though the edk2 series *is*
>> fully bisectable, it's impossible to get it through CI (because CI
>> ignores the BaseTools update inside the series); and if we get the
>> central BaseTools patch from the edk2 series into "that other"
>> (separate) project *first*, then the series will not be bisectable any
>> longer (because the BaseTools/AutoGen update at the front, without
>> further patches in the series applied, will trigger build errors).
>>
>> Laszlo
> 



-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#115238): https://edk2.groups.io/g/devel/message/115238
Mute This Topic: https://groups.io/mt/104210524/7686176
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [rebecca@openfw.io]
-=-=-=-=-=-=-=-=-=-=-=-



^ permalink raw reply	[flat|nested] 36+ messages in thread

* Re: [edk2-devel] BaseTools/AutoGen: declare ProcessLibraryConstructorList() for SEC modules
  2024-02-07 15:40   ` Laszlo Ersek
@ 2024-02-08 16:40     ` Michael D Kinney
  2024-02-15  7:57       ` Laszlo Ersek
  0 siblings, 1 reply; 36+ messages in thread
From: Michael D Kinney @ 2024-02-08 16:40 UTC (permalink / raw)
  To: Laszlo Ersek, edk2-devel-groups-io
  Cc: Abdul Lateef Attar, Abner Chang, Warkentin, Andrei, Andrew Fish,
	Ard Biesheuvel, S, Ashraf Ali, Bibo Mao, Feng, Bob C,
	West, Catharine, Chao Li, Chiu, Chasel, Duggapu, Chinni B,
	Duke Zhai, Aktas, Erdem, Eric Xing, Gerd Hoffmann, Guo, Gua,
	Dong, Guo, Igniculus Fu, Lu, James, Yao, Jiewen, Kelly Steele,
	Ken Yao, Leif Lindholm, Liming Gao, Michael Roth, Xu, Min M,
	Desimone, Nathaniel L, Paul Grimes, Kumar, Rahul R, Ni, Ray,
	Rebecca Cran, Chaganty, Rangasai V, Sami Mujawar, Rhodes, Sean,
	Zeng, Star, Sunil V L, Mohapatra, Susovan, Kuo, Ted, Tom Lendacky,
	USER0FISH, Xianglai li, Chen, Christine, caiyuqing379, dahogn,
	meng-cz, Kinney, Michael D

Hi Laszlo,

I need to review the proposed BaseTools/AutoGen change to see what options
are available for compatibility.

My main concern is downstream consumers that may break immediately with
a change like this and we need a way for them to be informed and have
time to update their components just like you outline a sequence to update
the edk2 repo components.

Thanks,

Mike

> -----Original Message-----
> From: Laszlo Ersek <lersek@redhat.com>
> Sent: Wednesday, February 7, 2024 7:40 AM
> To: Kinney, Michael D <michael.d.kinney@intel.com>; edk2-devel-groups-
> io <devel@edk2.groups.io>
> Cc: Abdul Lateef Attar <abdattar@amd.com>; Abner Chang
> <abner.chang@amd.com>; Warkentin, Andrei <andrei.warkentin@intel.com>;
> Andrew Fish <afish@apple.com>; Ard Biesheuvel
> <ardb+tianocore@kernel.org>; S, Ashraf Ali <ashraf.ali.s@intel.com>;
> Bibo Mao <maobibo@loongson.cn>; Feng, Bob C <bob.c.feng@intel.com>;
> West, Catharine <catharine.west@intel.com>; Chao Li
> <lichao@loongson.cn>; Chiu, Chasel <chasel.chiu@intel.com>; Duggapu,
> Chinni B <chinni.b.duggapu@intel.com>; Duke Zhai <duke.zhai@amd.com>;
> Aktas, Erdem <erdemaktas@google.com>; Eric Xing <eric.xing@amd.com>;
> Gerd Hoffmann <kraxel@redhat.com>; Guo, Gua <gua.guo@intel.com>; Dong,
> Guo <guo.dong@intel.com>; Igniculus Fu <igniculus.fu@amd.com>; Lu,
> James <james.lu@intel.com>; Yao, Jiewen <jiewen.yao@intel.com>; Kelly
> Steele <kelly.steele@intel.com>; Ken Yao <ken.yao@amd.com>; Leif
> Lindholm <quic_llindhol@quicinc.com>; Liming Gao
> <gaoliming@byosoft.com.cn>; Michael Roth <michael.roth@amd.com>; Xu,
> Min M <min.m.xu@intel.com>; Desimone, Nathaniel L
> <nathaniel.l.desimone@intel.com>; Paul Grimes <paul.grimes@amd.com>;
> Kumar, Rahul R <rahul.r.kumar@intel.com>; Ni, Ray <ray.ni@intel.com>;
> Rebecca Cran <rebecca@bsdio.com>; Chaganty, Rangasai V
> <rangasai.v.chaganty@intel.com>; Sami Mujawar <sami.mujawar@arm.com>;
> Rhodes, Sean <sean@starlabs.systems>; Zeng, Star <star.zeng@intel.com>;
> Sunil V L <sunilvl@ventanamicro.com>; Mohapatra, Susovan
> <susovan.mohapatra@intel.com>; Kuo, Ted <ted.kuo@intel.com>; Tom
> Lendacky <thomas.lendacky@amd.com>; USER0FISH <libing1202@outlook.com>;
> Xianglai li <lixianglai@loongson.cn>; Chen, Christine
> <yuwei.chen@intel.com>; caiyuqing379 <caiyuqing_hz@outlook.com>; dahogn
> <dahogn@hotmail.com>; meng-cz <mengcz1126@gmail.com>
> Subject: Re: BaseTools/AutoGen: declare ProcessLibraryConstructorList()
> for SEC modules
> 
> On 2/7/24 02:16, Kinney, Michael D wrote:
> > Hi Laszlo,
> >
> > The main issue is that a non-backwards compatible change is being
> > proposed to BaseTools.
> >
> > In order for this to work, BaseTools needs to support both the
> > old style and new style SEC autogen.
> >
> > The guarantee of backwards compatibility is something that is
> required
> > for BaseTools.  Similar to constrains on compilers/linkers.  New
> features
> > can be added, but the old behavior has to always be supported.
> Removing
> > old behavior takes a very long time.
> 
> This change consists of three parts:
> 
> (1) generate the SEC ProcessLibraryConstructorList() declaration in
> "AutoGen.h"
> 
> (2) in those modules that declare SEC ProcessLibraryConstructorList()
> themselves *properly*, remove the (now superfluous, but certainly *not
> conflicting*) manual declarations
> 
> (3) in those modules that declare SEC ProcessLibraryConstructorList()
> themselves *incorrectly*, either manually, or by way of including
> <Library/PeimEntryPoint.h>, remove the *now-conflicting* manual
> declarations / inclusions.
> 
> For modules that fall in category (2), the AutoGen change (1) is
> compatible. The AutoGen change (1) is incompatible only with modules
> that fall into category (3) -- that is, with modules that already
> declare SEC ProcessLibraryConstructorList() incorrectly.
> 
> In other words, the compatibility we're talking about here is *bug
> compatibility*.
> 
> If bug compat is a goal, then the AutoGen patch cannot be merged at
> all.
> 
> If bug compat is not a goal, then:
> 
> (a) the AutoGen change could be / should be merged into the separate
> BaseTools repository at first,
> 
> (b) for edk2, I should rework this series such that:
> 
> - modules from category (3) be brought to category (2) at first (i.e.,
> replacing the bogus calls / manual declarations with proper calls /
> manual declarations),
> 
> - the edk2-basetools dependency in "pip-requirements.txt" be bumped
> from
> 0.1.48 to the new version,
> 
> - finally, the manual (but otherwise, now-correct) declarations in the
> modules of category (2) be eliminated.
> 
> Therefore, my question is: do we intend to preserve bug compatibility?
> 
> Thanks!
> Laszlo
> 
> 
> 
> >
> > Mike
> >
> >> -----Original Message-----
> >> From: Laszlo Ersek <lersek@redhat.com>
> >> Sent: Tuesday, February 6, 2024 4:51 PM
> >> To: edk2-devel-groups-io <devel@edk2.groups.io>
> >> Cc: Abdul Lateef Attar <abdattar@amd.com>; Abner Chang
> >> <abner.chang@amd.com>; Warkentin, Andrei
> <andrei.warkentin@intel.com>;
> >> Andrew Fish <afish@apple.com>; Ard Biesheuvel
> >> <ardb+tianocore@kernel.org>; S, Ashraf Ali <ashraf.ali.s@intel.com>;
> >> Bibo Mao <maobibo@loongson.cn>; Feng, Bob C <bob.c.feng@intel.com>;
> >> West, Catharine <catharine.west@intel.com>; Chao Li
> >> <lichao@loongson.cn>; Chiu, Chasel <chasel.chiu@intel.com>; Duggapu,
> >> Chinni B <chinni.b.duggapu@intel.com>; Duke Zhai
> <duke.zhai@amd.com>;
> >> Aktas, Erdem <erdemaktas@google.com>; Eric Xing <eric.xing@amd.com>;
> >> Gerd Hoffmann <kraxel@redhat.com>; Guo, Gua <gua.guo@intel.com>;
> Dong,
> >> Guo <guo.dong@intel.com>; Igniculus Fu <igniculus.fu@amd.com>; Lu,
> >> James <james.lu@intel.com>; Yao, Jiewen <jiewen.yao@intel.com>;
> Kelly
> >> Steele <kelly.steele@intel.com>; Ken Yao <ken.yao@amd.com>; Leif
> >> Lindholm <quic_llindhol@quicinc.com>; Liming Gao
> >> <gaoliming@byosoft.com.cn>; Kinney, Michael D
> >> <michael.d.kinney@intel.com>; Michael Roth <michael.roth@amd.com>;
> Xu,
> >> Min M <min.m.xu@intel.com>; Desimone, Nathaniel L
> >> <nathaniel.l.desimone@intel.com>; Paul Grimes <paul.grimes@amd.com>;
> >> Kumar, Rahul R <rahul.r.kumar@intel.com>; Ni, Ray
> <ray.ni@intel.com>;
> >> Rebecca Cran <rebecca@bsdio.com>; Chaganty, Rangasai V
> >> <rangasai.v.chaganty@intel.com>; Sami Mujawar
> <sami.mujawar@arm.com>;
> >> Rhodes, Sean <sean@starlabs.systems>; Zeng, Star
> <star.zeng@intel.com>;
> >> Sunil V L <sunilvl@ventanamicro.com>; Mohapatra, Susovan
> >> <susovan.mohapatra@intel.com>; Kuo, Ted <ted.kuo@intel.com>; Tom
> >> Lendacky <thomas.lendacky@amd.com>; USER0FISH
> <libing1202@outlook.com>;
> >> Xianglai li <lixianglai@loongson.cn>; Chen, Christine
> >> <yuwei.chen@intel.com>; caiyuqing379 <caiyuqing_hz@outlook.com>;
> dahogn
> >> <dahogn@hotmail.com>; meng-cz <mengcz1126@gmail.com>
> >> Subject: BaseTools/AutoGen: declare ProcessLibraryConstructorList()
> for
> >> SEC modules
> >>
> >> Bugzillas:
> >> - https://bugzilla.tianocore.org/show_bug.cgi?id=990
> >> - https://bugzilla.tianocore.org/show_bug.cgi?id=991
> >>
> >> Personal build:
> >> - https://github.com/tianocore/edk2/pull/5354
> >>
> >> I'll follow up with two series, in response to this message. One of
> >> those sets makes AutoGen declare ProcessLibraryConstructorList() for
> >> SEC
> >> modules (as Liming suggested), and cleans up the buggy or
> superfluous
> >> manual declarations in edk2. The other set cleans up edk2-platforms
> >> similarly. The edk2 set is intended to be bisectable. The edk2-
> >> platforms
> >> set can't be like that (separate repo anyway). I build-tested
> >> everything
> >> that I could, but the coverage is not complete in edk2-platforms.
> >>
> >> Note that the personal build (PR#5354) failed. The reason is that CI
> >> uses an out-of-tree BaseTools installation / package (version 0.1.48
> at
> >> the moment). This just goes on to show why it's a bad idea to
> develop
> >> BaseTools in separation from edk2: even though the edk2 series *is*
> >> fully bisectable, it's impossible to get it through CI (because CI
> >> ignores the BaseTools update inside the series); and if we get the
> >> central BaseTools patch from the edk2 series into "that other"
> >> (separate) project *first*, then the series will not be bisectable
> any
> >> longer (because the BaseTools/AutoGen update at the front, without
> >> further patches in the series applied, will trigger build errors).
> >>
> >> Laszlo
> >



-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#115270): https://edk2.groups.io/g/devel/message/115270
Mute This Topic: https://groups.io/mt/104210524/7686176
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [rebecca@openfw.io]
-=-=-=-=-=-=-=-=-=-=-=-



^ permalink raw reply	[flat|nested] 36+ messages in thread

* Re: [edk2-devel] [edk2-platforms PATCH 4/6] SimicsOpenBoardPkg: fix SEC ProcessLibraryConstructorList() prototype
  2024-02-07  1:09   ` [edk2-devel] [edk2-platforms PATCH 4/6] SimicsOpenBoardPkg: fix SEC ProcessLibraryConstructorList() prototype Laszlo Ersek
@ 2024-02-09  0:07     ` Nate DeSimone
  2024-02-09  9:24       ` Laszlo Ersek
  0 siblings, 1 reply; 36+ messages in thread
From: Nate DeSimone @ 2024-02-09  0:07 UTC (permalink / raw)
  To: Laszlo Ersek, edk2-devel-groups-io; +Cc: Chaganty, Rangasai V

> -----Original Message-----
> From: Laszlo Ersek <lersek@redhat.com>
> Sent: Tuesday, February 6, 2024 5:09 PM
> To: edk2-devel-groups-io <devel@edk2.groups.io>
> Cc: Desimone, Nathaniel L <nathaniel.l.desimone@intel.com>; Chaganty,
> Rangasai V <rangasai.v.chaganty@intel.com>
> Subject: [edk2-platforms PATCH 4/6] SimicsOpenBoardPkg: fix SEC
> ProcessLibraryConstructorList() prototype
> 
> The current declaration of, and call to, SEC
> ProcessLibraryConstructorList() in SimicsOpenBoardPkg matches the PEIM
> entry point parameter list. Fix the call, and rely on AutoGen for the declaration.
> 
> Untested (no idea what hoops to jump through to get this built).

Laszlo - This can be built using the following instructions (tested on Rocky Linux 9.3):

First Time Setup
================
sudo dnf install python3-pip git
sudo dnf install make g++ acpica-tools libuuid-devel
sudo dnf config-manager --enable crb
sudo dnf install nasm
wget https://github.com/tianocore/edk2-edkrepo/releases/download/edkrepo-v3.1.3/edkrepo-3.1.3.0.tar.gz
tar -zxvf edkrepo-3.1.3.0.tar.gz --one-top-level
cd edkrepo-3.1.3.0
./install.py
cd ~/src
   --> Or wherever it is you like to store code
edkrepo clone intc Intel-MinPlatform

Building
========
cd intc/edk2-platforms/Platform/Intel/
./build_bios.py -p BoardX58Ich10 -t GCC5

--> You can see a list of all available Intel platforms by running build_bios.py without arguments.

> 
> Cc: Nate DeSimone <nathaniel.l.desimone@intel.com>
> Cc: Sai Chaganty <rangasai.v.chaganty@intel.com>
> Ref: https://bugzilla.tianocore.org/show_bug.cgi?id=990
> Signed-off-by: Laszlo Ersek <lersek@redhat.com>
> ---
>  Platform/Intel/SimicsOpenBoardPkg/SecCore/SecMain.c | 3 +--
>  1 file changed, 1 insertion(+), 2 deletions(-)
> 
> diff --git a/Platform/Intel/SimicsOpenBoardPkg/SecCore/SecMain.c
> b/Platform/Intel/SimicsOpenBoardPkg/SecCore/SecMain.c
> index 39e879e9223e..09d43c6bf63b 100644
> --- a/Platform/Intel/SimicsOpenBoardPkg/SecCore/SecMain.c
> +++ b/Platform/Intel/SimicsOpenBoardPkg/SecCore/SecMain.c
> @@ -9,7 +9,6 @@
> 
>  #include <PiPei.h>
> 
> -#include <Library/PeimEntryPoint.h>
>  #include <Library/BaseLib.h>
>  #include <Library/DebugLib.h>
>  #include <Library/BaseMemoryLib.h>
> @@ -738,7 +737,7 @@ SecCoreStartupWithStack (
>      Table[Index] = 0;
>    }
> 
> -  ProcessLibraryConstructorList (NULL, NULL);
> +  ProcessLibraryConstructorList ();
> 
>    DEBUG ((EFI_D_INFO,
>      "SecCoreStartupWithStack(0x%x, 0x%x)\n",



-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#115286): https://edk2.groups.io/g/devel/message/115286
Mute This Topic: https://groups.io/mt/104210908/7686176
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [rebecca@openfw.io]
-=-=-=-=-=-=-=-=-=-=-=-



^ permalink raw reply	[flat|nested] 36+ messages in thread

* Re: [edk2-devel] [edk2-platforms PATCH 4/6] SimicsOpenBoardPkg: fix SEC ProcessLibraryConstructorList() prototype
  2024-02-09  0:07     ` Nate DeSimone
@ 2024-02-09  9:24       ` Laszlo Ersek
  2024-02-09 22:53         ` Nate DeSimone
  0 siblings, 1 reply; 36+ messages in thread
From: Laszlo Ersek @ 2024-02-09  9:24 UTC (permalink / raw)
  To: Desimone, Nathaniel L, edk2-devel-groups-io; +Cc: Chaganty, Rangasai V

On 2/9/24 01:07, Desimone, Nathaniel L wrote:
>> -----Original Message-----
>> From: Laszlo Ersek <lersek@redhat.com>
>> Sent: Tuesday, February 6, 2024 5:09 PM
>> To: edk2-devel-groups-io <devel@edk2.groups.io>
>> Cc: Desimone, Nathaniel L <nathaniel.l.desimone@intel.com>; Chaganty,
>> Rangasai V <rangasai.v.chaganty@intel.com>
>> Subject: [edk2-platforms PATCH 4/6] SimicsOpenBoardPkg: fix SEC
>> ProcessLibraryConstructorList() prototype
>>
>> The current declaration of, and call to, SEC
>> ProcessLibraryConstructorList() in SimicsOpenBoardPkg matches the PEIM
>> entry point parameter list. Fix the call, and rely on AutoGen for the declaration.
>>
>> Untested (no idea what hoops to jump through to get this built).
> 
> Laszlo - This can be built using the following instructions (tested on Rocky Linux 9.3):
> 
> First Time Setup
> ================
> sudo dnf install python3-pip git
> sudo dnf install make g++ acpica-tools libuuid-devel
> sudo dnf config-manager --enable crb
> sudo dnf install nasm
> wget https://github.com/tianocore/edk2-edkrepo/releases/download/edkrepo-v3.1.3/edkrepo-3.1.3.0.tar.gz
> tar -zxvf edkrepo-3.1.3.0.tar.gz --one-top-level
> cd edkrepo-3.1.3.0
> ./install.py
> cd ~/src
>    --> Or wherever it is you like to store code
> edkrepo clone intc Intel-MinPlatform
> 
> Building
> ========
> cd intc/edk2-platforms/Platform/Intel/
> ./build_bios.py -p BoardX58Ich10 -t GCC5
> 
> --> You can see a list of all available Intel platforms by running build_bios.py without arguments.

Thanks!
Laszlo

> 
>>
>> Cc: Nate DeSimone <nathaniel.l.desimone@intel.com>
>> Cc: Sai Chaganty <rangasai.v.chaganty@intel.com>
>> Ref: https://bugzilla.tianocore.org/show_bug.cgi?id=990
>> Signed-off-by: Laszlo Ersek <lersek@redhat.com>
>> ---
>>  Platform/Intel/SimicsOpenBoardPkg/SecCore/SecMain.c | 3 +--
>>  1 file changed, 1 insertion(+), 2 deletions(-)
>>
>> diff --git a/Platform/Intel/SimicsOpenBoardPkg/SecCore/SecMain.c
>> b/Platform/Intel/SimicsOpenBoardPkg/SecCore/SecMain.c
>> index 39e879e9223e..09d43c6bf63b 100644
>> --- a/Platform/Intel/SimicsOpenBoardPkg/SecCore/SecMain.c
>> +++ b/Platform/Intel/SimicsOpenBoardPkg/SecCore/SecMain.c
>> @@ -9,7 +9,6 @@
>>
>>  #include <PiPei.h>
>>
>> -#include <Library/PeimEntryPoint.h>
>>  #include <Library/BaseLib.h>
>>  #include <Library/DebugLib.h>
>>  #include <Library/BaseMemoryLib.h>
>> @@ -738,7 +737,7 @@ SecCoreStartupWithStack (
>>      Table[Index] = 0;
>>    }
>>
>> -  ProcessLibraryConstructorList (NULL, NULL);
>> +  ProcessLibraryConstructorList ();
>>
>>    DEBUG ((EFI_D_INFO,
>>      "SecCoreStartupWithStack(0x%x, 0x%x)\n",
> 



-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#115290): https://edk2.groups.io/g/devel/message/115290
Mute This Topic: https://groups.io/mt/104210908/7686176
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [rebecca@openfw.io]
-=-=-=-=-=-=-=-=-=-=-=-



^ permalink raw reply	[flat|nested] 36+ messages in thread

* Re: [edk2-devel] [edk2-platforms PATCH 4/6] SimicsOpenBoardPkg: fix SEC ProcessLibraryConstructorList() prototype
  2024-02-09  9:24       ` Laszlo Ersek
@ 2024-02-09 22:53         ` Nate DeSimone
  0 siblings, 0 replies; 36+ messages in thread
From: Nate DeSimone @ 2024-02-09 22:53 UTC (permalink / raw)
  To: Laszlo Ersek, edk2-devel-groups-io; +Cc: Chaganty, Rangasai V

> -----Original Message-----
> From: Laszlo Ersek <lersek@redhat.com>
> Sent: Friday, February 9, 2024 1:24 AM
> To: Desimone, Nathaniel L <nathaniel.l.desimone@intel.com>; edk2-devel-
> groups-io <devel@edk2.groups.io>
> Cc: Chaganty, Rangasai V <rangasai.v.chaganty@intel.com>
> Subject: Re: [edk2-platforms PATCH 4/6] SimicsOpenBoardPkg: fix SEC
> ProcessLibraryConstructorList() prototype
> 
> On 2/9/24 01:07, Desimone, Nathaniel L wrote:
> >> -----Original Message-----
> >> From: Laszlo Ersek <lersek@redhat.com>
> >> Sent: Tuesday, February 6, 2024 5:09 PM
> >> To: edk2-devel-groups-io <devel@edk2.groups.io>
> >> Cc: Desimone, Nathaniel L <nathaniel.l.desimone@intel.com>; Chaganty,
> >> Rangasai V <rangasai.v.chaganty@intel.com>
> >> Subject: [edk2-platforms PATCH 4/6] SimicsOpenBoardPkg: fix SEC
> >> ProcessLibraryConstructorList() prototype
> >>
> >> The current declaration of, and call to, SEC
> >> ProcessLibraryConstructorList() in SimicsOpenBoardPkg matches the
> >> PEIM entry point parameter list. Fix the call, and rely on AutoGen for the
> declaration.
> >>
> >> Untested (no idea what hoops to jump through to get this built).
> >
> > Laszlo - This can be built using the following instructions (tested on Rocky
> Linux 9.3):
> >
> > First Time Setup
> > ================
> > sudo dnf install python3-pip git
> > sudo dnf install make g++ acpica-tools libuuid-devel sudo dnf
> > config-manager --enable crb sudo dnf install nasm wget
> > https://github.com/tianocore/edk2-edkrepo/releases/download/edkrepo-
> v3
> > .1.3/edkrepo-3.1.3.0.tar.gz tar -zxvf edkrepo-3.1.3.0.tar.gz
> > --one-top-level cd edkrepo-3.1.3.0 ./install.py cd ~/src
> >    --> Or wherever it is you like to store code edkrepo clone intc
> > Intel-MinPlatform
> >
> > Building
> > ========
> > cd intc/edk2-platforms/Platform/Intel/
> > ./build_bios.py -p BoardX58Ich10 -t GCC5
> >
> > --> You can see a list of all available Intel platforms by running build_bios.py
> without arguments.
> 
> Thanks!
> Laszlo

Oh, and if you would like to try running it. The software is available free-of-charge here:

https://software.intel.com/content/www/us/en/develop/articles/simics-simulator.html

> 
> >
> >>
> >> Cc: Nate DeSimone <nathaniel.l.desimone@intel.com>
> >> Cc: Sai Chaganty <rangasai.v.chaganty@intel.com>
> >> Ref: https://bugzilla.tianocore.org/show_bug.cgi?id=990
> >> Signed-off-by: Laszlo Ersek <lersek@redhat.com>
> >> ---
> >>  Platform/Intel/SimicsOpenBoardPkg/SecCore/SecMain.c | 3 +--
> >>  1 file changed, 1 insertion(+), 2 deletions(-)
> >>
> >> diff --git a/Platform/Intel/SimicsOpenBoardPkg/SecCore/SecMain.c
> >> b/Platform/Intel/SimicsOpenBoardPkg/SecCore/SecMain.c
> >> index 39e879e9223e..09d43c6bf63b 100644
> >> --- a/Platform/Intel/SimicsOpenBoardPkg/SecCore/SecMain.c
> >> +++ b/Platform/Intel/SimicsOpenBoardPkg/SecCore/SecMain.c
> >> @@ -9,7 +9,6 @@
> >>
> >>  #include <PiPei.h>
> >>
> >> -#include <Library/PeimEntryPoint.h>
> >>  #include <Library/BaseLib.h>
> >>  #include <Library/DebugLib.h>
> >>  #include <Library/BaseMemoryLib.h>
> >> @@ -738,7 +737,7 @@ SecCoreStartupWithStack (
> >>      Table[Index] = 0;
> >>    }
> >>
> >> -  ProcessLibraryConstructorList (NULL, NULL);
> >> +  ProcessLibraryConstructorList ();
> >>
> >>    DEBUG ((EFI_D_INFO,
> >>      "SecCoreStartupWithStack(0x%x, 0x%x)\n",
> >



-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#115337): https://edk2.groups.io/g/devel/message/115337
Mute This Topic: https://groups.io/mt/104210908/7686176
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [rebecca@openfw.io]
-=-=-=-=-=-=-=-=-=-=-=-



^ permalink raw reply	[flat|nested] 36+ messages in thread

* Re: [edk2-devel] [edk2-platforms PATCH 0/6] clean up SEC ProcessLibraryConstructorList() declarations
  2024-02-07  1:09 ` [edk2-devel] [edk2-platforms PATCH 0/6] clean up SEC ProcessLibraryConstructorList() declarations Laszlo Ersek
                     ` (5 preceding siblings ...)
  2024-02-07  1:09   ` [edk2-devel] [edk2-platforms PATCH 6/6] SG2042Pkg: clean up SEC ProcessLibraryConstructorList() declaration Laszlo Ersek
@ 2024-02-14 14:25   ` Ard Biesheuvel
  6 siblings, 0 replies; 36+ messages in thread
From: Ard Biesheuvel @ 2024-02-14 14:25 UTC (permalink / raw)
  To: Laszlo Ersek
  Cc: edk2-devel-groups-io, Abdul Lateef Attar, Abner Chang, Bibo Mao,
	Chao Li, Duke Zhai, Eric Xing, Igniculus Fu, Kelly Steele,
	Ken Yao, Leif Lindholm, Michael D Kinney, Nate DeSimone,
	Paul Grimes, Sai Chaganty, Sunil V L, USER0FISH, Xianglai li,
	caiyuqing379, dahogn, meng-cz

On Wed, 7 Feb 2024 at 02:09, Laszlo Ersek <lersek@redhat.com> wrote:
>
> Please refer to the parent cover letter. This is the edk2-platforms
> series.
>
> Laszlo
>
> Cc: Abdul Lateef Attar <abdattar@amd.com>
> Cc: Abner Chang <abner.chang@amd.com>
> Cc: Ard Biesheuvel <ardb+tianocore@kernel.org>
> Cc: Bibo Mao <maobibo@loongson.cn>
> Cc: Chao Li <lichao@loongson.cn>
> Cc: Duke Zhai <duke.zhai@amd.com>
> Cc: Eric Xing <eric.xing@amd.com>
> Cc: Igniculus Fu <igniculus.fu@amd.com>
> Cc: Kelly Steele <kelly.steele@intel.com>
> Cc: Ken Yao <ken.yao@amd.com>
> Cc: Leif Lindholm <quic_llindhol@quicinc.com>
> Cc: Michael D Kinney <michael.d.kinney@intel.com>
> Cc: Nate DeSimone <nathaniel.l.desimone@intel.com>
> Cc: Paul Grimes <paul.grimes@amd.com>
> Cc: Sai Chaganty <rangasai.v.chaganty@intel.com>
> Cc: Sunil V L <sunilvl@ventanamicro.com>
> Cc: USER0FISH <libing1202@outlook.com>
> Cc: Xianglai li <lixianglai@loongson.cn>
> Cc: caiyuqing379 <caiyuqing_hz@outlook.com>
> Cc: dahogn <dahogn@hotmail.com>
> Cc: meng-cz <mengcz1126@gmail.com>
>
> Laszlo Ersek (6):
>   ChachaniBoardPkg: remove SEC ProcessLibraryConstructorList()
>     declaration
>   BeagleBoardPkg: remove SEC ProcessLibraryConstructorList() declaration
>   QuarkPlatformPkg: remove SEC ProcessLibraryConstructorList()
>     declaration
>   SimicsOpenBoardPkg: fix SEC ProcessLibraryConstructorList() prototype
>   LoongArchQemuPkg: fix SEC ProcessLibraryConstructorList() prototype
>   SG2042Pkg: clean up SEC ProcessLibraryConstructorList() declaration
>

Reviewed-by: Ard Biesheuvel <ardb@kernel.org>

>  Platform/AMD/VanGoghBoard/ChachaniBoardPkg/Library/PlatformSecLib/PlatformSecLib.c | 12 ------------
>  Platform/BeagleBoard/BeagleBoardPkg/PrePi/PrePi.h                                  |  6 ------
>  Platform/Intel/QuarkPlatformPkg/Library/PlatformSecLib/PlatformSecLib.c            | 12 ------------
>  Platform/Intel/SimicsOpenBoardPkg/SecCore/SecMain.c                                |  3 +--
>  Platform/Loongson/LoongArchQemuPkg/Sec/SecMain.c                                   |  3 +--
>  Silicon/Sophgo/SG2042Pkg/Sec/Memory.c                                              |  1 -
>  Silicon/Sophgo/SG2042Pkg/Sec/SecMain.h                                             | 12 ------------
>  7 files changed, 2 insertions(+), 47 deletions(-)
>
>
> base-commit: 98abaca059d0eac8c91ef653b2741f0bcaea7821


-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#115457): https://edk2.groups.io/g/devel/message/115457
Mute This Topic: https://groups.io/mt/104210909/7686176
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [rebecca@openfw.io]
-=-=-=-=-=-=-=-=-=-=-=-



^ permalink raw reply	[flat|nested] 36+ messages in thread

* Re: [edk2-devel] [PATCH 01/11] OvmfPkg/Sec: Use correct prototype of ProcessLibraryConstructorList()
  2024-02-07  1:04   ` [edk2-devel] [PATCH 01/11] OvmfPkg/Sec: Use correct prototype of ProcessLibraryConstructorList() Laszlo Ersek
@ 2024-02-14 14:27     ` Ard Biesheuvel
  0 siblings, 0 replies; 36+ messages in thread
From: Ard Biesheuvel @ 2024-02-14 14:27 UTC (permalink / raw)
  To: Laszlo Ersek
  Cc: edk2-devel-groups-io, Erdem Aktas, Gerd Hoffmann, Jiewen Yao,
	Michael Roth, Min Xu, Tom Lendacky

On Wed, 7 Feb 2024 at 02:04, Laszlo Ersek <lersek@redhat.com> wrote:
>
> From: Ard Biesheuvel <ardb@kernel.org>
>
> The prototype of ProcessLibraryConstructorList(), which is generated by
> the build tools, depends on the boot phase, and SEC and PEI differ in
> this regard. However, OVMF's SEC implemention includes PeimEntryPoint.h
> and calls the PEI version of the protoype (passing NULL arguments),
> whereas the actual implementation observed by the compiler follows the
> SEC version, which takes VOID.
>
> The compiler usually doesn't spot the difference, but the LTO linker
> does, and throws an error:
>
> MdePkg/Include/Library/PeimEntryPoint.h:74:1: error: type of 'ProcessLibraryConstructorList' does not match original declaration [-Werror=lto-type-mismatch]
>    74 | ProcessLibraryConstructorList (
>       | ^
> Build/OvmfX64/RELEASE_GCC5/X64/OvmfPkg/Sec/SecMain/DEBUG/AutoGen.c:310:1: note: type mismatch in parameter 1
>   310 | ProcessLibraryConstructorList (
>       | ^
> Build/OvmfX64/RELEASE_GCC5/X64/OvmfPkg/Sec/SecMain/DEBUG/AutoGen.c:310:1: note: type 'void' should match type 'void *'
> Build/OvmfX64/RELEASE_GCC5/X64/OvmfPkg/Sec/SecMain/DEBUG/AutoGen.c:310:1: note: 'ProcessLibraryConstructorList' was previously declared here
>
> Fix this by dropping the #include, and providing a declaration of
> ProcessLibraryConstructorList() in SecMain.c
>
> Ref: https://bugzilla.tianocore.org/show_bug.cgi?id=4643
> Signed-off-by: Ard Biesheuvel <ardb@kernel.org>
> Message-Id: <20240202182455.1535328-1-ardb+git@google.com>
> Cc: Ard Biesheuvel <ardb+tianocore@kernel.org>
> Cc: Erdem Aktas <erdemaktas@google.com>
> Cc: Gerd Hoffmann <kraxel@redhat.com>
> Cc: Jiewen Yao <jiewen.yao@intel.com>
> Cc: Michael Roth <michael.roth@amd.com>
> Cc: Min Xu <min.m.xu@intel.com>
> Cc: Tom Lendacky <thomas.lendacky@amd.com>
> Ref: https://bugzilla.tianocore.org/show_bug.cgi?id=990
> Signed-off-by: Laszlo Ersek <lersek@redhat.com>

Where appropriate in the series

Reviewed-by: Ard Biesheuvel <ardb@kernel.org>


Thanks for cleaning this up.



> ---
>
> Notes:
>     Picked up Ard's patch from the list with no changes. The URL is
>     <https://edk2.groups.io/g/devel/message/115091>; see also the Message-Id
>     included by git-am in the commit message.
>
>     This patch is necessary at the front of the series; otherwise a
>     subsequent patch causes a build error (conflicting prototypes).
>
>  OvmfPkg/Sec/SecMain.c | 9 +++++++--
>  1 file changed, 7 insertions(+), 2 deletions(-)
>
> diff --git a/OvmfPkg/Sec/SecMain.c b/OvmfPkg/Sec/SecMain.c
> index 31da5d0ace51..7b7d4793984c 100644
> --- a/OvmfPkg/Sec/SecMain.c
> +++ b/OvmfPkg/Sec/SecMain.c
> @@ -11,7 +11,6 @@
>
>  #include <PiPei.h>
>
> -#include <Library/PeimEntryPoint.h>
>  #include <Library/BaseLib.h>
>  #include <Library/DebugLib.h>
>  #include <Library/BaseMemoryLib.h>
> @@ -39,6 +38,12 @@ typedef struct _SEC_IDT_TABLE {
>    IA32_IDT_GATE_DESCRIPTOR    IdtTable[SEC_IDT_ENTRY_COUNT];
>  } SEC_IDT_TABLE;
>
> +VOID
> +EFIAPI
> +ProcessLibraryConstructorList (
> +  VOID
> +  );
> +
>  VOID
>  EFIAPI
>  SecStartupPhase2 (
> @@ -844,7 +849,7 @@ SecCoreStartupWithStack (
>      InitializeCpuExceptionHandlers (NULL);
>    }
>
> -  ProcessLibraryConstructorList (NULL, NULL);
> +  ProcessLibraryConstructorList ();
>
>    if (!SevEsIsEnabled ()) {
>      //
>


-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#115458): https://edk2.groups.io/g/devel/message/115458
Mute This Topic: https://groups.io/mt/104210775/7686176
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [rebecca@openfw.io]
-=-=-=-=-=-=-=-=-=-=-=-



^ permalink raw reply	[flat|nested] 36+ messages in thread

* Re: [edk2-devel] BaseTools/AutoGen: declare ProcessLibraryConstructorList() for SEC modules
  2024-02-08 16:40     ` Michael D Kinney
@ 2024-02-15  7:57       ` Laszlo Ersek
  2024-02-15 17:29         ` Michael D Kinney
  0 siblings, 1 reply; 36+ messages in thread
From: Laszlo Ersek @ 2024-02-15  7:57 UTC (permalink / raw)
  To: devel, michael.d.kinney
  Cc: Abdul Lateef Attar, Abner Chang, Warkentin, Andrei, Andrew Fish,
	Ard Biesheuvel, S, Ashraf Ali, Bibo Mao, Feng, Bob C,
	West, Catharine, Chao Li, Chiu, Chasel, Duggapu, Chinni B,
	Duke Zhai, Aktas, Erdem, Eric Xing, Gerd Hoffmann, Guo, Gua,
	Dong, Guo, Igniculus Fu, Lu, James, Yao, Jiewen, Kelly Steele,
	Ken Yao, Leif Lindholm, Liming Gao, Michael Roth, Xu, Min M,
	Desimone, Nathaniel L, Paul Grimes, Kumar, Rahul R, Ni, Ray,
	Rebecca Cran, Chaganty, Rangasai V, Sami Mujawar, Rhodes, Sean,
	Zeng, Star, Sunil V L, Mohapatra, Susovan, Kuo, Ted, Tom Lendacky,
	USER0FISH, Xianglai li, Chen, Christine, caiyuqing379, dahogn,
	meng-cz

On 2/8/24 17:40, Michael D Kinney wrote:
> Hi Laszlo,
> 
> I need to review the proposed BaseTools/AutoGen change to see what options
> are available for compatibility.
> 
> My main concern is downstream consumers that may break immediately with
> a change like this and we need a way for them to be informed and have
> time to update their components just like you outline a sequence to update
> the edk2 repo components.

Should AutoGen declare ProcessLibraryConstructorList() for a SEC module
if INF_VERSION >= 1.30?

Or should we introduce a new macro in [Defines]?

https://tianocore-docs.github.io/edk2-InfSpecification/draft/2_inf_overview/24_[defines]_section.html

"EDK II parsing utilities will use some of this section's information
for generating AutoGen.c and AutoGen.h files."

I'd prefer (INF_VERSION >= 1.30) over a dedicated macro. We should
ensure, over time, that ProcessLibraryConstructorList() is declared by
default, for SEC modules. If that declaration depended on an explicit
new macro in [Defines], it would much less likely become the default.

Laszlo



-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#115491): https://edk2.groups.io/g/devel/message/115491
Mute This Topic: https://groups.io/mt/104210524/7686176
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [rebecca@openfw.io]
-=-=-=-=-=-=-=-=-=-=-=-



^ permalink raw reply	[flat|nested] 36+ messages in thread

* Re: [edk2-devel] BaseTools/AutoGen: declare ProcessLibraryConstructorList() for SEC modules
  2024-02-15  7:57       ` Laszlo Ersek
@ 2024-02-15 17:29         ` Michael D Kinney
  2024-02-16 14:16           ` Laszlo Ersek
                             ` (2 more replies)
  0 siblings, 3 replies; 36+ messages in thread
From: Michael D Kinney @ 2024-02-15 17:29 UTC (permalink / raw)
  To: Laszlo Ersek, devel@edk2.groups.io
  Cc: Abdul Lateef Attar, Abner Chang, Warkentin, Andrei, Andrew Fish,
	Ard Biesheuvel, S, Ashraf Ali, Bibo Mao, Feng, Bob C,
	West, Catharine, Chao Li, Chiu, Chasel, Duggapu, Chinni B,
	Duke Zhai, Aktas, Erdem, Eric Xing, Gerd Hoffmann, Guo, Gua,
	Dong, Guo, Igniculus Fu, Lu, James, Yao, Jiewen, Kelly Steele,
	Ken Yao, Leif Lindholm, Liming Gao, Michael Roth, Xu, Min M,
	Desimone, Nathaniel L, Paul Grimes, Kumar, Rahul R, Ni, Ray,
	Rebecca Cran, Chaganty, Rangasai V, Sami Mujawar, Rhodes, Sean,
	Zeng, Star, Sunil V L, Mohapatra, Susovan, Kuo, Ted, Tom Lendacky,
	USER0FISH, Xianglai li, Chen, Christine, caiyuqing379, dahogn,
	meng-cz, Kinney, Michael D

Hi Laszlo,

I was also thinking the INF Version would be best approach.

I recommend we identify the EDK II Build Specification and
EDK II INF Specification changes required to resolve this 
issue.

https://github.com/tianocore-docs/edk2-BuildSpecification
https://github.com/tianocore-docs/edk2-InfSpecification


The current INF Spec uses INF_VERSION of 1.27.

Should the new version be 1.28, or is there something I am
missing where 1.30 would be required?  Or are you wanting
to jump from 1.2x to 1.3x to indicate a behavior change?

Thanks,

Mike


> -----Original Message-----
> From: Laszlo Ersek <lersek@redhat.com>
> Sent: Wednesday, February 14, 2024 11:58 PM
> To: devel@edk2.groups.io; Kinney, Michael D
> <michael.d.kinney@intel.com>
> Cc: Abdul Lateef Attar <abdattar@amd.com>; Abner Chang
> <abner.chang@amd.com>; Warkentin, Andrei <andrei.warkentin@intel.com>;
> Andrew Fish <afish@apple.com>; Ard Biesheuvel
> <ardb+tianocore@kernel.org>; S, Ashraf Ali <ashraf.ali.s@intel.com>;
> Bibo Mao <maobibo@loongson.cn>; Feng, Bob C <bob.c.feng@intel.com>;
> West, Catharine <catharine.west@intel.com>; Chao Li
> <lichao@loongson.cn>; Chiu, Chasel <chasel.chiu@intel.com>; Duggapu,
> Chinni B <chinni.b.duggapu@intel.com>; Duke Zhai <duke.zhai@amd.com>;
> Aktas, Erdem <erdemaktas@google.com>; Eric Xing <eric.xing@amd.com>;
> Gerd Hoffmann <kraxel@redhat.com>; Guo, Gua <gua.guo@intel.com>; Dong,
> Guo <guo.dong@intel.com>; Igniculus Fu <igniculus.fu@amd.com>; Lu,
> James <james.lu@intel.com>; Yao, Jiewen <jiewen.yao@intel.com>; Kelly
> Steele <kelly.steele@intel.com>; Ken Yao <ken.yao@amd.com>; Leif
> Lindholm <quic_llindhol@quicinc.com>; Liming Gao
> <gaoliming@byosoft.com.cn>; Michael Roth <michael.roth@amd.com>; Xu,
> Min M <min.m.xu@intel.com>; Desimone, Nathaniel L
> <nathaniel.l.desimone@intel.com>; Paul Grimes <paul.grimes@amd.com>;
> Kumar, Rahul R <rahul.r.kumar@intel.com>; Ni, Ray <ray.ni@intel.com>;
> Rebecca Cran <rebecca@bsdio.com>; Chaganty, Rangasai V
> <rangasai.v.chaganty@intel.com>; Sami Mujawar <sami.mujawar@arm.com>;
> Rhodes, Sean <sean@starlabs.systems>; Zeng, Star <star.zeng@intel.com>;
> Sunil V L <sunilvl@ventanamicro.com>; Mohapatra, Susovan
> <susovan.mohapatra@intel.com>; Kuo, Ted <ted.kuo@intel.com>; Tom
> Lendacky <thomas.lendacky@amd.com>; USER0FISH <libing1202@outlook.com>;
> Xianglai li <lixianglai@loongson.cn>; Chen, Christine
> <yuwei.chen@intel.com>; caiyuqing379 <caiyuqing_hz@outlook.com>; dahogn
> <dahogn@hotmail.com>; meng-cz <mengcz1126@gmail.com>
> Subject: Re: [edk2-devel] BaseTools/AutoGen: declare
> ProcessLibraryConstructorList() for SEC modules
> 
> On 2/8/24 17:40, Michael D Kinney wrote:
> > Hi Laszlo,
> >
> > I need to review the proposed BaseTools/AutoGen change to see what
> options
> > are available for compatibility.
> >
> > My main concern is downstream consumers that may break immediately
> with
> > a change like this and we need a way for them to be informed and have
> > time to update their components just like you outline a sequence to
> update
> > the edk2 repo components.
> 
> Should AutoGen declare ProcessLibraryConstructorList() for a SEC module
> if INF_VERSION >= 1.30?
> 
> Or should we introduce a new macro in [Defines]?
> 
> https://tianocore-docs.github.io/edk2-
> InfSpecification/draft/2_inf_overview/24_[defines]_section.html
> 
> "EDK II parsing utilities will use some of this section's information
> for generating AutoGen.c and AutoGen.h files."
> 
> I'd prefer (INF_VERSION >= 1.30) over a dedicated macro. We should
> ensure, over time, that ProcessLibraryConstructorList() is declared by
> default, for SEC modules. If that declaration depended on an explicit
> new macro in [Defines], it would much less likely become the default.
> 
> Laszlo



-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#115530): https://edk2.groups.io/g/devel/message/115530
Mute This Topic: https://groups.io/mt/104210524/7686176
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [rebecca@openfw.io]
-=-=-=-=-=-=-=-=-=-=-=-



^ permalink raw reply	[flat|nested] 36+ messages in thread

* Re: [edk2-devel] BaseTools/AutoGen: declare ProcessLibraryConstructorList() for SEC modules
  2024-02-15 17:29         ` Michael D Kinney
@ 2024-02-16 14:16           ` Laszlo Ersek
  2024-02-16 17:21             ` Michael D Kinney
  2024-02-24 18:02           ` Laszlo Ersek
  2024-02-24 18:37           ` Laszlo Ersek
  2 siblings, 1 reply; 36+ messages in thread
From: Laszlo Ersek @ 2024-02-16 14:16 UTC (permalink / raw)
  To: Kinney, Michael D, devel@edk2.groups.io
  Cc: Abdul Lateef Attar, Abner Chang, Warkentin, Andrei, Andrew Fish,
	Ard Biesheuvel, S, Ashraf Ali, Bibo Mao, Feng, Bob C,
	West, Catharine, Chao Li, Chiu, Chasel, Duggapu, Chinni B,
	Duke Zhai, Aktas, Erdem, Eric Xing, Gerd Hoffmann, Guo, Gua,
	Dong, Guo, Igniculus Fu, Lu, James, Yao, Jiewen, Kelly Steele,
	Ken Yao, Leif Lindholm, Liming Gao, Michael Roth, Xu, Min M,
	Desimone, Nathaniel L, Paul Grimes, Kumar, Rahul R, Ni, Ray,
	Rebecca Cran, Chaganty, Rangasai V, Sami Mujawar, Rhodes, Sean,
	Zeng, Star, Sunil V L, Mohapatra, Susovan, Kuo, Ted, Tom Lendacky,
	USER0FISH, Xianglai li, Chen, Christine, caiyuqing379, dahogn,
	meng-cz

On 2/15/24 18:29, Kinney, Michael D wrote:
> Hi Laszlo,
> 
> I was also thinking the INF Version would be best approach.
> 
> I recommend we identify the EDK II Build Specification and
> EDK II INF Specification changes required to resolve this 
> issue.
> 
> https://github.com/tianocore-docs/edk2-BuildSpecification
> https://github.com/tianocore-docs/edk2-InfSpecification
> 
> 
> The current INF Spec uses INF_VERSION of 1.27.
> 
> Should the new version be 1.28, or is there something I am
> missing where 1.30 would be required?  Or are you wanting
> to jump from 1.2x to 1.3x to indicate a behavior change?

The latest draft is at 1.29:

https://tianocore-docs.github.io/edk2-InfSpecification/draft/#edk-ii-module-information-inf-file-specification

(also visible at the bottom of the README.md changelog at your link
<https://github.com/tianocore-docs/edk2-InfSpecification>),

for addressing TianoCore#1952 (MODULE_TYPE=HOST_APPLICATION).

And, there is already a good number of modules present in both edk2 and
edk2-devel that specify "INF_VERSION = 1.29".

I figured we'd want to break away cleanly even from the draft (= latest
unreleased) spec.

Thanks!
Laszlo

>> -----Original Message-----
>> From: Laszlo Ersek <lersek@redhat.com>
>> Sent: Wednesday, February 14, 2024 11:58 PM
>> To: devel@edk2.groups.io; Kinney, Michael D
>> <michael.d.kinney@intel.com>
>> Cc: Abdul Lateef Attar <abdattar@amd.com>; Abner Chang
>> <abner.chang@amd.com>; Warkentin, Andrei <andrei.warkentin@intel.com>;
>> Andrew Fish <afish@apple.com>; Ard Biesheuvel
>> <ardb+tianocore@kernel.org>; S, Ashraf Ali <ashraf.ali.s@intel.com>;
>> Bibo Mao <maobibo@loongson.cn>; Feng, Bob C <bob.c.feng@intel.com>;
>> West, Catharine <catharine.west@intel.com>; Chao Li
>> <lichao@loongson.cn>; Chiu, Chasel <chasel.chiu@intel.com>; Duggapu,
>> Chinni B <chinni.b.duggapu@intel.com>; Duke Zhai <duke.zhai@amd.com>;
>> Aktas, Erdem <erdemaktas@google.com>; Eric Xing <eric.xing@amd.com>;
>> Gerd Hoffmann <kraxel@redhat.com>; Guo, Gua <gua.guo@intel.com>; Dong,
>> Guo <guo.dong@intel.com>; Igniculus Fu <igniculus.fu@amd.com>; Lu,
>> James <james.lu@intel.com>; Yao, Jiewen <jiewen.yao@intel.com>; Kelly
>> Steele <kelly.steele@intel.com>; Ken Yao <ken.yao@amd.com>; Leif
>> Lindholm <quic_llindhol@quicinc.com>; Liming Gao
>> <gaoliming@byosoft.com.cn>; Michael Roth <michael.roth@amd.com>; Xu,
>> Min M <min.m.xu@intel.com>; Desimone, Nathaniel L
>> <nathaniel.l.desimone@intel.com>; Paul Grimes <paul.grimes@amd.com>;
>> Kumar, Rahul R <rahul.r.kumar@intel.com>; Ni, Ray <ray.ni@intel.com>;
>> Rebecca Cran <rebecca@bsdio.com>; Chaganty, Rangasai V
>> <rangasai.v.chaganty@intel.com>; Sami Mujawar <sami.mujawar@arm.com>;
>> Rhodes, Sean <sean@starlabs.systems>; Zeng, Star <star.zeng@intel.com>;
>> Sunil V L <sunilvl@ventanamicro.com>; Mohapatra, Susovan
>> <susovan.mohapatra@intel.com>; Kuo, Ted <ted.kuo@intel.com>; Tom
>> Lendacky <thomas.lendacky@amd.com>; USER0FISH <libing1202@outlook.com>;
>> Xianglai li <lixianglai@loongson.cn>; Chen, Christine
>> <yuwei.chen@intel.com>; caiyuqing379 <caiyuqing_hz@outlook.com>; dahogn
>> <dahogn@hotmail.com>; meng-cz <mengcz1126@gmail.com>
>> Subject: Re: [edk2-devel] BaseTools/AutoGen: declare
>> ProcessLibraryConstructorList() for SEC modules
>>
>> On 2/8/24 17:40, Michael D Kinney wrote:
>>> Hi Laszlo,
>>>
>>> I need to review the proposed BaseTools/AutoGen change to see what
>> options
>>> are available for compatibility.
>>>
>>> My main concern is downstream consumers that may break immediately
>> with
>>> a change like this and we need a way for them to be informed and have
>>> time to update their components just like you outline a sequence to
>> update
>>> the edk2 repo components.
>>
>> Should AutoGen declare ProcessLibraryConstructorList() for a SEC module
>> if INF_VERSION >= 1.30?
>>
>> Or should we introduce a new macro in [Defines]?
>>
>> https://tianocore-docs.github.io/edk2-
>> InfSpecification/draft/2_inf_overview/24_[defines]_section.html
>>
>> "EDK II parsing utilities will use some of this section's information
>> for generating AutoGen.c and AutoGen.h files."
>>
>> I'd prefer (INF_VERSION >= 1.30) over a dedicated macro. We should
>> ensure, over time, that ProcessLibraryConstructorList() is declared by
>> default, for SEC modules. If that declaration depended on an explicit
>> new macro in [Defines], it would much less likely become the default.
>>
>> Laszlo
> 



-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#115539): https://edk2.groups.io/g/devel/message/115539
Mute This Topic: https://groups.io/mt/104210524/7686176
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [rebecca@openfw.io]
-=-=-=-=-=-=-=-=-=-=-=-



^ permalink raw reply	[flat|nested] 36+ messages in thread

* Re: [edk2-devel] BaseTools/AutoGen: declare ProcessLibraryConstructorList() for SEC modules
  2024-02-16 14:16           ` Laszlo Ersek
@ 2024-02-16 17:21             ` Michael D Kinney
  0 siblings, 0 replies; 36+ messages in thread
From: Michael D Kinney @ 2024-02-16 17:21 UTC (permalink / raw)
  To: devel@edk2.groups.io, lersek@redhat.com
  Cc: Abdul Lateef Attar, Abner Chang, Warkentin, Andrei, Andrew Fish,
	Ard Biesheuvel, S, Ashraf Ali, Bibo Mao, Feng, Bob C,
	West, Catharine, Chao Li, Chiu, Chasel, Duggapu, Chinni B,
	Duke Zhai, Aktas, Erdem, Eric Xing, Gerd Hoffmann, Guo, Gua,
	Dong, Guo, Igniculus Fu, Lu, James, Yao, Jiewen, Kelly Steele,
	Ken Yao, Leif Lindholm, Liming Gao, Michael Roth, Xu, Min M,
	Desimone, Nathaniel L, Paul Grimes, Kumar, Rahul R, Ni, Ray,
	Rebecca Cran, Chaganty, Rangasai V, Sami Mujawar, Rhodes, Sean,
	Zeng, Star, Sunil V L, Mohapatra, Susovan, Kuo, Ted, Tom Lendacky,
	USER0FISH, Xianglai li, Chen, Christine, caiyuqing379, dahogn,
	meng-cz, Kinney, Michael D

Good point.

The Spec revision can run ahead of the supported INF_VERSION values
if the spec changes are only clarifications.

1.27 is the highest INF_VERSION value currently documented.

I agree moving to 1.30 for spec and INF_VERSION is correct.

Mike

> -----Original Message-----
> From: devel@edk2.groups.io <devel@edk2.groups.io> On Behalf Of Laszlo
> Ersek
> Sent: Friday, February 16, 2024 6:16 AM
> To: Kinney, Michael D <michael.d.kinney@intel.com>;
> devel@edk2.groups.io
> Cc: Abdul Lateef Attar <abdattar@amd.com>; Abner Chang
> <abner.chang@amd.com>; Warkentin, Andrei <andrei.warkentin@intel.com>;
> Andrew Fish <afish@apple.com>; Ard Biesheuvel
> <ardb+tianocore@kernel.org>; S, Ashraf Ali <ashraf.ali.s@intel.com>;
> Bibo Mao <maobibo@loongson.cn>; Feng, Bob C <bob.c.feng@intel.com>;
> West, Catharine <catharine.west@intel.com>; Chao Li
> <lichao@loongson.cn>; Chiu, Chasel <chasel.chiu@intel.com>; Duggapu,
> Chinni B <chinni.b.duggapu@intel.com>; Duke Zhai <duke.zhai@amd.com>;
> Aktas, Erdem <erdemaktas@google.com>; Eric Xing <eric.xing@amd.com>;
> Gerd Hoffmann <kraxel@redhat.com>; Guo, Gua <gua.guo@intel.com>; Dong,
> Guo <guo.dong@intel.com>; Igniculus Fu <igniculus.fu@amd.com>; Lu,
> James <james.lu@intel.com>; Yao, Jiewen <jiewen.yao@intel.com>; Kelly
> Steele <kelly.steele@intel.com>; Ken Yao <ken.yao@amd.com>; Leif
> Lindholm <quic_llindhol@quicinc.com>; Liming Gao
> <gaoliming@byosoft.com.cn>; Michael Roth <michael.roth@amd.com>; Xu,
> Min M <min.m.xu@intel.com>; Desimone, Nathaniel L
> <nathaniel.l.desimone@intel.com>; Paul Grimes <paul.grimes@amd.com>;
> Kumar, Rahul R <rahul.r.kumar@intel.com>; Ni, Ray <ray.ni@intel.com>;
> Rebecca Cran <rebecca@bsdio.com>; Chaganty, Rangasai V
> <rangasai.v.chaganty@intel.com>; Sami Mujawar <sami.mujawar@arm.com>;
> Rhodes, Sean <sean@starlabs.systems>; Zeng, Star <star.zeng@intel.com>;
> Sunil V L <sunilvl@ventanamicro.com>; Mohapatra, Susovan
> <susovan.mohapatra@intel.com>; Kuo, Ted <ted.kuo@intel.com>; Tom
> Lendacky <thomas.lendacky@amd.com>; USER0FISH <libing1202@outlook.com>;
> Xianglai li <lixianglai@loongson.cn>; Chen, Christine
> <yuwei.chen@intel.com>; caiyuqing379 <caiyuqing_hz@outlook.com>; dahogn
> <dahogn@hotmail.com>; meng-cz <mengcz1126@gmail.com>
> Subject: Re: [edk2-devel] BaseTools/AutoGen: declare
> ProcessLibraryConstructorList() for SEC modules
> 
> On 2/15/24 18:29, Kinney, Michael D wrote:
> > Hi Laszlo,
> >
> > I was also thinking the INF Version would be best approach.
> >
> > I recommend we identify the EDK II Build Specification and
> > EDK II INF Specification changes required to resolve this
> > issue.
> >
> > https://github.com/tianocore-docs/edk2-BuildSpecification
> > https://github.com/tianocore-docs/edk2-InfSpecification
> >
> >
> > The current INF Spec uses INF_VERSION of 1.27.
> >
> > Should the new version be 1.28, or is there something I am
> > missing where 1.30 would be required?  Or are you wanting
> > to jump from 1.2x to 1.3x to indicate a behavior change?
> 
> The latest draft is at 1.29:
> 
> https://tianocore-docs.github.io/edk2-InfSpecification/draft/#edk-ii-
> module-information-inf-file-specification
> 
> (also visible at the bottom of the README.md changelog at your link
> <https://github.com/tianocore-docs/edk2-InfSpecification>),
> 
> for addressing TianoCore#1952 (MODULE_TYPE=HOST_APPLICATION).
> 
> And, there is already a good number of modules present in both edk2 and
> edk2-devel that specify "INF_VERSION = 1.29".
> 
> I figured we'd want to break away cleanly even from the draft (= latest
> unreleased) spec.
> 
> Thanks!
> Laszlo
> 
> >> -----Original Message-----
> >> From: Laszlo Ersek <lersek@redhat.com>
> >> Sent: Wednesday, February 14, 2024 11:58 PM
> >> To: devel@edk2.groups.io; Kinney, Michael D
> >> <michael.d.kinney@intel.com>
> >> Cc: Abdul Lateef Attar <abdattar@amd.com>; Abner Chang
> >> <abner.chang@amd.com>; Warkentin, Andrei
> <andrei.warkentin@intel.com>;
> >> Andrew Fish <afish@apple.com>; Ard Biesheuvel
> >> <ardb+tianocore@kernel.org>; S, Ashraf Ali <ashraf.ali.s@intel.com>;
> >> Bibo Mao <maobibo@loongson.cn>; Feng, Bob C <bob.c.feng@intel.com>;
> >> West, Catharine <catharine.west@intel.com>; Chao Li
> >> <lichao@loongson.cn>; Chiu, Chasel <chasel.chiu@intel.com>; Duggapu,
> >> Chinni B <chinni.b.duggapu@intel.com>; Duke Zhai
> <duke.zhai@amd.com>;
> >> Aktas, Erdem <erdemaktas@google.com>; Eric Xing <eric.xing@amd.com>;
> >> Gerd Hoffmann <kraxel@redhat.com>; Guo, Gua <gua.guo@intel.com>;
> Dong,
> >> Guo <guo.dong@intel.com>; Igniculus Fu <igniculus.fu@amd.com>; Lu,
> >> James <james.lu@intel.com>; Yao, Jiewen <jiewen.yao@intel.com>;
> Kelly
> >> Steele <kelly.steele@intel.com>; Ken Yao <ken.yao@amd.com>; Leif
> >> Lindholm <quic_llindhol@quicinc.com>; Liming Gao
> >> <gaoliming@byosoft.com.cn>; Michael Roth <michael.roth@amd.com>; Xu,
> >> Min M <min.m.xu@intel.com>; Desimone, Nathaniel L
> >> <nathaniel.l.desimone@intel.com>; Paul Grimes <paul.grimes@amd.com>;
> >> Kumar, Rahul R <rahul.r.kumar@intel.com>; Ni, Ray
> <ray.ni@intel.com>;
> >> Rebecca Cran <rebecca@bsdio.com>; Chaganty, Rangasai V
> >> <rangasai.v.chaganty@intel.com>; Sami Mujawar
> <sami.mujawar@arm.com>;
> >> Rhodes, Sean <sean@starlabs.systems>; Zeng, Star
> <star.zeng@intel.com>;
> >> Sunil V L <sunilvl@ventanamicro.com>; Mohapatra, Susovan
> >> <susovan.mohapatra@intel.com>; Kuo, Ted <ted.kuo@intel.com>; Tom
> >> Lendacky <thomas.lendacky@amd.com>; USER0FISH
> <libing1202@outlook.com>;
> >> Xianglai li <lixianglai@loongson.cn>; Chen, Christine
> >> <yuwei.chen@intel.com>; caiyuqing379 <caiyuqing_hz@outlook.com>;
> dahogn
> >> <dahogn@hotmail.com>; meng-cz <mengcz1126@gmail.com>
> >> Subject: Re: [edk2-devel] BaseTools/AutoGen: declare
> >> ProcessLibraryConstructorList() for SEC modules
> >>
> >> On 2/8/24 17:40, Michael D Kinney wrote:
> >>> Hi Laszlo,
> >>>
> >>> I need to review the proposed BaseTools/AutoGen change to see what
> >> options
> >>> are available for compatibility.
> >>>
> >>> My main concern is downstream consumers that may break immediately
> >> with
> >>> a change like this and we need a way for them to be informed and
> have
> >>> time to update their components just like you outline a sequence to
> >> update
> >>> the edk2 repo components.
> >>
> >> Should AutoGen declare ProcessLibraryConstructorList() for a SEC
> module
> >> if INF_VERSION >= 1.30?
> >>
> >> Or should we introduce a new macro in [Defines]?
> >>
> >> https://tianocore-docs.github.io/edk2-
> >> InfSpecification/draft/2_inf_overview/24_[defines]_section.html
> >>
> >> "EDK II parsing utilities will use some of this section's
> information
> >> for generating AutoGen.c and AutoGen.h files."
> >>
> >> I'd prefer (INF_VERSION >= 1.30) over a dedicated macro. We should
> >> ensure, over time, that ProcessLibraryConstructorList() is declared
> by
> >> default, for SEC modules. If that declaration depended on an
> explicit
> >> new macro in [Defines], it would much less likely become the
> default.
> >>
> >> Laszlo
> >
> 
> 
> 
> 
> 



-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#115543): https://edk2.groups.io/g/devel/message/115543
Mute This Topic: https://groups.io/mt/104210524/7686176
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [rebecca@openfw.io]
-=-=-=-=-=-=-=-=-=-=-=-



^ permalink raw reply	[flat|nested] 36+ messages in thread

* Re: [edk2-devel] [edk2-platforms PATCH 5/6] LoongArchQemuPkg: fix SEC ProcessLibraryConstructorList() prototype
  2024-02-07  1:09   ` [edk2-devel] [edk2-platforms PATCH 5/6] LoongArchQemuPkg: " Laszlo Ersek
@ 2024-02-19  2:21     ` Chao Li
  2024-02-19 20:08       ` Laszlo Ersek
  0 siblings, 1 reply; 36+ messages in thread
From: Chao Li @ 2024-02-19  2:21 UTC (permalink / raw)
  To: devel, lersek; +Cc: Bibo Mao, Xianglai li

[-- Attachment #1: Type: text/plain, Size: 2567 bytes --]

Hi Laszlo,

I have tested:

1. Follow edk2 series patch 3 changes to 
BaseTools/Source/Python/AutoGen/GenC.py.

2. Follow edk2-platforms series patch 5 changes to 
edk2-platforms/Platform/Loongson/LoongArchQemuPkg/Sec/SecMain.c.

After the changes, I have built and tested, and it works fine.


BTW, you can get the LoongArch cross-toolchain in two ways:

1. Download it from LoongArch cross-toolchain website, URL: 
https://github.com/loongson/build-tools, the last release date is Aug 8, 
2023.

2. Use the Fedora39 docker or virt-machin(X64), and install the 
LoongArch cross-toolchain from rpm source.


Build-tested-by: Chao Li <lichao@loongson.cn>

Reviewed-by: Chao Li <lichao@loongson.cn>


Thanks,
Chao
On 2024/2/7 09:09, Laszlo Ersek wrote:
> The current declaration of, and call to, SEC
> ProcessLibraryConstructorList() in LoongArchQemuPkg matches the PEIM entry
> point parameter list. Fix the call, and rely on AutoGen for the
> declaration.
>
> Untested (have no cross-toolchain installed for LOONGARCH64).
>
> Cc: Bibo Mao<maobibo@loongson.cn>
> Cc: Chao Li<lichao@loongson.cn>
> Cc: Xianglai li<lixianglai@loongson.cn>
> Ref:https://bugzilla.tianocore.org/show_bug.cgi?id=990
> Signed-off-by: Laszlo Ersek<lersek@redhat.com>
> ---
>   Platform/Loongson/LoongArchQemuPkg/Sec/SecMain.c | 3 +--
>   1 file changed, 1 insertion(+), 2 deletions(-)
>
> diff --git a/Platform/Loongson/LoongArchQemuPkg/Sec/SecMain.c b/Platform/Loongson/LoongArchQemuPkg/Sec/SecMain.c
> index 3f1998c48c12..50d898859a99 100644
> --- a/Platform/Loongson/LoongArchQemuPkg/Sec/SecMain.c
> +++ b/Platform/Loongson/LoongArchQemuPkg/Sec/SecMain.c
> @@ -9,7 +9,6 @@
>   
>   #include <PiPei.h>
>   
> -#include <Library/PeimEntryPoint.h>
>   #include <Library/BaseLib.h>
>   #include <Library/DebugLib.h>
>   #include <Library/BaseMemoryLib.h>
> @@ -378,7 +377,7 @@ SecCoreStartupWithStack (
>   
>     DEBUG ((DEBUG_INFO, "Entering C environment\n"));
>   
> -  ProcessLibraryConstructorList (NULL, NULL);
> +  ProcessLibraryConstructorList ();
>   
>     DEBUG ((DEBUG_INFO,
>       "SecCoreStartupWithStack (0x%lx, 0x%lx)\n",
>
>
>
> 
>
>


-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#115575): https://edk2.groups.io/g/devel/message/115575
Mute This Topic: https://groups.io/mt/104210907/7686176
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [rebecca@openfw.io]
-=-=-=-=-=-=-=-=-=-=-=-



[-- Attachment #2: Type: text/html, Size: 4718 bytes --]

^ permalink raw reply	[flat|nested] 36+ messages in thread

* Re: [edk2-devel] [edk2-platforms PATCH 5/6] LoongArchQemuPkg: fix SEC ProcessLibraryConstructorList() prototype
  2024-02-19  2:21     ` Chao Li
@ 2024-02-19 20:08       ` Laszlo Ersek
  0 siblings, 0 replies; 36+ messages in thread
From: Laszlo Ersek @ 2024-02-19 20:08 UTC (permalink / raw)
  To: Chao Li, devel; +Cc: Bibo Mao, Xianglai li

On 2/19/24 03:21, Chao Li wrote:
> Hi Laszlo,
> 
> I have tested:
> 
> 1. Follow edk2 series patch 3 changes to
> BaseTools/Source/Python/AutoGen/GenC.py.
> 
> 2. Follow edk2-platforms series patch 5 changes to
> edk2-platforms/Platform/Loongson/LoongArchQemuPkg/Sec/SecMain.c.
> 
> After the changes, I have built and tested, and it works fine.
> 
> 
> BTW, you can get the LoongArch cross-toolchain in two ways:
> 
> 1. Download it from LoongArch cross-toolchain website, URL:
> https://github.com/loongson/build-tools, the last release date is Aug 8,
> 2023.
> 
> 2. Use the Fedora39 docker or virt-machin(X64), and install the
> LoongArch cross-toolchain from rpm source.
> 
> 
> Build-tested-by: Chao Li <lichao@loongson.cn>
> 
> Reviewed-by: Chao Li <lichao@loongson.cn>

Thanks -- in fact I've remembered since that, at an earlier time, I've
already used a LoongArch toolchain in a Fedora VM, with a virtio filesystem.

Laszlo

> 
> 
> Thanks,
> Chao
> On 2024/2/7 09:09, Laszlo Ersek wrote:
>> The current declaration of, and call to, SEC
>> ProcessLibraryConstructorList() in LoongArchQemuPkg matches the PEIM entry
>> point parameter list. Fix the call, and rely on AutoGen for the
>> declaration.
>>
>> Untested (have no cross-toolchain installed for LOONGARCH64).
>>
>> Cc: Bibo Mao <maobibo@loongson.cn>
>> Cc: Chao Li <lichao@loongson.cn>
>> Cc: Xianglai li <lixianglai@loongson.cn>
>> Ref: https://bugzilla.tianocore.org/show_bug.cgi?id=990
>> Signed-off-by: Laszlo Ersek <lersek@redhat.com>
>> ---
>>  Platform/Loongson/LoongArchQemuPkg/Sec/SecMain.c | 3 +--
>>  1 file changed, 1 insertion(+), 2 deletions(-)
>>
>> diff --git a/Platform/Loongson/LoongArchQemuPkg/Sec/SecMain.c b/Platform/Loongson/LoongArchQemuPkg/Sec/SecMain.c
>> index 3f1998c48c12..50d898859a99 100644
>> --- a/Platform/Loongson/LoongArchQemuPkg/Sec/SecMain.c
>> +++ b/Platform/Loongson/LoongArchQemuPkg/Sec/SecMain.c
>> @@ -9,7 +9,6 @@
>>  
>>  #include <PiPei.h>
>>  
>> -#include <Library/PeimEntryPoint.h>
>>  #include <Library/BaseLib.h>
>>  #include <Library/DebugLib.h>
>>  #include <Library/BaseMemoryLib.h>
>> @@ -378,7 +377,7 @@ SecCoreStartupWithStack (
>>  
>>    DEBUG ((DEBUG_INFO, "Entering C environment\n"));
>>  
>> -  ProcessLibraryConstructorList (NULL, NULL);
>> +  ProcessLibraryConstructorList ();
>>  
>>    DEBUG ((DEBUG_INFO,
>>      "SecCoreStartupWithStack (0x%lx, 0x%lx)\n",
>>
>>
>>
>> 
>>
>>



-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#115598): https://edk2.groups.io/g/devel/message/115598
Mute This Topic: https://groups.io/mt/104210907/7686176
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [rebecca@openfw.io]
-=-=-=-=-=-=-=-=-=-=-=-



^ permalink raw reply	[flat|nested] 36+ messages in thread

* Re: [edk2-devel] BaseTools/AutoGen: declare ProcessLibraryConstructorList() for SEC modules
  2024-02-15 17:29         ` Michael D Kinney
  2024-02-16 14:16           ` Laszlo Ersek
@ 2024-02-24 18:02           ` Laszlo Ersek
  2024-02-24 18:37           ` Laszlo Ersek
  2 siblings, 0 replies; 36+ messages in thread
From: Laszlo Ersek @ 2024-02-24 18:02 UTC (permalink / raw)
  To: devel, michael.d.kinney
  Cc: Abdul Lateef Attar, Abner Chang, Warkentin, Andrei, Andrew Fish,
	Ard Biesheuvel, S, Ashraf Ali, Bibo Mao, Feng, Bob C,
	West, Catharine, Chao Li, Chiu, Chasel, Duggapu, Chinni B,
	Duke Zhai, Aktas, Erdem, Eric Xing, Gerd Hoffmann, Guo, Gua,
	Dong, Guo, Igniculus Fu, Lu, James, Yao, Jiewen, Kelly Steele,
	Ken Yao, Leif Lindholm, Liming Gao, Michael Roth, Xu, Min M,
	Desimone, Nathaniel L, Paul Grimes, Kumar, Rahul R, Ni, Ray,
	Rebecca Cran, Chaganty, Rangasai V, Sami Mujawar, Rhodes, Sean,
	Zeng, Star, Sunil V L, Mohapatra, Susovan, Kuo, Ted, Tom Lendacky,
	USER0FISH, Xianglai li, Chen, Christine, caiyuqing379, dahogn,
	meng-cz

Hi Mike,

On 2/15/24 18:29, Michael D Kinney wrote:
> Hi Laszlo,
> 
> I was also thinking the INF Version would be best approach.
> 
> I recommend we identify the EDK II Build Specification and
> EDK II INF Specification changes required to resolve this 
> issue.
> 
> https://github.com/tianocore-docs/edk2-BuildSpecification
> https://github.com/tianocore-docs/edk2-InfSpecification

I've reviewed both of these (their latest drafts).

I've prepared patches for the Build spec -- they affect section "8.3
Auto-generated code". I'm going to post the patches soon.

The INF spec seems to need no updates, *except* for the revision history
in the README. I've checked all INF_VERSION instances in the spec, and
neither looks relevant. In "2.1 Processing Overview":

https://tianocore-docs.github.io/edk2-InfSpecification/draft/2_inf_overview/21_processing_overview.html

we already state:

    [...] The EDK II utilities check EDK II INF files, and, if required,
    generate C code files based on the content of the EDK II INF. Refer
    to the EDK II Build Specification for more information regarding
    these autogenerated files.

and in "2.4 [Defines] Section":

https://tianocore-docs.github.io/edk2-InfSpecification/draft/2_inf_overview/24_[defines]_section.html

we state

    [...] The EDK II parsing utilities will use some of this section's
    information for generating AutoGen.c and AutoGen.h files. [...]

which looks sufficient to me. So I plan to post just a README update for
the INF spec.

Thanks,
Laszlo

> 
> 
> The current INF Spec uses INF_VERSION of 1.27.
> 
> Should the new version be 1.28, or is there something I am
> missing where 1.30 would be required?  Or are you wanting
> to jump from 1.2x to 1.3x to indicate a behavior change?
> 
> Thanks,
> 
> Mike
> 
> 
>> -----Original Message-----
>> From: Laszlo Ersek <lersek@redhat.com>
>> Sent: Wednesday, February 14, 2024 11:58 PM
>> To: devel@edk2.groups.io; Kinney, Michael D
>> <michael.d.kinney@intel.com>
>> Cc: Abdul Lateef Attar <abdattar@amd.com>; Abner Chang
>> <abner.chang@amd.com>; Warkentin, Andrei <andrei.warkentin@intel.com>;
>> Andrew Fish <afish@apple.com>; Ard Biesheuvel
>> <ardb+tianocore@kernel.org>; S, Ashraf Ali <ashraf.ali.s@intel.com>;
>> Bibo Mao <maobibo@loongson.cn>; Feng, Bob C <bob.c.feng@intel.com>;
>> West, Catharine <catharine.west@intel.com>; Chao Li
>> <lichao@loongson.cn>; Chiu, Chasel <chasel.chiu@intel.com>; Duggapu,
>> Chinni B <chinni.b.duggapu@intel.com>; Duke Zhai <duke.zhai@amd.com>;
>> Aktas, Erdem <erdemaktas@google.com>; Eric Xing <eric.xing@amd.com>;
>> Gerd Hoffmann <kraxel@redhat.com>; Guo, Gua <gua.guo@intel.com>; Dong,
>> Guo <guo.dong@intel.com>; Igniculus Fu <igniculus.fu@amd.com>; Lu,
>> James <james.lu@intel.com>; Yao, Jiewen <jiewen.yao@intel.com>; Kelly
>> Steele <kelly.steele@intel.com>; Ken Yao <ken.yao@amd.com>; Leif
>> Lindholm <quic_llindhol@quicinc.com>; Liming Gao
>> <gaoliming@byosoft.com.cn>; Michael Roth <michael.roth@amd.com>; Xu,
>> Min M <min.m.xu@intel.com>; Desimone, Nathaniel L
>> <nathaniel.l.desimone@intel.com>; Paul Grimes <paul.grimes@amd.com>;
>> Kumar, Rahul R <rahul.r.kumar@intel.com>; Ni, Ray <ray.ni@intel.com>;
>> Rebecca Cran <rebecca@bsdio.com>; Chaganty, Rangasai V
>> <rangasai.v.chaganty@intel.com>; Sami Mujawar <sami.mujawar@arm.com>;
>> Rhodes, Sean <sean@starlabs.systems>; Zeng, Star <star.zeng@intel.com>;
>> Sunil V L <sunilvl@ventanamicro.com>; Mohapatra, Susovan
>> <susovan.mohapatra@intel.com>; Kuo, Ted <ted.kuo@intel.com>; Tom
>> Lendacky <thomas.lendacky@amd.com>; USER0FISH <libing1202@outlook.com>;
>> Xianglai li <lixianglai@loongson.cn>; Chen, Christine
>> <yuwei.chen@intel.com>; caiyuqing379 <caiyuqing_hz@outlook.com>; dahogn
>> <dahogn@hotmail.com>; meng-cz <mengcz1126@gmail.com>
>> Subject: Re: [edk2-devel] BaseTools/AutoGen: declare
>> ProcessLibraryConstructorList() for SEC modules
>>
>> On 2/8/24 17:40, Michael D Kinney wrote:
>>> Hi Laszlo,
>>>
>>> I need to review the proposed BaseTools/AutoGen change to see what
>> options
>>> are available for compatibility.
>>>
>>> My main concern is downstream consumers that may break immediately
>> with
>>> a change like this and we need a way for them to be informed and have
>>> time to update their components just like you outline a sequence to
>> update
>>> the edk2 repo components.
>>
>> Should AutoGen declare ProcessLibraryConstructorList() for a SEC module
>> if INF_VERSION >= 1.30?
>>
>> Or should we introduce a new macro in [Defines]?
>>
>> https://tianocore-docs.github.io/edk2-
>> InfSpecification/draft/2_inf_overview/24_[defines]_section.html
>>
>> "EDK II parsing utilities will use some of this section's information
>> for generating AutoGen.c and AutoGen.h files."
>>
>> I'd prefer (INF_VERSION >= 1.30) over a dedicated macro. We should
>> ensure, over time, that ProcessLibraryConstructorList() is declared by
>> default, for SEC modules. If that declaration depended on an explicit
>> new macro in [Defines], it would much less likely become the default.
>>
>> Laszlo
> 
> 
> 
> 
> 
> 



-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#115907): https://edk2.groups.io/g/devel/message/115907
Mute This Topic: https://groups.io/mt/104210524/7686176
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [rebecca@openfw.io]
-=-=-=-=-=-=-=-=-=-=-=-



^ permalink raw reply	[flat|nested] 36+ messages in thread

* Re: [edk2-devel] BaseTools/AutoGen: declare ProcessLibraryConstructorList() for SEC modules
  2024-02-15 17:29         ` Michael D Kinney
  2024-02-16 14:16           ` Laszlo Ersek
  2024-02-24 18:02           ` Laszlo Ersek
@ 2024-02-24 18:37           ` Laszlo Ersek
  2 siblings, 0 replies; 36+ messages in thread
From: Laszlo Ersek @ 2024-02-24 18:37 UTC (permalink / raw)
  To: devel, michael.d.kinney
  Cc: Abdul Lateef Attar, Abner Chang, Warkentin, Andrei, Andrew Fish,
	Ard Biesheuvel, S, Ashraf Ali, Bibo Mao, Feng, Bob C,
	West, Catharine, Chao Li, Chiu, Chasel, Duggapu, Chinni B,
	Duke Zhai, Aktas, Erdem, Eric Xing, Gerd Hoffmann, Guo, Gua,
	Dong, Guo, Igniculus Fu, Lu, James, Yao, Jiewen, Kelly Steele,
	Ken Yao, Leif Lindholm, Liming Gao, Michael Roth, Xu, Min M,
	Desimone, Nathaniel L, Paul Grimes, Kumar, Rahul R, Ni, Ray,
	Rebecca Cran, Chaganty, Rangasai V, Sami Mujawar, Rhodes, Sean,
	Zeng, Star, Sunil V L, Mohapatra, Susovan, Kuo, Ted, Tom Lendacky,
	USER0FISH, Xianglai li, Chen, Christine, caiyuqing379, dahogn,
	meng-cz

On 2/15/24 18:29, Michael D Kinney wrote:

> The current INF Spec uses INF_VERSION of 1.27.

Side topic:

the build spec says in 8.7:

  https://tianocore-docs.github.io/edk2-BuildSpecification/draft/8_pre-build_autogen_stage/87_generated_asbuilt_inf_files.html

that the build tool will *downgrade* the INF_VERSION value from the
source module INF to the most recent version that the build tools know
about, in the AsBuilt INF files.

This is generally confusing and potentially wrong (regardless of what
I'm trying to do here). The latest released version of the INF spec is
1.27 (as you say), but in edk2 (as of commit edc6681206c1), the file
"BaseTools/Source/Python/AutoGen/ModuleAutoGen.py" contains:

gInfSpecVersion = "0x00010017"

which, IIUC, means that the tools will downgrade the AsBuilt INF files
that originally (in source form) comply with version 1.27, to 1.23.

How is that not a bug?

... Well, in fact I wanted to check this in action, and so I picked
"OvmfPkg/CpuS3DataDxe/CpuS3DataDxe.inf". The source INF file has
INF_VERSION=1.29. The AsBuilt INF file however contains
INF_VERSION=0x00010035, which corresponds to "1.53" (1.29 would be
0x0001001D). Now I'm even more confused: 0x00010035 is *neither* the
original value *nor* the downgraded value that I'd expect from
"gInfSpecVersion". What's happening here? What are the AsBuilt INF files
used for?

Thanks!
Laszlo



-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#115908): https://edk2.groups.io/g/devel/message/115908
Mute This Topic: https://groups.io/mt/104210524/7686176
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [rebecca@openfw.io]
-=-=-=-=-=-=-=-=-=-=-=-



^ permalink raw reply	[flat|nested] 36+ messages in thread

end of thread, other threads:[~2024-02-24 18:37 UTC | newest]

Thread overview: 36+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-02-07  0:50 [edk2-devel] BaseTools/AutoGen: declare ProcessLibraryConstructorList() for SEC modules Laszlo Ersek
2024-02-07  1:04 ` [edk2-devel] [PATCH 00/11] " Laszlo Ersek
2024-02-07  1:04   ` [edk2-devel] [PATCH 01/11] OvmfPkg/Sec: Use correct prototype of ProcessLibraryConstructorList() Laszlo Ersek
2024-02-14 14:27     ` Ard Biesheuvel
2024-02-07  1:04   ` [edk2-devel] [PATCH 02/11] OvmfPkg/RiscVVirt/Sec: don't #include <Library/PeimEntryPoint.h> Laszlo Ersek
2024-02-07  1:04   ` [edk2-devel] [PATCH 03/11] BaseTools/AutoGen: declare ProcessLibraryConstructorList() for SEC modules Laszlo Ersek
2024-02-07  1:04   ` [edk2-devel] [PATCH 04/11] ArmPlatformPkg: remove SEC ProcessLibraryConstructorList() declarations Laszlo Ersek
2024-02-07  1:04   ` [edk2-devel] [PATCH 05/11] ArmVirtPkg: remove SEC ProcessLibraryConstructorList() declaration Laszlo Ersek
2024-02-07  1:04   ` [edk2-devel] [PATCH 06/11] EmulatorPkg: " Laszlo Ersek
2024-02-07  1:04   ` [edk2-devel] [PATCH 07/11] IntelFsp2Pkg: " Laszlo Ersek
2024-02-07  1:04   ` [edk2-devel] [PATCH 08/11] OvmfPkg/RiscVVirt: " Laszlo Ersek
2024-02-07  1:04   ` [edk2-devel] [PATCH 09/11] OvmfPkg: " Laszlo Ersek
2024-02-07  1:04   ` [edk2-devel] [PATCH 10/11] UefiCpuPkg: " Laszlo Ersek
2024-02-07  1:04   ` [edk2-devel] [PATCH 11/11] UefiPayloadPkg: " Laszlo Ersek
2024-02-07  1:09 ` [edk2-devel] [edk2-platforms PATCH 0/6] clean up SEC ProcessLibraryConstructorList() declarations Laszlo Ersek
2024-02-07  1:09   ` [edk2-devel] [edk2-platforms PATCH 1/6] ChachaniBoardPkg: remove SEC ProcessLibraryConstructorList() declaration Laszlo Ersek
2024-02-07  1:09   ` [edk2-devel] [edk2-platforms PATCH 2/6] BeagleBoardPkg: " Laszlo Ersek
2024-02-07  1:09   ` [edk2-devel] [edk2-platforms PATCH 3/6] QuarkPlatformPkg: " Laszlo Ersek
2024-02-07  1:09   ` [edk2-devel] [edk2-platforms PATCH 4/6] SimicsOpenBoardPkg: fix SEC ProcessLibraryConstructorList() prototype Laszlo Ersek
2024-02-09  0:07     ` Nate DeSimone
2024-02-09  9:24       ` Laszlo Ersek
2024-02-09 22:53         ` Nate DeSimone
2024-02-07  1:09   ` [edk2-devel] [edk2-platforms PATCH 5/6] LoongArchQemuPkg: " Laszlo Ersek
2024-02-19  2:21     ` Chao Li
2024-02-19 20:08       ` Laszlo Ersek
2024-02-07  1:09   ` [edk2-devel] [edk2-platforms PATCH 6/6] SG2042Pkg: clean up SEC ProcessLibraryConstructorList() declaration Laszlo Ersek
2024-02-14 14:25   ` [edk2-devel] [edk2-platforms PATCH 0/6] clean up SEC ProcessLibraryConstructorList() declarations Ard Biesheuvel
2024-02-07  1:16 ` [edk2-devel] BaseTools/AutoGen: declare ProcessLibraryConstructorList() for SEC modules Michael D Kinney
2024-02-07 15:40   ` Laszlo Ersek
2024-02-08 16:40     ` Michael D Kinney
2024-02-15  7:57       ` Laszlo Ersek
2024-02-15 17:29         ` Michael D Kinney
2024-02-16 14:16           ` Laszlo Ersek
2024-02-16 17:21             ` Michael D Kinney
2024-02-24 18:02           ` Laszlo Ersek
2024-02-24 18:37           ` Laszlo Ersek

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox