]> git.proxmox.com Git - mirror_edk2.git/commitdiff
BaseTools UNIXGCC ELFGCC CYGGCC: clone GCC build rule family into GCCLD
authorArd Biesheuvel <ard.biesheuvel@linaro.org>
Sat, 23 Jul 2016 06:18:31 +0000 (08:18 +0200)
committerArd Biesheuvel <ard.biesheuvel@linaro.org>
Tue, 2 Aug 2016 06:40:31 +0000 (08:40 +0200)
Before we can make non-backward compatible changes to the GCC build rules
regarding the use of the 'gcc' binary as the linker, clone the existing
GCC build rules into a 'GCCLD' build rule family, and move the legacy
toolchains UNIXGCC, CYGGCC, CYGGCCxASL and ELFGCC over to it.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Reviewed-by: Jordan Justen <jordan.l.justen@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>
BaseTools/Conf/build_rule.template
BaseTools/Conf/tools_def.template

index 91bcc1828cb5604fa04f29cc43b81a5ae69170ee..3fea4f4561189d91809c04e19f33b64db6586e16 100644 (file)
     <Command.MSFT, Command.INTEL>\r
         "$(CC)" /Fo${dst} $(CC_FLAGS) $(INC) ${src}\r
 \r
-    <Command.GCC, Command.RVCT>\r
+    <Command.GCC, Command.GCCLD, Command.RVCT>\r
         # For RVCTCYGWIN CC_FLAGS must be first to work around pathing issues\r
         "$(CC)" $(CC_FLAGS) -o ${dst} $(INC) ${src}\r
 \r
     <Command.MSFT, Command.INTEL>\r
         "$(CC)" /Fo${dst} $(CC_FLAGS) $(INC) ${src}\r
 \r
-    <Command.GCC, Command.RVCT>\r
+    <Command.GCC, Command.GCCLD, Command.RVCT>\r
         # For RVCTCYGWIN CC_FLAGS must be first to work around pathing issues\r
         "$(CC)" $(CC_FLAGS) -o ${dst} $(INC) ${src}\r
         "$(SYMRENAME)" $(SYMRENAME_FLAGS) ${dst}\r
     <OutputFile>\r
         $(OUTPUT_DIR)(+)${s_dir}(+)${s_base}.obj\r
 \r
-    <Command.GCC>\r
+    <Command.GCC, Command.GCCLD>\r
         "$(CC)" $(CC_FLAGS) $(CC_XIPFLAGS) -o ${dst} $(INC) ${src}\r
 \r
 [C-Header-File]\r
     <InputFile.MSFT, InputFile.INTEL, InputFile.RVCT>\r
         ?.asm, ?.Asm, ?.ASM\r
 \r
-    <InputFile.GCC>\r
+    <InputFile.GCC, InputFile.GCCLD>\r
         ?.S, ?.s\r
 \r
     <ExtraDependency>\r
         Trim --source-code --convert-hex --trim-long -o ${d_path}(+)${s_base}.iii ${d_path}(+)${s_base}.i\r
         "$(ASM)" /Fo${dst} $(ASM_FLAGS) /I${s_path} $(INC) ${d_path}(+)${s_base}.iii\r
 \r
-    <Command.GCC, Command.RVCT>\r
+    <Command.GCC, Command.GCCLD, Command.RVCT>\r
         "$(PP)" $(PP_FLAGS) $(INC) ${src} > ${d_path}(+)${s_base}.i\r
         Trim --trim-long --source-code -o ${d_path}(+)${s_base}.iii ${d_path}(+)${s_base}.i\r
         # For RVCTCYGWIN ASM_FLAGS must be first to work around pathing issues\r
     <Command.MSFT, Command.INTEL>\r
         "$(SLINK)" $(SLINK_FLAGS) /OUT:${dst} @$(OBJECT_FILES_LIST)\r
 \r
-    <Command.GCC>\r
+    <Command.GCC, Command.GCCLD>\r
         "$(SLINK)" -cr ${dst} $(SLINK_FLAGS) @$(OBJECT_FILES_LIST)\r
     \r
     <Command.RVCT>\r
     <Command.MSFT, Command.INTEL>\r
         "$(DLINK)" /OUT:${dst} $(DLINK_FLAGS) $(DLINK_SPATH) @$(STATIC_LIBRARY_FILES_LIST)\r
 \r
