]> git.proxmox.com Git - mirror_edk2.git/commitdiff
ArmPlatformPkg: Update pending patches with the latest BaseTools SyncUp
authoroliviermartin <oliviermartin@6f19259b-4bc3-4df7-8a09-765794883524>
Mon, 5 Dec 2011 14:29:16 +0000 (14:29 +0000)
committeroliviermartin <oliviermartin@6f19259b-4bc3-4df7-8a09-765794883524>
Mon, 5 Dec 2011 14:29:16 +0000 (14:29 +0000)
- ARMLINUXGCC toolchain is now supported
- ARMGCC: Set '0x0' for the linkage base address
- Fixed Trim utility
- Fixed support for !include in DSC files

git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@12819 6f19259b-4bc3-4df7-8a09-765794883524

ArmPlatformPkg/Documentation/patches/BaseTools-Pending-Patches.patch

index 2265ee1b2bbcc8a59d1dc1855bd7ca8159b57a46..d82f564c012470daebb2de106ec33832e851644b 100755 (executable)
@@ -1,274 +1,3 @@
-Index: BaseTools/Conf/build_rule.template
-===================================================================
---- BaseTools/Conf/build_rule.template (revision 12691)
-+++ BaseTools/Conf/build_rule.template (working copy)
-@@ -129,7 +129,7 @@
-         "$(CC)" $(CC_FLAGS) -o ${dst} $(INC) ${src}\r
-         "$(SYMRENAME)" $(SYMRENAME_FLAGS) ${dst}\r
\r
--    <Command.ARMGCC>\r
-+    <Command.ARMGCC, Command.ARMLINUXGCC>\r
-         "$(CC)" $(CC_FLAGS) -o ${dst} $(INC) ${src}\r
\r
\r
-@@ -217,7 +217,7 @@
-     <Command.RVCT>\r
-         "$(SLINK)" $(SLINK_FLAGS) ${dst} --via $(OBJECT_FILES_LIST)\r
-     \r
--    <Command.RVCTCYGWIN, Command.ARMGCC>\r
-+    <Command.RVCTCYGWIN, Command.ARMGCC, Command.ARMLINUXGCC>\r
-         # $(OBJECT_FILES_LIST) has wrong paths for cygwin\r
-         "$(SLINK)" $(SLINK_FLAGS) ${dst} $(OBJECT_FILES)\r
\r
-@@ -241,7 +241,7 @@
-         "$(DLINK)" -o ${dst} $(DLINK_FLAGS) -\( $(DLINK_SPATH) @$(STATIC_LIBRARY_FILES_LIST) -\) $(DLINK2_FLAGS)\r
-         "$(OBJCOPY)" $(OBJCOPY_FLAGS) ${dst}\r
\r
--    <Command.ARMGCC>\r
-+    <Command.ARMGCC, Command.ARMLINUXGCC>\r
-         "$(DLINK)" -o ${dst} $(DLINK_FLAGS) -\( $(DLINK_SPATH) $(STATIC_LIBRARY_FILES) -\) $(DLINK2_FLAGS)\r
\r
-     <Command.RVCT>\r
-@@ -271,7 +271,7 @@
-     <Command.GCC>\r
-         "$(DLINK)" $(DLINK_FLAGS) -\( $(DLINK_SPATH) @$(STATIC_LIBRARY_FILES_LIST) -\) $(DLINK2_FLAGS)\r
\r
--    <Command.ARMGCC>\r
-+    <Command.ARMGCC, Command.ARMLINUXGCC>\r
-         "$(DLINK)" $(DLINK_FLAGS) -\( $(DLINK_SPATH) $(STATIC_LIBRARY_FILES) -\) $(DLINK2_FLAGS)\r
\r
-     <Command.RVCT>\r
-@@ -292,7 +292,7 @@
-     <OutputFile>\r
-         $(DEBUG_DIR)(+)$(MODULE_NAME).efi\r
\r
--    <Command.MSFT, Command.INTEL, Command.RVCT, Command.ARMGCC>  \r
-+    <Command.MSFT, Command.INTEL, Command.RVCT, Command.ARMGCC, Command.ARMLINUXGCC>  \r
-         "$(GENFW)" -e $(MODULE_TYPE) -o ${dst} ${src} $(GENFW_FLAGS)\r
-         $(CP) ${dst} $(OUTPUT_DIR)\r
-         $(CP) ${dst} $(BIN_DIR)\r
-@@ -536,7 +536,7 @@
-         "$(GENFW)" -o $(OUTPUT_DIR)(+)$(MODULE_NAME)hii.rc -g $(MODULE_GUID) --hiibinpackage $(HII_BINARY_PACKAGES) $(GENFW_FLAGS)\r
-         "$(RC)" $(RC_FLAGS) $(OUTPUT_DIR)(+)$(MODULE_NAME)hii.rc ${dst}\r
-         \r
--    <Command.XCODE, Command.RVCT, Command.ARMGCC>  \r
-+    <Command.XCODE, Command.RVCT, Command.ARMGCC, Command.ARMLINUXGCC>  \r
-         GenFw -o $(OUTPUT_DIR)(+)$(MODULE_NAME)hii.rc -g $(MODULE_GUID) --hiibinpackage $(HII_BINARY_PACKAGES)\r
-         \r
-         \r
-Index: BaseTools/Conf/tools_def.template
-===================================================================
---- BaseTools/Conf/tools_def.template  (revision 12691)
-+++ BaseTools/Conf/tools_def.template  (working copy)
-@@ -467,6 +467,7 @@
- #   MSFT           - Microsoft\r
- #   GCC            - GNU GCC\r
- #   INTEL          - INTEL\r
-+#   RVCT           - ARM RealView Toolchain\r
- ####################################################################################\r
- ####################################################################################\r
- #\r
-@@ -4173,11 +4174,69 @@
- *_ARMGCC_ARM_VFRPP_FLAGS = $(ARCHCC_FLAGS) $(PLATFORM_FLAGS) -x c -E -P -DVFRCOMPILE --include $(DEST_DIR_DEBUG)/$(MODULE_NAME)StrDefs.h\r
\r
- *_ARMGCC_ARM_SLINK_FLAGS =  -rc\r
--*_ARMGCC_ARM_DLINK_FLAGS =  $(ARCHDLINK_FLAGS)  --oformat=elf32-littlearm --emit-relocs -nostdlib -u $(IMAGE_ENTRY_POINT) -e $(IMAGE_ENTRY_POINT) -Map $(DEST_DIR_DEBUG)/$(BASE_NAME).map\r
-+*_ARMGCC_ARM_DLINK_FLAGS =  $(ARCHDLINK_FLAGS) -Ttext=0x0 --oformat=elf32-littlearm --emit-relocs -nostdlib -u $(IMAGE_ENTRY_POINT) -e $(IMAGE_ENTRY_POINT) -Map $(DEST_DIR_DEBUG)/$(BASE_NAME).map\r
\r
-   DEBUG_ARMGCC_ARM_CC_FLAGS = $(ARCHCC_FLAGS) $(PLATFORM_FLAGS) DEF(GCC_ARMGCC_CC_FLAGS) -combine -O0\r
- RELEASE_ARMGCC_ARM_CC_FLAGS = $(ARCHCC_FLAGS) $(PLATFORM_FLAGS) DEF(GCC_ARMGCC_CC_FLAGS) -combine -Wno-unused\r
\r
-+####################################################################################\r
-+#\r
-+# ARM GNU/Linux GCC\r
-+#\r
-+####################################################################################\r
-+#  ARMLINUXGCC         - ARM version of the GCC cross compiler\r
-+\r
-+*_ARMLINUXGCC_*_*_FAMILY          = GCC\r
-+*_ARMLINUXGCC_*_*_BUILDRULEFAMILY = ARMLINUXGCC\r
-+\r
-+*_ARMLINUXGCC_*_MAKE_PATH         = make\r
-+*_ARMLINUXGCC_*_MAKE_FLAGS        = --no-print-directory\r
-+\r
-+##################\r
-+# ASL definitions\r
-+##################\r
-+*_ARMLINUXGCC_*_ASL_PATH           = DEF(UNIX_IASL_BIN)\r
-+*_ARMLINUXGCC_*_ASL_FLAGS          = DEF(IASL_FLAGS)\r
-+*_ARMLINUXGCC_*_ASL_OUTFLAGS       = DEF(IASL_OUTFLAGS)\r
-+*_ARMLINUXGCC_*_ASLPP_FLAGS        = -x c -E -P\r
-+*_ARMLINUXGCC_*_ASLCC_FLAGS        = -x c\r
-+*_ARMLINUXGCC_*_ASLDLINK_FLAGS     = DEF(GCC_DLINK_FLAGS_COMMON) --entry _ReferenceAcpiTable\r
-+\r
-+##################\r
-+# ARM definitions\r
-+##################\r
-+\r
-+*_ARMLINUXGCC_ARM_ASLCC_PATH      = ENV(ARMLINUXGCC_TOOLS_PATH)arm-linux-gnueabi-gcc\r
-+*_ARMLINUXGCC_ARM_ASLDLINK_PATH   = ENV(ARMLINUXGCC_TOOLS_PATH)arm-linux-gnueabi-ld\r
-+*_ARMLINUXGCC_ARM_ASLPP_PATH      = ENV(ARMLINUXGCC_TOOLS_PATH)arm-linux-gnueabi-gcc\r
-+\r
-+*_ARMLINUXGCC_ARM_CC_PATH         = ENV(ARMLINUXGCC_TOOLS_PATH)arm-linux-gnueabi-gcc\r
-+*_ARMLINUXGCC_ARM_SLINK_PATH      = ENV(ARMLINUXGCC_TOOLS_PATH)arm-linux-gnueabi-ar\r
-+*_ARMLINUXGCC_ARM_DLINK_PATH      = ENV(ARMLINUXGCC_TOOLS_PATH)arm-linux-gnueabi-ld\r
-+*_ARMLINUXGCC_ARM_ASM_PATH        = ENV(ARMLINUXGCC_TOOLS_PATH)arm-linux-gnueabi-as\r
-+*_ARMLINUXGCC_ARM_PP_PATH         = ENV(ARMLINUXGCC_TOOLS_PATH)arm-linux-gnueabi-gcc\r
-+*_ARMLINUXGCC_ARM_VFRPP_PATH      = ENV(ARMLINUXGCC_TOOLS_PATH)arm-linux-gnueabi-gcc\r
-+\r
-+#\r
-+# Use default values, or override in DSC file\r
-+#\r
-+*_ARMLINUXGCC_ARM_ARCHCC_FLAGS    = -mthumb\r
-+*_ARMLINUXGCC_ARM_ARCHASM_FLAGS   = \r
-+*_ARMLINUXGCC_ARM_ARCHDLINK_FLAGS =\r
-+*_ARMLINUXGCC_ARM_PLATFORM_FLAGS  = -march=armv7-a\r
-+\r
-+  DEBUG_ARMLINUXGCC_ARM_ASM_FLAGS   = $(ARCHASM_FLAGS) $(PLATFORM_FLAGS) -mlittle-endian -g\r
-+RELEASE_ARMLINUXGCC_ARM_ASM_FLAGS   = $(ARCHASM_FLAGS) $(PLATFORM_FLAGS) -mlittle-endian\r
-+\r
-+*_ARMLINUXGCC_ARM_PP_FLAGS    = $(ARCHCC_FLAGS) $(PLATFORM_FLAGS) -E -x assembler-with-cpp -include $(DEST_DIR_DEBUG)/AutoGen.h\r
-+*_ARMLINUXGCC_ARM_VFRPP_FLAGS = $(ARCHCC_FLAGS) $(PLATFORM_FLAGS) -x c -E -P -DVFRCOMPILE --include $(DEST_DIR_DEBUG)/$(MODULE_NAME)StrDefs.h\r
-+\r
-+*_ARMLINUXGCC_ARM_SLINK_FLAGS =  -rc\r
-+*_ARMLINUXGCC_ARM_DLINK_FLAGS =  $(ARCHDLINK_FLAGS) -Ttext=0x0 --oformat=elf32-littlearm --emit-relocs -nostdlib -u $(IMAGE_ENTRY_POINT) -e $(IMAGE_ENTRY_POINT) -Map $(DEST_DIR_DEBUG)/$(BASE_NAME).map\r
-+\r
-+  DEBUG_ARMLINUXGCC_ARM_CC_FLAGS = $(ARCHCC_FLAGS) $(PLATFORM_FLAGS) DEF(GCC_ARMGCC_CC_FLAGS) -Wno-address -O0\r
-+RELEASE_ARMLINUXGCC_ARM_CC_FLAGS = $(ARCHCC_FLAGS) $(PLATFORM_FLAGS) DEF(GCC_ARMGCC_CC_FLAGS) -Wno-address -Wno-unused-but-set-variable\r
-+\r
- #################\r
- # ASM 16 linker defintions\r
- #################\r
-Index: BaseTools/Source/Python/Workspace/MetaFileParser.py
-===================================================================
---- BaseTools/Source/Python/Workspace/MetaFileParser.py        (revision 12691)
-+++ BaseTools/Source/Python/Workspace/MetaFileParser.py        (working copy)
-@@ -1280,6 +1280,9 @@
-             Records = IncludedFileTable.GetAll()
-             if Records:
-                 self._Content[self._ContentIndex:self._ContentIndex] = Records
-+                self._Content.pop(self._ContentIndex-1)
-+                self._ValueList = None
-+                self._ContentIndex -= 1
-     def __ProcessSkuId(self):
-         self._ValueList = [ReplaceMacro(Value, self._Macros, RaiseError=True)
-Index: BaseTools/Source/Python/Workspace/WorkspaceDatabase.py
-===================================================================
---- BaseTools/Source/Python/Workspace/WorkspaceDatabase.py     (revision 12691)
-+++ BaseTools/Source/Python/Workspace/WorkspaceDatabase.py     (working copy)
-@@ -2319,7 +2319,7 @@
-     # @param GlobalMacros       Global macros used for replacement during file parsing\r
-     # @prarm RenewDb=False      Create new database file if it's already there\r
-     #\r
--    def __init__(self, DbPath, RenewDb=False):\r
-+    def __init__(self, DbPath, RenewDb=False, DbSignature={}):\r
-         self._DbClosedFlag = False\r
-         if not DbPath:\r
-             DbPath = os.path.normpath(os.path.join(GlobalData.gWorkspace, self._DB_PATH_))\r
-@@ -2331,7 +2331,7 @@
-                 os.makedirs(DbDir)\r
\r
-             # remove db file in case inconsistency between db and file in file system\r
--            if self._CheckWhetherDbNeedRenew(RenewDb, DbPath):\r
-+            if self._CheckWhetherDbNeedRenew(RenewDb, DbPath, DbSignature):\r
-                 os.remove(DbPath)\r
-         \r
-         # create db with optimized parameters\r
-@@ -2367,7 +2367,38 @@
-     #\r
-     #  @return Bool value for whether need renew workspace databse\r
-     #\r
--    def _CheckWhetherDbNeedRenew (self, force, DbPath):\r
-+    def _CheckWhetherDbNeedRenew (self, force, DbPath, DbSignature):\r
-+        DbDir = os.path.split(DbPath)[0]\r
-+        MacroFilePath = os.path.normpath(os.path.join(DbDir, "build.mac"))\r
-+        MacroMatch = False\r
-+        if os.path.exists(MacroFilePath) and os.path.isfile(MacroFilePath):\r
-+            LastMacros = None\r
-+            try:\r
-+                f = open(MacroFilePath,'r')\r
-+                LastMacros = pickle.load(f)\r
-+                f.close()\r
-+            except IOError:\r
-+                pass\r
-+            except:\r
-+                f.close()\r
-+\r
-+            if LastMacros != None and type(LastMacros) is DictType:\r
-+                if LastMacros == DbSignature:\r
-+                    MacroMatch = True\r
-+\r
-+        if not MacroMatch:\r
-+            # save command line macros to file\r
-+            try:\r
-+                f = open(MacroFilePath,'w')\r
-+                pickle.dump(DbSignature, f, 2)\r
-+                f.close()\r
-+            except IOError:\r
-+                pass\r
-+            except:\r
-+                f.close()\r
-+\r
-+            force = True\r
-+\r
-         # if database does not exist, we need do nothing\r
-         if not os.path.exists(DbPath): return False\r
-             \r
-Index: BaseTools/Source/Python/build/build.py
-===================================================================
---- BaseTools/Source/Python/build/build.py     (revision 12691)
-+++ BaseTools/Source/Python/build/build.py     (working copy)
-@@ -704,6 +704,8 @@
-     #\r
-     def __init__(self, Target, WorkspaceDir, BuildOptions):\r
-         self.WorkspaceDir   = WorkspaceDir\r
-+        DbSignature = {'Target': Target, 'BuildOptions': BuildOptions }\r
-+        \r
-         self.Target         = Target\r
-         self.PlatformFile   = BuildOptions.PlatformFile\r
-         self.ModuleFile     = BuildOptions.ModuleFile\r
-@@ -726,7 +728,7 @@
-         if BuildOptions.DisableCache:\r
-             self.Db         = WorkspaceDatabase(":memory:")\r
-         else:\r
--            self.Db         = WorkspaceDatabase(None, self.Reparse)\r
-+            self.Db         = WorkspaceDatabase(None, self.Reparse, DbSignature)\r
-         self.BuildDatabase  = self.Db.BuildObject\r
-         self.Platform       = None\r
-         self.LoadFixAddress = 0\r
-Index: BaseTools/Source/Python/Trim/Trim.py
-===================================================================
---- BaseTools/Source/Python/Trim/Trim.py       (revision 12691)
-+++ BaseTools/Source/Python/Trim/Trim.py       (working copy)
-@@ -37,7 +37,9 @@
- ## Regular expression for matching "#pragma pack"
- gPragmaPattern = re.compile("^\s*#pragma\s+pack", re.MULTILINE)
- ## Regular expression for matching HEX number
--gHexNumberPattern = re.compile("0[xX]([0-9a-fA-F]+)")
-+gHexNumberPattern = re.compile("(0[xX])([0-9a-fA-F]+)U?")
-+## Regular expression for matching decimal number
-+gDecNumberPattern = re.compile("([0-9]+)U?")
- ## Regular expression for matching "Include ()" in asl file
- gAslIncludePattern = re.compile("^(\s*)[iI]nclude\s*\(\"?([^\"\(\)]+)\"\)", re.MULTILINE)
- ## Regular expression for matching C style #include "XXX.asl" in asl file
-@@ -169,10 +171,15 @@
-         # convert HEX number format if indicated
-         if ConvertHex:
--            Line = gHexNumberPattern.sub(r"0\1h", Line)
-+            Line = gHexNumberPattern.sub(r"0\2h", Line)
-+        else:
-+            Line = gHexNumberPattern.sub(r"\1\2", Line)
-         if TrimLong:
-             Line = gLongNumberPattern.sub(r"\1", Line)
-+        # convert Decimal number format
-+        Line = gDecNumberPattern.sub(r"\1", Line)
-+
-         if LineNumber != None:
-             EdkLogger.verbose("Got line directive: line=%d" % LineNumber)
-             # in case preprocessor removed some lines, like blank or comment lines
 Index: BaseTools/Source/C/GenFv/GenFv.c
 ===================================================================
 --- BaseTools/Source/C/GenFv/GenFv.c   (revision 12691)