REF: https://bugzilla.tianocore.org/show_bug.cgi?id=3308
The EDK II Build Specifications do not restrict the set of
CPU architectures that can be supported. Remove places in
the EDK II that assume a fixed set of CPU architectures.
Remove build breaks in the following tools when a check against
a fixed set of CPU architectures is made.
* Build
* GenFds
* TargetTool
* GenFw
Cc: Bob Feng <bob.c.feng@intel.com>
Cc: Liming Gao <gaoliming@byosoft.com.cn>
Cc: Yuwei Chen <yuwei.chen@intel.com>
Cc: Andrew Fish <afish@apple.com>
Cc: Abner Chang <abner.chang@hpe.com>
Signed-off-by: Michael D Kinney <michael.d.kinney@intel.com>
---
BaseTools/Source/C/GenFw/Elf32Convert.c | 5 ++---
BaseTools/Source/C/GenFw/Elf64Convert.c | 5 ++---
BaseTools/Source/Python/GenFds/FdfParser.py | 4 +---
BaseTools/Source/Python/TargetTool/TargetTool.py | 4 ++--
BaseTools/Source/Python/build/buildoptions.py | 4 ++--
5 files changed, 9 insertions(+), 13 deletions(-)
diff --git a/BaseTools/Source/C/GenFw/Elf32Convert.c b/BaseTools/Source/C/GenFw/Elf32Convert.c
index 7f351287a93c..2485b2cb7ad9 100644
--- a/BaseTools/Source/C/GenFw/Elf32Convert.c
+++ b/BaseTools/Source/C/GenFw/Elf32Convert.c
@@ -1,7 +1,7 @@
/** @file
Elf32 Convert solution
-Copyright (c) 2010 - 2018, Intel Corporation. All rights reserved.<BR>
+Copyright (c) 2010 - 2021, Intel Corporation. All rights reserved.<BR>
Portions copyright (c) 2013, ARM Ltd. All rights reserved.<BR>
Portions Copyright (c) 2020, Hewlett Packard Enterprise Development LP. All rights reserved.<BR>
@@ -143,8 +143,7 @@ InitializeElf32 (
return FALSE;
}
if (!((mEhdr->e_machine == EM_386) || (mEhdr->e_machine == EM_ARM) || (mEhdr->e_machine == EM_RISCV))) {
- Error (NULL, 0, 3000, "Unsupported", "ELF e_machine is not Elf32 machine.");
- return FALSE;
+ Warning (NULL, 0, 3000, "Unsupported", "ELF e_machine is not Elf32 machine.");
}
if (mEhdr->e_version != EV_CURRENT) {
Error (NULL, 0, 3000, "Unsupported", "ELF e_version (%u) not EV_CURRENT (%d)", (unsigned) mEhdr->e_version, EV_CURRENT);
diff --git a/BaseTools/Source/C/GenFw/Elf64Convert.c b/BaseTools/Source/C/GenFw/Elf64Convert.c
index 4ed6b4477ea9..d097db863243 100644
--- a/BaseTools/Source/C/GenFw/Elf64Convert.c
+++ b/BaseTools/Source/C/GenFw/Elf64Convert.c
@@ -1,7 +1,7 @@
/** @file
Elf64 convert solution
-Copyright (c) 2010 - 2018, Intel Corporation. All rights reserved.<BR>
+Copyright (c) 2010 - 2021, Intel Corporation. All rights reserved.<BR>
Portions copyright (c) 2013-2014, ARM Ltd. All rights reserved.<BR>
Portions Copyright (c) 2020, Hewlett Packard Enterprise Development LP. All rights reserved.<BR>
@@ -162,8 +162,7 @@ InitializeElf64 (
return FALSE;
}
if (!((mEhdr->e_machine == EM_X86_64) || (mEhdr->e_machine == EM_AARCH64) || (mEhdr->e_machine == EM_RISCV64))) {
- Error (NULL, 0, 3000, "Unsupported", "ELF e_machine is not Elf64 machine.");
- return FALSE;
+ Warning (NULL, 0, 3000, "Unsupported", "ELF e_machine is not Elf64 machine.");
}
if (mEhdr->e_version != EV_CURRENT) {
Error (NULL, 0, 3000, "Unsupported", "ELF e_version (%u) not EV_CURRENT (%d)", (unsigned) mEhdr->e_version, EV_CURRENT);
diff --git a/BaseTools/Source/Python/GenFds/FdfParser.py b/BaseTools/Source/Python/GenFds/FdfParser.py
index ea2401b0e4fc..5c8263f9bcc9 100644
--- a/BaseTools/Source/Python/GenFds/FdfParser.py
+++ b/BaseTools/Source/Python/GenFds/FdfParser.py
@@ -1,7 +1,7 @@
## @file
# parse FDF file
#
-# Copyright (c) 2007 - 2018, Intel Corporation. All rights reserved.<BR>
+# Copyright (c) 2007 - 2021, Intel Corporation. All rights reserved.<BR>
# Copyright (c) 2015, Hewlett Packard Enterprise Development, L.P.<BR>
#
# SPDX-License-Identifier: BSD-2-Clause-Patent
@@ -3504,8 +3504,6 @@ class FdfParser:
raise Warning.Expected("'.'", self.FileName, self.CurrentLineNumber)
Arch = self._SkippedChars.rstrip(TAB_SPLIT)
- if Arch.upper() not in ARCH_SET_FULL:
- raise Warning("Unknown Arch '%s'" % Arch, self.FileName, self.CurrentLineNumber)
ModuleType = self._GetModuleType()
diff --git a/BaseTools/Source/Python/TargetTool/TargetTool.py b/BaseTools/Source/Python/TargetTool/TargetTool.py
index 8e0ca387c356..71222e3cc899 100644
--- a/BaseTools/Source/Python/TargetTool/TargetTool.py
+++ b/BaseTools/Source/Python/TargetTool/TargetTool.py
@@ -1,7 +1,7 @@
## @file
# Target Tool Parser
#
-# Copyright (c) 2007 - 2018, Intel Corporation. All rights reserved.<BR>
+# Copyright (c) 2007 - 2021, Intel Corporation. All rights reserved.<BR>
#
# SPDX-License-Identifier: BSD-2-Clause-Patent
#
@@ -197,7 +197,7 @@ def RangeCheckCallback(option, opt_str, value, parser):
def MyOptionParser():
parser = OptionParser(version=__version__, prog="TargetTool.exe", usage=__usage__, description=__copyright__)
- parser.add_option("-a", "--arch", action="append", type="choice", choices=['IA32', 'X64', 'EBC', 'ARM', 'AARCH64', '0'], dest="TARGET_ARCH",
+ parser.add_option("-a", "--arch", action="append", dest="TARGET_ARCH",
help="ARCHS is one of list: IA32, X64, ARM, AARCH64 or EBC, which replaces target.txt's TARGET_ARCH definition. To specify more archs, please repeat this option. 0 will clear this setting in target.txt and can't combine with other value.")
parser.add_option("-p", "--platform", action="callback", type="string", dest="DSCFILE", callback=SingleCheckCallback,
help="Specify a DSC file, which replace target.txt's ACTIVE_PLATFORM definition. 0 will clear this setting in target.txt and can't combine with other value.")
diff --git a/BaseTools/Source/Python/build/buildoptions.py b/BaseTools/Source/Python/build/buildoptions.py
index 094af4e2a8dd..39d92cff209d 100644
--- a/BaseTools/Source/Python/build/buildoptions.py
+++ b/BaseTools/Source/Python/build/buildoptions.py
@@ -2,7 +2,7 @@
# build a platform or a module
#
# Copyright (c) 2014, Hewlett-Packard Development Company, L.P.<BR>
-# Copyright (c) 2007 - 2019, Intel Corporation. All rights reserved.<BR>
+# Copyright (c) 2007 - 2021, Intel Corporation. All rights reserved.<BR>
# Copyright (c) 2018 - 2020, Hewlett Packard Enterprise Development, L.P.<BR>
#
# SPDX-License-Identifier: BSD-2-Clause-Patent
@@ -40,7 +40,7 @@ class MyOptionParser():
def GetOption(self):
Parser = OptionParser(description=__copyright__, version=__version__, prog="build.exe", usage="%prog [options] [all|fds|genc|genmake|clean|cleanall|cleanlib|modules|libraries|run]")
- Parser.add_option("-a", "--arch", action="append", type="choice", choices=['IA32', 'X64', 'EBC', 'ARM', 'AARCH64', 'RISCV64'], dest="TargetArch",
+ Parser.add_option("-a", "--arch", action="append", dest="TargetArch",
help="ARCHS is one of list: IA32, X64, ARM, AARCH64, RISCV64 or EBC, which overrides target.txt's TARGET_ARCH definition. To specify more archs, please repeat this option.")
Parser.add_option("-p", "--platform", action="callback", type="string", dest="PlatformFile", callback=SingleCheckCallback,
help="Build the platform specified by the DSC file name argument, overriding target.txt's ACTIVE_PLATFORM definition.")
--
2.31.1.windows.1
-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#73820): https://edk2.groups.io/g/devel/message/73820
Mute This Topic: https://groups.io/mt/81936017/1787277
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [importer@patchew.org]
-=-=-=-=-=-=-=-=-=-=-=-
> -----Original Message----- > From: Michael D Kinney [mailto:michael.d.kinney@intel.com] > Sent: Thursday, April 8, 2021 2:33 PM > To: devel@edk2.groups.io > Cc: Bob Feng <bob.c.feng@intel.com>; Liming Gao > <gaoliming@byosoft.com.cn>; Yuwei Chen <yuwei.chen@intel.com>; > Andrew Fish <afish@apple.com>; Chang, Abner (HPS SW/FW Technologist) > <abner.chang@hpe.com> > Subject: [Patch 3/3] BaseTools/Source: Remove CPU architecture > assumptions > > REF: > INVALID URI REMOVED > d=3308__;!!NpxR!y1a0Mm0__hLCGUN_tBqH8jshZ_739mOBXcCvlT6o_WQKy > YICmQVJg5Wjl1Gr4vc$ > > The EDK II Build Specifications do not restrict the set of > CPU architectures that can be supported. Remove places in > the EDK II that assume a fixed set of CPU architectures. > > Remove build breaks in the following tools when a check against > a fixed set of CPU architectures is made. > > * Build > * GenFds > * TargetTool > * GenFw > > Cc: Bob Feng <bob.c.feng@intel.com> > Cc: Liming Gao <gaoliming@byosoft.com.cn> > Cc: Yuwei Chen <yuwei.chen@intel.com> > Cc: Andrew Fish <afish@apple.com> > Cc: Abner Chang <abner.chang@hpe.com> > Signed-off-by: Michael D Kinney <michael.d.kinney@intel.com> > --- > BaseTools/Source/C/GenFw/Elf32Convert.c | 5 ++--- > BaseTools/Source/C/GenFw/Elf64Convert.c | 5 ++--- > BaseTools/Source/Python/GenFds/FdfParser.py | 4 +--- > BaseTools/Source/Python/TargetTool/TargetTool.py | 4 ++-- > BaseTools/Source/Python/build/buildoptions.py | 4 ++-- > 5 files changed, 9 insertions(+), 13 deletions(-) > > diff --git a/BaseTools/Source/C/GenFw/Elf32Convert.c > b/BaseTools/Source/C/GenFw/Elf32Convert.c > index 7f351287a93c..2485b2cb7ad9 100644 > --- a/BaseTools/Source/C/GenFw/Elf32Convert.c > +++ b/BaseTools/Source/C/GenFw/Elf32Convert.c > @@ -1,7 +1,7 @@ > /** @file > Elf32 Convert solution > > -Copyright (c) 2010 - 2018, Intel Corporation. All rights reserved.<BR> > +Copyright (c) 2010 - 2021, Intel Corporation. All rights reserved.<BR> > Portions copyright (c) 2013, ARM Ltd. All rights reserved.<BR> > Portions Copyright (c) 2020, Hewlett Packard Enterprise Development LP. All > rights reserved.<BR> > > @@ -143,8 +143,7 @@ InitializeElf32 ( > return FALSE; > } > if (!((mEhdr->e_machine == EM_386) || (mEhdr->e_machine == EM_ARM) > || (mEhdr->e_machine == EM_RISCV))) { > - Error (NULL, 0, 3000, "Unsupported", "ELF e_machine is not Elf32 > machine."); > - return FALSE; > + Warning (NULL, 0, 3000, "Unsupported", "ELF e_machine is not Elf32 > machine."); > } > if (mEhdr->e_version != EV_CURRENT) { > Error (NULL, 0, 3000, "Unsupported", "ELF e_version (%u) not > EV_CURRENT (%d)", (unsigned) mEhdr->e_version, EV_CURRENT); > diff --git a/BaseTools/Source/C/GenFw/Elf64Convert.c > b/BaseTools/Source/C/GenFw/Elf64Convert.c > index 4ed6b4477ea9..d097db863243 100644 > --- a/BaseTools/Source/C/GenFw/Elf64Convert.c > +++ b/BaseTools/Source/C/GenFw/Elf64Convert.c > @@ -1,7 +1,7 @@ > /** @file > Elf64 convert solution > > -Copyright (c) 2010 - 2018, Intel Corporation. All rights reserved.<BR> > +Copyright (c) 2010 - 2021, Intel Corporation. All rights reserved.<BR> > Portions copyright (c) 2013-2014, ARM Ltd. All rights reserved.<BR> > Portions Copyright (c) 2020, Hewlett Packard Enterprise Development LP. All > rights reserved.<BR> > > @@ -162,8 +162,7 @@ InitializeElf64 ( > return FALSE; > } > if (!((mEhdr->e_machine == EM_X86_64) || (mEhdr->e_machine == > EM_AARCH64) || (mEhdr->e_machine == EM_RISCV64))) { > - Error (NULL, 0, 3000, "Unsupported", "ELF e_machine is not Elf64 > machine."); > - return FALSE; > + Warning (NULL, 0, 3000, "Unsupported", "ELF e_machine is not Elf64 > machine."); > } > if (mEhdr->e_version != EV_CURRENT) { > Error (NULL, 0, 3000, "Unsupported", "ELF e_version (%u) not > EV_CURRENT (%d)", (unsigned) mEhdr->e_version, EV_CURRENT); > diff --git a/BaseTools/Source/Python/GenFds/FdfParser.py > b/BaseTools/Source/Python/GenFds/FdfParser.py > index ea2401b0e4fc..5c8263f9bcc9 100644 > --- a/BaseTools/Source/Python/GenFds/FdfParser.py > +++ b/BaseTools/Source/Python/GenFds/FdfParser.py > @@ -1,7 +1,7 @@ > ## @file > # parse FDF file > # > -# Copyright (c) 2007 - 2018, Intel Corporation. All rights reserved.<BR> > +# Copyright (c) 2007 - 2021, Intel Corporation. All rights reserved.<BR> > # Copyright (c) 2015, Hewlett Packard Enterprise Development, L.P.<BR> > # > # SPDX-License-Identifier: BSD-2-Clause-Patent > @@ -3504,8 +3504,6 @@ class FdfParser: > raise Warning.Expected("'.'", self.FileName, self.CurrentLineNumber) > > Arch = self._SkippedChars.rstrip(TAB_SPLIT) > - if Arch.upper() not in ARCH_SET_FULL: > - raise Warning("Unknown Arch '%s'" % Arch, self.FileName, > self.CurrentLineNumber) > > ModuleType = self._GetModuleType() > > diff --git a/BaseTools/Source/Python/TargetTool/TargetTool.py > b/BaseTools/Source/Python/TargetTool/TargetTool.py > index 8e0ca387c356..71222e3cc899 100644 > --- a/BaseTools/Source/Python/TargetTool/TargetTool.py > +++ b/BaseTools/Source/Python/TargetTool/TargetTool.py > @@ -1,7 +1,7 @@ > ## @file > # Target Tool Parser > # > -# Copyright (c) 2007 - 2018, Intel Corporation. All rights reserved.<BR> > +# Copyright (c) 2007 - 2021, Intel Corporation. All rights reserved.<BR> > # > # SPDX-License-Identifier: BSD-2-Clause-Patent > # > @@ -197,7 +197,7 @@ def RangeCheckCallback(option, opt_str, value, > parser): > > def MyOptionParser(): > parser = OptionParser(version=__version__, prog="TargetTool.exe", > usage=__usage__, description=__copyright__) > - parser.add_option("-a", "--arch", action="append", type="choice", > choices=['IA32', 'X64', 'EBC', 'ARM', 'AARCH64', '0'], dest="TARGET_ARCH", Not quite sure what's the impact on Basetool if this is removed, leave this to owner to review. Acked-by: Abner Chang <abner.chang@hpe.com> > + parser.add_option("-a", "--arch", action="append", > dest="TARGET_ARCH", > help="ARCHS is one of list: IA32, X64, ARM, AARCH64 or EBC, which > replaces target.txt's TARGET_ARCH definition. To specify more archs, please > repeat this option. 0 will clear this setting in target.txt and can't combine with > other value.") > parser.add_option("-p", "--platform", action="callback", type="string", > dest="DSCFILE", callback=SingleCheckCallback, > help="Specify a DSC file, which replace target.txt's ACTIVE_PLATFORM > definition. 0 will clear this setting in target.txt and can't combine with other > value.") > diff --git a/BaseTools/Source/Python/build/buildoptions.py > b/BaseTools/Source/Python/build/buildoptions.py > index 094af4e2a8dd..39d92cff209d 100644 > --- a/BaseTools/Source/Python/build/buildoptions.py > +++ b/BaseTools/Source/Python/build/buildoptions.py > @@ -2,7 +2,7 @@ > # build a platform or a module > # > # Copyright (c) 2014, Hewlett-Packard Development Company, L.P.<BR> > -# Copyright (c) 2007 - 2019, Intel Corporation. All rights reserved.<BR> > +# Copyright (c) 2007 - 2021, Intel Corporation. All rights reserved.<BR> > # Copyright (c) 2018 - 2020, Hewlett Packard Enterprise Development, > L.P.<BR> > # > # SPDX-License-Identifier: BSD-2-Clause-Patent > @@ -40,7 +40,7 @@ class MyOptionParser(): > > def GetOption(self): > Parser = OptionParser(description=__copyright__, version=__version__, > prog="build.exe", usage="%prog [options] > [all|fds|genc|genmake|clean|cleanall|cleanlib|modules|libraries|run]") > - Parser.add_option("-a", "--arch", action="append", type="choice", > choices=['IA32', 'X64', 'EBC', 'ARM', 'AARCH64', 'RISCV64'], dest="TargetArch", > + Parser.add_option("-a", "--arch", action="append", dest="TargetArch", > help="ARCHS is one of list: IA32, X64, ARM, AARCH64, RISCV64 or EBC, > which overrides target.txt's TARGET_ARCH definition. To specify more archs, > please repeat this option.") > Parser.add_option("-p", "--platform", action="callback", type="string", > dest="PlatformFile", callback=SingleCheckCallback, > help="Build the platform specified by the DSC file name argument, > overriding target.txt's ACTIVE_PLATFORM definition.") > -- > 2.31.1.windows.1 -=-=-=-=-=-=-=-=-=-=-=- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#74005): https://edk2.groups.io/g/devel/message/74005 Mute This Topic: https://groups.io/mt/81936017/1787277 Group Owner: devel+owner@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [importer@patchew.org] -=-=-=-=-=-=-=-=-=-=-=-
© 2016 - 2024 Red Hat, Inc.