From patchwork Sat Jul 23 09:03:18 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ard Biesheuvel X-Patchwork-Id: 72648 Delivered-To: patch@linaro.org Received: by 10.140.29.52 with SMTP id a49csp196418qga; Sat, 23 Jul 2016 02:03:37 -0700 (PDT) X-Received: by 10.66.72.40 with SMTP id a8mr13771567pav.15.1469264617874; Sat, 23 Jul 2016 02:03:37 -0700 (PDT) Return-Path: Received: from ml01.01.org (ml01.01.org. [198.145.21.10]) by mx.google.com with ESMTPS id d3si21017107pay.44.2016.07.23.02.03.37 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sat, 23 Jul 2016 02:03:37 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of edk2-devel-bounces@lists.01.org designates 198.145.21.10 as permitted sender) client-ip=198.145.21.10; Authentication-Results: mx.google.com; dkim=neutral (body hash did not verify) header.i=@linaro.org; spf=pass (google.com: best guess record for domain of edk2-devel-bounces@lists.01.org designates 198.145.21.10 as permitted sender) smtp.mailfrom=edk2-devel-bounces@lists.01.org; dmarc=fail (p=NONE dis=NONE) header.from=linaro.org Received: from [127.0.0.1] (localhost [IPv6:::1]) by ml01.01.org (Postfix) with ESMTP id 731981A1E02; Sat, 23 Jul 2016 02:03:37 -0700 (PDT) X-Original-To: edk2-devel@lists.01.org Delivered-To: edk2-devel@lists.01.org Received: from mail-wm0-x22d.google.com (mail-wm0-x22d.google.com [IPv6:2a00:1450:400c:c09::22d]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ml01.01.org (Postfix) with ESMTPS id 373871A1E02 for ; Sat, 23 Jul 2016 02:03:35 -0700 (PDT) Received: by mail-wm0-x22d.google.com with SMTP id o80so94295639wme.1 for ; Sat, 23 Jul 2016 02:03:35 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=t/XJT4DhcoHGIdzBNv1oFOHKf/8EGwviyZIFDSqKlV8=; b=i+iY+ucVX/GojE/qbMwysYEsxDseVnxCybd6HGFWiRKcbl5ruJh/mOIScWUUEqm4CB DQEzaMEx+SviKwuUzZ3GFHGUX/iMVj1LR0YveaD7XeKDMOnbHfMc8sNFBo/mwHHJscSX DfgGjNWyWSAtBJLnSlhtFCOvEeCTnm1E1TKfo= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=t/XJT4DhcoHGIdzBNv1oFOHKf/8EGwviyZIFDSqKlV8=; b=aDclsB5T8rbrbuZgNdtNJtkNbtg1fi1oWzqY/KfDuFFm1qNXufUmQgllJF/DbMuxxK slg9X4/CF8qNPsa6XtuIMMcKifC+R7oLLahNjLH+4zqWKhUOG/nA841dWmCLNnCBWfxo 7e+o/d7J1rfMQPmCiJeN05DyyojY87EnWiTQeUipENqIHprUE+vXaXomGOHlj0L0nCgD zLnW4ZYkzbxbSn4kyGqAcK1Xl0YsLNXViV1kD3+GzIHA+Ab2cofNzDTTPuNsu/qjkz4r 3c0RCJ9E2Tdp+iqyojb3exA5UDJM7a32LcWhS7I7/epxPJSC2TwB3injqX6yMenO0iv+ l7pA== X-Gm-Message-State: ALyK8tLOJzK/dVIopF2askJJ/MlADi9e5zx80+scsDzcrLC633yqtkbm/FDijbEyt4CLBBYq X-Received: by 10.28.26.69 with SMTP id a66mr28175186wma.8.1469264613626; Sat, 23 Jul 2016 02:03:33 -0700 (PDT) Received: from localhost.localdomain (154.red-83-36-182.dynamicip.rima-tde.net. [83.36.182.154]) by smtp.gmail.com with ESMTPSA id va3sm4901988wjb.18.2016.07.23.02.03.31 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Sat, 23 Jul 2016 02:03:32 -0700 (PDT) From: Ard Biesheuvel To: edk2-devel@lists.01.org, lersek@redhat.com, liming.gao@intel.com, steven.shi@intel.com, yonghong.zhu@intel.com, jordan.l.justen@intel.com Date: Sat, 23 Jul 2016 11:03:18 +0200 Message-Id: <1469264601-31356-4-git-send-email-ard.biesheuvel@linaro.org> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1469264601-31356-1-git-send-email-ard.biesheuvel@linaro.org> References: <1469264601-31356-1-git-send-email-ard.biesheuvel@linaro.org> Subject: [edk2] [PATCH v3 3/6] BaseTools UNIXGCC ELFGCC CYGGCC: clone GCC build rule family into GCCLD X-BeenThere: edk2-devel@lists.01.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: EDK II Development List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Cc: leif.lindholm@linaro.org, Ard Biesheuvel MIME-Version: 1.0 Errors-To: edk2-devel-bounces@lists.01.org Sender: "edk2-devel" 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 --- BaseTools/Conf/build_rule.template | 28 ++++++++++---------- BaseTools/Conf/tools_def.template | 4 +++ 2 files changed, 18 insertions(+), 14 deletions(-) -- 2.7.4 _______________________________________________ edk2-devel mailing list edk2-devel@lists.01.org https://lists.01.org/mailman/listinfo/edk2-devel diff --git a/BaseTools/Conf/build_rule.template b/BaseTools/Conf/build_rule.template index 91bcc1828cb5..3fea4f456118 100644 --- a/BaseTools/Conf/build_rule.template +++ b/BaseTools/Conf/build_rule.template @@ -130,7 +130,7 @@ "$(CC)" /Fo${dst} $(CC_FLAGS) $(INC) ${src} - + # For RVCTCYGWIN CC_FLAGS must be first to work around pathing issues "$(CC)" $(CC_FLAGS) -o ${dst} $(INC) ${src} @@ -156,7 +156,7 @@ "$(CC)" /Fo${dst} $(CC_FLAGS) $(INC) ${src} - + # For RVCTCYGWIN CC_FLAGS must be first to work around pathing issues "$(CC)" $(CC_FLAGS) -o ${dst} $(INC) ${src} "$(SYMRENAME)" $(SYMRENAME_FLAGS) ${dst} @@ -171,7 +171,7 @@ $(OUTPUT_DIR)(+)${s_dir}(+)${s_base}.obj - + "$(CC)" $(CC_FLAGS) $(CC_XIPFLAGS) -o ${dst} $(INC) ${src} [C-Header-File] @@ -187,7 +187,7 @@ ?.asm, ?.Asm, ?.ASM - + ?.S, ?.s @@ -201,7 +201,7 @@ Trim --source-code --convert-hex --trim-long -o ${d_path}(+)${s_base}.iii ${d_path}(+)${s_base}.i "$(ASM)" /Fo${dst} $(ASM_FLAGS) /I${s_path} $(INC) ${d_path}(+)${s_base}.iii - + "$(PP)" $(PP_FLAGS) $(INC) ${src} > ${d_path}(+)${s_base}.i Trim --trim-long --source-code -o ${d_path}(+)${s_base}.iii ${d_path}(+)${s_base}.i # For RVCTCYGWIN ASM_FLAGS must be first to work around pathing issues @@ -265,7 +265,7 @@ "$(SLINK)" $(SLINK_FLAGS) /OUT:${dst} @$(OBJECT_FILES_LIST) - + "$(SLINK)" -cr ${dst} $(SLINK_FLAGS) @$(OBJECT_FILES_LIST) @@ -291,7 +291,7 @@ "$(DLINK)" /OUT:${dst} $(DLINK_FLAGS) $(DLINK_SPATH) @$(STATIC_LIBRARY_FILES_LIST) - + "$(DLINK)" -o ${dst} $(DLINK_FLAGS) --start-group $(DLINK_SPATH) @$(STATIC_LIBRARY_FILES_LIST) --end-group $(DLINK2_FLAGS) "$(OBJCOPY)" $(OBJCOPY_FLAGS) ${dst} @@ -319,7 +319,7 @@ "$(DLINK)" $(DLINK_FLAGS) $(DLINK_SPATH) @$(STATIC_LIBRARY_FILES_LIST) - + "$(DLINK)" $(DLINK_FLAGS) --start-group $(DLINK_SPATH) @$(STATIC_LIBRARY_FILES_LIST) --end-group $(DLINK2_FLAGS) @@ -346,7 +346,7 @@ $(CP) ${dst} $(BIN_DIR)(+)$(MODULE_NAME_GUID).efi -$(CP) $(DEBUG_DIR)(+)*.map $(OUTPUT_DIR) -$(CP) $(DEBUG_DIR)(+)*.pdb $(OUTPUT_DIR) - + $(CP) ${src} $(DEBUG_DIR)(+)$(MODULE_NAME).debug $(OBJCOPY) --strip-unneeded -R .eh_frame ${src} @@ -402,7 +402,7 @@ Trim --source-code -l -o $(OUTPUT_DIR)(+)${s_dir}(+)${s_base}.iiii $(OUTPUT_DIR)(+)${s_dir}(+)${s_base}.iii "$(ASL)" $(ASL_FLAGS) $(ASL_OUTFLAGS)${dst} $(OUTPUT_DIR)(+)${s_dir}(+)${s_base}.iiii - + Trim --asl-file -o $(OUTPUT_DIR)(+)${s_dir}(+)${s_base}.i -i $(INC_LIST) ${src} "$(ASLPP)" $(ASLPP_FLAGS) $(INC) -I${s_path} $(OUTPUT_DIR)(+)${s_dir}(+)${s_base}.i > $(OUTPUT_DIR)(+)${s_dir}(+)${s_base}.iii Trim --source-code -l -o $(OUTPUT_DIR)(+)${s_dir}(+)${s_base}.iiii $(OUTPUT_DIR)(+)${s_dir}(+)${s_base}.iii @@ -423,7 +423,7 @@ "$(ASLDLINK)" /OUT:$(OUTPUT_DIR)(+)${s_dir}(+)${s_base}.dll $(ASLDLINK_FLAGS) $(OUTPUT_DIR)(+)${s_dir}(+)${s_base}.obj "$(GENFW)" -o ${dst} -c $(OUTPUT_DIR)(+)${s_dir}(+)${s_base}.dll $(GENFW_FLAGS) - + "$(ASLCC)" -o $(OUTPUT_DIR)(+)${s_dir}(+)${s_base}.obj $(CC_FLAGS) $(ASLCC_FLAGS) $(INC) ${src} "$(ASLDLINK)" -o $(OUTPUT_DIR)(+)${s_dir}(+)${s_base}.dll $(ASLDLINK_FLAGS) $(OUTPUT_DIR)(+)${s_dir}(+)${s_base}.obj "$(GENFW)" -o ${dst} -c $(OUTPUT_DIR)(+)${s_dir}(+)${s_base}.dll $(GENFW_FLAGS) @@ -443,7 +443,7 @@ "$(ASLDLINK)" /OUT:$(OUTPUT_DIR)(+)${s_dir}(+)${s_base}.dll $(ASLDLINK_FLAGS) $(OUTPUT_DIR)(+)${s_dir}(+)${s_base}.obj "$(GENFW)" -o ${dst} -c $(OUTPUT_DIR)(+)${s_dir}(+)${s_base}.dll $(GENFW_FLAGS) - + "$(ASLCC)" -o $(OUTPUT_DIR)(+)${s_dir}(+)${s_base}.obj $(CC_FLAGS) $(ASLCC_FLAGS) $(INC) ${src} "$(ASLDLINK)" -o $(OUTPUT_DIR)(+)${s_dir}(+)${s_base}.dll $(ASLDLINK_FLAGS) $(OUTPUT_DIR)(+)${s_dir}(+)${s_base}.obj "$(GENFW)" -o ${dst} -c $(OUTPUT_DIR)(+)${s_dir}(+)${s_base}.dll $(GENFW_FLAGS) @@ -472,7 +472,7 @@ "$(ASM16)" /nologo /c /omf $(INC) /Fo$(OUTPUT_DIR)(+)${s_dir}(+)${s_base}.obj ${d_path}(+)${s_base}.iii "$(ASMLINK)" $(ASMLINK_FLAGS) $(OUTPUT_DIR)(+)${s_dir}(+)${s_base}.obj,${dst},,,, - + "$(PP)" $(PP_FLAGS) $(INC) ${src} > ${d_path}(+)${s_base}.i Trim --source-code -o ${d_path}(+)${s_base}.iii ${d_path}(+)${s_base}.i "$(ASM)" -o $(OUTPUT_DIR)(+)${s_dir}(+)${s_base}.obj $(ASM_FLAGS) $(INC) ${d_path}(+)${s_base}.iii @@ -596,7 +596,7 @@ "$(GENFW)" -o $(OUTPUT_DIR)(+)$(MODULE_NAME)hii.rc -g $(MODULE_GUID) --hiipackage $(HII_BINARY_PACKAGES) $(GENFW_FLAGS) "$(RC)" /Fo${dst} $(OUTPUT_DIR)(+)$(MODULE_NAME)hii.rc - + "$(GENFW)" -o $(OUTPUT_DIR)(+)$(MODULE_NAME)hii.rc -g $(MODULE_GUID) --hiibinpackage $(HII_BINARY_PACKAGES) $(GENFW_FLAGS) "$(RC)" $(RC_FLAGS) $(OUTPUT_DIR)(+)$(MODULE_NAME)hii.rc ${dst} diff --git a/BaseTools/Conf/tools_def.template b/BaseTools/Conf/tools_def.template index b36a19314215..8a04e38e1288 100644 --- a/BaseTools/Conf/tools_def.template +++ b/BaseTools/Conf/tools_def.template @@ -4460,6 +4460,7 @@ DEFINE GCC49_AARCH64_ASLDLINK_FLAGS = DEF(GCC48_AARCH64_ASLDLINK_FLAGS) # UNIXGCC - UNIX GCC # ASL - Intel Linux ACPI Source Language Compiler (iasl) *_UNIXGCC_*_*_FAMILY = GCC +*_UNIXGCC_*_*_BUILDRULEFAMILY = GCCLD *_UNIXGCC_*_MAKE_PATH = make *_UNIXGCC_*_ASL_PATH = DEF(UNIX_IASL_BIN) @@ -5268,6 +5269,7 @@ RELEASE_CLANG35_AARCH64_CC_FLAGS = DEF(CLANG35_AARCH64_CC_FLAGS) $(ARCHCC_FLAGS) # CYGGCC - CygWin GCC # ASL - Intel ACPI Source Language Compiler (iasl.exe) *_CYGGCC_*_*_FAMILY = GCC +*_CYGGCC_*_*_BUILDRULEFAMILY = GCCLD *_CYGGCC_*_*_DLL = DEF(CYGWIN_BIN) *_CYGGCC_*_MAKE_PATH = DEF(MS_VS_BIN)\nmake.exe @@ -5375,6 +5377,7 @@ RELEASE_CLANG35_AARCH64_CC_FLAGS = DEF(CLANG35_AARCH64_CC_FLAGS) $(ARCHCC_FLAGS) # CYGGCCxASL - CygWin GCC # ASL - Microsoft ACPI Source Language Compiler (asl.exe) *_CYGGCCxASL_*_*_FAMILY = GCC +*_CYGGCCxASL_*_*_BUILDRULEFAMILY = GCCLD *_CYGGCCxASL_*_*_DLL = DEF(CYGWIN_BIN) *_CYGGCCxASL_*_MAKE_PATH = DEF(MS_VS_BIN)\nmake.exe @@ -5478,6 +5481,7 @@ RELEASE_CLANG35_AARCH64_CC_FLAGS = DEF(CLANG35_AARCH64_CC_FLAGS) $(ARCHCC_FLAGS) #################################################################################### # ELFGCC - Linux ELF GCC *_ELFGCC_*_*_FAMILY = GCC +*_ELFGCC_*_*_BUILDRULEFAMILY = GCCLD *_ELFGCC_*_MAKE_PATH = make *_ELFGCC_*_PP_FLAGS = -E -x assembler-with-cpp -include AutoGen.h