Project Mu BaseCore
Перейти к файлу
Taylor Beebe 4226960805 Generate Random Stack Cookie Values in Module Build Path (#825)
## Description

If only a single module was being built instead of a platform DSC, the
build scripts would not generate the random stack cookie values. On
clean builds, this causes an error to be reported during the autogen
process.

This PR updates build.py so the code path taken on module builds will
generate the random stack cookie values.

- [x] Impacts functionality?
- **Functionality** - Does the change ultimately impact how firmware
functions?
- Examples: Add a new library, publish a new PPI, update an algorithm,
...
- [ ] Impacts security?
- **Security** - Does the change have a direct security impact on an
application,
    flow, or firmware?
  - Examples: Crypto algorithm change, buffer overflow fix, parameter
    validation improvement, ...
- [ ] Breaking change?
- **Breaking change** - Will anyone consuming this change experience a
break
    in build or boot behavior?
- Examples: Add a new library class, move a module to a different repo,
call
    a function in a new library class in a pre-existing module, ...
- [ ] Includes tests?
  - **Tests** - Does the change include any explicit test code?
  - Examples: Unit tests, integration tests, robot tests, ...
- [ ] Includes documentation?
- **Documentation** - Does the change contain explicit documentation
additions
    outside direct code modifications (and comments)?
- Examples: Update readme file, add feature readme file, link to
documentation
    on an a separate Web page, ...

## How This Was Tested

Tested by specifying a build module on Q35.

## Integration Instructions

N/A
2024-04-24 16:23:40 -07:00
.azurepipelines Repo File Sync: synced file(s) with microsoft/mu_devops (#711) 2024-01-31 13:07:02 -05:00
.config Add CredScan suppressions for test certs and examples 2023-05-03 17:35:39 -07:00
.devcontainer Repo File Sync: Update to Mu DevOps v6.1.0 (#538) 2023-08-29 20:50:28 -04:00
.github [CHERRY-PICK] release-basetools.yml: Add contents write permission for publishing (#717) 2024-02-02 00:28:44 +00:00
.pytool remove edk2-basetools (#732) 2024-02-28 09:46:12 -08:00
BaseTools Generate Random Stack Cookie Values in Module Build Path (#825) 2024-04-24 16:23:40 -07:00
CryptoPkg Add Stack Cookie Support for IA32, ARM, and AARCH64 2024-02-28 09:46:12 -08:00
Docs Move Rust documentation to Project Mu repo 2023-09-06 15:20:52 -04:00
MdeModulePkg Set RO/XP On EfiRuntimeServicesCode Regions Outside of Loaded Image Memory (#822) 2024-04-24 16:23:40 -07:00
MdePkg Add a Deprecated Build Option To Allow Incompatible AARCH64 Platforms To Opt Out of 64k Runtime Granularity (#798) 2024-04-09 15:24:12 -07:00
NetworkPkg [Cherry-Pick] PixieFail Security Patches for TCBZ451 and TCB4542 (#801) 2024-04-10 15:11:25 -07:00
PcAtChipsetPkg Add Stack Cookie Support for IA32, ARM, and AARCH64 2024-02-28 09:46:12 -08:00
PerformancePkg/Application/FbptDump Convert relevant files to CRLF 2023-05-08 17:19:43 -07:00
PolicyServicePkg Add Stack Cookie Support for IA32, ARM, and AARCH64 2024-02-28 09:46:12 -08:00
ShellPkg Add Stack Cookie Support for IA32, ARM, and AARCH64 2024-02-28 09:46:12 -08:00
StandaloneMmPkg Add Stack Cookie Support for IA32, ARM, and AARCH64 2024-02-28 09:46:12 -08:00
UefiCpuPkg Add Stack Cookie Support for IA32, ARM, and AARCH64 2024-02-28 09:46:12 -08:00
UnitTestFrameworkPkg Add Stack Cookie Support for IA32, ARM, and AARCH64 2024-02-28 09:46:12 -08:00
.git-blame-ignore-revs .git-blame-ignore-revs: Ignore Line Ending and Uncrustify only commits (#670) 2024-01-11 09:32:56 -05:00
.gitignore TCMORPH: Remove unused packages from Tiano (command in comments). 2023-04-27 14:24:39 -07:00
.gitmodules Remove the openssl library and it's associated files from CryptoPkg. (#680) 2024-01-18 19:59:13 -08:00
.markdownlint.yaml Repo File Sync: Synced file(s) with microsoft/mu_devops (#191) 2023-05-08 17:19:41 -07:00
.markdownlintignore UnitTestFrameworkPkg: Fix markdownlint issues 2023-05-09 09:12:30 -07:00
CONTRIBUTING.md Repo File Sync: Synced file(s) with microsoft/mu_devops (#191) 2023-05-08 17:19:41 -07:00
CodeQlFilters.yml Remove the openssl library and it's associated files from CryptoPkg. (#680) 2024-01-18 19:59:13 -08:00
License-History.txt
License.txt edk2: Change License.txt from 2-Clause BSD to BSD+Patent 2019-04-09 09:10:18 -07:00
Makefile.toml Repo File Sync: Add Cargo features to Makefile.toml (#685) 2024-01-19 15:34:08 -05:00
ReadMe.rst REBASE: Updated readme with changes for 202302 2023-05-09 14:42:43 -07:00
RepoDetails.md Move Rust documentation to Project Mu repo 2023-09-06 15:20:52 -04:00
SECURITY.md Repo File Sync: Synced file(s) with microsoft/mu_devops (#191) 2023-05-08 17:19:41 -07:00
edk2_core_path_env.json Convert relevant files to CRLF 2023-05-08 17:19:43 -07:00
pip-requirements.txt remove edk2-basetools (#732) 2024-02-28 09:46:12 -08:00
rust-toolchain.toml Repo File Sync: Update to Mu DevOps 7.0.1 and Rust 1.73.0 (#593) 2023-10-14 01:54:19 -04:00
rustfmt.toml Repo File Sync: Update to Mu DevOps v6.1.0 (#538) 2023-08-29 20:50:28 -04:00

ReadMe.rst

Этот файл содержит невидимые символы Юникода!

Этот файл содержит невидимые символы Юникода, которые могут быть отображены не так, как показано ниже. Если это намеренно, можете спокойно проигнорировать это предупреждение. Используйте кнопку Экранировать, чтобы показать скрытые символы.

==============================
Project Mu Basecore Repository
==============================

============================= ================= =============== ===================
 Host Type & Toolchain        Build Status      Test Status     Code Coverage
============================= ================= =============== ===================
Windows_VS2022_               |WindowsCiBuild|  |WindowsCiTest| |WindowsCiCoverage|
Ubuntu_GCC5_                  |UbuntuCiBuild|   |UbuntuCiTest|  |UbuntuCiCoverage|
============================= ================= =============== ===================

This repository is part of Project Mu.  Please see Project Mu for details https://microsoft.github.io/mu

For more details about the repository, refer to `RepoDetails.md`_.

.. _`RepoDetails.md`: https://github.com/microsoft/mu_basecore/blob/HEAD/RepoDetails.md

Branch Status - release/202302
==============================

:Status:
  In Development

:Entered Development:
  2023/04/27

:Anticipated Stabilization:
  Aug 2023

Branch Changes - release/202302
===============================

Breaking Changes-dev
--------------------

- Incomplete

Main Changes-dev
----------------

- Integrated reworked Openssl crypto.  Instead of having separate INF files for each architecture it is now consolidated
  into a single Accel INF.
- CodeQL fixes were applied throughout the repo to address some vulnerabilities.
- Memory protections were cleaned up and reworked to make its progression more clear in history.
- Integrated Google Test into project MU.
- Removed VS2015 and VS2017 support from packages.
- Added additional ARM packages for build capability.

Bug Fixes-dev
-------------

- Fixed some TPL restore calls that were incorrect.

2302_RefBoot Changes
--------------------

- Incomplete

2302_CIBuild Changes
--------------------

- Additional refactoring in CryptoPkg

2302_Rebase Changes
-------------------

| Starting commit: 082b06d160 ("Edk2ToolsBuild.py: set arch to host arch if not specified on linux", 2023-04-27)
| Destination Commit from upstream edk2: f80f052277 ("OvmfPkg/RiscVVirt: Add Stack HOB", 2023-03-01)

- Many conflicts in CryptoPkg that needed to be resolved.

Code of Conduct
===============

This project has adopted the Microsoft Open Source Code of Conduct https://opensource.microsoft.com/codeofconduct/

For more information see the Code of Conduct FAQ https://opensource.microsoft.com/codeofconduct/faq/
or contact `opencode@microsoft.com <mailto:opencode@microsoft.com>`_. with any additional questions or comments.

Contributions
=============

Contributions are always welcome and encouraged!
Please open any issues in the Project Mu GitHub tracker and read https://microsoft.github.io/mu/How/contributing/

For documentation:

Copyright & License
===================

| Copyright (C) Microsoft Corporation
| SPDX-License-Identifier: BSD-2-Clause-Patent

Upstream License (TianoCore)
============================

Copyright (c) 2019, TianoCore and contributors.  All rights reserved.

SPDX-License-Identifier: BSD-2-Clause-Patent

Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:

1. Redistributions of source code must retain the above copyright notice,
   this list of conditions and the following disclaimer.

2. Redistributions in binary form must reproduce the above copyright notice,
   this list of conditions and the following disclaimer in the documentation
   and/or other materials provided with the distribution.

Subject to the terms and conditions of this license, each copyright holder
and contributor hereby grants to those receiving rights under this license
a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable
(except for failure to satisfy the conditions of this license) patent
license to make, have made, use, offer to sell, sell, import, and otherwise
transfer this software, where such license applies only to those patent
claims, already acquired or hereafter acquired, licensable by such copyright
holder or contributor that are necessarily infringed by:

(a) their Contribution(s) (the licensed copyrights of copyright holders and
    non-copyrightable additions of contributors, in source or binary form)
    alone; or

(b) combination of their Contribution(s) with the work of authorship to
    which such Contribution(s) was added by such copyright holder or
    contributor, if, at the time the Contribution is added, such addition
    causes such combination to be necessarily infringed. The patent license
    shall not apply to any other combinations which include the
    Contribution.

Except as expressly stated above, no rights or licenses from any copyright
holder or contributor is granted under this license, whether expressly, by
implication, estoppel or otherwise.

DISCLAIMER

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR CONTRIBUTORS BE
LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
POSSIBILITY OF SUCH DAMAGE.

.. ===================================================================
.. This is a bunch of directives to make the README file more readable
.. ===================================================================

.. CoreCI

.. _Windows_VS2019: https://dev.azure.com/projectmu/mu/_build/latest?definitionId=39&&branchName=release%2F202302
.. |WindowsCiBuild| image:: https://dev.azure.com/projectmu/mu/_apis/build/status/CI/Mu%20Basecore%20CI%20VS2019?branchName=release%2F202302
.. |WindowsCiTest| image:: https://img.shields.io/azure-devops/tests/projectmu/mu/39.svg
.. |WindowsCiCoverage| image:: https://img.shields.io/badge/coverage-coming_soon-blue

.. _Ubuntu_GCC5: https://dev.azure.com/projectmu/mu/_build/latest?definitionId=40&branchName=release%2F202302
.. |UbuntuCiBuild| image:: https://dev.azure.com/projectmu/mu/_apis/build/status/CI/Mu%20Basecore%20CI%20Ubuntu%20GCC5?branchName=release%2F202302
.. |UbuntuCiTest| image:: https://img.shields.io/azure-devops/tests/projectmu/mu/40.svg
.. |UbuntuCiCoverage| image:: https://img.shields.io/badge/coverage-coming_soon-blue

.. |build_status_windows| image:: https://dev.azure.com/projectmu/mu/_apis/build/status/CI/Mu%20Basecore%20CI%20VS2019?branchName=release%2F202302