-    <Command.GCC>\r
+    <Command.GCC, Command.GCCLD>\r
         "$(DLINK)" -o ${dst} $(DLINK_FLAGS) --start-group $(DLINK_SPATH) @$(STATIC_LIBRARY_FILES_LIST) --end-group $(DLINK2_FLAGS)\r
         "$(OBJCOPY)" $(OBJCOPY_FLAGS) ${dst}\r
 \r
     <Command.MSFT, Command.INTEL>\r
         "$(DLINK)" $(DLINK_FLAGS) $(DLINK_SPATH) @$(STATIC_LIBRARY_FILES_LIST)\r
 \r
-    <Command.GCC>\r
+    <Command.GCC, Command.GCCLD>\r
         "$(DLINK)" $(DLINK_FLAGS) --start-group $(DLINK_SPATH) @$(STATIC_LIBRARY_FILES_LIST) --end-group $(DLINK2_FLAGS)\r
 \r
     <Command.RVCT>\r
         $(CP) ${dst} $(BIN_DIR)(+)$(MODULE_NAME_GUID).efi\r
         -$(CP) $(DEBUG_DIR)(+)*.map $(OUTPUT_DIR)\r
         -$(CP) $(DEBUG_DIR)(+)*.pdb $(OUTPUT_DIR) \r
-    <Command.GCC>\r
+    <Command.GCC, Command.GCCLD>\r
         $(CP) ${src} $(DEBUG_DIR)(+)$(MODULE_NAME).debug\r
         $(OBJCOPY) --strip-unneeded -R .eh_frame ${src}\r
 \r
         Trim --source-code -l -o $(OUTPUT_DIR)(+)${s_dir}(+)${s_base}.iiii $(OUTPUT_DIR)(+)${s_dir}(+)${s_base}.iii \r
         "$(ASL)" $(ASL_FLAGS) $(ASL_OUTFLAGS)${dst} $(OUTPUT_DIR)(+)${s_dir}(+)${s_base}.iiii\r
 \r
-    <Command.GCC>\r
+    <Command.GCC, Command.GCCLD>\r
         Trim --asl-file -o $(OUTPUT_DIR)(+)${s_dir}(+)${s_base}.i -i $(INC_LIST) ${src}\r
         "$(ASLPP)" $(ASLPP_FLAGS) $(INC) -I${s_path} $(OUTPUT_DIR)(+)${s_dir}(+)${s_base}.i > $(OUTPUT_DIR)(+)${s_dir}(+)${s_base}.iii\r
         Trim --source-code -l -o $(OUTPUT_DIR)(+)${s_dir}(+)${s_base}.iiii $(OUTPUT_DIR)(+)${s_dir}(+)${s_base}.iii \r
         "$(ASLDLINK)" /OUT:$(OUTPUT_DIR)(+)${s_dir}(+)${s_base}.dll $(ASLDLINK_FLAGS) $(OUTPUT_DIR)(+)${s_dir}(+)${s_base}.obj\r
         "$(GENFW)" -o ${dst} -c $(OUTPUT_DIR)(+)${s_dir}(+)${s_base}.dll $(GENFW_FLAGS)\r
 \r
-    <Command.GCC>\r
+    <Command.GCC, Command.GCCLD>\r
         "$(ASLCC)" -o $(OUTPUT_DIR)(+)${s_dir}(+)${s_base}.obj $(CC_FLAGS) $(ASLCC_FLAGS) $(INC) ${src}\r
         "$(ASLDLINK)" -o $(OUTPUT_DIR)(+)${s_dir}(+)${s_base}.dll $(ASLDLINK_FLAGS) $(OUTPUT_DIR)(+)${s_dir}(+)${s_base}.obj\r
         "$(GENFW)" -o ${dst} -c $(OUTPUT_DIR)(+)${s_dir}(+)${s_base}.dll $(GENFW_FLAGS)\r
         "$(ASLDLINK)" /OUT:$(OUTPUT_DIR)(+)${s_dir}(+)${s_base}.dll $(ASLDLINK_FLAGS) $(OUTPUT_DIR)(+)${s_dir}(+)${s_base}.obj\r
         "$(GENFW)" -o ${dst} -c $(OUTPUT_DIR)(+)${s_dir}(+)${s_base}.dll $(GENFW_FLAGS)\r
 \r
