From e1d5f908c97d97baebef77cadd6dd6e012beefaf Mon Sep 17 00:00:00 2001 From: Mike Beaton Date: Wed, 18 Sep 2024 16:40:08 +0100 Subject: [PATCH 01/11] BaseTools: Fix multiple 'invalid escape sequence' warnings in tests In Python 3.12 invalid escape sequences in strings moved from DeprecationWarning to SyntaxWarning (ref https://docs.python.org/3/whatsnew/changelog.html#python-3-12-0-final and search for gh-98401). In a future Python version this will become SyntaxError. Multiple instances of these SyntaxWarnings are currently printed when running the BaseTools tests using Python 3.12 (though without actually failing the affected tests). This commit updates all lines which were causing this type of warning. Typical examples which needed fixing are: - "BaseTools\Source\Python" representing a path: "\S" and "\P" are invalid escape sequences, therefore left unchanged, therefore the test works (with a warning in Python 3.12). r"BaseTools\Source\Python" represents the same string, but with escapes turned off completely thus no warning. - Where '\t\s' is used as a regex pattern, then chr(9) + '\\s' is sent to the regex parser (with a warning in Python 3.12) since '\s' is not a valid Python escape sequence. This works correctly, though arguably for the wrong reasons. r'\t\s' sends the same as '\\t\\s', as originally intended and with no warning. (Note that ' and " are not fundamentally different in Python.) Signed-off-by: Mike Beaton --- BaseTools/Source/Python/Ecc/Check.py | 2 +- BaseTools/Source/Python/Ecc/Configuration.py | 2 +- .../Ecc/MetaFileWorkspace/MetaFileParser.py | 10 +++---- BaseTools/Source/Python/Ecc/c.py | 2 +- BaseTools/Source/Python/Eot/EotGlobalData.py | 2 +- BaseTools/Source/Python/Eot/c.py | 2 +- .../Python/UPT/Library/CommentParsing.py | 2 +- .../Python/UPT/Library/ExpressionValidate.py | 18 ++++++------- BaseTools/Source/Python/UPT/Library/Misc.py | 10 +++---- .../Source/Python/UPT/Library/StringUtils.py | 2 +- .../Source/Python/UPT/Parser/DecParserMisc.py | 2 +- .../Python/UPT/Parser/InfAsBuiltProcess.py | 18 ++++++------- .../UPT/Parser/InfDefineSectionParser.py | 2 +- .../Source/Python/UPT/Parser/InfParserMisc.py | 10 +++---- .../Python/UPT/PomAdapter/DecPomAlignment.py | 18 ++++++------- BaseTools/Source/Python/UPT/Xml/IniToXml.py | 4 +-- BaseTools/Source/Python/UPT/Xml/PcdXml.py | 26 +++++++++---------- BaseTools/Source/Python/UPT/Xml/XmlParser.py | 12 ++++----- 18 files changed, 72 insertions(+), 72 deletions(-) diff --git a/BaseTools/Source/Python/Ecc/Check.py b/BaseTools/Source/Python/Ecc/Check.py index 4561961141d4..160e803764fe 100644 --- a/BaseTools/Source/Python/Ecc/Check.py +++ b/BaseTools/Source/Python/Ecc/Check.py @@ -1092,7 +1092,7 @@ def MetaDataFileCheckModuleFileNoUse(self): RecordSet = EccGlobalData.gDb.TblInf.Exec(SqlCommand) for Record in RecordSet: Path = Record[1] - Path = Path.upper().replace('\X64', '').replace('\IA32', '').replace('\EBC', '').replace('\IPF', '').replace('\ARM', '') + Path = Path.upper().replace(r'\X64', '').replace(r'\IA32', '').replace(r'\EBC', '').replace(r'\IPF', '').replace(r'\ARM', '') if Path in InfPathList: if not EccGlobalData.gException.IsException(ERROR_META_DATA_FILE_CHECK_MODULE_FILE_NO_USE, Record[2]): EccGlobalData.gDb.TblReport.Insert(ERROR_META_DATA_FILE_CHECK_MODULE_FILE_NO_USE, OtherMsg="The source file [%s] is existing in module directory but it is not described in INF file." % (Record[2]), BelongsToTable='File', BelongsToItem=Record[0]) diff --git a/BaseTools/Source/Python/Ecc/Configuration.py b/BaseTools/Source/Python/Ecc/Configuration.py index d4aab1d1310b..9a9ca49eee41 100644 --- a/BaseTools/Source/Python/Ecc/Configuration.py +++ b/BaseTools/Source/Python/Ecc/Configuration.py @@ -432,7 +432,7 @@ def ShowMe(self): # test that our dict and out class still match in contents. # if __name__ == '__main__': - myconfig = Configuration("BaseTools\Source\Python\Ecc\config.ini") + myconfig = Configuration(r"BaseTools\Source\Python\Ecc\config.ini") for each in myconfig.__dict__: if each == "Filename": continue diff --git a/BaseTools/Source/Python/Ecc/MetaFileWorkspace/MetaFileParser.py b/BaseTools/Source/Python/Ecc/MetaFileWorkspace/MetaFileParser.py index 2d98ac5eadb2..2ef2847b1ba9 100644 --- a/BaseTools/Source/Python/Ecc/MetaFileWorkspace/MetaFileParser.py +++ b/BaseTools/Source/Python/Ecc/MetaFileWorkspace/MetaFileParser.py @@ -1841,14 +1841,14 @@ def _PcdParser(self): if EccGlobalData.gConfig.UniCheckPCDInfo == '1' or EccGlobalData.gConfig.UniCheckAll == '1' or EccGlobalData.gConfig.CheckAll == '1': # check Description, Prompt information - PatternDesc = re.compile('##\s*([\x21-\x7E\s]*)', re.S) - PatternPrompt = re.compile('#\s+@Prompt\s+([\x21-\x7E\s]*)', re.S) + PatternDesc = re.compile(r'##\s*([\x21-\x7E\s]*)', re.S) + PatternPrompt = re.compile(r'#\s+@Prompt\s+([\x21-\x7E\s]*)', re.S) Description = None Prompt = None # check @ValidRange, @ValidList and @Expression format valid ErrorCodeValid = '0x0 <= %s <= 0xFFFFFFFF' - PatternValidRangeIn = '(NOT)?\s*(\d+\s*-\s*\d+|0[xX][a-fA-F0-9]+\s*-\s*0[xX][a-fA-F0-9]+|LT\s*\d+|LT\s*0[xX][a-fA-F0-9]+|GT\s*\d+|GT\s*0[xX][a-fA-F0-9]+|LE\s*\d+|LE\s*0[xX][a-fA-F0-9]+|GE\s*\d+|GE\s*0[xX][a-fA-F0-9]+|XOR\s*\d+|XOR\s*0[xX][a-fA-F0-9]+|EQ\s*\d+|EQ\s*0[xX][a-fA-F0-9]+)' - PatternValidRng = re.compile('^' + '(NOT)?\s*' + PatternValidRangeIn + '$') + PatternValidRangeIn = r'(NOT)?\s*(\d+\s*-\s*\d+|0[xX][a-fA-F0-9]+\s*-\s*0[xX][a-fA-F0-9]+|LT\s*\d+|LT\s*0[xX][a-fA-F0-9]+|GT\s*\d+|GT\s*0[xX][a-fA-F0-9]+|LE\s*\d+|LE\s*0[xX][a-fA-F0-9]+|GE\s*\d+|GE\s*0[xX][a-fA-F0-9]+|XOR\s*\d+|XOR\s*0[xX][a-fA-F0-9]+|EQ\s*\d+|EQ\s*0[xX][a-fA-F0-9]+)' + PatternValidRng = re.compile('^' + r'(NOT)?\s*' + PatternValidRangeIn + '$') for Comment in self._Comments: Comm = Comment[0].strip() if not Comm: @@ -2071,7 +2071,7 @@ def Start(self): def CheckKeyValid(self, Key, Contents=None): if not Contents: Contents = self.FileIn - KeyPattern = re.compile('#string\s+%s\s+.*?#language.*?".*?"' % Key, re.S) + KeyPattern = re.compile(r'#string\s+%s\s+.*?#language.*?".*?"' % Key, re.S) if KeyPattern.search(Contents): return True return False diff --git a/BaseTools/Source/Python/Ecc/c.py b/BaseTools/Source/Python/Ecc/c.py index 61ad084fcc5b..0ebdc1a99605 100644 --- a/BaseTools/Source/Python/Ecc/c.py +++ b/BaseTools/Source/Python/Ecc/c.py @@ -43,7 +43,7 @@ def GetArrayPattern(): return p def GetTypedefFuncPointerPattern(): - p = re.compile('[_\w\s]*\([\w\s]*\*+\s*[_\w]+\s*\)\s*\(.*\)', re.DOTALL) + p = re.compile(r'[_\w\s]*\([\w\s]*\*+\s*[_\w]+\s*\)\s*\(.*\)', re.DOTALL) return p def GetDB(): diff --git a/BaseTools/Source/Python/Eot/EotGlobalData.py b/BaseTools/Source/Python/Eot/EotGlobalData.py index 3218f86f441c..887a7a259545 100644 --- a/BaseTools/Source/Python/Eot/EotGlobalData.py +++ b/BaseTools/Source/Python/Eot/EotGlobalData.py @@ -11,7 +11,7 @@ gEFI_SOURCE = '' gEDK_SOURCE = '' gWORKSPACE = '' -gSHELL_INF = 'Application\Shell' +gSHELL_INF = r'Application\Shell' gMAKE_FILE = '' gDSC_FILE = '' gFV_FILE = [] diff --git a/BaseTools/Source/Python/Eot/c.py b/BaseTools/Source/Python/Eot/c.py index dd9530fed6d0..a85564d60030 100644 --- a/BaseTools/Source/Python/Eot/c.py +++ b/BaseTools/Source/Python/Eot/c.py @@ -54,7 +54,7 @@ def GetArrayPattern(): # @return p: the pattern of function pointer # def GetTypedefFuncPointerPattern(): - p = re.compile('[_\w\s]*\([\w\s]*\*+\s*[_\w]+\s*\)\s*\(.*\)', re.DOTALL) + p = re.compile(r'[_\w\s]*\([\w\s]*\*+\s*[_\w]+\s*\)\s*\(.*\)', re.DOTALL) return p ## GetDB() method diff --git a/BaseTools/Source/Python/UPT/Library/CommentParsing.py b/BaseTools/Source/Python/UPT/Library/CommentParsing.py index 7ba9830d34ac..7b1ce05493c1 100644 --- a/BaseTools/Source/Python/UPT/Library/CommentParsing.py +++ b/BaseTools/Source/Python/UPT/Library/CommentParsing.py @@ -238,7 +238,7 @@ def ParseDecPcdGenericComment (GenericComment, ContainerFile, TokenSpaceGuidCNam # # To replace Macro # - MACRO_PATTERN = '[\t\s]*\$\([A-Z][_A-Z0-9]*\)' + MACRO_PATTERN = r'[\t\s]*\$\([A-Z][_A-Z0-9]*\)' MatchedStrs = re.findall(MACRO_PATTERN, Comment) for MatchedStr in MatchedStrs: if MatchedStr: diff --git a/BaseTools/Source/Python/UPT/Library/ExpressionValidate.py b/BaseTools/Source/Python/UPT/Library/ExpressionValidate.py index 7718ca12e5cf..2c0750efe45d 100644 --- a/BaseTools/Source/Python/UPT/Library/ExpressionValidate.py +++ b/BaseTools/Source/Python/UPT/Library/ExpressionValidate.py @@ -66,13 +66,13 @@ def __init__(self, Error = ''): ## _ExprBase # class _ExprBase: - HEX_PATTERN = '[\t\s]*0[xX][a-fA-F0-9]+' - INT_PATTERN = '[\t\s]*[0-9]+' - MACRO_PATTERN = '[\t\s]*\$\(([A-Z][_A-Z0-9]*)\)' + HEX_PATTERN = r'[\t\s]*0[xX][a-fA-F0-9]+' + INT_PATTERN = r'[\t\s]*[0-9]+' + MACRO_PATTERN = r'[\t\s]*\$\(([A-Z][_A-Z0-9]*)\)' PCD_PATTERN = \ - '[\t\s]*[_a-zA-Z][a-zA-Z0-9_]*[\t\s]*\.[\t\s]*[_a-zA-Z][a-zA-Z0-9_]*' - QUOTED_PATTERN = '[\t\s]*L?"[^"]*"' - BOOL_PATTERN = '[\t\s]*(true|True|TRUE|false|False|FALSE)' + r'[\t\s]*[_a-zA-Z][a-zA-Z0-9_]*[\t\s]*\.[\t\s]*[_a-zA-Z][a-zA-Z0-9_]*' + QUOTED_PATTERN = r'[\t\s]*L?"[^"]*"' + BOOL_PATTERN = r'[\t\s]*(true|True|TRUE|false|False|FALSE)' def __init__(self, Token): self.Token = Token self.Index = 0 @@ -303,9 +303,9 @@ def IsValidLogicalExpression(self): ## _ValidRangeExpressionParser # class _ValidRangeExpressionParser(_ExprBase): - INT_RANGE_PATTERN = '[\t\s]*[0-9]+[\t\s]*-[\t\s]*[0-9]+' + INT_RANGE_PATTERN = r'[\t\s]*[0-9]+[\t\s]*-[\t\s]*[0-9]+' HEX_RANGE_PATTERN = \ - '[\t\s]*0[xX][a-fA-F0-9]+[\t\s]*-[\t\s]*0[xX][a-fA-F0-9]+' + r'[\t\s]*0[xX][a-fA-F0-9]+[\t\s]*-[\t\s]*0[xX][a-fA-F0-9]+' def __init__(self, Token): _ExprBase.__init__(self, Token) self.Parens = 0 @@ -407,7 +407,7 @@ def ValidRange(self): ## _ValidListExpressionParser # class _ValidListExpressionParser(_ExprBase): - VALID_LIST_PATTERN = '(0[xX][0-9a-fA-F]+|[0-9]+)([\t\s]*,[\t\s]*(0[xX][0-9a-fA-F]+|[0-9]+))*' + VALID_LIST_PATTERN = r'(0[xX][0-9a-fA-F]+|[0-9]+)([\t\s]*,[\t\s]*(0[xX][0-9a-fA-F]+|[0-9]+))*' def __init__(self, Token): _ExprBase.__init__(self, Token) self.NUM = 1 diff --git a/BaseTools/Source/Python/UPT/Library/Misc.py b/BaseTools/Source/Python/UPT/Library/Misc.py index 77ba3584e000..f3688de4b1b7 100644 --- a/BaseTools/Source/Python/UPT/Library/Misc.py +++ b/BaseTools/Source/Python/UPT/Library/Misc.py @@ -69,11 +69,11 @@ def GuidStringToGuidStructureString(Guid): def CheckGuidRegFormat(GuidValue): ## Regular expression used to find out register format of GUID # - RegFormatGuidPattern = re.compile("^\s*([0-9a-fA-F]){8}-" + RegFormatGuidPattern = re.compile(r"^\s*([0-9a-fA-F]){8}-" "([0-9a-fA-F]){4}-" "([0-9a-fA-F]){4}-" "([0-9a-fA-F]){4}-" - "([0-9a-fA-F]){12}\s*$") + r"([0-9a-fA-F]){12}\s*$") if RegFormatGuidPattern.match(GuidValue): return True @@ -837,8 +837,8 @@ def GetLibInstanceInfo(String, WorkSpace, LineNo): ST.ERR_FILE_OPEN_FAILURE, File=FullFileName) - ReFileGuidPattern = re.compile("^\s*FILE_GUID\s*=.*$") - ReVerStringPattern = re.compile("^\s*VERSION_STRING\s*=.*$") + ReFileGuidPattern = re.compile(r"^\s*FILE_GUID\s*=.*$") + ReVerStringPattern = re.compile(r"^\s*VERSION_STRING\s*=.*$") FileLinesList = ProcessLineExtender(FileLinesList) @@ -978,7 +978,7 @@ def ValidateUNIFilePath(Path): # # Check if the file name is valid according to the DEC and INF specification # - Pattern = '[a-zA-Z0-9_][a-zA-Z0-9_\-\.]*' + Pattern = r'[a-zA-Z0-9_][a-zA-Z0-9_\-\.]*' FileName = Path.replace(Suffix, '') InvalidCh = re.sub(Pattern, '', FileName) if InvalidCh: diff --git a/BaseTools/Source/Python/UPT/Library/StringUtils.py b/BaseTools/Source/Python/UPT/Library/StringUtils.py index fbc5177caf5a..a6f47d0dd79b 100644 --- a/BaseTools/Source/Python/UPT/Library/StringUtils.py +++ b/BaseTools/Source/Python/UPT/Library/StringUtils.py @@ -23,7 +23,7 @@ # # Regular expression for matching macro used in DSC/DEC/INF file inclusion # -gMACRO_PATTERN = re.compile("\$\(([_A-Z][_A-Z0-9]*)\)", re.UNICODE) +gMACRO_PATTERN = re.compile(r"\$\(([_A-Z][_A-Z0-9]*)\)", re.UNICODE) ## GetSplitValueList # diff --git a/BaseTools/Source/Python/UPT/Parser/DecParserMisc.py b/BaseTools/Source/Python/UPT/Parser/DecParserMisc.py index 27990467d1c5..92dbcaaabeb0 100644 --- a/BaseTools/Source/Python/UPT/Parser/DecParserMisc.py +++ b/BaseTools/Source/Python/UPT/Parser/DecParserMisc.py @@ -25,7 +25,7 @@ from Library.Misc import CheckGuidRegFormat TOOL_NAME = 'DecParser' -VERSION_PATTERN = '[0-9]+(\.[0-9]+)?' +VERSION_PATTERN = r'[0-9]+(\.[0-9]+)?' CVAR_PATTERN = '[_a-zA-Z][a-zA-Z0-9_]*' PCD_TOKEN_PATTERN = '(0[xX]0*[a-fA-F0-9]{1,8})|([0-9]+)' MACRO_PATTERN = '[A-Z][_A-Z0-9]*' diff --git a/BaseTools/Source/Python/UPT/Parser/InfAsBuiltProcess.py b/BaseTools/Source/Python/UPT/Parser/InfAsBuiltProcess.py index 992b609120f8..fb646191b186 100644 --- a/BaseTools/Source/Python/UPT/Parser/InfAsBuiltProcess.py +++ b/BaseTools/Source/Python/UPT/Parser/InfAsBuiltProcess.py @@ -53,12 +53,12 @@ def GetLibInstanceInfo(String, WorkSpace, LineNo, CurrentInfFileName): # # To deal with library instance specified by GUID and version # - RegFormatGuidPattern = re.compile("\s*([0-9a-fA-F]){8}-" + RegFormatGuidPattern = re.compile(r"\s*([0-9a-fA-F]){8}-" "([0-9a-fA-F]){4}-" "([0-9a-fA-F]){4}-" "([0-9a-fA-F]){4}-" - "([0-9a-fA-F]){12}\s*") - VersionPattern = re.compile('[\t\s]*\d+(\.\d+)?[\t\s]*') + r"([0-9a-fA-F]){12}\s*") + VersionPattern = re.compile(r'[\t\s]*\d+(\.\d+)?[\t\s]*') GuidMatchedObj = RegFormatGuidPattern.search(String) if String.upper().startswith('GUID') and GuidMatchedObj and 'Version' in String: @@ -75,8 +75,8 @@ def GetLibInstanceInfo(String, WorkSpace, LineNo, CurrentInfFileName): FileLinesList = GetFileLineContent(String, WorkSpace, LineNo, OriginalString) - ReFindFileGuidPattern = re.compile("^\s*FILE_GUID\s*=.*$") - ReFindVerStringPattern = re.compile("^\s*VERSION_STRING\s*=.*$") + ReFindFileGuidPattern = re.compile(r"^\s*FILE_GUID\s*=.*$") + ReFindVerStringPattern = re.compile(r"^\s*VERSION_STRING\s*=.*$") for Line in FileLinesList: if ReFindFileGuidPattern.match(Line): @@ -106,8 +106,8 @@ def GetPackageListInfo(FileNameString, WorkSpace, LineNo): FileLinesList = GetFileLineContent(FileNameString, WorkSpace, LineNo, '') - RePackageHeader = re.compile('^\s*\[Packages.*\].*$') - ReDefineHeader = re.compile('^\s*\[Defines].*$') + RePackageHeader = re.compile(r'^\s*\[Packages.*\].*$') + ReDefineHeader = re.compile(r'^\s*\[Defines].*$') PackageHederFlag = False DefineHeaderFlag = False @@ -255,8 +255,8 @@ def GetGuidVerFormLibInstance(Guid, Version, WorkSpace, CurrentInfFileName): FileLinesList = InfFileObj.readlines() FileLinesList = ProcessLineExtender(FileLinesList) - ReFindFileGuidPattern = re.compile("^\s*FILE_GUID\s*=.*$") - ReFindVerStringPattern = re.compile("^\s*VERSION_STRING\s*=.*$") + ReFindFileGuidPattern = re.compile(r"^\s*FILE_GUID\s*=.*$") + ReFindVerStringPattern = re.compile(r"^\s*VERSION_STRING\s*=.*$") for Line in FileLinesList: if ReFindFileGuidPattern.match(Line): diff --git a/BaseTools/Source/Python/UPT/Parser/InfDefineSectionParser.py b/BaseTools/Source/Python/UPT/Parser/InfDefineSectionParser.py index a63e40e61787..9edcc2cb3f4c 100644 --- a/BaseTools/Source/Python/UPT/Parser/InfDefineSectionParser.py +++ b/BaseTools/Source/Python/UPT/Parser/InfDefineSectionParser.py @@ -40,7 +40,7 @@ def GetValidateArchList(LineContent): TempArch = GetSplitValueList(TempArch, '(', 1)[0] - ArchList = re.split('\s+', TempArch) + ArchList = re.split(r'\s+', TempArch) NewArchList = [] for Arch in ArchList: if IsValidArch(Arch): diff --git a/BaseTools/Source/Python/UPT/Parser/InfParserMisc.py b/BaseTools/Source/Python/UPT/Parser/InfParserMisc.py index d01ae9aa0246..eb768b9a1241 100644 --- a/BaseTools/Source/Python/UPT/Parser/InfParserMisc.py +++ b/BaseTools/Source/Python/UPT/Parser/InfParserMisc.py @@ -109,7 +109,7 @@ def InfExpandMacro(Content, LineInfo, GlobalMacros=None, SectionMacros=None, Fla return Content else: for Macro in MacroUsed: - gQuotedMacro = re.compile(".*\".*\$\(%s\).*\".*"%(Macro)) + gQuotedMacro = re.compile(r".*\".*\$\(%s\).*\".*"%(Macro)) if not gQuotedMacro.match(Content): # # Still have MACROs can't be expanded. @@ -130,8 +130,8 @@ def IsBinaryInf(FileLineList): if not FileLineList: return False - ReIsSourcesSection = re.compile("^\s*\[Sources.*\]\s.*$", re.IGNORECASE) - ReIsBinarySection = re.compile("^\s*\[Binaries.*\]\s.*$", re.IGNORECASE) + ReIsSourcesSection = re.compile(r"^\s*\[Sources.*\]\s.*$", re.IGNORECASE) + ReIsBinarySection = re.compile(r"^\s*\[Binaries.*\]\s.*$", re.IGNORECASE) BinarySectionFoundFlag = False for Line in FileLineList: @@ -155,7 +155,7 @@ def IsBinaryInf(FileLineList): # @return Flag # def IsLibInstanceInfo(String): - ReIsLibInstance = re.compile("^\s*##\s*@LIB_INSTANCES\s*$") + ReIsLibInstance = re.compile(r"^\s*##\s*@LIB_INSTANCES\s*$") if ReIsLibInstance.match(String): return True else: @@ -171,7 +171,7 @@ def IsLibInstanceInfo(String): # @return Flag # def IsAsBuildOptionInfo(String): - ReIsAsBuildInstance = re.compile("^\s*##\s*@AsBuilt\s*$") + ReIsAsBuildInstance = re.compile(r"^\s*##\s*@AsBuilt\s*$") if ReIsAsBuildInstance.match(String): return True else: diff --git a/BaseTools/Source/Python/UPT/PomAdapter/DecPomAlignment.py b/BaseTools/Source/Python/UPT/PomAdapter/DecPomAlignment.py index da92fe5d3eb2..b1f8135bc780 100644 --- a/BaseTools/Source/Python/UPT/PomAdapter/DecPomAlignment.py +++ b/BaseTools/Source/Python/UPT/PomAdapter/DecPomAlignment.py @@ -747,12 +747,12 @@ def ReplaceForEval(self, ReplaceValue, IsRange=False, IsExpr=False): # # deal with "NOT EQ", "NOT LT", "NOT GT", "NOT LE", "NOT GE", "NOT NOT" # - NOTNOT_Pattern = '[\t\s]*NOT[\t\s]+NOT[\t\s]*' - NOTGE_Pattern = '[\t\s]*NOT[\t\s]+GE[\t\s]*' - NOTLE_Pattern = '[\t\s]*NOT[\t\s]+LE[\t\s]*' - NOTGT_Pattern = '[\t\s]*NOT[\t\s]+GT[\t\s]*' - NOTLT_Pattern = '[\t\s]*NOT[\t\s]+LT[\t\s]*' - NOTEQ_Pattern = '[\t\s]*NOT[\t\s]+EQ[\t\s]*' + NOTNOT_Pattern = r'[\t\s]*NOT[\t\s]+NOT[\t\s]*' + NOTGE_Pattern = r'[\t\s]*NOT[\t\s]+GE[\t\s]*' + NOTLE_Pattern = r'[\t\s]*NOT[\t\s]+LE[\t\s]*' + NOTGT_Pattern = r'[\t\s]*NOT[\t\s]+GT[\t\s]*' + NOTLT_Pattern = r'[\t\s]*NOT[\t\s]+LT[\t\s]*' + NOTEQ_Pattern = r'[\t\s]*NOT[\t\s]+EQ[\t\s]*' ReplaceValue = re.compile(NOTNOT_Pattern).sub('', ReplaceValue) ReplaceValue = re.compile(NOTLT_Pattern).sub('x >= ', ReplaceValue) ReplaceValue = re.compile(NOTGT_Pattern).sub('x <= ', ReplaceValue) @@ -785,7 +785,7 @@ def ReplaceForEval(self, ReplaceValue, IsRange=False, IsExpr=False): if ReplaceValue.find('!') >= 0 and ReplaceValue[ReplaceValue.index('!') + 1] != '=': ReplaceValue = ReplaceValue.replace('!', ' not ') if '.' in ReplaceValue: - Pattern = '[a-zA-Z0-9]{1,}\.[a-zA-Z0-9]{1,}' + Pattern = r'[a-zA-Z0-9]{1,}\.[a-zA-Z0-9]{1,}' MatchedList = re.findall(Pattern, ReplaceValue) for MatchedItem in MatchedList: if MatchedItem not in self.PcdDefaultValueDict: @@ -814,7 +814,7 @@ def CheckPcdValue(self): # # Delete the 'L' prefix of a quoted string, this operation is for eval() # - QUOTED_PATTERN = '[\t\s]*L?"[^"]*"' + QUOTED_PATTERN = r'[\t\s]*L?"[^"]*"' QuotedMatchedObj = re.search(QUOTED_PATTERN, Expression) if QuotedMatchedObj: MatchedStr = QuotedMatchedObj.group().strip() @@ -847,7 +847,7 @@ def CheckPcdValue(self): # # Delete the 'L' prefix of a quoted string, this operation is for eval() # - QUOTED_PATTERN = '[\t\s]*L?"[^"]*"' + QUOTED_PATTERN = r'[\t\s]*L?"[^"]*"' QuotedMatchedObj = re.search(QUOTED_PATTERN, DefaultValue) if QuotedMatchedObj: MatchedStr = QuotedMatchedObj.group().strip() diff --git a/BaseTools/Source/Python/UPT/Xml/IniToXml.py b/BaseTools/Source/Python/UPT/Xml/IniToXml.py index 3dc4001313de..2c01c97fa519 100644 --- a/BaseTools/Source/Python/UPT/Xml/IniToXml.py +++ b/BaseTools/Source/Python/UPT/Xml/IniToXml.py @@ -200,9 +200,9 @@ def ValidateRegValues(Key, Value): ('[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}' '-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}', ST.ERR_GUID_VALUE % Value), - 'Version' : ('[0-9]+(\.[0-9]+)?', ST.ERR_VERSION_VALUE % \ + 'Version' : (r'[0-9]+(\.[0-9]+)?', ST.ERR_VERSION_VALUE % \ (Key, Value)), - 'XmlSpecification' : ('1\.1', ST.ERR_VERSION_XMLSPEC % Value) + 'XmlSpecification' : (r'1\.1', ST.ERR_VERSION_XMLSPEC % Value) } if Key not in ValidateMap: return True, '' diff --git a/BaseTools/Source/Python/UPT/Xml/PcdXml.py b/BaseTools/Source/Python/UPT/Xml/PcdXml.py index bbcee45a0132..ca95c820c9a9 100644 --- a/BaseTools/Source/Python/UPT/Xml/PcdXml.py +++ b/BaseTools/Source/Python/UPT/Xml/PcdXml.py @@ -100,11 +100,11 @@ def ToXml(self, PcdError, Key): def TransferValidRange2Expr(self, TokenSpaceGuidCName, CName, ValidRange): if self.Expression: pass - INT_RANGE_PATTERN1 = '[\t\s]*[0-9]+[\t\s]*-[\t\s]*[0-9]+' - INT_RANGE_PATTERN2 = '[\t\s]*(LT|GT|LE|GE|XOR|EQ)[\t\s]+\d+[\t\s]*' + INT_RANGE_PATTERN1 = r'[\t\s]*[0-9]+[\t\s]*-[\t\s]*[0-9]+' + INT_RANGE_PATTERN2 = r'[\t\s]*(LT|GT|LE|GE|XOR|EQ)[\t\s]+\d+[\t\s]*' HEX_RANGE_PATTERN1 = \ - '[\t\s]*0[xX][a-fA-F0-9]+[\t\s]*-[\t\s]*0[xX][a-fA-F0-9]+' - HEX_RANGE_PATTERN2 = '[\t\s]*(LT|GT|LE|GE|XOR|EQ)[\t\s]+0[xX][a-fA-F0-9]+[\t\s]*' + r'[\t\s]*0[xX][a-fA-F0-9]+[\t\s]*-[\t\s]*0[xX][a-fA-F0-9]+' + HEX_RANGE_PATTERN2 = r'[\t\s]*(LT|GT|LE|GE|XOR|EQ)[\t\s]+0[xX][a-fA-F0-9]+[\t\s]*' IntMatch1 = re.compile(INT_RANGE_PATTERN1) IntMatch2 = re.compile(INT_RANGE_PATTERN2) HexMatch1 = re.compile(HEX_RANGE_PATTERN1) @@ -158,18 +158,18 @@ def TransferValidEpxr2ValidRange(self, ValidRangeExpr): pass PCD_PATTERN = \ - '[\t\s]*[_a-zA-Z][a-zA-Z0-9_]*[\t\s]*\.[\t\s]*[_a-zA-Z][a-zA-Z0-9_]*[\t\s]*' + r'[\t\s]*[_a-zA-Z][a-zA-Z0-9_]*[\t\s]*\.[\t\s]*[_a-zA-Z][a-zA-Z0-9_]*[\t\s]*' IntPattern1 = \ - '[\t\s]*\([\t\s]*'+PCD_PATTERN+'[\t\s]+GE[\t\s]+\d+[\t\s]*\)[\t\s]+AND[\t\s]+\([\t\s]*'+\ - PCD_PATTERN+'[\t\s]+LE[\t\s]+\d+[\t\s]*\)' + r'[\t\s]*\([\t\s]*'+PCD_PATTERN+r'[\t\s]+GE[\t\s]+\d+[\t\s]*\)[\t\s]+AND[\t\s]+\([\t\s]*'+\ + PCD_PATTERN+r'[\t\s]+LE[\t\s]+\d+[\t\s]*\)' IntPattern1 = IntPattern1.replace(' ', '') - IntPattern2 = '[\t\s]*'+PCD_PATTERN+'[\t\s]+(LT|GT|LE|GE|XOR|EQ)[\t\s]+\d+[\t\s]*' + IntPattern2 = r'[\t\s]*'+PCD_PATTERN+r'[\t\s]+(LT|GT|LE|GE|XOR|EQ)[\t\s]+\d+[\t\s]*' HexPattern1 = \ - '[\t\s]*\([\t\s]*'+PCD_PATTERN+'[\t\s]+GE[\t\s]+0[xX][0-9a-fA-F]+[\t\s]*\)[\t\s]+AND[\t\s]+\([\t\s]*'+\ - PCD_PATTERN+'[\t\s]+LE[\t\s]+0[xX][0-9a-fA-F]+[\t\s]*\)' + r'[\t\s]*\([\t\s]*'+PCD_PATTERN+r'[\t\s]+GE[\t\s]+0[xX][0-9a-fA-F]+[\t\s]*\)[\t\s]+AND[\t\s]+\([\t\s]*'+\ + PCD_PATTERN+r'[\t\s]+LE[\t\s]+0[xX][0-9a-fA-F]+[\t\s]*\)' HexPattern1 = HexPattern1.replace(' ', '') - HexPattern2 = '[\t\s]*'+PCD_PATTERN+'[\t\s]+(LT|GT|LE|GE|XOR|EQ)[\t\s]+0[xX][0-9a-zA-Z]+[\t\s]*' + HexPattern2 = r'[\t\s]*'+PCD_PATTERN+r'[\t\s]+(LT|GT|LE|GE|XOR|EQ)[\t\s]+0[xX][0-9a-zA-Z]+[\t\s]*' # # Do the Hex1 conversion @@ -180,7 +180,7 @@ def TransferValidEpxr2ValidRange(self, ValidRangeExpr): # # To match items on both sides of '-' # - RangeItemList = re.compile('[\t\s]*0[xX][0-9a-fA-F]+[\t\s]*').findall(HexMatchedItem) + RangeItemList = re.compile(r'[\t\s]*0[xX][0-9a-fA-F]+[\t\s]*').findall(HexMatchedItem) if RangeItemList and len(RangeItemList) == 2: HexRangeDict[HexMatchedItem] = RangeItemList @@ -204,7 +204,7 @@ def TransferValidEpxr2ValidRange(self, ValidRangeExpr): # # To match items on both sides of '-' # - RangeItemList = re.compile('[\t\s]*\d+[\t\s]*').findall(MatchedItem) + RangeItemList = re.compile(r'[\t\s]*\d+[\t\s]*').findall(MatchedItem) if RangeItemList and len(RangeItemList) == 2: IntRangeDict[MatchedItem] = RangeItemList diff --git a/BaseTools/Source/Python/UPT/Xml/XmlParser.py b/BaseTools/Source/Python/UPT/Xml/XmlParser.py index 8e22a280f655..f23958883180 100644 --- a/BaseTools/Source/Python/UPT/Xml/XmlParser.py +++ b/BaseTools/Source/Python/UPT/Xml/XmlParser.py @@ -281,33 +281,33 @@ def ToXml(self, DistP): # XmlContent = \ re.sub(r'[\s\r\n]*SupArchList[\s\r\n]*=[\s\r\n]*"[\s\r\n]*COMMON' - '[\s\r\n]*"', '', XmlContent) + r'[\s\r\n]*"', '', XmlContent) XmlContent = \ re.sub(r'[\s\r\n]*SupArchList[\s\r\n]*=[\s\r\n]*"[\s\r\n]*common' - '[\s\r\n]*"', '', XmlContent) + r'[\s\r\n]*"', '', XmlContent) # # Remove COMMON # XmlContent = \ re.sub(r'[\s\r\n]*[\s\r\n]*COMMON[\s\r\n]*' - '[\s\r\n]*', '', XmlContent) + r'[\s\r\n]*', '', XmlContent) # # Remove common # XmlContent = \ re.sub(r'[\s\r\n]*[\s\r\n]*' - 'common[\s\r\n]*[\s\r\n]*', '', XmlContent) + r'common[\s\r\n]*[\s\r\n]*', '', XmlContent) # # Remove SupModList="COMMON" or "common" # XmlContent = \ re.sub(r'[\s\r\n]*SupModList[\s\r\n]*=[\s\r\n]*"[\s\r\n]*COMMON' - '[\s\r\n]*"', '', XmlContent) + r'[\s\r\n]*"', '', XmlContent) XmlContent = \ re.sub(r'[\s\r\n]*SupModList[\s\r\n]*=[\s\r\n]*"[\s\r\n]*common' - '[\s\r\n]*"', '', XmlContent) + r'[\s\r\n]*"', '', XmlContent) return XmlContent From 1eaf1a89beaf4caf1961da41b6bcd3fed32dc8f8 Mon Sep 17 00:00:00 2001 From: Mike Beaton Date: Sat, 6 Apr 2024 23:03:36 +0100 Subject: [PATCH 02/11] BaseTools: Fix redefinition of UINT8_MAX in Decompress.c on XCODE5 This is part of a sequence of commits to restore build on the XCODE5 toolchain. The definition is required on other toolchains, but on XCODE5 results in a macro redefined error (from the existing value 255) from /usr/include/stdint.h. Signed-off-by: Mike Beaton --- BaseTools/Source/C/Common/Decompress.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/BaseTools/Source/C/Common/Decompress.c b/BaseTools/Source/C/Common/Decompress.c index 0f2bdbffa72e..0cf0c4a0a8e5 100644 --- a/BaseTools/Source/C/Common/Decompress.c +++ b/BaseTools/Source/C/Common/Decompress.c @@ -15,7 +15,9 @@ SPDX-License-Identifier: BSD-2-Clause-Patent // // Decompression algorithm begins here // +#ifndef UINT8_MAX #define UINT8_MAX 0xff +#endif #define BITBUFSIZ 32 #define MAXMATCH 256 #define THRESHOLD 3 From 33a6901b476c647a3c49b4673756bed0c365d7c9 Mon Sep 17 00:00:00 2001 From: Mike Beaton Date: Sat, 6 Apr 2024 23:06:38 +0100 Subject: [PATCH 03/11] MdePkg: Fix DEBUG_CODE and PERF_CODE macros for XCODE5 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Addresses https://bugzilla.tianocore.org/show_bug.cgi?id=3704 Without these changes, we get the error: error: variable '__DebugCodeLocal' set but not used from the DebugLib.h DEBUG_CODE_BEGIN()/END() macros on XCODE5. Similarly, in NOOPT builds only, we get: error: variable '__PerformanceCodeLocal' set but not used from the PerformanceLib.h PERF_CODE_BEGIN()/END() macros on XCODE5. The modified versions works on all toolchains. The previous definitions of DEBUG_CODE_BEGIN() and DEBUG_CODE_END() use the local variable __DebugCodeLocal as an attempt to track parity: if DEBUG_CODE_END() is used without a preceding DEBUG_CODE_BEGIN(), __DebugCodeLocal will not have been declared and a compilation error will be issued. These mutations of the variable are not used to track nesting or similar. As the value of this variable is never actually used, recent Clang versions issue an "unused-but-set-variable" warning for it. To solve this, redefine __DebugCodeLocal as a BOOLEAN that is always FALSE and use it in a do-while loop condition as done explicitly in many places. As in the previous solution, DEBUG_CODE_END() cannot be used without DEBUG_CODE_BEGIN(), as __DebugCodeLocal will be not have been defined. Also make the matching change in the PERF_CODE_BEGIN()/END() macros. Signed-off-by: Marvin Häuser Signed-off-by: Mikhail Krichanov Signed-off-by: Mike Beaton --- MdePkg/Include/Library/DebugLib.h | 12 ++++++++++-- MdePkg/Include/Library/PerformanceLib.h | 12 ++++++++++-- 2 files changed, 20 insertions(+), 4 deletions(-) diff --git a/MdePkg/Include/Library/DebugLib.h b/MdePkg/Include/Library/DebugLib.h index fc5c83463d4a..e9f7b5b49e79 100644 --- a/MdePkg/Include/Library/DebugLib.h +++ b/MdePkg/Include/Library/DebugLib.h @@ -534,7 +534,12 @@ UnitTestDebugAssert ( are not included in a module. **/ -#define DEBUG_CODE_BEGIN() do { if (DebugCodeEnabled ()) { UINT8 __DebugCodeLocal +#define DEBUG_CODE_BEGIN() \ + do { \ + BOOLEAN __DebugCodeLocal; \ + __DebugCodeLocal = FALSE; \ + do { \ + if (DebugCodeEnabled ()) { /** The macro that marks the end of debug source code. @@ -545,7 +550,10 @@ UnitTestDebugAssert ( are not included in a module. **/ -#define DEBUG_CODE_END() __DebugCodeLocal = 0; __DebugCodeLocal++; } } while (FALSE) +#define DEBUG_CODE_END() \ + } \ + } while (__DebugCodeLocal); \ + } while (FALSE) /** The macro that declares a section of debug source code. diff --git a/MdePkg/Include/Library/PerformanceLib.h b/MdePkg/Include/Library/PerformanceLib.h index d0f2dfb070d5..57ba45eb7b58 100644 --- a/MdePkg/Include/Library/PerformanceLib.h +++ b/MdePkg/Include/Library/PerformanceLib.h @@ -734,7 +734,12 @@ LogPerformanceMeasurement ( Otherwise, the source lines between PERF_CODE_BEGIN() and PERF_CODE_END() are not included in a module. **/ -#define PERF_CODE_BEGIN() do { if (PerformanceMeasurementEnabled ()) { UINT8 __PerformanceCodeLocal +#define PERF_CODE_BEGIN() \ + do { \ + BOOLEAN __PerformanceCodeLocal; \ + __PerformanceCodeLocal = FALSE; \ + do { \ + if (PerformanceMeasurementEnabled ()) { /** Macro that marks the end of performance measurement source code. @@ -744,7 +749,10 @@ LogPerformanceMeasurement ( Otherwise, the source lines between PERF_CODE_BEGIN() and PERF_CODE_END() are not included in a module. **/ -#define PERF_CODE_END() __PerformanceCodeLocal = 0; __PerformanceCodeLocal++; } } while (FALSE) +#define PERF_CODE_END() \ + } \ + } while (__PerformanceCodeLocal); \ + } while (FALSE) /** Macro that declares a section of performance measurement source code. From f70414d480f830ec6db51ed8540ec802e763a5b1 Mon Sep 17 00:00:00 2001 From: Mike Beaton Date: Sat, 6 Apr 2024 23:09:49 +0100 Subject: [PATCH 04/11] MdeModulePkg/VariablePolicyLib: Fix extraneous parentheses Without this change we get: error: equality comparison with extraneous parentheses when building on XCODE5. Signed-off-by: Mike Beaton --- MdeModulePkg/Library/VariablePolicyLib/VariablePolicyLib.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/MdeModulePkg/Library/VariablePolicyLib/VariablePolicyLib.c b/MdeModulePkg/Library/VariablePolicyLib/VariablePolicyLib.c index 053b48d90e4d..f5b9418a3834 100644 --- a/MdeModulePkg/Library/VariablePolicyLib/VariablePolicyLib.c +++ b/MdeModulePkg/Library/VariablePolicyLib/VariablePolicyLib.c @@ -918,7 +918,7 @@ GetLockOnVariableStateVariablePolicyInfo ( LocalLockOnVarStatePolicy = (VARIABLE_LOCK_ON_VAR_STATE_POLICY *)(MatchPolicy + 1); CopyMem (VariablePolicy, LocalLockOnVarStatePolicy, sizeof (*LocalLockOnVarStatePolicy)); - if ((VariableLockPolicyVariableNameBufferSize == NULL)) { + if (VariableLockPolicyVariableNameBufferSize == NULL) { if (VariableLockPolicyVariableName != NULL) { return EFI_INVALID_PARAMETER; } From f753eb0f3cd2bc3f3ff64b3348e527e565c9cd05 Mon Sep 17 00:00:00 2001 From: Mike Beaton Date: Sat, 6 Apr 2024 23:20:02 +0100 Subject: [PATCH 05/11] CryptoPkg/OpensslLib: Fix build on XCODE5 REF: https://edk2.groups.io/g/devel/message/88179 Without this change, we get: fatal error: 'Availability.h' file not found when building on XCODE5. The workaround uses a define present in openssl/include/crypto/rand.h which modifies openssl behaviour on Apple only, causing the library to default to a non-system specific source of entropy in syscall_random() in rand_unix.c. Signed-off-by: Savva Mitrofanov Signed-off-by: Mike Beaton --- CryptoPkg/Library/OpensslLib/OpensslLib.inf | 4 ++-- CryptoPkg/Library/OpensslLib/OpensslLibAccel.inf | 4 ++-- CryptoPkg/Library/OpensslLib/OpensslLibCrypto.inf | 4 ++-- CryptoPkg/Library/OpensslLib/OpensslLibFull.inf | 4 ++-- CryptoPkg/Library/OpensslLib/OpensslLibFullAccel.inf | 4 ++-- 5 files changed, 10 insertions(+), 10 deletions(-) diff --git a/CryptoPkg/Library/OpensslLib/OpensslLib.inf b/CryptoPkg/Library/OpensslLib/OpensslLib.inf index d499eb710232..9bc9e5ec2bbf 100644 --- a/CryptoPkg/Library/OpensslLib/OpensslLib.inf +++ b/CryptoPkg/Library/OpensslLib/OpensslLib.inf @@ -739,8 +739,8 @@ # 1: ignore "#1-D: last line of file ends without a newline" # 3017: may be used before being set (NOTE: This was fixed in OpenSSL 1.1 HEAD with # commit d9b8b89bec4480de3a10bdaf9425db371c19145b, and can be dropped then.) - XCODE:*_*_IA32_CC_FLAGS = -mmmx -msse -U_WIN32 -U_WIN64 $(OPENSSL_FLAGS) $(OPENSSL_FLAGS_NOASM) -w -std=c99 -Wno-error=uninitialized - XCODE:*_*_X64_CC_FLAGS = -mmmx -msse -U_WIN32 -U_WIN64 $(OPENSSL_FLAGS) $(OPENSSL_FLAGS_NOASM) -w -std=c99 -Wno-error=uninitialized + XCODE:*_*_IA32_CC_FLAGS = -mmmx -msse -U_WIN32 -U_WIN64 $(OPENSSL_FLAGS) $(OPENSSL_FLAGS_NOASM) -w -std=c99 -Wno-error=uninitialized -DOPENSSL_NO_APPLE_CRYPTO_RANDOM + XCODE:*_*_X64_CC_FLAGS = -mmmx -msse -U_WIN32 -U_WIN64 $(OPENSSL_FLAGS) $(OPENSSL_FLAGS_NOASM) -w -std=c99 -Wno-error=uninitialized -DOPENSSL_NO_APPLE_CRYPTO_RANDOM # # AARCH64 uses strict alignment and avoids SIMD registers for code that may execute diff --git a/CryptoPkg/Library/OpensslLib/OpensslLibAccel.inf b/CryptoPkg/Library/OpensslLib/OpensslLibAccel.inf index dd07d0f72260..deabf82940d4 100644 --- a/CryptoPkg/Library/OpensslLib/OpensslLibAccel.inf +++ b/CryptoPkg/Library/OpensslLib/OpensslLibAccel.inf @@ -2027,8 +2027,8 @@ # 1: ignore "#1-D: last line of file ends without a newline" # 3017: may be used before being set (NOTE: This was fixed in OpenSSL 1.1 HEAD with # commit d9b8b89bec4480de3a10bdaf9425db371c19145b, and can be dropped then.) - XCODE:*_*_IA32_CC_FLAGS = -mmmx -msse -U_WIN32 -U_WIN64 $(OPENSSL_FLAGS) $(OPENSSL_FLAGS_IA32) -w -std=c99 -Wno-error=uninitialized - XCODE:*_*_X64_CC_FLAGS = -mmmx -msse -U_WIN32 -U_WIN64 $(OPENSSL_FLAGS) $(OPENSSL_FLAGS_X64) -w -std=c99 -Wno-error=uninitialized + XCODE:*_*_IA32_CC_FLAGS = -mmmx -msse -U_WIN32 -U_WIN64 $(OPENSSL_FLAGS) $(OPENSSL_FLAGS_IA32) -w -std=c99 -Wno-error=uninitialized -DOPENSSL_NO_APPLE_CRYPTO_RANDOM + XCODE:*_*_X64_CC_FLAGS = -mmmx -msse -U_WIN32 -U_WIN64 $(OPENSSL_FLAGS) $(OPENSSL_FLAGS_X64) -w -std=c99 -Wno-error=uninitialized -DOPENSSL_NO_APPLE_CRYPTO_RANDOM GCC:*_*_AARCH64_CC_FLAGS = $(OPENSSL_FLAGS) $(OPENSSL_FLAGS_AARCH64) -Wno-error=format -Wno-format -D_BITS_STDINT_UINTN_H -D_BITS_STDINT_INTN_H diff --git a/CryptoPkg/Library/OpensslLib/OpensslLibCrypto.inf b/CryptoPkg/Library/OpensslLib/OpensslLibCrypto.inf index d414988f7815..1590dda35335 100644 --- a/CryptoPkg/Library/OpensslLib/OpensslLibCrypto.inf +++ b/CryptoPkg/Library/OpensslLib/OpensslLibCrypto.inf @@ -695,8 +695,8 @@ # 1: ignore "#1-D: last line of file ends without a newline" # 3017: may be used before being set (NOTE: This was fixed in OpenSSL 1.1 HEAD with # commit d9b8b89bec4480de3a10bdaf9425db371c19145b, and can be dropped then.) - XCODE:*_*_IA32_CC_FLAGS = -mmmx -msse -U_WIN32 -U_WIN64 $(OPENSSL_FLAGS) $(OPENSSL_FLAGS_NOASM) -w -std=c99 -Wno-error=uninitialized - XCODE:*_*_X64_CC_FLAGS = -mmmx -msse -U_WIN32 -U_WIN64 $(OPENSSL_FLAGS) $(OPENSSL_FLAGS_NOASM) -w -std=c99 -Wno-error=uninitialized + XCODE:*_*_IA32_CC_FLAGS = -mmmx -msse -U_WIN32 -U_WIN64 $(OPENSSL_FLAGS) $(OPENSSL_FLAGS_NOASM) -w -std=c99 -Wno-error=uninitialized -DOPENSSL_NO_APPLE_CRYPTO_RANDOM + XCODE:*_*_X64_CC_FLAGS = -mmmx -msse -U_WIN32 -U_WIN64 $(OPENSSL_FLAGS) $(OPENSSL_FLAGS_NOASM) -w -std=c99 -Wno-error=uninitialized -DOPENSSL_NO_APPLE_CRYPTO_RANDOM # # AARCH64 uses strict alignment and avoids SIMD registers for code that may execute diff --git a/CryptoPkg/Library/OpensslLib/OpensslLibFull.inf b/CryptoPkg/Library/OpensslLib/OpensslLibFull.inf index 55c634290484..83f9d2195c50 100644 --- a/CryptoPkg/Library/OpensslLib/OpensslLibFull.inf +++ b/CryptoPkg/Library/OpensslLib/OpensslLibFull.inf @@ -793,8 +793,8 @@ # 1: ignore "#1-D: last line of file ends without a newline" # 3017: may be used before being set (NOTE: This was fixed in OpenSSL 1.1 HEAD with # commit d9b8b89bec4480de3a10bdaf9425db371c19145b, and can be dropped then.) - XCODE:*_*_IA32_CC_FLAGS = -mmmx -msse -U_WIN32 -U_WIN64 $(OPENSSL_FLAGS) $(OPENSSL_FLAGS_NOASM) -w -std=c99 -Wno-error=uninitialized - XCODE:*_*_X64_CC_FLAGS = -mmmx -msse -U_WIN32 -U_WIN64 $(OPENSSL_FLAGS) $(OPENSSL_FLAGS_NOASM) -w -std=c99 -Wno-error=uninitialized + XCODE:*_*_IA32_CC_FLAGS = -mmmx -msse -U_WIN32 -U_WIN64 $(OPENSSL_FLAGS) $(OPENSSL_FLAGS_NOASM) -w -std=c99 -Wno-error=uninitialized -DOPENSSL_NO_APPLE_CRYPTO_RANDOM + XCODE:*_*_X64_CC_FLAGS = -mmmx -msse -U_WIN32 -U_WIN64 $(OPENSSL_FLAGS) $(OPENSSL_FLAGS_NOASM) -w -std=c99 -Wno-error=uninitialized -DOPENSSL_NO_APPLE_CRYPTO_RANDOM # # AARCH64 uses strict alignment and avoids SIMD registers for code that may execute diff --git a/CryptoPkg/Library/OpensslLib/OpensslLibFullAccel.inf b/CryptoPkg/Library/OpensslLib/OpensslLibFullAccel.inf index b65ecf1e37cf..8e8c23937398 100644 --- a/CryptoPkg/Library/OpensslLib/OpensslLibFullAccel.inf +++ b/CryptoPkg/Library/OpensslLib/OpensslLibFullAccel.inf @@ -2179,8 +2179,8 @@ # 1: ignore "#1-D: last line of file ends without a newline" # 3017: may be used before being set (NOTE: This was fixed in OpenSSL 1.1 HEAD with # commit d9b8b89bec4480de3a10bdaf9425db371c19145b, and can be dropped then.) - XCODE:*_*_IA32_CC_FLAGS = -mmmx -msse -U_WIN32 -U_WIN64 $(OPENSSL_FLAGS) $(OPENSSL_FLAGS_IA32) -w -std=c99 -Wno-error=uninitialized - XCODE:*_*_X64_CC_FLAGS = -mmmx -msse -U_WIN32 -U_WIN64 $(OPENSSL_FLAGS) $(OPENSSL_FLAGS_X64) -w -std=c99 -Wno-error=uninitialized + XCODE:*_*_IA32_CC_FLAGS = -mmmx -msse -U_WIN32 -U_WIN64 $(OPENSSL_FLAGS) $(OPENSSL_FLAGS_IA32) -w -std=c99 -Wno-error=uninitialized -DOPENSSL_NO_APPLE_CRYPTO_RANDOM + XCODE:*_*_X64_CC_FLAGS = -mmmx -msse -U_WIN32 -U_WIN64 $(OPENSSL_FLAGS) $(OPENSSL_FLAGS_X64) -w -std=c99 -Wno-error=uninitialized -DOPENSSL_NO_APPLE_CRYPTO_RANDOM GCC:*_*_AARCH64_CC_FLAGS = $(OPENSSL_FLAGS) $(OPENSSL_FLAGS_AARCH64) -Wno-error=format -Wno-format -D_BITS_STDINT_UINTN_H -D_BITS_STDINT_INTN_H From 2182326b1bcd7c8def9abb9a0ebcc54eabfa8f1c Mon Sep 17 00:00:00 2001 From: Mike Beaton Date: Sat, 6 Apr 2024 23:22:19 +0100 Subject: [PATCH 06/11] CryptoPkg: Fix unused variable in CryptX509.c Without this change we get: error: variable 'Index' set but not used when building on XCODE5. Signed-off-by: Savva Mitrofanov Signed-off-by: Mike Beaton --- CryptoPkg/Library/BaseCryptLib/Pk/CryptX509.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/CryptoPkg/Library/BaseCryptLib/Pk/CryptX509.c b/CryptoPkg/Library/BaseCryptLib/Pk/CryptX509.c index 349d37b045fb..628e71439e3e 100644 --- a/CryptoPkg/Library/BaseCryptLib/Pk/CryptX509.c +++ b/CryptoPkg/Library/BaseCryptLib/Pk/CryptX509.c @@ -102,7 +102,6 @@ X509ConstructCertificateStackV ( STACK_OF (X509) *CertStack; BOOLEAN Status; - UINTN Index; // // Check input parameters. @@ -124,7 +123,7 @@ X509ConstructCertificateStackV ( } } - for (Index = 0; ; Index++) { + while (TRUE) { // // If Cert is NULL, then it is the end of the list. // From 07a1ecbb98ea1d4055cc3c4a2baca69fa358e56e Mon Sep 17 00:00:00 2001 From: Mike Beaton Date: Sat, 6 Apr 2024 23:23:40 +0100 Subject: [PATCH 07/11] NetworkPkg/Dhcp6Dxe: Fix extraneous parentheses Without this change we get: error: equality comparison with extraneous parentheses when building with -D NETWORK_IP6_ENABLE on XCODE5. Signed-off-by: Mike Beaton --- NetworkPkg/Dhcp6Dxe/Dhcp6Utility.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/NetworkPkg/Dhcp6Dxe/Dhcp6Utility.c b/NetworkPkg/Dhcp6Dxe/Dhcp6Utility.c index f38e3ee3fe1a..f72bc93a689f 100644 --- a/NetworkPkg/Dhcp6Dxe/Dhcp6Utility.c +++ b/NetworkPkg/Dhcp6Dxe/Dhcp6Utility.c @@ -1001,7 +1001,7 @@ Dhcp6AppendETOption ( return EFI_INVALID_PARAMETER; } - if ((Elapsed == NULL)) { + if (Elapsed == NULL) { return EFI_INVALID_PARAMETER; } From 48919b3270ee96df8a5c6acd16e55185600bc134 Mon Sep 17 00:00:00 2001 From: Mike Beaton Date: Fri, 20 Sep 2024 08:47:47 +0100 Subject: [PATCH 08/11] Temp disable other CI --- .azurepipelines/Ubuntu-GCC5.yml | 26 -- .azurepipelines/Ubuntu-PatchCheck.yml | 36 -- .azurepipelines/Windows-VS2019.yml | 29 -- .github/workflows/codeql.yml | 361 ------------------ .github/workflows/pr-labeler.yml | 36 -- .github/workflows/request-reviews.yml | 73 ---- .github/workflows/stale.yml | 44 --- .../.azurepipelines/Ubuntu-GCC5.yml | 174 --------- .../.azurepipelines/Ubuntu-GCC5.yml | 94 ----- .../.azurepipelines/Windows-VS2019.yml | 134 ------- .../.azurepipelines/Ubuntu-GCC5.yml | 216 ----------- .../.azurepipelines/Windows-VS2019.yml | 145 ------- 12 files changed, 1368 deletions(-) delete mode 100644 .azurepipelines/Ubuntu-GCC5.yml delete mode 100644 .azurepipelines/Ubuntu-PatchCheck.yml delete mode 100644 .azurepipelines/Windows-VS2019.yml delete mode 100644 .github/workflows/codeql.yml delete mode 100644 .github/workflows/pr-labeler.yml delete mode 100644 .github/workflows/request-reviews.yml delete mode 100644 .github/workflows/stale.yml delete mode 100644 ArmVirtPkg/PlatformCI/.azurepipelines/Ubuntu-GCC5.yml delete mode 100644 EmulatorPkg/PlatformCI/.azurepipelines/Ubuntu-GCC5.yml delete mode 100644 EmulatorPkg/PlatformCI/.azurepipelines/Windows-VS2019.yml delete mode 100644 OvmfPkg/PlatformCI/.azurepipelines/Ubuntu-GCC5.yml delete mode 100644 OvmfPkg/PlatformCI/.azurepipelines/Windows-VS2019.yml diff --git a/.azurepipelines/Ubuntu-GCC5.yml b/.azurepipelines/Ubuntu-GCC5.yml deleted file mode 100644 index b9a3b851cf3c..000000000000 --- a/.azurepipelines/Ubuntu-GCC5.yml +++ /dev/null @@ -1,26 +0,0 @@ -## @file -# Azure Pipeline build file for a build using ubuntu and GCC5 -# -# Copyright (c) Microsoft Corporation. -# Copyright (c) 2020, Hewlett Packard Enterprise Development LP. All rights reserved.
-# Copyright (c) 2022, Loongson Technology Corporation Limited. All rights reserved.
-# SPDX-License-Identifier: BSD-2-Clause-Patent -## -trigger: -- master -- stable/* -pr: -- master -- stable/* - -variables: - - template: templates/defaults.yml - -jobs: -- template: templates/pr-gate-build-job.yml - parameters: - tool_chain_tag: 'GCC5' - vm_image: 'ubuntu-22.04' - container: ${{ variables.default_linux_image }} - arch_list: "IA32,X64,ARM,AARCH64,RISCV64,LOONGARCH64" - usePythonVersion: '' # use Python from the container image diff --git a/.azurepipelines/Ubuntu-PatchCheck.yml b/.azurepipelines/Ubuntu-PatchCheck.yml deleted file mode 100644 index a397cf3f4db5..000000000000 --- a/.azurepipelines/Ubuntu-PatchCheck.yml +++ /dev/null @@ -1,36 +0,0 @@ -## @file -# Azure Pipielines YML file that evalues the patch series in a PR using the -# python script BaseTools/Scripts/PatchCheck.py. -# -# NOTE: This example monitors pull requests against the edk2-ci branch. Most -# environments would replace 'edk2-ci' with 'master'. -# -# Copyright (c) 2019 - 2020, Intel Corporation. All rights reserved.
-# SPDX-License-Identifier: BSD-2-Clause-Patent -# -# https://github.com/tianocore -# -## - -trigger: none - -pr: -- master -- stable/* - -pool: - vmImage: 'ubuntu-latest' - -steps: -- checkout: self - clean: true - -- task: UsePythonVersion@0 - inputs: - versionSpec: '3.12' - architecture: 'x64' - -- script: | - git fetch origin $(System.PullRequest.TargetBranch):$(System.PullRequest.TargetBranch) - python BaseTools/Scripts/PatchCheck.py $(System.PullRequest.TargetBranch)..$(System.PullRequest.SourceCommitId) - displayName: 'Use PatchCheck.py to verify patch series in pull request' diff --git a/.azurepipelines/Windows-VS2019.yml b/.azurepipelines/Windows-VS2019.yml deleted file mode 100644 index 58bb98d42b28..000000000000 --- a/.azurepipelines/Windows-VS2019.yml +++ /dev/null @@ -1,29 +0,0 @@ -## @file -# Azure Pipeline build file for a build using Windows and VS2019 -# -# Copyright (c) Microsoft Corporation. -# SPDX-License-Identifier: BSD-2-Clause-Patent -## -trigger: -- master -- stable/* - -pr: -- master -- stable/* - -variables: - - template: templates/defaults.yml - -jobs: -- template: templates/pr-gate-build-job.yml - parameters: - tool_chain_tag: 'VS2019' - vm_image: 'windows-2019' - arch_list: "IA32,X64" - usePythonVersion: ${{ variables.default_python_version }} - extra_install_step: - - powershell: choco install opencppcoverage; Write-Host "##vso[task.prependpath]C:\Program Files\OpenCppCoverage" - displayName: Install Code Coverage Tool - condition: and(gt(variables.pkg_count, 0), succeeded()) - diff --git a/.github/workflows/codeql.yml b/.github/workflows/codeql.yml deleted file mode 100644 index e0c5f69f6cdf..000000000000 --- a/.github/workflows/codeql.yml +++ /dev/null @@ -1,361 +0,0 @@ -# This workflow runs CodeQL against the repository. -# -# Results are uploaded to GitHub Code Scanning. -# -# Due to a known issue with the CodeQL extractor when building the edk2 -# codebase on Linux systems, only Windows agents are used for build with -# the VS toolchain. -# -# Copyright (c) Microsoft Corporation. -# SPDX-License-Identifier: BSD-2-Clause-Patent - -name: "CodeQL" - -on: - push: - branches: - - master - pull_request: - branches: - - master - paths-ignore: - - '!**.c' - - '!**.h' - -jobs: - analyze: - name: Analyze - runs-on: windows-2019 - permissions: - actions: read - contents: read - security-events: write - - strategy: - fail-fast: false - matrix: - include: - - Package: "ArmPkg" - ArchList: "IA32,X64" - - Package: "CryptoPkg" - ArchList: "IA32" - - Package: "CryptoPkg" - ArchList: "X64" - - Package: "DynamicTablesPkg" - ArchList: "IA32,X64" - - Package: "FatPkg" - ArchList: "IA32,X64" - - Package: "FmpDevicePkg" - ArchList: "IA32,X64" - - Package: "IntelFsp2Pkg" - ArchList: "IA32,X64" - - Package: "IntelFsp2WrapperPkg" - ArchList: "IA32,X64" - - Package: "MdeModulePkg" - ArchList: "IA32" - - Package: "MdeModulePkg" - ArchList: "X64" - - Package: "MdePkg" - ArchList: "IA32,X64" - - Package: "PcAtChipsetPkg" - ArchList: "IA32,X64" - - Package: "PrmPkg" - ArchList: "IA32,X64" - - Package: "SecurityPkg" - ArchList: "IA32,X64" - - Package: "ShellPkg" - ArchList: "IA32,X64" - - Package: "SourceLevelDebugPkg" - ArchList: "IA32,X64" - - Package: "StandaloneMmPkg" - ArchList: "IA32,X64" - - Package: "UefiCpuPkg" - ArchList: "IA32,X64" - - Package: "UnitTestFrameworkPkg" - ArchList: "IA32,X64" - - steps: - - name: Checkout repository - uses: actions/checkout@v4 - - - name: Install Python - uses: actions/setup-python@v5 - with: - python-version: '3.11' - cache: 'pip' - cache-dependency-path: 'pip-requirements.txt' - - - name: Use Git Long Paths on Windows - if: runner.os == 'Windows' - shell: pwsh - run: | - git config --system core.longpaths true - - - name: Install/Upgrade pip Modules - run: pip install -r pip-requirements.txt --upgrade requests sarif-tools - - - name: Determine CI Settings File Supported Operations - id: get_ci_file_operations - shell: python - run: | - import importlib - import os - import sys - from pathlib import Path - from edk2toolext.invocables.edk2_ci_setup import CiSetupSettingsManager - from edk2toolext.invocables.edk2_setup import SetupSettingsManager - - # Find the repo CI Settings file - ci_settings_file = list(Path(os.environ['GITHUB_WORKSPACE']).rglob('.pytool/CISettings.py')) - - # Note: At this point, submodules have not been pulled, only one CI Settings file should exist - if len(ci_settings_file) != 1 or not ci_settings_file[0].is_file(): - print("::error title=Workspace Error!::Failed to find CI Settings file!") - sys.exit(1) - - ci_settings_file = ci_settings_file[0] - - # Try Finding the Settings class in the file - module_name = 'ci_settings' - - spec = importlib.util.spec_from_file_location(module_name, ci_settings_file) - module = importlib.util.module_from_spec(spec) - spec.loader.exec_module(module) - - try: - settings = getattr(module, 'Settings') - except AttributeError: - print("::error title=Workspace Error!::Failed to find Settings class in CI Settings file!") - sys.exit(1) - - # Determine Which Operations Are Supported by the Settings Class - ci_setup_supported = issubclass(settings, CiSetupSettingsManager) - setup_supported = issubclass(settings, SetupSettingsManager) - - with open(os.environ['GITHUB_OUTPUT'], 'a') as fh: - print(f'ci_setup_supported={str(ci_setup_supported).lower()}', file=fh) - print(f'setup_supported={str(setup_supported).lower()}', file=fh) - - - name: Convert Arch to Log Format - id: convert_arch_hyphen - env: - ARCH_LIST: ${{ matrix.ArchList }} - shell: python - run: | - import os - - with open(os.environ['GITHUB_OUTPUT'], 'a') as fh: - print(f'arch_list={os.environ["ARCH_LIST"].replace(",", "-")}', file=fh) - - - name: Setup - if: steps.get_ci_file_operations.outputs.setup_supported == 'true' - run: stuart_setup -c .pytool/CISettings.py -t DEBUG -a ${{ matrix.ArchList }} TOOL_CHAIN_TAG=VS2019 - - - name: Upload Setup Log As An Artifact - uses: actions/upload-artifact@v4 - if: (success() || failure()) && steps.get_ci_file_operations.outputs.setup_supported == 'true' - with: - name: ${{ matrix.Package }}-${{ steps.convert_arch_hyphen.outputs.arch_list }}-Setup-Log - path: | - **/SETUPLOG.txt - retention-days: 7 - if-no-files-found: ignore - - - name: CI Setup - if: steps.get_ci_file_operations.outputs.ci_setup_supported == 'true' - run: stuart_ci_setup -c .pytool/CISettings.py -t DEBUG -a ${{ matrix.ArchList }} TOOL_CHAIN_TAG=VS2019 - - - name: Upload CI Setup Log As An Artifact - uses: actions/upload-artifact@v4 - if: (success() || failure()) && steps.get_ci_file_operations.outputs.ci_setup_supported == 'true' - with: - name: ${{ matrix.Package }}-${{ steps.convert_arch_hyphen.outputs.arch_list }}-CI-Setup-Log - path: | - **/CISETUP.txt - retention-days: 7 - if-no-files-found: ignore - - - name: Update - run: stuart_update -c .pytool/CISettings.py -t DEBUG -a ${{ matrix.ArchList }} TOOL_CHAIN_TAG=VS2019 - - - name: Upload Update Log As An Artifact - uses: actions/upload-artifact@v4 - if: success() || failure() - with: - name: ${{ matrix.Package }}-${{ steps.convert_arch_hyphen.outputs.arch_list }}-Update-Log - path: | - **/UPDATE_LOG.txt - retention-days: 7 - if-no-files-found: ignore - - - name: Build Tools From Source - run: python BaseTools/Edk2ToolsBuild.py -t VS2019 - - - name: Find CodeQL Plugin Directory - id: find_dir - shell: python - run: | - import os - import sys - from pathlib import Path - - # Find the plugin directory that contains the CodeQL plugin - plugin_dir = list(Path(os.environ['GITHUB_WORKSPACE']).rglob('BaseTools/Plugin/CodeQL')) - - # This should only be found once - if len(plugin_dir) == 1: - plugin_dir = str(plugin_dir[0]) - - with open(os.environ['GITHUB_OUTPUT'], 'a') as fh: - print(f'codeql_plugin_dir={plugin_dir}', file=fh) - else: - print("::error title=Workspace Error!::Failed to find CodeQL plugin directory!") - sys.exit(1) - - - name: Get CodeQL CLI Cache Data - id: cache_key_gen - env: - CODEQL_PLUGIN_DIR: ${{ steps.find_dir.outputs.codeql_plugin_dir }} - shell: python - run: | - import os - import yaml - - codeql_cli_ext_dep_name = 'codeqlcli_windows_ext_dep' - codeql_plugin_file = os.path.join(os.environ['CODEQL_PLUGIN_DIR'], codeql_cli_ext_dep_name + '.yaml') - - with open (codeql_plugin_file) as pf: - codeql_cli_ext_dep = yaml.safe_load(pf) - - cache_key_name = codeql_cli_ext_dep['name'] - cache_key_version = codeql_cli_ext_dep['version'] - cache_key = f'{cache_key_name}-{cache_key_version}' - - codeql_plugin_cli_ext_dep_dir = os.path.join(os.environ['CODEQL_PLUGIN_DIR'], codeql_cli_ext_dep['name'].strip() + '_extdep') - - with open(os.environ['GITHUB_OUTPUT'], 'a') as fh: - print(f'codeql_cli_cache_key={cache_key}', file=fh) - print(f'codeql_cli_ext_dep_dir={codeql_plugin_cli_ext_dep_dir}', file=fh) - - - name: Attempt to Load CodeQL CLI From Cache - id: codeqlcli_cache - uses: actions/cache@v4 - with: - path: ${{ steps.cache_key_gen.outputs.codeql_cli_ext_dep_dir }} - key: ${{ steps.cache_key_gen.outputs.codeql_cli_cache_key }} - - - name: Download CodeQL CLI - if: steps.codeqlcli_cache.outputs.cache-hit != 'true' - run: stuart_update -c .pytool/CISettings.py -t DEBUG -a ${{ matrix.ArchList }} TOOL_CHAIN_TAG=VS2019 --codeql - - - name: Remove CI Plugins Irrelevant to CodeQL - shell: python - env: - CODEQL_PLUGIN_DIR: ${{ steps.find_dir.outputs.codeql_plugin_dir }} - run: | - import os - import shutil - from pathlib import Path - - # Only these two plugins are needed for CodeQL - plugins_to_keep = ['CompilerPlugin'] - - plugin_dir = Path('.pytool/Plugin').absolute() - if plugin_dir.is_dir(): - for dir in plugin_dir.iterdir(): - if str(dir.stem) not in plugins_to_keep: - shutil.rmtree(str(dir.absolute()), ignore_errors=True) - - - name: CI Build - env: - STUART_CODEQL_PATH: ${{ steps.cache_key_gen.outputs.codeql_cli_ext_dep_dir }} - run: stuart_ci_build -c .pytool/CISettings.py -t DEBUG -p ${{ matrix.Package }} -a ${{ matrix.ArchList }} TOOL_CHAIN_TAG=VS2019 --codeql - - - name: Build Cleanup - id: build_cleanup - shell: python - run: | - import os - import shutil - from pathlib import Path - - dirs_to_delete = ['ia32', 'x64', 'arm', 'aarch64'] - - def delete_dirs(path: Path): - if path.exists() and path.is_dir(): - if path.name.lower() in dirs_to_delete: - print(f'Removed {str(path)}') - shutil.rmtree(path) - return - - for child_dir in path.iterdir(): - delete_dirs(child_dir) - - build_path = Path(os.environ['GITHUB_WORKSPACE'], 'Build') - delete_dirs(build_path) - - - name: Upload Build Logs As An Artifact - uses: actions/upload-artifact@v4 - if: success() || failure() - with: - name: ${{ matrix.Package }}-${{ steps.convert_arch_hyphen.outputs.arch_list }}-Build-Logs - path: | - **/BUILD_REPORT.TXT - **/OVERRIDELOG.TXT - **/BUILDLOG_*.md - **/BUILDLOG_*.txt - **/CI_*.md - **/CI_*.txt - retention-days: 7 - if-no-files-found: ignore - - - name: Prepare Env Data for CodeQL Upload - id: env_data - env: - PACKAGE_NAME: ${{ matrix.Package }} - shell: python - run: | - import logging - import os - from edk2toollib.utility_functions import RunCmd - from io import StringIO - from pathlib import Path - - package = os.environ['PACKAGE_NAME'].strip().lower() - directory_name = 'codeql-analysis-' + package + '-debug' - file_name = 'codeql-db-' + package + '-debug-0.sarif' - sarif_path = Path('Build', directory_name, file_name) - - with open(os.environ['GITHUB_OUTPUT'], 'a') as fh: - if sarif_path.is_file(): - emacs_file_path = sarif_path.with_name(sarif_path.stem + "-emacs.txt") - out_stream_buffer = StringIO() - exit_code = RunCmd("sarif", f"emacs {sarif_path} --output {emacs_file_path} --no-autotrim", - outstream=out_stream_buffer, - logging_level=logging.NOTSET) - print(f'upload_sarif_file=true', file=fh) - print(f'emacs_file_path={emacs_file_path}', file=fh) - print(f'sarif_file_path={sarif_path}', file=fh) - else: - print(f'upload_sarif_file=false', file=fh) - - - name: Upload CodeQL Results (SARIF) As An Artifact - uses: actions/upload-artifact@v4 - if: steps.env_data.outputs.upload_sarif_file == 'true' - with: - name: ${{ matrix.Package }}-${{ steps.convert_arch_hyphen.outputs.arch_list }}-CodeQL-SARIF - path: | - ${{ steps.env_data.outputs.emacs_file_path }} - ${{ steps.env_data.outputs.sarif_file_path }} - retention-days: 14 - if-no-files-found: warn - - - name: Upload CodeQL Results (SARIF) To GitHub Code Scanning - uses: github/codeql-action/upload-sarif@v3 - if: steps.env_data.outputs.upload_sarif_file == 'true' - with: - # Path to SARIF file relative to the root of the repository. - sarif_file: ${{ steps.env_data.outputs.sarif_file_path }} - # Optional category for the results. Used to differentiate multiple results for one commit. - # Each package is a separate category. - category: ${{ matrix.Package }} diff --git a/.github/workflows/pr-labeler.yml b/.github/workflows/pr-labeler.yml deleted file mode 100644 index b98489808454..000000000000 --- a/.github/workflows/pr-labeler.yml +++ /dev/null @@ -1,36 +0,0 @@ -# This workflow automatically applies labels to pull requests based on regular expression matches against the content -# in the pull request. -# -# Copyright (c) Microsoft Corporation. -# SPDX-License-Identifier: BSD-2-Clause-Patent -# -# For more information, see: -# https://github.com/github/issue-labeler - -name: Apply Labels Based on Message Content - -on: - pull_request_target: - types: - - edited - - opened - - reopened - - synchronize - workflow_dispatch: - -jobs: - sync: - name: Label PR from Description - runs-on: ubuntu-latest - - permissions: - contents: read - pull-requests: write - - steps: - - name: Apply Labels Based on PR Description - uses: github/issue-labeler@v3.4 - with: - configuration-path: .github/workflows/pr-labeler/regex.yml - enable-versioned-regex: 0 - repo-token: ${{ secrets.GITHUB_TOKEN }} diff --git a/.github/workflows/request-reviews.yml b/.github/workflows/request-reviews.yml deleted file mode 100644 index e5db19ca088d..000000000000 --- a/.github/workflows/request-reviews.yml +++ /dev/null @@ -1,73 +0,0 @@ - -# This workflow automatically adds the appropriate reviewers to a pull request. -# -# The workflow directly reuses logic in the BaseTools/Scripts/GetMaintainer.py script -# to determine the appropriate reviewers, so it matches what a user would see running -# the script locally. -# -# Copyright (c) Microsoft Corporation. -# SPDX-License-Identifier: BSD-2-Clause-Patent - -name: Add Pull Request Reviewers - -on: - pull_request_target: - branches: - - master - types: [opened, ready_for_review, reopened, synchronize] - -env: - GET_MAINTAINER_REL_PATH: "BaseTools/Scripts/GetMaintainer.py" - -jobs: - auto-request-review: - name: Add Pull Request Reviewers - # Do not run on draft PRs and only run on PRs in the tianocore organization - if: ${{ github.event.pull_request.draft == false && github.repository_owner == 'tianocore' }} - runs-on: ubuntu-latest - - permissions: - contents: read - issues: write - pull-requests: write - - steps: - - name: Generate Token - id: generate-token - uses: actions/create-github-app-token@v1 - with: - app-id: ${{ secrets.TIANOCORE_ASSIGN_REVIEWERS_APPLICATION_ID }} - private-key: ${{ secrets.TIANOCORE_ASSIGN_REVIEWERS_APPLICATION_PRIVATE_KEY }} - - # Reduce checkout time with sparse-checkout - # - .github: Contains the scripts to interact with Github and add reviewers - # - BaseTools/Scripts: Contains the GetMaintainer.py script - # - Maintainers.txt: Contains the list of maintainers for the repository - - name: Checkout repository - uses: actions/checkout@v4 - with: - fetch-depth: 1 - sparse-checkout: | - .github - BaseTools/Scripts - Maintainers.txt - - - name: Setup Python - uses: actions/setup-python@v5 - with: - python-version: '3.x' - cache: 'pip' - cache-dependency-path: '.github/scripts/requirements.txt' - - - name: Install PIP Modules - run: pip install -r .github/scripts/requirements.txt --upgrade - - - name: Add Reviewers to Pull Request - env: - GH_TOKEN: ${{ steps.generate-token.outputs.token }} - ORG_NAME: ${{ github.repository_owner }} - PR_NUMBER: ${{ github.event.number}} - REPO_NAME: ${{ github.event.pull_request.base.repo.name }} - TARGET_BRANCH: ${{ github.event.pull_request.base.ref }} - WORKSPACE_PATH: ${{ github.workspace }} - run: python .github/scripts/RequestPrReviewers.py diff --git a/.github/workflows/stale.yml b/.github/workflows/stale.yml deleted file mode 100644 index b9160b548ab3..000000000000 --- a/.github/workflows/stale.yml +++ /dev/null @@ -1,44 +0,0 @@ -# This workflow warns and then closes issues and PRs that have had no activity -# for a specified amount of time. -# -# For more information, see: -# https://github.com/actions/stale -# -# Copyright (c) Microsoft Corporation. -# SPDX-License-Identifier: BSD-2-Clause-Patent -# - -name: Stale Check - -on: - schedule: - # At 23:35 on every day-of-week from Sunday through Saturday - # https://crontab.guru/#35_23_*_*_0-6 - - cron: '35 23 * * 0-6' - workflow_dispatch: - -jobs: - stale: - name: Stale - runs-on: ubuntu-latest - permissions: - issues: write - pull-requests: write - - steps: - - name: Check for Stale Items - uses: actions/stale@v8 - with: - days-before-issue-close: -1 - days-before-issue-stale: -1 - days-before-pr-stale: 60 - days-before-pr-close: 7 - stale-pr-message: > - This PR has been automatically marked as stale because it has not had - activity in 60 days. It will be closed if no further activity occurs within - 7 days. Thank you for your contributions. - close-pr-message: > - This pull request has been automatically been closed because it did not have any - activity in 60 days and no follow up within 7 days after being marked stale. - Thank you for your contributions. - stale-pr-label: stale diff --git a/ArmVirtPkg/PlatformCI/.azurepipelines/Ubuntu-GCC5.yml b/ArmVirtPkg/PlatformCI/.azurepipelines/Ubuntu-GCC5.yml deleted file mode 100644 index ab8a2db53026..000000000000 --- a/ArmVirtPkg/PlatformCI/.azurepipelines/Ubuntu-GCC5.yml +++ /dev/null @@ -1,174 +0,0 @@ -## @file -# Azure Pipeline build file for building a platform. -# -# Platform: ArmVirtQemu -# OS: Ubuntu -# Toolchain: GCC5 -# -# Copyright (c) Microsoft Corporation. -# SPDX-License-Identifier: BSD-2-Clause-Patent -## -trigger: - - master - - stable/* -pr: - - master - - stable/* - -variables: - - template: ../../../.azurepipelines/templates/defaults.yml - -jobs: - - job: Platform_CI - variables: - package: 'ArmVirtPkg' - vm_image: 'ubuntu-22.04' - should_run: true - run_flags: "MAKE_STARTUP_NSH=TRUE QEMU_HEADLESS=TRUE" - - #Use matrix to speed up the build process - strategy: - matrix: - QEMU_AARCH64_DEBUG: - Build.File: "$(package)/PlatformCI/QemuBuild.py" - Build.Arch: "AARCH64" - Build.Flags: "BLD_*_SECURE_BOOT_ENABLE=1 BLD_*_TPM2_ENABLE=1 BLD_*_NETWORK_TLS_ENABLE=1 BLD_*_NETWORK_IP6_ENABLE=1 BLD_*_NETWORK_HTTP_BOOT_ENABLE=1" - Build.Target: "DEBUG" - Run.Flags: $(run_flags) - Run: $(should_run) - QEMU_AARCH64_RELEASE: - Build.File: "$(package)/PlatformCI/QemuBuild.py" - Build.Arch: "AARCH64" - Build.Flags: "BLD_*_SECURE_BOOT_ENABLE=1 BLD_*_TPM2_ENABLE=1 BLD_*_NETWORK_TLS_ENABLE=1 BLD_*_NETWORK_IP6_ENABLE=1 BLD_*_NETWORK_HTTP_BOOT_ENABLE=1" - Build.Target: "RELEASE" - Run.Flags: $(run_flags) - Run: $(should_run) - QEMU_AARCH64_NOOPT: - Build.File: "$(package)/PlatformCI/QemuBuild.py" - Build.Arch: "AARCH64" - Build.Flags: "BLD_*_SECURE_BOOT_ENABLE=1 BLD_*_TPM2_ENABLE=1 BLD_*_NETWORK_TLS_ENABLE=1 BLD_*_NETWORK_IP6_ENABLE=1 BLD_*_NETWORK_HTTP_BOOT_ENABLE=1" - Build.Target: "NOOPT" - Run.Flags: $(run_flags) - Run: $(should_run) - QEMU_ARM_DEBUG: - Build.File: "$(package)/PlatformCI/QemuBuild.py" - Build.Arch: "ARM" - Build.Flags: "" - Build.Target: "DEBUG" - Run.Flags: $(run_flags) - Run: $(should_run) - QEMU_ARM_RELEASE: - Build.File: "$(package)/PlatformCI/QemuBuild.py" - Build.Arch: "ARM" - Build.Flags: "" - Build.Target: "RELEASE" - Run.Flags: $(run_flags) - Run: $(should_run) - QEMU_ARM_NOOPT: - Build.File: "$(package)/PlatformCI/QemuBuild.py" - Build.Arch: "ARM" - Build.Flags: "" - Build.Target: "NOOPT" - Run.Flags: $(run_flags) - Run: $(should_run) - - QEMU_KERNEL_AARCH64_DEBUG: - Build.File: "$(package)/PlatformCI/QemuKernelBuild.py" - Build.Arch: "AARCH64" - Build.Flags: "" - Build.Target: "DEBUG" - Run.Flags: $(run_flags) - Run: $(should_run) - QEMU_KERNEL_AARCH64_RELEASE: - Build.File: "$(package)/PlatformCI/QemuKernelBuild.py" - Build.Arch: "AARCH64" - Build.Flags: "" - Build.Target: "RELEASE" - Run.Flags: $(run_flags) - Run: $(should_run) - QEMU_KERNEL_AARCH64_NOOPT: - Build.File: "$(package)/PlatformCI/QemuKernelBuild.py" - Build.Arch: "AARCH64" - Build.Flags: "" - Build.Target: "NOOPT" - Run.Flags: $(run_flags) - Run: $(should_run) - QEMU_KERNEL_ARM_DEBUG: - Build.File: "$(package)/PlatformCI/QemuKernelBuild.py" - Build.Arch: "ARM" - Build.Flags: "" - Build.Target: "DEBUG" - Run.Flags: $(run_flags) - Run: $(should_run) - QEMU_KERNEL_ARM_RELEASE: - Build.File: "$(package)/PlatformCI/QemuKernelBuild.py" - Build.Arch: "ARM" - Build.Flags: "" - Build.Target: "RELEASE" - Run.Flags: $(run_flags) - Run: $(should_run) - QEMU_KERNEL_ARM_NOOPT: - Build.File: "$(package)/PlatformCI/QemuKernelBuild.py" - Build.Arch: "ARM" - Build.Flags: "" - Build.Target: "NOOPT" - Run.Flags: $(run_flags) - Run: $(should_run) - - KVMTOOL_AARCH64_DEBUG: - Build.File: "$(package)/PlatformCI/KvmToolBuild.py" - Build.Arch: "AARCH64" - Build.Flags: "" - Build.Target: "DEBUG" - Run: false - KVMTOOL_AARCH64_RELEASE: - Build.File: "$(package)/PlatformCI/KvmToolBuild.py" - Build.Arch: "AARCH64" - Build.Flags: "" - Build.Target: "RELEASE" - Run: false - KVMTOOL_ARM_DEBUG: - Build.File: "$(package)/PlatformCI/KvmToolBuild.py" - Build.Arch: "ARM" - Build.Flags: "" - Build.Target: "DEBUG" - Run: false - KVMTOOL_ARM_RELEASE: - Build.File: "$(package)/PlatformCI/KvmToolBuild.py" - Build.Arch: "ARM" - Build.Flags: "" - Build.Target: "RELEASE" - Run: false - - CLOUDHV_AARCH64_DEBUG: - Build.File: "$(package)/PlatformCI/CloudHvBuild.py" - Build.Arch: "AARCH64" - Build.Flags: "" - Build.Target: "DEBUG" - Run: false - CLOUDHV_AARCH64_RELEASE: - Build.File: "$(package)/PlatformCI/CloudHvBuild.py" - Build.Arch: "AARCH64" - Build.Flags: "" - Build.Target: "RELEASE" - Run: false - - workspace: - clean: all - - pool: - vmImage: $(vm_image) - - container: ${{ variables.default_linux_image }} - - steps: - - template: ../../../.azurepipelines/templates/platform-build-run-steps.yml - parameters: - tool_chain_tag: GCC5 - build_pkg: $(package) - build_target: $(Build.Target) - build_arch: $(Build.Arch) - build_file: $(Build.File) - build_flags: $(Build.Flags) - run_flags: $(Run.Flags) - usePythonVersion: '' # use Python from the container image diff --git a/EmulatorPkg/PlatformCI/.azurepipelines/Ubuntu-GCC5.yml b/EmulatorPkg/PlatformCI/.azurepipelines/Ubuntu-GCC5.yml deleted file mode 100644 index 8af4c9c778cb..000000000000 --- a/EmulatorPkg/PlatformCI/.azurepipelines/Ubuntu-GCC5.yml +++ /dev/null @@ -1,94 +0,0 @@ -## @file -# Azure Pipeline build file for building a platform. -# -# Platform: EmulatorPkg -# OS: Ubuntu -# Toolchain: GCC5 -# -# Copyright (c) Microsoft Corporation. -# Copyright (c) 2020, Intel Corporation. All rights reserved. -# SPDX-License-Identifier: BSD-2-Clause-Patent -## -trigger: - - master - - stable/* -pr: - - master - - stable/* - -variables: - - template: ../../../.azurepipelines/templates/defaults.yml - -jobs: - - job: Platform_CI - variables: - package: 'EmulatorPkg' - vm_image: 'ubuntu-22.04' - should_run: false - run_flags: "MAKE_STARTUP_NSH=TRUE" - - #Use matrix to speed up the build process - strategy: - matrix: - EmulatorPkg_X64_DEBUG: - Build.File: "$(package)/PlatformCI/PlatformBuild.py" - Build.Arch: "X64" - Build.Flags: "" - Build.Target: "DEBUG" - Run.Flags: $(run_flags) - Run: $(should_run) - EmulatorPkg_X64_RELEASE: - Build.File: "$(package)/PlatformCI/PlatformBuild.py" - Build.Arch: "X64" - Build.Flags: "" - Build.Target: "RELEASE" - Run.Flags: $(run_flags) - Run: $(should_run) - EmulatorPkg_X64_NOOPT: - Build.File: "$(package)/PlatformCI/PlatformBuild.py" - Build.Arch: "X64" - Build.Flags: "" - Build.Target: "NOOPT" - Run.Flags: $(run_flags) - Run: $(should_run) - EmulatorPkg_X64_FULL_DEBUG: - Build.File: "$(package)/PlatformCI/PlatformBuild.py" - Build.Arch: "X64" - Build.Flags: "BLD_*_SECURE_BOOT_ENABLE=TRUE" - Build.Target: "DEBUG" - Run.Flags: $(run_flags) - Run: $(should_run) - EmulatorPkg_X64_FULL_RELEASE: - Build.File: "$(package)/PlatformCI/PlatformBuild.py" - Build.Arch: "X64" - Build.Flags: "BLD_*_SECURE_BOOT_ENABLE=TRUE" - Build.Target: "RELEASE" - Run.Flags: $(run_flags) - Run: $(should_run) - EmulatorPkg_X64_FULL_NOOPT: - Build.File: "$(package)/PlatformCI/PlatformBuild.py" - Build.Arch: "X64" - Build.Flags: "BLD_*_SECURE_BOOT_ENABLE=TRUE" - Build.Target: "NOOPT" - Run.Flags: $(run_flags) - Run: $(should_run) - - workspace: - clean: all - - pool: - vmImage: $(vm_image) - - container: ${{ variables.default_linux_image }} - - steps: - - template: ../../../.azurepipelines/templates/platform-build-run-steps.yml - parameters: - tool_chain_tag: GCC5 - build_pkg: $(package) - build_target: $(Build.Target) - build_arch: $(Build.Arch) - build_file: $(Build.File) - build_flags: $(Build.Flags) - run_flags: $(Run.Flags) - usePythonVersion: '' # use Python from the container image diff --git a/EmulatorPkg/PlatformCI/.azurepipelines/Windows-VS2019.yml b/EmulatorPkg/PlatformCI/.azurepipelines/Windows-VS2019.yml deleted file mode 100644 index 09960e7c7a6e..000000000000 --- a/EmulatorPkg/PlatformCI/.azurepipelines/Windows-VS2019.yml +++ /dev/null @@ -1,134 +0,0 @@ -## @file -# Azure Pipeline build file for building a platform. -# -# Platform: EMULATORPKG -# OS: Windows -# Toolchain: VS2019 -# -# Copyright (c) Microsoft Corporation. -# Copyright (c) 2020, Intel Corporation. All rights reserved. -# SPDX-License-Identifier: BSD-2-Clause-Patent -## -trigger: - - master - - stable/* -pr: - - master - - stable/* - -variables: - - template: ../../../.azurepipelines/templates/defaults.yml - -jobs: - - job: Platform_CI - variables: - package: 'EmulatorPkg' - vm_image: 'windows-2019' - should_run: true - run_flags: "MAKE_STARTUP_NSH=TRUE" - - #Use matrix to speed up the build process - strategy: - matrix: - EmulatorPkg_X64_DEBUG: - Build.File: "$(package)/PlatformCI/PlatformBuild.py" - Build.Arch: "X64" - Build.Flags: "" - Build.Target: "DEBUG" - Run.Flags: $(run_flags) - Run: $(should_run) - EmulatorPkg_X64_RELEASE: - Build.File: "$(package)/PlatformCI/PlatformBuild.py" - Build.Arch: "X64" - Build.Flags: "" - Build.Target: "RELEASE" - Run.Flags: $(run_flags) - Run: $(should_run) - EmulatorPkg_X64_NOOPT: - Build.File: "$(package)/PlatformCI/PlatformBuild.py" - Build.Arch: "X64" - Build.Flags: "" - Build.Target: "NOOPT" - Run.Flags: $(run_flags) - Run: $(should_run) - EmulatorPkg_IA32_DEBUG: - Build.File: "$(package)/PlatformCI/PlatformBuild.py" - Build.Arch: "IA32 " - Build.Flags: "" - Build.Target: "DEBUG" - Run.Flags: $(run_flags) - Run: $(should_run) - EmulatorPkg_IA32_RELEASE: - Build.File: "$(package)/PlatformCI/PlatformBuild.py" - Build.Arch: "IA32 " - Build.Flags: "" - Build.Target: "RELEASE" - Run.Flags: $(run_flags) - Run: $(should_run) - EmulatorPkg_IA32_NOOPT: - Build.File: "$(package)/PlatformCI/PlatformBuild.py" - Build.Arch: "IA32 " - Build.Flags: "" - Build.Target: "NOOPT" - Run.Flags: $(run_flags) - Run: $(should_run) - EmulatorPkg_X64_FULL_DEBUG: - Build.File: "$(package)/PlatformCI/PlatformBuild.py" - Build.Arch: "X64" - Build.Flags: "BLD_*_SECURE_BOOT_ENABLE=TRUE" - Build.Target: "DEBUG" - Run.Flags: $(run_flags) - Run: $(should_run) - EmulatorPkg_X64_FULL_RELEASE: - Build.File: "$(package)/PlatformCI/PlatformBuild.py" - Build.Arch: "X64" - Build.Flags: "BLD_*_SECURE_BOOT_ENABLE=TRUE" - Build.Target: "RELEASE" - Run.Flags: $(run_flags) - Run: $(should_run) - EmulatorPkg_X64_FULL_NOOPT: - Build.File: "$(package)/PlatformCI/PlatformBuild.py" - Build.Arch: "X64" - Build.Flags: "BLD_*_SECURE_BOOT_ENABLE=TRUE" - Build.Target: "NOOPT" - Run.Flags: $(run_flags) - Run: $(should_run) - EmulatorPkg_IA32_FULL_DEBUG: - Build.File: "$(package)/PlatformCI/PlatformBuild.py" - Build.Arch: "IA32" - Build.Flags: "BLD_*_SECURE_BOOT_ENABLE=TRUE" - Build.Target: "DEBUG" - Run.Flags: $(run_flags) - Run: $(should_run) - EmulatorPkg_IA32_FULL_RELEASE: - Build.File: "$(package)/PlatformCI/PlatformBuild.py" - Build.Arch: "IA32" - Build.Flags: "BLD_*_SECURE_BOOT_ENABLE=TRUE" - Build.Target: "RELEASE" - Run.Flags: $(run_flags) - Run: $(should_run) - EmulatorPkg_IA32_FULL_NOOPT: - Build.File: "$(package)/PlatformCI/PlatformBuild.py" - Build.Arch: "IA32" - Build.Flags: "BLD_*_SECURE_BOOT_ENABLE=TRUE" - Build.Target: "NOOPT" - Run.Flags: $(run_flags) - Run: $(should_run) - - workspace: - clean: all - - pool: - vmImage: $(vm_image) - - steps: - - template: ../../../.azurepipelines/templates/platform-build-run-steps.yml - parameters: - tool_chain_tag: VS2019 - build_pkg: $(package) - build_target: $(Build.Target) - build_arch: $(Build.Arch) - build_file: $(Build.File) - build_flags: $(Build.Flags) - run_flags: $(Run.Flags) - usePythonVersion: ${{ variables.default_python_version }} diff --git a/OvmfPkg/PlatformCI/.azurepipelines/Ubuntu-GCC5.yml b/OvmfPkg/PlatformCI/.azurepipelines/Ubuntu-GCC5.yml deleted file mode 100644 index 6762c2cc3a78..000000000000 --- a/OvmfPkg/PlatformCI/.azurepipelines/Ubuntu-GCC5.yml +++ /dev/null @@ -1,216 +0,0 @@ -## @file -# Azure Pipeline build file for building a platform. -# -# Platform: OVMF -# OS: Ubuntu -# Toolchain: GCC5 -# -# Copyright (c) Microsoft Corporation. -# SPDX-License-Identifier: BSD-2-Clause-Patent -## -trigger: - - master - - stable/* -pr: - - master - - stable/* - -variables: - - template: ../../../.azurepipelines/templates/defaults.yml - -jobs: - - job: Platform_CI - variables: - package: 'OvmfPkg' - vm_image: 'ubuntu-22.04' - should_run: true - run_flags: "MAKE_STARTUP_NSH=TRUE QEMU_HEADLESS=TRUE" - - #Use matrix to speed up the build process - strategy: - matrix: - OVMF_IA32_DEBUG: - Build.File: "$(package)/PlatformCI/PlatformBuild.py" - Build.Arch: "IA32" - Build.Flags: "" - Build.Target: "DEBUG" - Run.Flags: $(run_flags) - Run: $(should_run) - OVMF_IA32_RELEASE: - Build.File: "$(package)/PlatformCI/PlatformBuild.py" - Build.Arch: "IA32" - Build.Flags: "" - Build.Target: "RELEASE" - Run.Flags: $(run_flags) - Run: $(should_run) - OVMF_IA32_NOOPT: - Build.File: "$(package)/PlatformCI/PlatformBuild.py" - Build.Arch: "IA32" - Build.Flags: "" - Build.Target: "NOOPT" - Run.Flags: $(run_flags) - Run: $(should_run) - - OVMF_X64_DEBUG: - Build.File: "$(package)/PlatformCI/PlatformBuild.py" - Build.Arch: "X64" - Build.Flags: "" - Build.Target: "DEBUG" - Run.Flags: $(run_flags) - Run: $(should_run) - OVMF_X64_RELEASE: - Build.File: "$(package)/PlatformCI/PlatformBuild.py" - Build.Arch: "X64" - Build.Flags: "" - Build.Target: "RELEASE" - Run.Flags: $(run_flags) - Run: $(should_run) - OVMF_X64_NOOPT: - Build.File: "$(package)/PlatformCI/PlatformBuild.py" - Build.Arch: "X64" - Build.Flags: "" - Build.Target: "NOOPT" - Run.Flags: $(run_flags) - Run: $(should_run) - - OVMF_IA32X64_DEBUG: - Build.File: "$(package)/PlatformCI/PlatformBuild.py" - Build.Arch: "IA32,X64" - Build.Flags: "" - Build.Target: "DEBUG" - Run.Flags: $(run_flags) - Run: $(should_run) - OVMF_IA32X64_RELEASE: - Build.File: "$(package)/PlatformCI/PlatformBuild.py" - Build.Arch: "IA32,X64" - Build.Flags: "" - Build.Target: "RELEASE" - Run.Flags: $(run_flags) - Run: $(should_run) - OVMF_IA32X64_NOOPT: - Build.File: "$(package)/PlatformCI/PlatformBuild.py" - Build.Arch: "IA32,X64" - Build.Flags: "" - Build.Target: "NOOPT" - Run.Flags: $(run_flags) - Run: $(should_run) - - OVMF_IA32X64_FULL_DEBUG: - Build.File: "$(package)/PlatformCI/PlatformBuild.py" - Build.Arch: "IA32,X64" - Build.Flags: "BLD_*_SECURE_BOOT_ENABLE=1 BLD_*_SMM_REQUIRE=1 BLD_*_TPM2_ENABLE=1 BLD_*_NETWORK_TLS_ENABLE=1 BLD_*_NETWORK_IP6_ENABLE=1 BLD_*_NETWORK_HTTP_BOOT_ENABLE=1" - Build.Target: "DEBUG" - Run.Flags: $(run_flags) - Run: $(should_run) - OVMF_IA32X64_FULL_RELEASE: - Build.File: "$(package)/PlatformCI/PlatformBuild.py" - Build.Arch: "IA32,X64" - Build.Flags: "BLD_*_SECURE_BOOT_ENABLE=1 BLD_*_SMM_REQUIRE=1 BLD_*_TPM2_ENABLE=1 BLD_*_NETWORK_TLS_ENABLE=1 BLD_*_NETWORK_IP6_ENABLE=1 BLD_*_NETWORK_HTTP_BOOT_ENABLE=1" - Build.Target: "RELEASE" - Run.Flags: $(run_flags) - Run: $(should_run) - # This currently creates a very large image which is too big for the FDF declared range, - # skip this build for now. - # - # OVMF_IA32X64_FULL_NOOPT: - # Build.File: "$(package)/PlatformCI/PlatformBuild.py" - # Build.Arch: "IA32,X64" - # Build.Flags: "BLD_*_SECURE_BOOT_ENABLE=1 BLD_*_SMM_REQUIRE=1 BLD_*_TPM2_ENABLE=1 BLD_*_NETWORK_TLS_ENABLE=1 BLD_*_NETWORK_IP6_ENABLE=1 BLD_*_NETWORK_HTTP_BOOT_ENABLE=1" - # Build.Target: "NOOPT" - # Run.Flags: $(run_flags) - # Run: $(should_run) - - AMDSEV_X64_DEBUG: - Build.File: "$(package)/PlatformCI/AmdSevBuild.py" - Build.Arch: "X64" - Build.Flags: "" - Build.Target: "DEBUG" - # restricted + stripped down build - # can't boot to uefi shell -> skip test - Run.Flags: "QEMU_SKIP=TRUE" - Run: $(should_run) - - BHYVE_X64_DEBUG: - Build.File: "$(package)/PlatformCI/BhyveBuild.py" - Build.Arch: "X64" - Build.Flags: "" - Build.Target: "DEBUG" - # this build is for freebsd bhyve not qemu-kvm - Run.Flags: "QEMU_SKIP=TRUE" - Run: $(should_run) - - CLOUDHV_X64_DEBUG: - Build.File: "$(package)/PlatformCI/CloudHvBuild.py" - Build.Arch: "X64" - Build.Flags: "" - Build.Target: "DEBUG" - # this build is for cloud-hypervisor not qemu-kvm - Run.Flags: "QEMU_SKIP=TRUE" - Run: $(should_run) - - MICROVM_X64_DEBUG: - Build.File: "$(package)/PlatformCI/MicrovmBuild.py" - Build.Arch: "X64" - Build.Flags: "" - Build.Target: "DEBUG" - # no storage supported by microvm build - # can't boot to uefi shell -> skip test - Run.Flags: "QEMU_SKIP=TRUE" - Run: $(should_run) - - OVMF_XEN_X64_DEBUG: - Build.File: "$(package)/PlatformCI/XenBuild.py" - Build.Arch: "X64" - Build.Flags: "" - Build.Target: "DEBUG" - # this build is for xen not qemu-kvm - Run.Flags: "QEMU_SKIP=TRUE" - Run: $(should_run) - - INTELTDX_X64_DEBUG: - Build.File: "$(package)/PlatformCI/IntelTdxBuild.py" - Build.Arch: "X64" - Build.Flags: "" - Build.Target: "DEBUG" - # no storage supported by microvm build - # can't boot to uefi shell -> skip test - Run.Flags: "QEMU_SKIP=TRUE" - Run: $(should_run) - - QEMU_RISCV64_DEBUG: - Build.File: "$(package)/PlatformCI/QemuBuild.py" - Build.Arch: "RISCV64" - Build.Flags: "" - Build.Target: "DEBUG" - # this build is for RISC-V qemu virt not qemu-kvm - Run.Flags: "QEMU_SKIP=TRUE" - Run: $(should_run) - - QEMU_LOONGARCH64_DEBUG: - Build.File: "$(package)/PlatformCI/QemuBuild.py" - Build.Arch: "LOONGARCH64" - Build.Flags: "" - Build.Target: "DEBUG" - # this build is for LOONGARCH qemu virt not qemu-kvm - Run.Flags: "QEMU_SKIP=TRUE" - Run: $(should_run) - - workspace: - clean: all - - pool: - vmImage: $(vm_image) - - container: ${{ variables.default_linux_image }} - - steps: - - template: ../../../.azurepipelines/templates/platform-build-run-steps.yml - parameters: - tool_chain_tag: GCC5 - build_pkg: $(package) - build_target: $(Build.Target) - build_arch: $(Build.Arch) - build_file: $(Build.File) - build_flags: $(Build.Flags) - run_flags: $(Run.Flags) - usePythonVersion: '' # use Python from the container image diff --git a/OvmfPkg/PlatformCI/.azurepipelines/Windows-VS2019.yml b/OvmfPkg/PlatformCI/.azurepipelines/Windows-VS2019.yml deleted file mode 100644 index cada81023548..000000000000 --- a/OvmfPkg/PlatformCI/.azurepipelines/Windows-VS2019.yml +++ /dev/null @@ -1,145 +0,0 @@ -## @file -# Azure Pipeline build file for building a platform. -# -# Platform: OVMF -# OS: Windows -# Toolchain: VS2019 -# -# Copyright (c) Microsoft Corporation. -# SPDX-License-Identifier: BSD-2-Clause-Patent -## -trigger: - - master - - stable/* -pr: - - master - - stable/* - -variables: - - template: ../../../.azurepipelines/templates/defaults.yml - -jobs: - - job: Platform_CI - variables: - package: 'OvmfPkg' - vm_image: 'windows-2019' - should_run: true - run_flags: "MAKE_STARTUP_NSH=TRUE QEMU_HEADLESS=TRUE" - - #Use matrix to speed up the build process - strategy: - matrix: - OVMF_IA32_DEBUG: - Build.File: "$(package)/PlatformCI/PlatformBuild.py" - Build.Arch: "IA32" - Build.Flags: "" - Build.Target: "DEBUG" - Run.Flags: $(run_flags) - Run: $(should_run) - OVMF_IA32_RELEASE: - Build.File: "$(package)/PlatformCI/PlatformBuild.py" - Build.Arch: "IA32" - Build.Flags: "" - Build.Target: "RELEASE" - Run.Flags: $(run_flags) - Run: $(should_run) - OVMF_IA32_NOOPT: - Build.File: "$(package)/PlatformCI/PlatformBuild.py" - Build.Arch: "IA32" - Build.Flags: "" - Build.Target: "NOOPT" - Run.Flags: $(run_flags) - Run: $(should_run) - - OVMF_X64_DEBUG: - Build.File: "$(package)/PlatformCI/PlatformBuild.py" - Build.Arch: "X64" - Build.Flags: "" - Build.Target: "DEBUG" - Run.Flags: $(run_flags) - Run: $(should_run) - OVMF_X64_RELEASE: - Build.File: "$(package)/PlatformCI/PlatformBuild.py" - Build.Arch: "X64" - Build.Flags: "" - Build.Target: "RELEASE" - Run.Flags: $(run_flags) - Run: $(should_run) - OVMF_X64_NOOPT: - Build.File: "$(package)/PlatformCI/PlatformBuild.py" - Build.Arch: "X64" - Build.Flags: "" - Build.Target: "NOOPT" - Run.Flags: $(run_flags) - Run: $(should_run) - - OVMF_IA32X64_DEBUG: - Build.File: "$(package)/PlatformCI/PlatformBuild.py" - Build.Arch: "IA32,X64" - Build.Flags: "" - Build.Target: "DEBUG" - Run.Flags: $(run_flags) - Run: $(should_run) - OVMF_IA32X64_RELEASE: - Build.File: "$(package)/PlatformCI/PlatformBuild.py" - Build.Arch: "IA32,X64" - Build.Flags: "" - Build.Target: "RELEASE" - Run.Flags: $(run_flags) - Run: $(should_run) - OVMF_IA32X64_NOOPT: - Build.File: "$(package)/PlatformCI/PlatformBuild.py" - Build.Arch: "IA32,X64" - Build.Flags: "" - Build.Target: "NOOPT" - Run.Flags: $(run_flags) - Run: $(should_run) - - OVMF_IA32X64_FULL_DEBUG: - Build.File: "$(package)/PlatformCI/PlatformBuild.py" - Build.Arch: "IA32,X64" - Build.Flags: "BLD_*_SECURE_BOOT_ENABLE=1 BLD_*_SMM_REQUIRE=1 BLD_*_TPM2_ENABLE=1 BLD_*_NETWORK_TLS_ENABLE=1 BLD_*_NETWORK_IP6_ENABLE=1 BLD_*_NETWORK_HTTP_BOOT_ENABLE=1" - Build.Target: "DEBUG" - Run.Flags: $(run_flags) - Run: $(should_run) - OVMF_IA32X64_FULL_RELEASE: - Build.File: "$(package)/PlatformCI/PlatformBuild.py" - Build.Arch: "IA32,X64" - Build.Flags: "BLD_*_SECURE_BOOT_ENABLE=1 BLD_*_SMM_REQUIRE=1 BLD_*_TPM2_ENABLE=1 BLD_*_NETWORK_TLS_ENABLE=1 BLD_*_NETWORK_IP6_ENABLE=1 BLD_*_NETWORK_HTTP_BOOT_ENABLE=1" - Build.Target: "RELEASE" - Run.Flags: $(run_flags) - Run: $(should_run) - - # This currently creates a very large image which is too big for the FDF declared range - # Ovmf maintainers suggest to skip this build for now. - # - # OVMF_IA32X64_FULL_NOOPT: - # Build.File: "$(package)/PlatformCI/PlatformBuild.py" - # Build.Arch: "IA32,X64" - # Build.Flags: "BLD_*_SECURE_BOOT_ENABLE=1 BLD_*_SMM_REQUIRE=1 BLD_*_TPM2_ENABLE=1 BLD_*_NETWORK_TLS_ENABLE=1 BLD_*_NETWORK_IP6_ENABLE=1 BLD_*_NETWORK_HTTP_BOOT_ENABLE=1" - # Build.Target: "NOOPT" - # Run.Flags: $(run_flags) - # Run: $(should_run) - - workspace: - clean: all - - pool: - vmImage: $(vm_image) - - steps: - - template: ../../../.azurepipelines/templates/platform-build-run-steps.yml - parameters: - tool_chain_tag: VS2019 - build_pkg: $(package) - build_target: $(Build.Target) - build_arch: $(Build.Arch) - build_file: $(Build.File) - build_flags: $(Build.Flags) - run_flags: $(Run.Flags) - usePythonVersion: ${{ variables.default_python_version }} - extra_install_step: - - powershell: choco install qemu --version=2023.7.25; Write-Host "##vso[task.prependpath]c:\Program Files\qemu" - displayName: Install QEMU and Set QEMU on path # friendly name displayed in the UI - condition: and(gt(variables.pkg_count, 0), succeeded()) - From dadb611e0b4dc21417f198e950e3cafa983138fb Mon Sep 17 00:00:00 2001 From: Mike Beaton Date: Fri, 20 Sep 2024 09:47:47 +0100 Subject: [PATCH 09/11] Rename to make run --- .azurepipelines/Ubuntu-GCC5.yml | 24 ++ .../.azurepipelines/Ubuntu-GCC5.yml | 172 ++++++++++++++ .../.azurepipelines/Ubuntu-GCC5.yml | 214 ++++++++++++++++++ 3 files changed, 410 insertions(+) create mode 100644 .azurepipelines/Ubuntu-GCC5.yml create mode 100644 ArmVirtPkg/PlatformCI/.azurepipelines/Ubuntu-GCC5.yml create mode 100644 OvmfPkg/PlatformCI/.azurepipelines/Ubuntu-GCC5.yml diff --git a/.azurepipelines/Ubuntu-GCC5.yml b/.azurepipelines/Ubuntu-GCC5.yml new file mode 100644 index 000000000000..bd066d484b39 --- /dev/null +++ b/.azurepipelines/Ubuntu-GCC5.yml @@ -0,0 +1,24 @@ +## @file +# Azure Pipeline build file for a build using macOS and XCODE5 +# +# Copyright (c) Microsoft Corporation. +# SPDX-License-Identifier: BSD-2-Clause-Patent +## +trigger: +- master +- stable/* + +pr: +- master +- stable/* + +variables: + - template: templates/defaults.yml + +jobs: +- template: templates/pr-gate-build-job.yml + parameters: + tool_chain_tag: 'XCODE5' + vm_image: 'macOS-14' + arch_list: "IA32,X64" + usePythonVersion: '' # use default Python from the vm image diff --git a/ArmVirtPkg/PlatformCI/.azurepipelines/Ubuntu-GCC5.yml b/ArmVirtPkg/PlatformCI/.azurepipelines/Ubuntu-GCC5.yml new file mode 100644 index 000000000000..46a081d14d86 --- /dev/null +++ b/ArmVirtPkg/PlatformCI/.azurepipelines/Ubuntu-GCC5.yml @@ -0,0 +1,172 @@ +## @file +# Azure Pipeline build file for building a platform. +# +# Platform: ArmVirtQemu +# OS: macOS +# Toolchain: XCODE5 +# +# Copyright (c) Microsoft Corporation. +# SPDX-License-Identifier: BSD-2-Clause-Patent +## +trigger: + - master + - stable/* +pr: + - master + - stable/* + +variables: + - template: ../../../.azurepipelines/templates/defaults.yml + +jobs: + - job: Platform_CI + variables: + package: 'ArmVirtPkg' + vm_image: 'macOS-14' + should_run: true + run_flags: "MAKE_STARTUP_NSH=TRUE QEMU_HEADLESS=TRUE" + + #Use matrix to speed up the build process + strategy: + matrix: + QEMU_AARCH64_DEBUG: + Build.File: "$(package)/PlatformCI/QemuBuild.py" + Build.Arch: "AARCH64" + Build.Flags: "BLD_*_SECURE_BOOT_ENABLE=1 BLD_*_TPM2_ENABLE=1 BLD_*_NETWORK_TLS_ENABLE=1 BLD_*_NETWORK_IP6_ENABLE=1 BLD_*_NETWORK_HTTP_BOOT_ENABLE=1" + Build.Target: "DEBUG" + Run.Flags: $(run_flags) + Run: $(should_run) + QEMU_AARCH64_RELEASE: + Build.File: "$(package)/PlatformCI/QemuBuild.py" + Build.Arch: "AARCH64" + Build.Flags: "BLD_*_SECURE_BOOT_ENABLE=1 BLD_*_TPM2_ENABLE=1 BLD_*_NETWORK_TLS_ENABLE=1 BLD_*_NETWORK_IP6_ENABLE=1 BLD_*_NETWORK_HTTP_BOOT_ENABLE=1" + Build.Target: "RELEASE" + Run.Flags: $(run_flags) + Run: $(should_run) + QEMU_AARCH64_NOOPT: + Build.File: "$(package)/PlatformCI/QemuBuild.py" + Build.Arch: "AARCH64" + Build.Flags: "BLD_*_SECURE_BOOT_ENABLE=1 BLD_*_TPM2_ENABLE=1 BLD_*_NETWORK_TLS_ENABLE=1 BLD_*_NETWORK_IP6_ENABLE=1 BLD_*_NETWORK_HTTP_BOOT_ENABLE=1" + Build.Target: "NOOPT" + Run.Flags: $(run_flags) + Run: $(should_run) + QEMU_ARM_DEBUG: + Build.File: "$(package)/PlatformCI/QemuBuild.py" + Build.Arch: "ARM" + Build.Flags: "" + Build.Target: "DEBUG" + Run.Flags: $(run_flags) + Run: $(should_run) + QEMU_ARM_RELEASE: + Build.File: "$(package)/PlatformCI/QemuBuild.py" + Build.Arch: "ARM" + Build.Flags: "" + Build.Target: "RELEASE" + Run.Flags: $(run_flags) + Run: $(should_run) + QEMU_ARM_NOOPT: + Build.File: "$(package)/PlatformCI/QemuBuild.py" + Build.Arch: "ARM" + Build.Flags: "" + Build.Target: "NOOPT" + Run.Flags: $(run_flags) + Run: $(should_run) + + QEMU_KERNEL_AARCH64_DEBUG: + Build.File: "$(package)/PlatformCI/QemuKernelBuild.py" + Build.Arch: "AARCH64" + Build.Flags: "" + Build.Target: "DEBUG" + Run.Flags: $(run_flags) + Run: $(should_run) + QEMU_KERNEL_AARCH64_RELEASE: + Build.File: "$(package)/PlatformCI/QemuKernelBuild.py" + Build.Arch: "AARCH64" + Build.Flags: "" + Build.Target: "RELEASE" + Run.Flags: $(run_flags) + Run: $(should_run) + QEMU_KERNEL_AARCH64_NOOPT: + Build.File: "$(package)/PlatformCI/QemuKernelBuild.py" + Build.Arch: "AARCH64" + Build.Flags: "" + Build.Target: "NOOPT" + Run.Flags: $(run_flags) + Run: $(should_run) + QEMU_KERNEL_ARM_DEBUG: + Build.File: "$(package)/PlatformCI/QemuKernelBuild.py" + Build.Arch: "ARM" + Build.Flags: "" + Build.Target: "DEBUG" + Run.Flags: $(run_flags) + Run: $(should_run) + QEMU_KERNEL_ARM_RELEASE: + Build.File: "$(package)/PlatformCI/QemuKernelBuild.py" + Build.Arch: "ARM" + Build.Flags: "" + Build.Target: "RELEASE" + Run.Flags: $(run_flags) + Run: $(should_run) + QEMU_KERNEL_ARM_NOOPT: + Build.File: "$(package)/PlatformCI/QemuKernelBuild.py" + Build.Arch: "ARM" + Build.Flags: "" + Build.Target: "NOOPT" + Run.Flags: $(run_flags) + Run: $(should_run) + + KVMTOOL_AARCH64_DEBUG: + Build.File: "$(package)/PlatformCI/KvmToolBuild.py" + Build.Arch: "AARCH64" + Build.Flags: "" + Build.Target: "DEBUG" + Run: false + KVMTOOL_AARCH64_RELEASE: + Build.File: "$(package)/PlatformCI/KvmToolBuild.py" + Build.Arch: "AARCH64" + Build.Flags: "" + Build.Target: "RELEASE" + Run: false + KVMTOOL_ARM_DEBUG: + Build.File: "$(package)/PlatformCI/KvmToolBuild.py" + Build.Arch: "ARM" + Build.Flags: "" + Build.Target: "DEBUG" + Run: false + KVMTOOL_ARM_RELEASE: + Build.File: "$(package)/PlatformCI/KvmToolBuild.py" + Build.Arch: "ARM" + Build.Flags: "" + Build.Target: "RELEASE" + Run: false + + CLOUDHV_AARCH64_DEBUG: + Build.File: "$(package)/PlatformCI/CloudHvBuild.py" + Build.Arch: "AARCH64" + Build.Flags: "" + Build.Target: "DEBUG" + Run: false + CLOUDHV_AARCH64_RELEASE: + Build.File: "$(package)/PlatformCI/CloudHvBuild.py" + Build.Arch: "AARCH64" + Build.Flags: "" + Build.Target: "RELEASE" + Run: false + + workspace: + clean: all + + pool: + vmImage: $(vm_image) + + steps: + - template: ../../../.azurepipelines/templates/platform-build-run-steps.yml + parameters: + tool_chain_tag: XCODE5 + build_pkg: $(package) + build_target: $(Build.Target) + build_arch: $(Build.Arch) + build_file: $(Build.File) + build_flags: $(Build.Flags) + run_flags: $(Run.Flags) + usePythonVersion: '' # use default Python from the vm image diff --git a/OvmfPkg/PlatformCI/.azurepipelines/Ubuntu-GCC5.yml b/OvmfPkg/PlatformCI/.azurepipelines/Ubuntu-GCC5.yml new file mode 100644 index 000000000000..50df1ac8de76 --- /dev/null +++ b/OvmfPkg/PlatformCI/.azurepipelines/Ubuntu-GCC5.yml @@ -0,0 +1,214 @@ +## @file +# Azure Pipeline build file for building a platform. +# +# Platform: OVMF +# OS: macOS +# Toolchain: XCODE5 +# +# Copyright (c) Microsoft Corporation. +# SPDX-License-Identifier: BSD-2-Clause-Patent +## +trigger: + - master + - stable/* +pr: + - master + - stable/* + +variables: + - template: ../../../.azurepipelines/templates/defaults.yml + +jobs: + - job: Platform_CI + variables: + package: 'OvmfPkg' + vm_image: 'macOS-14' + should_run: true + run_flags: "MAKE_STARTUP_NSH=TRUE QEMU_HEADLESS=TRUE" + + #Use matrix to speed up the build process + strategy: + matrix: + OVMF_IA32_DEBUG: + Build.File: "$(package)/PlatformCI/PlatformBuild.py" + Build.Arch: "IA32" + Build.Flags: "" + Build.Target: "DEBUG" + Run.Flags: $(run_flags) + Run: $(should_run) + OVMF_IA32_RELEASE: + Build.File: "$(package)/PlatformCI/PlatformBuild.py" + Build.Arch: "IA32" + Build.Flags: "" + Build.Target: "RELEASE" + Run.Flags: $(run_flags) + Run: $(should_run) + OVMF_IA32_NOOPT: + Build.File: "$(package)/PlatformCI/PlatformBuild.py" + Build.Arch: "IA32" + Build.Flags: "" + Build.Target: "NOOPT" + Run.Flags: $(run_flags) + Run: $(should_run) + + OVMF_X64_DEBUG: + Build.File: "$(package)/PlatformCI/PlatformBuild.py" + Build.Arch: "X64" + Build.Flags: "" + Build.Target: "DEBUG" + Run.Flags: $(run_flags) + Run: $(should_run) + OVMF_X64_RELEASE: + Build.File: "$(package)/PlatformCI/PlatformBuild.py" + Build.Arch: "X64" + Build.Flags: "" + Build.Target: "RELEASE" + Run.Flags: $(run_flags) + Run: $(should_run) + OVMF_X64_NOOPT: + Build.File: "$(package)/PlatformCI/PlatformBuild.py" + Build.Arch: "X64" + Build.Flags: "" + Build.Target: "NOOPT" + Run.Flags: $(run_flags) + Run: $(should_run) + + OVMF_IA32X64_DEBUG: + Build.File: "$(package)/PlatformCI/PlatformBuild.py" + Build.Arch: "IA32,X64" + Build.Flags: "" + Build.Target: "DEBUG" + Run.Flags: $(run_flags) + Run: $(should_run) + OVMF_IA32X64_RELEASE: + Build.File: "$(package)/PlatformCI/PlatformBuild.py" + Build.Arch: "IA32,X64" + Build.Flags: "" + Build.Target: "RELEASE" + Run.Flags: $(run_flags) + Run: $(should_run) + OVMF_IA32X64_NOOPT: + Build.File: "$(package)/PlatformCI/PlatformBuild.py" + Build.Arch: "IA32,X64" + Build.Flags: "" + Build.Target: "NOOPT" + Run.Flags: $(run_flags) + Run: $(should_run) + + OVMF_IA32X64_FULL_DEBUG: + Build.File: "$(package)/PlatformCI/PlatformBuild.py" + Build.Arch: "IA32,X64" + Build.Flags: "BLD_*_SECURE_BOOT_ENABLE=1 BLD_*_SMM_REQUIRE=1 BLD_*_TPM2_ENABLE=1 BLD_*_NETWORK_TLS_ENABLE=1 BLD_*_NETWORK_IP6_ENABLE=1 BLD_*_NETWORK_HTTP_BOOT_ENABLE=1" + Build.Target: "DEBUG" + Run.Flags: $(run_flags) + Run: $(should_run) + OVMF_IA32X64_FULL_RELEASE: + Build.File: "$(package)/PlatformCI/PlatformBuild.py" + Build.Arch: "IA32,X64" + Build.Flags: "BLD_*_SECURE_BOOT_ENABLE=1 BLD_*_SMM_REQUIRE=1 BLD_*_TPM2_ENABLE=1 BLD_*_NETWORK_TLS_ENABLE=1 BLD_*_NETWORK_IP6_ENABLE=1 BLD_*_NETWORK_HTTP_BOOT_ENABLE=1" + Build.Target: "RELEASE" + Run.Flags: $(run_flags) + Run: $(should_run) + # This currently creates a very large image which is too big for the FDF declared range, + # skip this build for now. + # + # OVMF_IA32X64_FULL_NOOPT: + # Build.File: "$(package)/PlatformCI/PlatformBuild.py" + # Build.Arch: "IA32,X64" + # Build.Flags: "BLD_*_SECURE_BOOT_ENABLE=1 BLD_*_SMM_REQUIRE=1 BLD_*_TPM2_ENABLE=1 BLD_*_NETWORK_TLS_ENABLE=1 BLD_*_NETWORK_IP6_ENABLE=1 BLD_*_NETWORK_HTTP_BOOT_ENABLE=1" + # Build.Target: "NOOPT" + # Run.Flags: $(run_flags) + # Run: $(should_run) + + AMDSEV_X64_DEBUG: + Build.File: "$(package)/PlatformCI/AmdSevBuild.py" + Build.Arch: "X64" + Build.Flags: "" + Build.Target: "DEBUG" + # restricted + stripped down build + # can't boot to uefi shell -> skip test + Run.Flags: "QEMU_SKIP=TRUE" + Run: $(should_run) + + BHYVE_X64_DEBUG: + Build.File: "$(package)/PlatformCI/BhyveBuild.py" + Build.Arch: "X64" + Build.Flags: "" + Build.Target: "DEBUG" + # this build is for freebsd bhyve not qemu-kvm + Run.Flags: "QEMU_SKIP=TRUE" + Run: $(should_run) + + CLOUDHV_X64_DEBUG: + Build.File: "$(package)/PlatformCI/CloudHvBuild.py" + Build.Arch: "X64" + Build.Flags: "" + Build.Target: "DEBUG" + # this build is for cloud-hypervisor not qemu-kvm + Run.Flags: "QEMU_SKIP=TRUE" + Run: $(should_run) + + MICROVM_X64_DEBUG: + Build.File: "$(package)/PlatformCI/MicrovmBuild.py" + Build.Arch: "X64" + Build.Flags: "" + Build.Target: "DEBUG" + # no storage supported by microvm build + # can't boot to uefi shell -> skip test + Run.Flags: "QEMU_SKIP=TRUE" + Run: $(should_run) + + OVMF_XEN_X64_DEBUG: + Build.File: "$(package)/PlatformCI/XenBuild.py" + Build.Arch: "X64" + Build.Flags: "" + Build.Target: "DEBUG" + # this build is for xen not qemu-kvm + Run.Flags: "QEMU_SKIP=TRUE" + Run: $(should_run) + + INTELTDX_X64_DEBUG: + Build.File: "$(package)/PlatformCI/IntelTdxBuild.py" + Build.Arch: "X64" + Build.Flags: "" + Build.Target: "DEBUG" + # no storage supported by microvm build + # can't boot to uefi shell -> skip test + Run.Flags: "QEMU_SKIP=TRUE" + Run: $(should_run) + + QEMU_RISCV64_DEBUG: + Build.File: "$(package)/PlatformCI/QemuBuild.py" + Build.Arch: "RISCV64" + Build.Flags: "" + Build.Target: "DEBUG" + # this build is for RISC-V qemu virt not qemu-kvm + Run.Flags: "QEMU_SKIP=TRUE" + Run: $(should_run) + + QEMU_LOONGARCH64_DEBUG: + Build.File: "$(package)/PlatformCI/QemuBuild.py" + Build.Arch: "LOONGARCH64" + Build.Flags: "" + Build.Target: "DEBUG" + # this build is for LOONGARCH qemu virt not qemu-kvm + Run.Flags: "QEMU_SKIP=TRUE" + Run: $(should_run) + + workspace: + clean: all + + pool: + vmImage: $(vm_image) + + steps: + - template: ../../../.azurepipelines/templates/platform-build-run-steps.yml + parameters: + tool_chain_tag: XCODE5 + build_pkg: $(package) + build_target: $(Build.Target) + build_arch: $(Build.Arch) + build_file: $(Build.File) + build_flags: $(Build.Flags) + run_flags: $(Run.Flags) + usePythonVersion: '' # use default Python from the vm image From 8d25b09592a74f1c3d47d6caeb5c2125a04aea05 Mon Sep 17 00:00:00 2001 From: Mike Beaton Date: Fri, 20 Sep 2024 09:58:49 +0100 Subject: [PATCH 10/11] test --- BaseTools/Edk2ToolsBuild.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) mode change 100644 => 100755 BaseTools/Edk2ToolsBuild.py diff --git a/BaseTools/Edk2ToolsBuild.py b/BaseTools/Edk2ToolsBuild.py old mode 100644 new mode 100755 index 425bb1b63963..598446625699 --- a/BaseTools/Edk2ToolsBuild.py +++ b/BaseTools/Edk2ToolsBuild.py @@ -1,7 +1,7 @@ # @file Edk2ToolsBuild.py # Invocable class that builds the basetool c files. # -# Supports VS2017, VS2019, and GCC5 +# Supports VS2017, VS2019, GCC5 and XCODE5 ## # Copyright (c) Microsoft Corporation # @@ -146,7 +146,7 @@ def Go(self): self.WritePathEnvFile(self.OutputDir) return ret - elif self.tool_chain_tag.lower().startswith("gcc"): + elif self.tool_chain_tag.lower().startswith("gcc") or self.tool_chain_tag.lower().startswith("xcode"): cpu_count = self.GetCpuThreads() output_stream = edk2_logging.create_output_stream() From a56bc3a4ab7fe464a76468f4b8b9715dfa766394 Mon Sep 17 00:00:00 2001 From: Mike Beaton Date: Sat, 21 Sep 2024 09:13:02 +0100 Subject: [PATCH 11/11] Temp remove NuGet dependency providers --- .../UncrustifyCheck/uncrustify_ext_dep.yaml | 16 -------------- ArmVirtPkg/PlatformCI/iasl_ext_dep.yaml | 21 ------------------- BaseTools/Bin/iasl_ext_dep.yaml | 21 ------------------- BaseTools/Bin/nasm_ext_dep.yaml | 18 ---------------- OvmfPkg/PlatformCI/iasl_ext_dep.yaml | 21 ------------------- 5 files changed, 97 deletions(-) delete mode 100644 .pytool/Plugin/UncrustifyCheck/uncrustify_ext_dep.yaml delete mode 100644 ArmVirtPkg/PlatformCI/iasl_ext_dep.yaml delete mode 100644 BaseTools/Bin/iasl_ext_dep.yaml delete mode 100644 BaseTools/Bin/nasm_ext_dep.yaml delete mode 100644 OvmfPkg/PlatformCI/iasl_ext_dep.yaml diff --git a/.pytool/Plugin/UncrustifyCheck/uncrustify_ext_dep.yaml b/.pytool/Plugin/UncrustifyCheck/uncrustify_ext_dep.yaml deleted file mode 100644 index 74f3ffe41acf..000000000000 --- a/.pytool/Plugin/UncrustifyCheck/uncrustify_ext_dep.yaml +++ /dev/null @@ -1,16 +0,0 @@ -## @file -# Downloads the Uncrustify application from a Project Mu NuGet package. -# -# Copyright (c) Microsoft Corporation. -# SPDX-License-Identifier: BSD-2-Clause-Patent -## -{ - "id": "uncrustify-ci-1", - "scope": "cibuild", - "type": "nuget", - "name": "mu-uncrustify-release", - "source": "https://pkgs.dev.azure.com/projectmu/Uncrustify/_packaging/mu_uncrustify/nuget/v3/index.json", - "version": "73.0.8", - "flags": ["set_shell_var", "host_specific"], - "var_name": "UNCRUSTIFY_CI_PATH" -} diff --git a/ArmVirtPkg/PlatformCI/iasl_ext_dep.yaml b/ArmVirtPkg/PlatformCI/iasl_ext_dep.yaml deleted file mode 100644 index 8869ed3ecef1..000000000000 --- a/ArmVirtPkg/PlatformCI/iasl_ext_dep.yaml +++ /dev/null @@ -1,21 +0,0 @@ -## @file -# Download iasl executable tool from a nuget.org package -# - package contains different binaries based on host -# Add the folder with the tool to the path -# -# This is only downloaded for scope armvirt thus -# should have no impact on the asl compiler used by any -# other platform build -# -# Copyright (c) Microsoft Corporation. -# SPDX-License-Identifier: BSD-2-Clause-Patent -## -{ - "id": "iasl-armvirt-1", - "scope": "armvirt", - "type": "nuget", - "name": "iasl", - "source": "https://api.nuget.org/v3/index.json", - "version": "20190215.0.0", - "flags": ["set_path", "host_specific"], -} diff --git a/BaseTools/Bin/iasl_ext_dep.yaml b/BaseTools/Bin/iasl_ext_dep.yaml deleted file mode 100644 index ea2bc315d184..000000000000 --- a/BaseTools/Bin/iasl_ext_dep.yaml +++ /dev/null @@ -1,21 +0,0 @@ -## @file -# Download iasl executable tool from a nuget.org package -# - package contains different binaries based on host -# Add the folder with the tool to the path -# -# This is only downloaded for scope cibuild thus -# should have no impact on the asl compiler used by any -# given platform to build. -# -# Copyright (c) Microsoft Corporation. -# SPDX-License-Identifier: BSD-2-Clause-Patent -## -{ - "id": "iasl-ci-1", - "scope": "cibuild", - "type": "nuget", - "name": "edk2-acpica-iasl", - "source": "https://pkgs.dev.azure.com/projectmu/acpica/_packaging/mu_iasl/nuget/v3/index.json", - "version": "20200717.0.0", - "flags": ["set_path", "host_specific"] -} diff --git a/BaseTools/Bin/nasm_ext_dep.yaml b/BaseTools/Bin/nasm_ext_dep.yaml deleted file mode 100644 index 56703d4c18e7..000000000000 --- a/BaseTools/Bin/nasm_ext_dep.yaml +++ /dev/null @@ -1,18 +0,0 @@ -## @file -# Download nasm x86 assembler executable tool from a nuget.org package -# - package contains different binaries based on host -# Put on the tool on the path -# -# -# Copyright (c) Microsoft Corporation. -# SPDX-License-Identifier: BSD-2-Clause-Patent -## -{ - "id": "nasm-1", - "scope": "edk2-build", - "type": "nuget", - "name": "mu_nasm", - "source": "https://api.nuget.org/v3/index.json", - "version": "2.15.5", - "flags": ["set_path", "host_specific"] -} diff --git a/OvmfPkg/PlatformCI/iasl_ext_dep.yaml b/OvmfPkg/PlatformCI/iasl_ext_dep.yaml deleted file mode 100644 index cbee0e5a5a92..000000000000 --- a/OvmfPkg/PlatformCI/iasl_ext_dep.yaml +++ /dev/null @@ -1,21 +0,0 @@ -## @file -# Download iasl executable tool from a nuget.org package -# - package contains different binaries based on host -# Add the folder with the tool to the path -# -# This is only downloaded for scope ovmf thus -# should have no impact on the asl compiler used by any -# other given platform to build. -# -# Copyright (c) Microsoft Corporation. -# SPDX-License-Identifier: BSD-2-Clause-Patent -## -{ - "id": "iasl-ovmf-1", - "scope": "ovmf", - "type": "nuget", - "name": "iasl", - "source": "https://api.nuget.org/v3/index.json", - "version": "20190215.0.0", - "flags": ["set_path", "host_specific"], -}