public inbox for devel@edk2.groups.io
 help / color / mirror / Atom feed
* [Patch V2 0/7] Reproduce builds across source format changes
@ 2021-11-01 21:37 Michael D Kinney
  2021-11-01 21:37 ` [Patch V2 1/7] MdePkg/Include: Enhance DebugLib to support reproduce builds Michael D Kinney
                   ` (7 more replies)
  0 siblings, 8 replies; 17+ messages in thread
From: Michael D Kinney @ 2021-11-01 21:37 UTC (permalink / raw)
  To: devel
  Cc: Ard Biesheuvel, Jiewen Yao, Jordan Justen, Gerd Hoffmann,
	Michael Kubacki, Jian J Wang, Maciej Rabeda, Jiaxin Wu, Siyuan Fu,
	Liming Gao, Leif Lindholm, Zhiguang Liu

REF: https://bugzilla.tianocore.org/show_bug.cgi?id=3688

New in V2
------------
* Split MdePkg DebugLib class enhancements out into its own commit
* Address ECC failures
* Align macro continuation marks in same column

This change is required to help verify that source code formatting
changes such as the use of uncrustify and line ending corrections
do not have any functional differences.  Source format changes may
add or remove line endings that change the source file line numbers
of C statements or may change the use of spaces in C expressions 
used in an ASSERT() statements.  These types of changes can impact
the generated binaries when DEBUG() and ASSERT() macros are 
enabled.  The following set of changes adds 2 defines that can be used
to override the use of `__LINE__` in DEBUG() macros and the use of
#Expression in ASSERT() macros.

* Add DEBUG_LINE_NUMBER define to DebugLib.h that is
  by default mapped to `__LINE__`.  A build can pre-define
  DEBUG_LINE_NUMBER to use a fixed value.
* Add DEBUG_EXPRESSION_STRING(Expression) macros to
  DebugLib.h that is by default mapped to #Expression.
  A build can define DEBUG_EXPRESSION_STRING_VALUE to
  set all expression strings to a fixed string value.
* Use DEBUG_LINE_NUMBER instead of `__LINE__`.
* Use DEBUG_EXPRESSION_STRING instead of #Expression.

Submodules that use `__LINE__` are not updated.  These do not
currently impact build reproducibility unless the debug features
of those submodules are enabled.

The one exception is the UnitTestFrameworkPkg cmocka submodule
that uses `__LINE__`.  This means that the binaries generated by host
based unit tests that use cmocka features may not be identical across
a source format change.

Cc: Ard Biesheuvel <ardb+tianocore@kernel.org>
Cc: Jiewen Yao <jiewen.yao@intel.com>
Cc: Jordan Justen <jordan.l.justen@intel.com>
Cc: Gerd Hoffmann <kraxel@redhat.com>
Cc: Michael Kubacki <michael.kubacki@microsoft.com>
Cc: Jian J Wang <jian.j.wang@intel.com>
Cc: Maciej Rabeda <maciej.rabeda@linux.intel.com>
Cc: Jiaxin Wu <jiaxin.wu@intel.com>
Cc: Siyuan Fu <siyuan.fu@intel.com>
Cc: Liming Gao <gaoliming@byosoft.com.cn>
Cc: Leif Lindholm <leif@nuviainc.com>
Cc: Zhiguang Liu <zhiguang.liu@intel.com>
Signed-off-by: Michael D Kinney <michael.d.kinney@intel.com>

Michael D Kinney (7):
  MdePkg/Include: Enhance DebugLib to support reproduce builds
  MdePkg: Reproduce builds across source format changes
  ArmPkg: Reproduce builds across source format changes
  MdeModulePkg: Reproduce builds across source format changes
  NetworkPkg: Reproduce builds across source format changes
  SecurityPkg: Reproduce builds across source format changes
  OvmfPkg: Reproduce builds across source format changes

 .../ProcessorSubClassDxe/ProcessorSubClass.c  |  2 +-
 .../Type00/MiscBiosVendorFunction.c           |  2 +-
 .../Type01/MiscSystemManufacturerFunction.c   |  2 +-
 .../MiscBaseBoardManufacturerFunction.c       |  2 +-
 .../Type03/MiscChassisManufacturerFunction.c  |  2 +-
 ...MiscNumberOfInstallableLanguagesFunction.c |  2 +-
 .../Type32/MiscBootInformationFunction.c      |  2 +-
 .../Bus/Pci/PciHostBridgeDxe/PciHostBridge.c  |  2 +-
 .../UefiBootManagerLib/BmDriverHealth.c       |  2 +-
 MdePkg/Include/Library/DebugLib.h             | 43 +++++++++++++++--
 MdePkg/Include/Library/UnitTestLib.h          | 46 +++++++++----------
 MdePkg/Library/BaseLib/SafeString.c           |  2 +-
 NetworkPkg/Include/Library/NetLib.h           |  8 ++--
 NetworkPkg/Library/DxeNetLib/DxeNetLib.c      |  2 +-
 OvmfPkg/Csm/LegacyBiosDxe/LegacyPci.c         |  6 +--
 .../PlatformBootManagerLib/BdsPlatform.c      |  4 +-
 .../PlatformBootManagerLibBhyve/BdsPlatform.c |  2 +-
 .../PlatformBootManagerLibGrub/BdsPlatform.c  |  4 +-
 .../Include/Library/TcgStorageCoreLib.h       | 26 +++++------
 19 files changed, 98 insertions(+), 63 deletions(-)

-- 
2.32.0.windows.1


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

end of thread, other threads:[~2021-11-08 17:25 UTC | newest]

Thread overview: 17+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2021-11-01 21:37 [Patch V2 0/7] Reproduce builds across source format changes Michael D Kinney
2021-11-01 21:37 ` [Patch V2 1/7] MdePkg/Include: Enhance DebugLib to support reproduce builds Michael D Kinney
2021-11-02  2:12   ` 回复: " gaoliming
2021-11-02  7:05     ` [edk2-devel] " Michael D Kinney
2021-11-04  5:24       ` 回复: " gaoliming
2021-11-01 21:37 ` [Patch V2 2/7] MdePkg: Reproduce builds across source format changes Michael D Kinney
2021-11-01 21:37 ` [Patch V2 3/7] ArmPkg: " Michael D Kinney
2021-11-01 21:37 ` [Patch V2 4/7] MdeModulePkg: " Michael D Kinney
2021-11-01 21:37 ` [Patch V2 5/7] NetworkPkg: " Michael D Kinney
2021-11-08 17:09   ` [edk2-devel] " Maciej Rabeda
2021-11-01 21:37 ` [Patch V2 6/7] SecurityPkg: " Michael D Kinney
2021-11-02  0:14   ` Yao, Jiewen
2021-11-01 21:37 ` [Patch V2 7/7] OvmfPkg: " Michael D Kinney
2021-11-05  3:18   ` Yao, Jiewen
2021-11-02  2:31 ` 回复: [Patch V2 0/7] " gaoliming
2021-11-02  7:10   ` Michael D Kinney
2021-11-04  5:15     ` 回复: [edk2-devel] " gaoliming

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