summaryrefslogtreecommitdiffstats
path: root/BaseTools/Conf
Commit message (Collapse)AuthorAgeFilesLines
* BaseTools: fix line endings in SetupGit.py Conf filesLeif Lindholm2019-10-042-2/+2
| | | | | | | | | | | | | | A file header license/copyright header copied around in commit 5b3e695d8ac5 ("BaseTools: add centralized location for git config files") was missing a CR - add it in both faulty locations. Cc: Bob Feng <bob.c.feng@intel.com> Cc: Liming Gao <liming.gao@intel.com> Signed-off-by: Leif Lindholm <leif.lindholm@linaro.org> Reviewed-by: Bob Feng <bob.c.feng@intel.com> Reviewed-by: Liming Gao <liming.gao@intel.com> Acked-by: Ard Biesheuvel <ard.biesheuvel@linaro.org> Reviewed-by: Philippe Mathieu-Daude <philmd@redhat.com>
* Add VS2019 Toolchain defCheng, Ching JenX2019-09-231-19/+201
| | | | | | | | | | | | | | | | REF: https://bugzilla.tianocore.org/show_bug.cgi?id=2182 In order to support VS2019, the first thing need to do is add 2019 toolchain on tools_def.template v2: add ARM/AARCH64/EBC Definitions, Combine VS2017_HOST and VS2019_HOST to VS_HOST Cc: Amy Chan <amy.chan@intel.com> Cc: Bob Feng <bob.c.feng@intel.com> Cc: Liming Gao <liming.gao@intel.com> Signed-off-by: Ching JenX Cheng <ching.jenx.cheng@intel.com> Reviewed-by: Liming Gao <liming.gao@intel.com> Reviewed-by: Pete Batard <pete@akeo.ie>
* BaseTools/tools_def.template: Add -gdwarf to XCODE5 X64Andrew Fish2019-08-191-2/+2
| | | | | | | | | | | | | Add -gdwarf to XCODE5 X64 builds to generate symbols for source level debug using lldb. Cc: Jordan Justen <jordan.l.justen@intel.com> Cc: Ray Ni <ray.ni@intel.com> Cc: Michael D Kinney <michael.d.kinney@intel.com> Signed-off-by: Andrew Fish <afish@apple.com> Reviewed-by: Michael D Kinney <michael.d.kinney@intel.com> Acked-by: Jordan Justen <jordan.l.justen@intel.com> Tested-by: Andrew Fish <afish@apple.com>
* BaseTools: Add HOST_APPLICATION module type.Jiewen Yao2019-07-121-1/+1
| | | | | | | | | | | It can be used to indicate a module can be build to run as OS application and run in OS environment. Cc: Bob Feng <bob.c.feng@intel.com> Cc: Liming Gao <liming.gao@intel.com> Cc: Jiewen Yao <jiewen.yao@intel.com> Signed-off-by: Xiaoyu Lu <xiaoyux.lu@intel.com> Reviewed-by: Liming Gao <liming.gao@intel.com>
* BaseTools: Fix various typosAntoine Cœur2019-07-081-4/+4
| | | | | | | Fix various typos in BaseTools. Signed-off-by: Cœur <coeur@gmx.fr> Reviewed-by: Bob Feng <bob.c.feng@intel.com>
* BaseTools: add centralized location for git config filesLeif Lindholm2019-06-122-0/+32
| | | | | | | | | | | | Before adding the git environment initialization script, add the following files that will be pointed to after running said script: - BaseTools/Conf/diff.order - BaseTools/Conf/gitattributes Signed-off-by: Leif Lindholm <leif.lindholm@linaro.org> Reviewed-by: Laszlo Ersek <lersek@redhat.com> Reviewed-by: Bob Feng <bob.c.feng@intel.com>
* BaseTools: Update Conf/target.template with the default EmulatorPkg.dscLiming Gao2019-05-231-2/+2
| | | | | | | | Nt32Pkg has been removed. The default platform is changed to EmulatorPkg.dsc. Signed-off-by: Liming Gao <liming.gao@intel.com> Cc: Bob Feng <bob.c.feng@intel.com> Reviewed-by: Bob Feng <bob.c.feng@intel.com>
* BaseTools:Delete FrameworkDatabase from BaseTools/ConfFan, ZhijuX2019-05-091-23/+0
| | | | | | | | | | | | | | BZ:https://bugzilla.tianocore.org/show_bug.cgi?id=1627 The FrameworkDatabase was already obsolete, So, FrameworkDatabase can be removed from BaseTools/Conf. This patch is going to fix this issue. Cc: Bob Feng <bob.c.feng@intel.com> Cc: Liming Gao <liming.gao@intel.com> Signed-off-by: Zhiju.Fan <zhijux.fan@intel.com> Reviewed-by: Bob Feng <bob.c.feng@intel.com>
* BaseTools/tools_def.template: Remove tools chain with ASL toolShenglei Zhang2019-04-281-1260/+0
| | | | | | | | | | | | | | | | | Microsoft ASL is not verified now. So remove tool chain with ASL tool. They are: VS2008xASL, VS2008x86xASL, VS2010xASL, VS2010x86xASL, VS2012xASL, VS2012x86xASL, VS2013xASL, VS2013x86xASL, VS2015xASL, VS2015x86xASL and CYGGCCxASL. https://bugzilla.tianocore.org/show_bug.cgi?id=1667 v2:Remove definitions of WIN_ASL_BIN, MS_ASL_OUTFLAGS and MS_ASL_FLAGS. Cc: Bob Feng <bob.c.feng@intel.com> Cc: Liming Gao <liming.gao@intel.com> Cc: Yonghong Zhu <yonghong.zhu@intel.com> Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Shenglei Zhang <shenglei.zhang@intel.com> Reviewed-by: Liming Gao <liming.gao@intel.com>
* BaseTools: Remove ICC tool chain in tools_def.templateShenglei Zhang2019-04-241-1092/+0
| | | | | | | | | | | | | | There is no Intel compiler test. Suggest to remove ICC tool chain from tools_def.template. https://bugzilla.tianocore.org/show_bug.cgi?id=1666 Cc: Bob Feng <bob.c.feng@intel.com> Cc: Liming Gao <liming.gao@intel.com> Cc: Yonghong Zhu <yonghong.zhu@intel.com> Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Shenglei Zhang <shenglei.zhang@intel.com> Reviewed-by: Liming Gao <liming.gao@intel.com> (cherry picked from commit 323b5b06c593ba6e438847dec7d4acec7f9df970)
* BaseTools:Enable the /MP option of MSVC compilerFan, ZhijuX2019-04-161-63/+63
| | | | | | | | | | | | | BZ:https://bugzilla.tianocore.org/show_bug.cgi?id=1672 The /MP option of MSVC compiler can reduce the total time to compile the source files on the command line. This patch is going to enable this MSVC option in BaseTools. Cc: Bob Feng <bob.c.feng@intel.com> Cc: Liming Gao <liming.gao@intel.com> Signed-off-by: Zhiju.Fan <zhijux.fan@intel.com> Reviewed-by: Bob Feng <bob.c.feng@intel.com>
* BaseTools: Fixed issue in MultiThread Genfds functionFeng, Bob C2019-04-101-4/+4
| | | | | | | | | | | | | | | | | | | | | https://bugzilla.tianocore.org/show_bug.cgi?id=1450 In the Multiple thread Genfds feature, build tool generates GenSec, GenFFS command in Makefile. The Non-Hii Driver does not generate .offset file for uni string offset, but the build tool has not knowledge about this in autogen phase. So in this patch, I add a check in Makefile for GenSec command. If the GenSec input file does not exist, the GenSec will not be called. And if GenSec command is not called, its output file, which is also the input file of GenFfs command, will also not exist.So for GenFfs command, I add a new command parameter -oi which means the input file is an optional input file which would not exist. so that I can generate GenFfs command with "-oi" parameter in Makefile. Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Bob Feng <bob.c.feng@intel.com> Cc: Liming Gao <liming.gao@intel.com> Reviewed-by: Liming Gao <liming.gao@intel.com>
* BaseTools: Replace BSD License with BSD+Patent LicenseMichael D Kinney2019-04-096-40/+6
| | | | | | | | | | | | | | | | | | | | https://bugzilla.tianocore.org/show_bug.cgi?id=1373 Replace BSD 2-Clause License with BSD+Patent License. This change is based on the following emails: https://lists.01.org/pipermail/edk2-devel/2019-February/036260.html https://lists.01.org/pipermail/edk2-devel/2018-October/030385.html RFCs with detailed process for the license change: V3: https://lists.01.org/pipermail/edk2-devel/2019-March/038116.html V2: https://lists.01.org/pipermail/edk2-devel/2019-March/037669.html V1: https://lists.01.org/pipermail/edk2-devel/2019-March/037500.html Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Michael D Kinney <michael.d.kinney@intel.com> Reviewed-by: Bob Feng <bob.c.feng@intel.com>
* BaseTools: Add missing license and copyright infoDandan Bi2019-03-191-0/+12
| | | | | | | | | | | | REF: https://bugzilla.tianocore.org/show_bug.cgi?id=1615 Cc: Bob Feng <bob.c.feng@intel.com> Cc: Liming Gao <liming.gao@intel.com> Cc: Michael D Kinney <michael.d.kinney@intel.com> Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Dandan Bi <dandan.bi@intel.com> Reviewed-by: Liming Gao <liming.gao@intel.com> Reviewed-by: Bob Feng <bob.c.feng@intel.com>
* BaseTools: Enable compiler cache support in edk2 buildShi, Steven2019-03-121-16/+16
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | https://bugzilla.tianocore.org/show_bug.cgi?id=1499 Compiler cache can greatly improve the build performance and guarantee the build result safe. In our testing, the compiler cache can improve the overall clean build time usually by 30+% in linux and 10+% in windows. The compiler cache are very fit to improve the Continuous Integration (CI) build performance. For linux compiler cache (ccache) enabling, there is no need to update edk2 code. Below link has the ccache enabling referencd steps: https://github.com/shijunjing/edk2/wiki/ Edk2-compiler-cache-enabling-steps-on-Linux For windows compiler cache (clcache) enabling, we need update the .PDB debugging file producing option from /Zi to /Z7, which is to let the C object file contain its full symbolic debugging information rather than produces a separated PDB file for all obj files per folder. "PDB files are generated by a different process (mspdbsrv). They arrive or are updated on disk after cl completes a compilation or linking operation. One huge problem with caching them is that the pdb files are input files as well as outputs. mspdbsrv updates the file with new debug information if the file exists beforehand. If there are several compilations going on at once targetting the same pdb then the order the pdb gets updated is unpredictable. All this makes caching very hard." The /Zi issue more detail disccusion can be found: https://github.com/frerich/clcache/issues/30 Please be aware that this change has no any impact to edk2 module level PDB file generation, and we still can get the PDB debug file for a .efi module. The /Z7 only impact intermediate obj files level PDB file, which is current one PDB file (vc140.pdb) per obj folder. Below link has the clcache enabling referencd steps: https://github.com/shijunjing/edk2/wiki/ Edk2-compiler-cache-enabling-steps-on-Windows Have tested below tools which consume the .PDB file: *Edk2 source code debugger *Various hardware and software debuggers *Uefi code coverage tools Only update and test below most commonly used four msvc toolchains: VS2012x86 VS2013x86 VS2015x86 VS2017 Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Steven Shi <steven.shi@intel.com> Cc: Liming Gao <liming.gao@intel.com> Reviewed-by: Liming Gao <liming.gao@intel.com>
* BaseTools/build_rule.template: Remove GCCLDShenglei Zhang2019-02-141-20/+13
| | | | | | | | | | | | | GCCLD will be unused when UNIXGCC, CYGGCC and ELFGCC are removed. https://bugzilla.tianocore.org/show_bug.cgi?id=1377 Cc: Bob Feng <bob.c.feng@intel.com> Cc: Liming Gao <liming.gao@intel.com> Cc: Yonghong Zhu <yonghong.zhu@intel.com> Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Shenglei Zhang <shenglei.zhang@intel.com> Reviewed-by: Liming Gao <liming.gao@intel.com>
* BaseTools/tools_def.template: Remove DDK3790Shenglei Zhang2019-02-141-233/+0
| | | | | | | | | | | | | | DDK3790 is too old.There is no verification for it. https://bugzilla.tianocore.org/show_bug.cgi?id=1377 v3:Reserve WINDDK_BIN32 and WINDDK_BIN64. Cc: Bob Feng <bob.c.feng@intel.com> Cc: Liming Gao <liming.gao@intel.com> Cc: Yonghong Zhu <yonghong.zhu@intel.com> Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Shenglei Zhang <shenglei.zhang@intel.com> Reviewed-by: Liming Gao <liming.gao@intel.com>
* BaseTools/tools_def.template: Remove ELFGCCShenglei Zhang2019-02-141-80/+0
| | | | | | | | | | | | ELFGCC is too old.There is no verification for it. https://bugzilla.tianocore.org/show_bug.cgi?id=1377 Cc: Bob Feng <bob.c.feng@intel.com> Cc: Liming Gao <liming.gao@intel.com> Cc: Yonghong Zhu <yonghong.zhu@intel.com> Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Shenglei Zhang <shenglei.zhang@intel.com> Reviewed-by: Liming Gao <liming.gao@intel.com>
* BaseTools/tools_def.template: Remove UNIXGCCShenglei Zhang2019-02-141-96/+0
| | | | | | | | | | | | | UNIXGCC is too old.There is no verification for it. https://bugzilla.tianocore.org/show_bug.cgi?id=1377 Cc: Bob Feng <bob.c.feng@intel.com> Cc: Liming Gao <liming.gao@intel.com> Cc: Yonghong Zhu <yonghong.zhu@intel.com> Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Shenglei Zhang <shenglei.zhang@intel.com> Reviewed-by: Laszlo Ersek <lersek@redhat.com> Reviewed-by: Liming Gao <liming.gao@intel.com>
* BaseTools/tools_def.template: Remove VS2003 and VS2005Shenglei Zhang2019-02-141-689/+0
| | | | | | | | | | | | | | | | | | VS2003 and VS2005 are too old.There is no verification for them. https://bugzilla.tianocore.org/show_bug.cgi?id=1377 v3:1.Instead of removing MS_VS_BIN, change MS_VS_BIN from VS2005_BIN to VS2008_BIN. 2.Instead of removing MS_VS_DLL, change MS_VS_DLL from VS2005_DLL to VS2008_DLL. Cc: Bob Feng <bob.c.feng@intel.com> Cc: Liming Gao <liming.gao@intel.com> Cc: Yonghong Zhu <yonghong.zhu@intel.com> Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Shenglei Zhang <shenglei.zhang@intel.com> Reviewed-by: Liming Gao <liming.gao@intel.com>
* BaseTools: Update MYTOOLSShenglei Zhang2019-02-142-126/+5
| | | | | | | | | | | | | Remove MYTOOLS in tools_def.template and change MYTOOLS to VS2015x86 in target.template. https://bugzilla.tianocore.org/show_bug.cgi?id=1377 Cc: Bob Feng <bob.c.feng@intel.com> Cc: Liming Gao <liming.gao@intel.com> Cc: Yonghong Zhu <yonghong.zhu@intel.com> Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Shenglei Zhang <shenglei.zhang@intel.com> Reviewed-by: Liming Gao <liming.gao@intel.com>
* BaseTools/tools_def.template: Remove CYGGCCShenglei Zhang2019-02-141-194/+0
| | | | | | | | | | | | CYGGCC is too old.There is no verification for it. https://bugzilla.tianocore.org/show_bug.cgi?id=1377 Cc: Bob Feng <bob.c.feng@intel.com> Cc: Liming Gao <liming.gao@intel.com> Cc: Yonghong Zhu <yonghong.zhu@intel.com> Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Shenglei Zhang <shenglei.zhang@intel.com> Reviewed-by: Liming Gao <liming.gao@intel.com>
* BaseTools: Various typoAntoine Coeur2019-02-144-15/+15
| | | | | | | | Various typo in BaseTools. Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Coeur <coeur@gmx.fr> Reviewed-by: Liming Gao <liming.gao@intel.com>
* BaseTools/tools_def GCC5: disable LTO for ASLC invocationsArd Biesheuvel2019-01-141-12/+15
| | | | | | | | | | | | GCC for 32-bit ARM chokes on .aslc files when running with LTO enabled. Since LTO has no benefit whatsoever here, just disable it globally for GCC5 and up when building .aslc files. Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org> Reviewed-by: Leif Lindholm <leif.lindholm@linaro.org> Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com> Reviewed-by: Liming Gao <liming.gao@intel.com>
* BaseTools/tools_def.template: remove GCC44 documentationLaszlo Ersek2019-01-081-6/+0
| | | | | | | | | | | | | | | No GCC44 definitions or remarks exist at this point, so remove the GCC44 documentation too, from "tools_def.template". Cc: Bob Feng <bob.c.feng@intel.com> Cc: Liming Gao <liming.gao@intel.com> Cc: Yonghong Zhu <yonghong.zhu@intel.com> Ref: https://bugzilla.tianocore.org/show_bug.cgi?id=1377 Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Laszlo Ersek <lersek@redhat.com> Reviewed-by: Jordan Justen <jordan.l.justen@intel.com> Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com> Reviewed-by: Liming Gao <liming.gao@intel.com>
* BaseTools/tools_def.template: remove comment about GCC44 + LzmaF86CompressLaszlo Ersek2019-01-081-1/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | "tools_def.template" currently suggests, in the documentation of the LzmaF86Compress utility, that said tool is generally unhelpful on binaries built with the GCC44 toolchain, relative to LzmaCompress. This statement doesn't apply to the GCC48 toolchain. I compressed 126 NOOPT_GCC48/IA32 unique EFI modules (built with gcc-4.8.5, as part of OVMF) with both LzmaCompress and LzmaF86Compress. I repeated the same for 117 NOOPT_GCC48/X64 unique EFI modules. On average, the LzmaF86Compress output size was 92.4% of the LzmaCompress output size in the IA32 case (best relative compression: 86.01%, poorest relative compression: 97.47% -- still a win). In the X64 case, the LzmaF86Compress output size was 92.95% of the LzmaCompress output size, on avarege (best relative compression: 87.69%, poorest relative compression: 97.65% -- again, still a win). Given the consistent improvement from LzmaCompress to LzmaF86Compress, remove the statement (rather than updating it to GCC48). Cc: Bob Feng <bob.c.feng@intel.com> Cc: Liming Gao <liming.gao@intel.com> Cc: Yonghong Zhu <yonghong.zhu@intel.com> Ref: https://bugzilla.tianocore.org/show_bug.cgi?id=1377 Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Laszlo Ersek <lersek@redhat.com> Reviewed-by: Jordan Justen <jordan.l.justen@intel.com> Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com> Reviewed-by: Liming Gao <liming.gao@intel.com>
* BaseTools/tools_def.template: rename GCC44_IA32_X64_DLINK_COMMON to ↵Laszlo Ersek2019-01-081-4/+3
| | | | | | | | | | | | | | | | | | | | | | GCC48_IA32_X64_DLINK_COMMON GCC44_IA32_X64_DLINK_COMMON is only referenced by: - GCC48_IA32_X64_ASLDLINK_FLAGS, - GCC48_IA32_X64_DLINK_FLAGS. Thus, we can rename ("raise") it to GCC48_IA32_X64_DLINK_COMMON. (It's easier to review this patch with "git show --word-diff".) Cc: Bob Feng <bob.c.feng@intel.com> Cc: Liming Gao <liming.gao@intel.com> Cc: Yonghong Zhu <yonghong.zhu@intel.com> Ref: https://bugzilla.tianocore.org/show_bug.cgi?id=1377 Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Laszlo Ersek <lersek@redhat.com> Reviewed-by: Jordan Justen <jordan.l.justen@intel.com> Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com> Reviewed-by: Liming Gao <liming.gao@intel.com>
* BaseTools/tools_def.template: eliminate GCC44_IA32_X64_DLINK_FLAGSLaszlo Ersek2019-01-081-3/+2
| | | | | | | | | | | | | | | | | | | | | | | GCC48_IA32_X64_DLINK_FLAGS is defined *wholly* as GCC44_IA32_X64_DLINK_FLAGS, therefore: - expand the contents of GCC44_IA32_X64_DLINK_FLAGS into GCC48_IA32_X64_DLINK_FLAGS, - re-point all references of GCC44_IA32_X64_DLINK_FLAGS to GCC48_IA32_X64_DLINK_FLAGS, - remove GCC44_IA32_X64_DLINK_FLAGS. Cc: Bob Feng <bob.c.feng@intel.com> Cc: Liming Gao <liming.gao@intel.com> Cc: Yonghong Zhu <yonghong.zhu@intel.com> Ref: https://bugzilla.tianocore.org/show_bug.cgi?id=1377 Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Laszlo Ersek <lersek@redhat.com> Reviewed-by: Jordan Justen <jordan.l.justen@intel.com> Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com> Reviewed-by: Liming Gao <liming.gao@intel.com>
* BaseTools/tools_def.template: rename GCC44_ALL_CC_FLAGS to GCC48_ALL_CC_FLAGSLaszlo Ersek2019-01-081-5/+5
| | | | | | | | | | | | | | | | | | | | | | GCC44_ALL_CC_FLAGS is only referenced by: - GCC48_IA32_CC_FLAGS, - GCC48_X64_CC_FLAGS, - GCC49_AARCH64_CC_FLAGS, - CLANG38_ALL_CC_FLAGS. Thus, we can rename ("raise") it to GCC48_ALL_CC_FLAGS. (It's easier to review this patch with "git show --word-diff".) Cc: Bob Feng <bob.c.feng@intel.com> Cc: Liming Gao <liming.gao@intel.com> Cc: Yonghong Zhu <yonghong.zhu@intel.com> Ref: https://bugzilla.tianocore.org/show_bug.cgi?id=1377 Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Laszlo Ersek <lersek@redhat.com> Reviewed-by: Jordan Justen <jordan.l.justen@intel.com> Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com> Reviewed-by: Liming Gao <liming.gao@intel.com>
* BaseTools/tools_def.template: propagate loss of GCC44 referencesLaszlo Ersek2019-01-081-18/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The last patch decremented references on a number of DEFs. They can be classified into three groups: (a) those that remain used by multiple toolchains, or by multiple definitions of a given toolchain (refcount >= 2): - GCC_ASLCC_FLAGS - GCC_ASLPP_FLAGS - GCC_HOST_PREFIX - GCC_IA32_RC_FLAGS - GCC_PP_FLAGS - GCC_VFRPP_FLAGS - GCC_X64_RC_FLAGS - IASL_FLAGS - IASL_OUTFLAGS - UNIX_IASL_BIN - GCC44_IA32_X64_DLINK_FLAGS (!) (b) those that are only used by GCC48 (refcount == 1): - GCC44_ASM_FLAGS - GCC44_IA32_CC_FLAGS - GCC44_IA32_DLINK2_FLAGS - GCC44_IA32_X64_ASLDLINK_FLAGS - GCC44_X64_CC_FLAGS - GCC44_X64_DLINK2_FLAGS - GCC44_X64_DLINK_FLAGS (c) those that are no longer used (refcount == 0): - GCC44_IA32_PREFIX - GCC44_X64_PREFIX For the members of class (b), expand their definitions at the referring sites, and remove their definitions. For the members of class (c), remove their definitions. (It's easier to review this patch with "git show --word-diff".) Cc: Bob Feng <bob.c.feng@intel.com> Cc: Liming Gao <liming.gao@intel.com> Cc: Yonghong Zhu <yonghong.zhu@intel.com> Ref: https://bugzilla.tianocore.org/show_bug.cgi?id=1377 Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Laszlo Ersek <lersek@redhat.com> Reviewed-by: Jordan Justen <jordan.l.justen@intel.com> Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com> Reviewed-by: Liming Gao <liming.gao@intel.com>
* BaseTools/tools_def.template: remove GCC44 leaf definitionsLaszlo Ersek2019-01-081-76/+0
| | | | | | | | | | | | | | | | | Remove the "leaf" definitions for GCC44. These definitions are never referenced in "tools_def.template", so their removal can't break other definitions. Instead, their erasure turns other definitions into leaves (subject to further removal). Cc: Bob Feng <bob.c.feng@intel.com> Cc: Liming Gao <liming.gao@intel.com> Cc: Yonghong Zhu <yonghong.zhu@intel.com> Ref: https://bugzilla.tianocore.org/show_bug.cgi?id=1377 Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Laszlo Ersek <lersek@redhat.com> Reviewed-by: Jordan Justen <jordan.l.justen@intel.com> Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com> Reviewed-by: Liming Gao <liming.gao@intel.com>
* BaseTools/tools_def.template: remove GCC45 documentationLaszlo Ersek2019-01-081-6/+0
| | | | | | | | | | | | | | | No GCC45 definitions exist at this point, so remove the GCC45 documentation too, from "tools_def.template". Cc: Bob Feng <bob.c.feng@intel.com> Cc: Liming Gao <liming.gao@intel.com> Cc: Yonghong Zhu <yonghong.zhu@intel.com> Ref: https://bugzilla.tianocore.org/show_bug.cgi?id=1377 Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Laszlo Ersek <lersek@redhat.com> Reviewed-by: Jordan Justen <jordan.l.justen@intel.com> Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com> Reviewed-by: Liming Gao <liming.gao@intel.com>
* BaseTools/tools_def.template: propagate loss of GCC45 referencesLaszlo Ersek2019-01-081-20/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The last patch decremented references on a number of DEFs. They can be classified into three groups: (a) those that remain used by multiple toolchains (refcount >= 2): - GCC_ASLCC_FLAGS - GCC_ASLPP_FLAGS - GCC_HOST_PREFIX - GCC_IA32_RC_FLAGS - GCC_PP_FLAGS - GCC_VFRPP_FLAGS - GCC_X64_RC_FLAGS - IASL_FLAGS - IASL_OUTFLAGS - UNIX_IASL_BIN (b) those that are only used by GCC48 (refcount == 1): - GCC45_ASM_FLAGS - GCC45_IA32_CC_FLAGS - GCC45_IA32_DLINK2_FLAGS - GCC45_IA32_X64_ASLDLINK_FLAGS - GCC45_IA32_X64_DLINK_FLAGS - GCC45_X64_CC_FLAGS - GCC45_X64_DLINK2_FLAGS - GCC45_X64_DLINK_FLAGS (c) those that are no longer used (refcount == 0): - GCC45_IA32_PREFIX - GCC45_X64_PREFIX For the members of class (b), expand their definitions at the referring sites, and remove their definitions. For the members of class (c), remove their definitions. Cc: Bob Feng <bob.c.feng@intel.com> Cc: Liming Gao <liming.gao@intel.com> Cc: Yonghong Zhu <yonghong.zhu@intel.com> Ref: https://bugzilla.tianocore.org/show_bug.cgi?id=1377 Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Laszlo Ersek <lersek@redhat.com> Reviewed-by: Jordan Justen <jordan.l.justen@intel.com> Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com> Reviewed-by: Liming Gao <liming.gao@intel.com>
* BaseTools/tools_def.template: remove GCC45 leaf definitionsLaszlo Ersek2019-01-081-76/+0
| | | | | | | | | | | | | | | | | Remove the "leaf" definitions for GCC45. These definitions are never referenced in "tools_def.template" (they are the last GCC45 mentions in the file), so their removal can't break other definitions. Instead, their erasure turns other definitions into leaves (subject to further removal). Cc: Bob Feng <bob.c.feng@intel.com> Cc: Liming Gao <liming.gao@intel.com> Cc: Yonghong Zhu <yonghong.zhu@intel.com> Ref: https://bugzilla.tianocore.org/show_bug.cgi?id=1377 Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Laszlo Ersek <lersek@redhat.com> Reviewed-by: Jordan Justen <jordan.l.justen@intel.com> Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com> Reviewed-by: Liming Gao <liming.gao@intel.com>
* BaseTools/tools_def.template: remove GCC46 documentationLaszlo Ersek2019-01-081-6/+0
| | | | | | | | | | | | | | | No GCC46 definitions exist at this point, so remove the GCC46 documentation too, from "tools_def.template". Cc: Bob Feng <bob.c.feng@intel.com> Cc: Liming Gao <liming.gao@intel.com> Cc: Yonghong Zhu <yonghong.zhu@intel.com> Ref: https://bugzilla.tianocore.org/show_bug.cgi?id=1377 Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Laszlo Ersek <lersek@redhat.com> Reviewed-by: Jordan Justen <jordan.l.justen@intel.com> Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com> Reviewed-by: Liming Gao <liming.gao@intel.com>
* BaseTools/tools_def.template: propagate loss of GCC46 referencesLaszlo Ersek2019-01-081-20/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The last patch decremented references on a number of DEFs. They can be classified into three groups: (a) those that remain used by multiple toolchains (refcount >= 2): - GCC_ASLCC_FLAGS - GCC_ASLPP_FLAGS - GCC_HOST_PREFIX - GCC_IA32_RC_FLAGS - GCC_PP_FLAGS - GCC_VFRPP_FLAGS - GCC_X64_RC_FLAGS - IASL_FLAGS - IASL_OUTFLAGS - UNIX_IASL_BIN (b) those that are only used by GCC48 (refcount == 1): - GCC46_ASM_FLAGS - GCC46_IA32_CC_FLAGS - GCC46_IA32_DLINK2_FLAGS - GCC46_IA32_X64_ASLDLINK_FLAGS - GCC46_IA32_X64_DLINK_FLAGS - GCC46_X64_CC_FLAGS - GCC46_X64_DLINK2_FLAGS - GCC46_X64_DLINK_FLAGS (c) those that are no longer used (refcount == 0): - GCC46_IA32_PREFIX - GCC46_X64_PREFIX For the members of class (b), expand their definitions at the referring sites, and remove their definitions. For the members of class (c), remove their definitions. Cc: Bob Feng <bob.c.feng@intel.com> Cc: Liming Gao <liming.gao@intel.com> Cc: Yonghong Zhu <yonghong.zhu@intel.com> Ref: https://bugzilla.tianocore.org/show_bug.cgi?id=1377 Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Laszlo Ersek <lersek@redhat.com> Reviewed-by: Jordan Justen <jordan.l.justen@intel.com> Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com> Reviewed-by: Liming Gao <liming.gao@intel.com>
* BaseTools/tools_def.template: remove GCC46 leaf definitionsLaszlo Ersek2019-01-081-76/+0
| | | | | | | | | | | | | | | | | Remove the "leaf" definitions for GCC46. These definitions are never referenced in "tools_def.template" (they are the last GCC46 mentions in the file), so their removal can't break other definitions. Instead, their erasure turns other definitions into leaves (subject to further removal). Cc: Bob Feng <bob.c.feng@intel.com> Cc: Liming Gao <liming.gao@intel.com> Cc: Yonghong Zhu <yonghong.zhu@intel.com> Ref: https://bugzilla.tianocore.org/show_bug.cgi?id=1377 Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Laszlo Ersek <lersek@redhat.com> Reviewed-by: Jordan Justen <jordan.l.justen@intel.com> Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com> Reviewed-by: Liming Gao <liming.gao@intel.com>
* BaseTools/tools_def.template: remove GCC47 documentationLaszlo Ersek2019-01-081-6/+0
| | | | | | | | | | | | | | | No GCC47 definitions exist at this point, so remove the GCC47 documentation too, from "tools_def.template". Cc: Bob Feng <bob.c.feng@intel.com> Cc: Liming Gao <liming.gao@intel.com> Cc: Yonghong Zhu <yonghong.zhu@intel.com> Ref: https://bugzilla.tianocore.org/show_bug.cgi?id=1377 Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Laszlo Ersek <lersek@redhat.com> Reviewed-by: Jordan Justen <jordan.l.justen@intel.com> Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com> Reviewed-by: Liming Gao <liming.gao@intel.com>
* BaseTools/tools_def.template: propagate loss of GCC47 referencesLaszlo Ersek2019-01-081-20/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The last patch decremented references on a number of DEFs. They can be classified into three groups: (a) those that remain used by multiple toolchains (refcount >= 2): - GCC_ASLCC_FLAGS - GCC_ASLPP_FLAGS - GCC_HOST_PREFIX - GCC_IA32_RC_FLAGS - GCC_PP_FLAGS - GCC_VFRPP_FLAGS - GCC_X64_RC_FLAGS - IASL_FLAGS - IASL_OUTFLAGS - UNIX_IASL_BIN (b) those that are only used by GCC48 (refcount == 1): - GCC47_ASM_FLAGS - GCC47_IA32_CC_FLAGS - GCC47_IA32_DLINK2_FLAGS - GCC47_IA32_X64_ASLDLINK_FLAGS - GCC47_IA32_X64_DLINK_FLAGS - GCC47_X64_CC_FLAGS - GCC47_X64_DLINK2_FLAGS - GCC47_X64_DLINK_FLAGS (c) those that are no longer used (refcount == 0): - GCC47_IA32_PREFIX - GCC47_X64_PREFIX For the members of class (b), expand their definitions at the referring sites, and remove their definitions. For the members of class (c), remove their definitions. Cc: Bob Feng <bob.c.feng@intel.com> Cc: Liming Gao <liming.gao@intel.com> Cc: Yonghong Zhu <yonghong.zhu@intel.com> Ref: https://bugzilla.tianocore.org/show_bug.cgi?id=1377 Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Laszlo Ersek <lersek@redhat.com> Reviewed-by: Jordan Justen <jordan.l.justen@intel.com> Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com> Reviewed-by: Liming Gao <liming.gao@intel.com>
* BaseTools/tools_def.template: remove GCC47 leaf definitionsLaszlo Ersek2019-01-081-76/+0
| | | | | | | | | | | | | | | | | Remove the "leaf" definitions for GCC47. These definitions are never referenced in "tools_def.template" (they are the last GCC47 mentions in the file), so their removal can't break other definitions. Instead, their erasure turns other definitions into leaves (subject to further removal). Cc: Bob Feng <bob.c.feng@intel.com> Cc: Liming Gao <liming.gao@intel.com> Cc: Yonghong Zhu <yonghong.zhu@intel.com> Ref: https://bugzilla.tianocore.org/show_bug.cgi?id=1377 Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Laszlo Ersek <lersek@redhat.com> Reviewed-by: Jordan Justen <jordan.l.justen@intel.com> Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com> Reviewed-by: Liming Gao <liming.gao@intel.com>
* BaseTools/tools_def.template: remove GCC48_IA32_X64_DLINK_COMMON dead-endLaszlo Ersek2019-01-081-4/+0
| | | | | | | | | | | | | | | | | | | | | | DLINK_COMMON definitions are not consumed by "build_rule.template"; instead, DLINK_COMMON definitions (internal to "tools_def.template") were invented for sharing options between ASLDLINK_FLAGS and DLINK_FLAGS. However, this intent doesn't actually apply to GCC48_IA32_X64_DLINK_COMMON: it is never consumed. Furthermore, the GCC45..GCC47 instances of IA32_X64_DLINK_COMMON too lead up to GCC48_IA32_X64_DLINK_COMMON only -- they form a dead-end. Remove them altogether, in order to simplify the subsequent patches. Cc: Bob Feng <bob.c.feng@intel.com> Cc: Liming Gao <liming.gao@intel.com> Cc: Yonghong Zhu <yonghong.zhu@intel.com> Ref: https://bugzilla.tianocore.org/show_bug.cgi?id=1377 Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Laszlo Ersek <lersek@redhat.com> Reviewed-by: Jordan Justen <jordan.l.justen@intel.com> Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com> Reviewed-by: Liming Gao <liming.gao@intel.com>
* BaseTools/tools_def.template: strip trailing whitespaceLaszlo Ersek2019-01-081-54/+54
| | | | | | | | | | | | | | | | Whitespace just before line terminators is useless, remove it. ("git show -b" produces a null diff for this patch.) Cc: Bob Feng <bob.c.feng@intel.com> Cc: Liming Gao <liming.gao@intel.com> Cc: Yonghong Zhu <yonghong.zhu@intel.com> Ref: https://bugzilla.tianocore.org/show_bug.cgi?id=1377 Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Laszlo Ersek <lersek@redhat.com> Reviewed-by: Jordan Justen <jordan.l.justen@intel.com> Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com> Reviewed-by: Liming Gao <liming.gao@intel.com>
* BaseTools/tools_def.template: fix up LF-only line terminatorLaszlo Ersek2019-01-081-1/+1
| | | | | | | | | | | | | | | "tools_def.template" should only use CRLF line terminators, at this time. Cc: Bob Feng <bob.c.feng@intel.com> Cc: Liming Gao <liming.gao@intel.com> Cc: Yonghong Zhu <yonghong.zhu@intel.com> Fixes: 88e8498f8a72cff1f7af6852ec8166772913399e Ref: https://bugzilla.tianocore.org/show_bug.cgi?id=1377 Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Laszlo Ersek <lersek@redhat.com> Reviewed-by: Jordan Justen <jordan.l.justen@intel.com> Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com> Reviewed-by: Liming Gao <liming.gao@intel.com>
* BaseTools/Conf/tools_def.template: drop ARM/AARCH support from GCC46/GCC47Ard Biesheuvel2019-01-081-129/+14
| | | | | | | | | | | | | | | | | | | | | | | | | | This drops ARM and AARCH64 support from the GCC46 and GCC47 toolchain definitions, which are on the list to be removed, along with VS2003, VS2005, VS2008, VS2010, DDK3790, UNIXGCC, GCC44, GCC45, ELFGCC, CYGGCC, ICC, ICC11 and MYTOOLS. Since GCC46 and GCC47 are the only ones on that list that support ARM and/or AARCH64, let's give Liming a hand and cover the ARM side of things first, so that everything that remains to be removed is x86 only. Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org> Reviewed-by: Leif Lindholm <leif.lindholm@linaro.org> Reviewed-by: Laszlo Ersek <lersek@redhat.com> Reviewed-by: Liming Gao <liming.gao@intel.com> Ref: https://bugzilla.tianocore.org/show_bug.cgi?id=1377 Cc: Ard Biesheuvel <ard.biesheuvel@linaro.org> Cc: Leif Lindholm <leif.lindholm@linaro.org> Cc: Liming Gao <liming.gao@intel.com> [lersek@redhat.com: add bugzilla reference and CCs] Signed-off-by: Laszlo Ersek <lersek@redhat.com> Reviewed-by: Jordan Justen <jordan.l.justen@intel.com> Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com>
* BaseTools/tools_def ARM: use softfloat target for CLANG3xArd Biesheuvel2018-12-231-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The 'arm-linux-gnueabihf' target triplet we use for CLANG35 and CLANG38 specifies a hardfloat target, and so the binaries that are emitted are annotated as using VFP registers for passing floating point arguments, even though no VFP is used anywhere in the code. This works fine as long as we don't try to link against code that uses software floating point, but combining object files with different floating point calling conventions is not permitted. So switch to the softfloat arm-linux-gnueabi triplet instead. This affects both the name Clang uses when invoking the linker, and the arguments it passes to it, and we are mostly interested in the latter (since any version of GNU ld.bfd will do the right thing as long as it targets EABI ARM) For native builds, this change has no effect, since the unprefixed system linker will take priority, and so Clang will pass the right arguments to whichever linker happens to be the system linker. For cross builds, the fact that Clang composes the name of the linker by prefixing '-ld' with the target triplet implies that users will have to switch to a version of binutils that targets arm-linux-gnueabi rather than arm-linux-gnueabihf. Note that the GCCx toolchain targets can use either when building for ARM so this does not create a need to install two versions of the ARM cross toolchain. Also, note that all ARM toolchains in the GCC family are already documented as requiring a toolchain that targets arm-linux-gnueabi and not arm-linux-gnueabihf. Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org> Reviewed-by: Liming Gao <liming.gao@intel.com> Reviewed-by: Leif Lindholm <leif.lindholm@linaro.org>
* BaseTools/tools_def ARM: emit PIC veneersArd Biesheuvel2018-12-191-1/+1
| | | | | | | | | | | | | | | | | The ARM linker may emit veneers, i.e., trampolines, when ordinary direct relative branches cannot be used, e.g., for Thumb interworking or branch targets that are out of range. Usually, such veneers carry an absolute reference to the branch target, which is problematic for us, since these absolute references are not covered by annotations that are visible to GenFw in the PE/COFF conversion, and so these absolute references are not fixed up by the PE/COFF loader at runtime. So switch to all ARM GNU ld toolchains to position independent veneers. Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
* BaseTools: Update nasm file build rule to support $(INC)zhijufan2018-12-181-1/+2
| | | | | | | | | | | | | | https://bugzilla.tianocore.org/show_bug.cgi?id=1085 Update the build rule to: "$(NASM)" -I${s_path}(+) $(NASM_INC) $(NASM_FLAGS) -o $dst ${d_path}(+)${s_base}.iii Cc: Liming Gao <liming.gao@intel.com> Cc: Yonghong Zhu <yonghong.zhu@intel.com> Cc: Bob Feng <bob.c.feng@intel.com> Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Zhiju.Fan <zhijux.fan@intel.com> Reviewed-by: Bob Feng <bob.c.feng@intel.com>
* BaseTools/tools_def ARM CLANG35: work around -mno-movt option name changeArd Biesheuvel2018-12-131-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | PE/COFF only has a very limited id space for runtime relocations, and so it defines only a single relocation for movw/movt instruction pairs, which can be combined to load a 32-bit symbol reference into a register. For this to work as expected, these instructions must always appear in the same order and adjacently, and this is something few compilers take into account, unless they target PE/COFF explicitly (and this is not the case for our ELF based toolchains) For Clang 3.6 and later, we can pass the -mno-movt option to suppress movw/movt pairs entirely, which works around the issue. Unfortunately, for Clang 3.5, the option is called differently (-mllvm -arm-use-movt=0) and mutually incompatible between 3.5 and 3.6. Since it is desirable for the CLANG35 toolchain to be usable on newer versions of Clang as well (given that it is the only non-LTO alternative to CLANG38), let's work around this issue in a way that permits versions 3.5 and newer of Clang to be used with the CLANG35 profile. So pass the -mkernel flag instead (and add -Qunused-argument so Clang does not complain about the -mno-unaligned-access in ARM_CC_XIPFLAGS). This also inhibits movw/movt generation, along with some other changes (e.g., long calls) which do affect code generation but not in an undesirable manner. Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org> Acked-by: Laszlo Ersek <lersek@redhat.com> Reviewed-by: Leif Lindholm <leif.lindholm@linaro.org> Reviewed-by: Liming Gao <liming.gao@intel.com>
* BaseTools/tools_def AARCH64 RELEASE: move GCC49/GGC5 to 4 KB alignmentArd Biesheuvel2018-12-111-12/+14
| | | | | | | | | | | | | | | Since 4 KB section alignment is required when mapping PE/COFF images with strict permissions, update the default section alignment when using GCC49 and GCC5 in RELEASE mode. Note that XIP modules such as SEC, PEIMs or PEI core are not affected by this change, since the override to 32 byte aligment remains in effect. Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org> Reviewed-by: Laszlo Ersek <lersek@redhat.com> Reviewed-by: Leif Lindholm <leif.lindholm@linaro.org> Tested-by: Leif Lindholm <leif.lindholm@linaro.org> Reviewed-by: Liming Gao <liming.gao@intel.com>
* BaseTools build_rule.template: Update aslc rule for XCODE tool chainLiming Gao2018-11-051-2/+2
| | | | | | | | | | | Update aslc rule to rename the temp output file from .efi to .pecoff. This change can avoid the conflict .efi file name in output directory. One is the driver image, another is aslc temp output file. Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Liming Gao <liming.gao@intel.com> Cc: Yonghong Zhu <yonghong.zhu@intel.com> Reviewed-by: Yonghong Zhu <yonghong.zhu@intel.com>