-    <Command.GCC>\r
+    <Command.GCC, Command.GCCLD>\r
         "$(ASLCC)" -o $(OUTPUT_DIR)(+)${s_dir}(+)${s_base}.obj $(CC_FLAGS) $(ASLCC_FLAGS) $(INC) ${src}\r
         "$(ASLDLINK)" -o $(OUTPUT_DIR)(+)${s_dir}(+)${s_base}.dll $(ASLDLINK_FLAGS) $(OUTPUT_DIR)(+)${s_dir}(+)${s_base}.obj\r
         "$(GENFW)" -o ${dst} -c $(OUTPUT_DIR)(+)${s_dir}(+)${s_base}.dll $(GENFW_FLAGS)\r
         "$(ASM16)" /nologo /c /omf $(INC) /Fo$(OUTPUT_DIR)(+)${s_dir}(+)${s_base}.obj ${d_path}(+)${s_base}.iii\r
         "$(ASMLINK)" $(ASMLINK_FLAGS) $(OUTPUT_DIR)(+)${s_dir}(+)${s_base}.obj,${dst},,,,\r
 \r
-    <Command.GCC>\r
+    <Command.GCC, Command.GCCLD>\r
       "$(PP)" $(PP_FLAGS) $(INC) ${src} > ${d_path}(+)${s_base}.i\r
       Trim --source-code -o ${d_path}(+)${s_base}.iii ${d_path}(+)${s_base}.i\r
       "$(ASM)" -o $(OUTPUT_DIR)(+)${s_dir}(+)${s_base}.obj $(ASM_FLAGS) $(INC) ${d_path}(+)${s_base}.iii\r
         "$(GENFW)" -o $(OUTPUT_DIR)(+)$(MODULE_NAME)hii.rc -g $(MODULE_GUID) --hiipackage $(HII_BINARY_PACKAGES) $(GENFW_FLAGS)\r
         "$(RC)" /Fo${dst} $(OUTPUT_DIR)(+)$(MODULE_NAME)hii.rc\r
 \r
-    <Command.GCC>\r
+    <Command.GCC, Command.GCCLD>\r
         "$(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
index b36a19314215dd13c9a64565487ef95fc2595018..8a04e38e128868312237e9c65e131089a16d9785 100644 (file)
@@ -4460,6 +4460,7 @@ DEFINE GCC49_AARCH64_ASLDLINK_FLAGS  = DEF(GCC48_AARCH64_ASLDLINK_FLAGS)
 #   UNIXGCC         - UNIX GCC\r
 #   ASL             - Intel Linux ACPI Source Language Compiler (iasl)\r
 *_UNIXGCC_*_*_FAMILY               = GCC\r
+*_UNIXGCC_*_*_BUILDRULEFAMILY      = GCCLD\r
 \r
 *_UNIXGCC_*_MAKE_PATH                    = make\r
 *_UNIXGCC_*_ASL_PATH                     = DEF(UNIX_IASL_BIN)\r
@@ -5268,6 +5269,7 @@ RELEASE_CLANG35_AARCH64_CC_FLAGS = DEF(CLANG35_AARCH64_CC_FLAGS) $(ARCHCC_FLAGS)
 #   CYGGCC        - CygWin GCC\r
 #   ASL           - Intel ACPI Source Language Compiler (iasl.exe)\r
 *_CYGGCC_*_*_FAMILY              = GCC\r
+*_CYGGCC_*_*_BUILDRULEFAMILY     = GCCLD\r
 \r
 *_CYGGCC_*_*_DLL                 = DEF(CYGWIN_BIN)\r
 *_CYGGCC_*_MAKE_PATH             = DEF(MS_VS_BIN)\nmake.exe\r
@@ -5375,6 +5377,7 @@ RELEASE_CLANG35_AARCH64_CC_FLAGS = DEF(CLANG35_AARCH64_CC_FLAGS) $(ARCHCC_FLAGS)
 #   CYGGCCxASL        - CygWin GCC\r
 #   ASL           - Microsoft ACPI Source Language Compiler (asl.exe)\r
 *_CYGGCCxASL_*_*_FAMILY              = GCC\r
+*_CYGGCCxASL_*_*_BUILDRULEFAMILY     = GCCLD\r
 \r
 *_CYGGCCxASL_*_*_DLL                 = DEF(CYGWIN_BIN)\r
 *_CYGGCCxASL_*_MAKE_PATH             = DEF(MS_VS_BIN)\nmake.exe\r
@@ -5478,6 +5481,7 @@ RELEASE_CLANG35_AARCH64_CC_FLAGS = DEF(CLANG35_AARCH64_CC_FLAGS) $(ARCHCC_FLAGS)
 ####################################################################################\r
 #   ELFGCC           - Linux ELF GCC\r
 *_ELFGCC_*_*_FAMILY                 = GCC\r
+*_ELFGCC_*_*_BUILDRULEFAMILY        = GCCLD\r
 *_ELFGCC_*_MAKE_PATH                = make\r
 \r
 *_ELFGCC_*_PP_FLAGS                     = -E -x assembler-with-cpp -include AutoGen.h\r