Commit Graph

2661 Commits

Author SHA1 Message Date
Yonghong Zhu
9ce9bf5339 BaseTools: not report error for the optional items in the FmpTokens
<FmpTokens> in the FDF spec defined some optional items, eg: IMAGE_INDEX,
HARDWARE_INSTANCE. but current tool report error if no such item is exist
in the FDF file.

Fixes: https://bugzilla.tianocore.org/show_bug.cgi?id=293
Cc: Liming Gao <liming.gao@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Yonghong Zhu <yonghong.zhu@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>
2017-01-06 16:11:04 +08:00
Yonghong Zhu
7cb63c870b BaseTools: fix the bug for Mixed Pcd display in the report
Fix the bug to not display the mixed PCD in the Global PCD section, and
correct the Pcd display name.

Cc: Liming Gao <liming.gao@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Yonghong Zhu <yonghong.zhu@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>
2017-01-04 16:49:04 +08:00
Liming Gao
61e947457e BaseTools toolsetup.bat: set PATH to include Bin Win32 directory
Bin Win32 directory includes antlr.exe. This tool is used when compile
BaseTools source code. So, set it into PATH first.

Cc: Yonghong Zhu <yonghong.zhu@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Liming Gao <liming.gao@intel.com>
Reviewed-by: Yonghong Zhu <yonghong.zhu@intel.com>
2017-01-04 16:33:38 +08:00
Liming Gao
5d98c319bb BaseTools toolsetup.bat: Set env when the binary tools are missing
BASE_TOOLS_PATH is required to be set when the binary tools are missing.

Cc: Yonghong Zhu <yonghong.zhu@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Liming Gao <liming.gao@intel.com>
Reviewed-by: Yonghong Zhu <yonghong.zhu@intel.com>
2017-01-04 16:33:01 +08:00
Yonghong Zhu
d2192f12b2 BaseTools: Fix the bug for RAW file alignment value support
Fix the bug for RAW file to support Align=32 and Align=64. Current FDF
spec FfsAlignmentValues support this two values, while it is not the
valid value for GenFfs. So this patch add the logic to handle it.

Fixes: https://bugzilla.tianocore.org/show_bug.cgi?id=248
Cc: Liming Gao <liming.gao@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Yonghong Zhu <yonghong.zhu@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>
2016-12-29 16:58:17 +08:00
Hess Chen
f05c2e9fca BaseTools/Ecc: Fix the issue of not recognizing "FILE_GUID"
Fix the issue of not recognizing "FILE_GUID"

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Hess Chen <hesheng.chen@intel.com>
Reviewed-by: Yonghong Zhu <yonghong.zhu@intel.com>
2016-12-29 10:12:51 +08:00
Hao Wu
0a64f49fde BaseTools/Pccts: Resolve GCC sting format mismatch build warning
https://bugzilla.tianocore.org/show_bug.cgi?id=282

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Hao Wu <hao.a.wu@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>
2016-12-23 14:38:44 +08:00
Liming Gao
4fa9134e47 BaseTools GCC makefile: disable unused-result warning for CPP file
This warning has been disabled for C file. To be same, it is also disabled
for CPP file.

Cc: Yonghong Zhu <yonghong.zhu@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Liming Gao <liming.gao@intel.com>
Reviewed-by: Yonghong Zhu <yonghong.zhu@intel.com>
2016-12-20 11:18:47 +08:00
Heyi Guo
00de920a03 BaseTools: fix write-strings build warnings
Fix build warnings of "deprecated conversion from string constant to
?CHAR8* {aka char*}? [-Wwrite-strings]" for BaseTools, while using
"gcc version 4.8.4 (Ubuntu 4.8.4-2ubuntu1~14.04.3)".

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Heyi Guo <heyi.guo@linaro.org>
Cc: Yonghong Zhu <yonghong.zhu@intel.com>
Cc: Liming Gao <liming.gao@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>
2016-12-20 11:13:23 +08:00
Heyi Guo
8230d45bba BaseTools: fix format type build warnings
Fix build warnings of "format ?%d? expects argument of type ?int?, but
argument 5 has type ?long unsigned int? [-Wformat=]" for BaseTools,
while using "gcc version 4.8.4 (Ubuntu 4.8.4-2ubuntu1~14.04.3)".

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Heyi Guo <heyi.guo@linaro.org>
Cc: Yonghong Zhu <yonghong.zhu@intel.com>
Cc: Liming Gao <liming.gao@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>
2016-12-20 11:12:36 +08:00
Heyi Guo
5b26adf03a BaseTools: fix format-security build warnings
Fix build warnings of "format not a string literal and no format
arguments [-Wformat-security]" for BaseTools, while using "gcc version
4.8.4 (Ubuntu 4.8.4-2ubuntu1~14.04.3)".

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Heyi Guo <heyi.guo@linaro.org>
Cc: Yonghong Zhu <yonghong.zhu@intel.com>
Cc: Liming Gao <liming.gao@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>
2016-12-20 11:12:01 +08:00
Yonghong Zhu
83c6c3bfe2 BaseTools: Correct bin wrappers for GenDepex.py path
The WindowsLike and PosixLike bin wrappers for GenDepex.py do not use
correct path. GenDepex.py is not in a GenDepex directory. Instead, it is
in the AutoGen directory.

Fixes: https://bugzilla.tianocore.org/show_bug.cgi?id=292
Cc: Liming Gao <liming.gao@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Yonghong Zhu <yonghong.zhu@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>
2016-12-20 09:15:38 +08:00
Hao Wu
3883e2cb52 BaseTools/VolInfo: Fix printf issue using '%ls' in format string
https://bugzilla.tianocore.org/show_bug.cgi?id=257

For GCC compilers, when building with option '-fshort-wchar', wide char
string format '%ls' does not work properly for printf() function. The
string specified by '%ls' will not be printed.

This commit avoids using '%ls' for printf() function and converts the wide
char string to char string for printing.

Cc: Liming Gao <liming.gao@intel.com>
Cc: Yonghong Zhu <yonghong.zhu@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Hao Wu <hao.a.wu@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>
2016-12-05 09:48:28 +08:00
Yonghong Zhu
c62f1874f4 BaseTools: Support QuotedString for PREBUILD/POSTBUILD in DSC file
If the prebuild/postbuild script statement start with double quotations,
current tool report error, while DSC spec allow this usage. so update
tool to support it.

Cc: Liming Gao <liming.gao@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Yonghong Zhu <yonghong.zhu@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>
2016-12-02 11:04:08 +08:00
Yonghong Zhu
3e7e8571da BaseTools: Fix the bug to parse the new map file format
Current the variable and Pcd format save in the map file is changed, so
this patch is to support this new format.

Cc: Liming Gao <liming.gao@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Yonghong Zhu <yonghong.zhu@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>
2016-12-02 11:01:24 +08:00
Yonghong Zhu
31bf6304ba BaseTools: add error check for "#image" for idf file format
Add new error check for "#image" keyword used in the image definition
file.

Cc: Liming Gao <liming.gao@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Yonghong Zhu <yonghong.zhu@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>
2016-12-02 11:00:43 +08:00
Yonghong Zhu
e148e6e962 BaseTools: fix the bug to add PaletteSize info into AutoGen
Fix the bug to add PaletteSize info into AutoGen.c when the flag
UEFI_HII_RESOURCE_SECTION is set to FALSE.

Cc: Liming Gao <liming.gao@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Yonghong Zhu <yonghong.zhu@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>
2016-11-30 12:26:51 +08:00
Liming Gao
60a5378208 BaseTools CommonLib: Update ReadMemoryFileLine() to read line in file scope
https://bugzilla.tianocore.org/show_bug.cgi?id=255

Check CurrentFilePointer to make sure it not exceed the end of file.

Cc: Yonghong Zhu <yonghong.zhu@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Liming Gao <liming.gao@intel.com>
Reviewed-by: Yonghong Zhu <yonghong.zhu@intel.com>
2016-11-30 08:40:11 +08:00
Yonghong Zhu
8401d3983d BaseTools: Fix bug for decimal value of VPDPCD offset display in report
current if we set VPD PCD's offset to a decimal value, eg: 22, this
value is displayed incorrectly in the "FD VPD Region" section in the
report.txt.

Cc: Liming Gao <liming.gao@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Yonghong Zhu <yonghong.zhu@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>
2016-11-29 19:49:20 +08:00
Yonghong Zhu
24e7435ab4 BaseTools: report error for same Guid's Private definition conflict
Add error check for the same Guid/Protocol/PPIs/Includes defined as both
Private and non-Private attribute.

Fixes: https://bugzilla.tianocore.org/show_bug.cgi?id=209
Cc: Liming Gao <liming.gao@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Yonghong Zhu <yonghong.zhu@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>
2016-11-23 11:19:12 +08:00
Liming Gao
c023a57e3b BaseTools gitignore: Ignore VS intermediate files *.obj and *.pdb
In V2, ignore .exe and .ilk files

Cc: Yonghong Zhu <yonghong.zhu@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Liming Gao <liming.gao@intel.com>
Reviewed-by: Michael Kinney <michael.d.kinney@intel.com>
Reviewed-by: Yonghong Zhu <yonghong.zhu@intel.com>
2016-11-18 11:07:46 +08:00
Hao Wu
b4dc05e854 BaseTools/BuildEnv: Do not modify the env 'PACKAGES_PATH' in BuildEnv
https://bugzilla.tianocore.org/show_bug.cgi?id=236

The script 'BuildEnv' modifies the value of the environment variable
'PACKAGES_PATH' (line 44). The script will substitute the ':' symbol
(separating multiple paths) with a space.

This is not supposed to happen since users might later use 'PACKAGES_PATH'
during the code-building process under a multiple-workspace scenario.

Cc: Liming Gao <liming.gao@intel.com>
Cc: Yonghong Zhu <yonghong.zhu@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Hao Wu <hao.a.wu@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>
2016-11-18 08:32:28 +08:00
Liming Gao
86a1eca210 BaseTools tools_def.txt: Include AutoGen.h in GCC ASLPP_FLAGS
https://bugzilla.tianocore.org/show_bug.cgi?id=227
Refer to VS ASLPP_FLAGS, force include AutoGen.h so that ASL code
can use FixedPcdGetXX to get FixedPcd value.

Cc: Yonghong Zhu <yonghong.zhu@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Liming Gao <liming.gao@intel.com>
Reviewed-by: Yonghong Zhu <yonghong.zhu@intel.com>
2016-11-16 09:50:11 +08:00
Liming Gao
8ccd619c74 BaseTools tools_def.txt: Remove -P option in GCC ASLPP_FLAGS
https://bugzilla.tianocore.org/show_bug.cgi?id=227

After -P option is removed, the generated preprocessed ASL file will have
line markers. The extra information can be removed by Trim script. ASL code
can refer to the definition in C source file. This has been supported in
VS and XCODE tool chains.

Cc: Yonghong Zhu <yonghong.zhu@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Liming Gao <liming.gao@intel.com>
Reviewed-by: Yonghong Zhu <yonghong.zhu@intel.com>
2016-11-16 09:50:07 +08:00
Yonghong Zhu
94e4bcbb5e BaseTools: FILE DATA to support relative path under Multiple workspace
Fix the bug that FILE DATA to support relative path under Multiple
workspace.

Cc: Liming Gao <liming.gao@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Yonghong Zhu <yonghong.zhu@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>
2016-11-15 10:23:22 +08:00
Yonghong Zhu
f475f1e236 BaseTools: Fix the bug to support generate FFS by Align=Auto
FDF spec support to use 'Auto' as <FfsAlignmentValues>, but current Tool
report error about -a=Auto is invalid option when we set Align=Auto for
RAW File.

Cc: Liming Gao <liming.gao@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Yonghong Zhu <yonghong.zhu@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>
2016-11-15 10:21:47 +08:00
Michael Kinney
fd0597aa9c BaseTools/Scripts: Add BinToPcd utility
https://bugzilla.tianocore.org/show_bug.cgi?id=228

Add a utility that converts a binary file into a VOID* PCD value
or a full DSC file VOID* PCD statement with support for all the
DSC supported PCD sections.

usage: BinToPcd [-h] [--version] -i INPUTFILE [-o OUTPUTFILE] [-p PCDNAME]
                [-t {VPD,HII}] [-m MAXSIZE] [-f OFFSET] [-n VARIABLENAME]
                [-g VARIABLEGUID] [-v] [-q] [--debug [0-9]]

Convert a binary file to a VOID* PCD value or DSC file VOID* PCD statement.
Copyright (c) 2016, Intel Corporation. All rights reserved.

optional arguments:
  -h, --help        show this help message and exit
  --version         show program's version number and exit
  -i INPUTFILE, --input INPUTFILE
                    Input binary filename
  -o OUTPUTFILE, --output OUTPUTFILE
                    Output filename for PCD value or PCD statement
  -p PCDNAME, --pcd PCDNAME
                    Name of the PCD in the form
                    <PcdTokenSpaceGuidCName>.<PcdCName>
  -t {VPD,HII}, --type {VPD,HII}
                    PCD statement type (HII or VPD). Default is standard.
  -m MAXSIZE, --max-size MAXSIZE
                    Maximum size of the PCD. Ignored with --type HII.
  -f OFFSET, --offset OFFSET
                    VPD offset if --type is VPD. UEFI Variable offset if
                    --type is HII.
  -n VARIABLENAME, --variable-name VARIABLENAME
                    UEFI variable name. Only used with --type HII.
  -g VARIABLEGUID, --variable-guid VARIABLEGUID
                    UEFI variable GUID C name. Only used with --type HII.
  -v, --verbose     Increase output messages
  -q, --quiet       Reduce output messages
  --debug [0-9]     Set debug level

This utility can be used in PCD value mode to convert a binary
file into a string that can then be copied into the PCD value field
of a VOID* PCD.  The following is an example of PCD value mode on
an 8 byte test.bin file.

  BinToPcd.py -i test.bin

  {0x48, 0x65, 0x6c, 0x6c, 0x6f, 0x20, 0x0d, 0x0a}

The DSC file VOID* PCD statement mode can be used to generate a
complete PCD statement for the PCD section types that a DSC file
supports:

  [PcdsFixedAtBuild]
  [PcdsPatchableInModule]
  [PcdsDynamicDefault]
  [PcdsDynamicExDefault]
  [PcdsDynamicVpd]
  [PcdsDynamicExVpd]
  [PcdsDynamicHii]
  [PcdsDynamicExHii]

The PCD statement mode is useful when combined with a !include
statement in a DSC file.  BinToPcd.py can be used to convert a
binary file to a PCD statement in an output file, and that output
file can be included into a DSC file in the matching PCD section
to set the value of the PCD to the value from the binary file
without having to copy the value into the DSC file.  Updates can be
made to the included file without editing the DSC file.  Some
example use cases are the setting the public key PCDs such as:

  gEfiSecurityPkgTokenSpaceGuid.PcdRsa2048Sha256PublicKeyBuffer
  gEfiSecurityPkgTokenSpaceGuid.PcdPkcs7CertBuffer

The following example converts a public key binary file to a
[PcdsFixedAtBuild] compatible PCD statement:

  BinToPcd.py -i PublicKey.bin -o PublicKey.pcd
    --pcd gEfiSecurityPkgTokenSpaceGuid.PcdPkcs7CertBufferkenSpaceGuid

The PublicKey.pcd output file contains a single line:

  gEfiSecurityPkgTokenSpaceGuid.PcdPkcs7CertBuffer|{0x48, ...}

A DSC file can be updated to include the PublicKey.pcd file:

  [PcdsFixedAtBuild]
  !include PublicKey.pcd

Value examples
===============
  BinToPcd.py -i test.bin
    {0x68, 0x65, 0x6c, 0x6c, 0x6f, 0x20, 0x0d, 0x0a}

Normal examples:
=================
  BinToPcd.py -i test.bin -p Guid.Token
    Guid.Token|{0x68, 0x65, 0x6c, 0x6c, 0x6f, 0x20, 0x0d, 0x0a}

  BinToPcd.py -i test.bin -p Guid.Token -m 20
    Guid.Token|{0x68, 0x65, 0x6c, 0x6c, 0x6f, 0x20, 0x0d, 0x0a}|VOID*|20

VPD examples:
=============
  BinToPcd.py -i test.bin -p Guid.Token -t VPD
    Guid.Name|*|8|{0x48, 0x65, 0x6c, 0x6c, 0x6f, 0x20, 0x0d, 0x0a}

  BinToPcd.py -i test.bin -p Guid.Token -t VPD -f 20
    Guid.Name|20|8|{0x48, 0x65, 0x6c, 0x6c, 0x6f, 0x20, 0x0d, 0x0a}

  BinToPcd.py -i test.bin -p Guid.Token -t VPD -m 10
    Guid.Name|*|10|{0x48, 0x65, 0x6c, 0x6c, 0x6f, 0x20, 0x0d, 0x0a}

  BinToPcd.py -i test.bin -p Guid.Token -t VPD -f 20 -m 10
    Guid.Name|20|10|{0x48, 0x65, 0x6c, 0x6c, 0x6f, 0x20, 0x0d, 0x0a}

HII examples:
=============
  BinToPcd.py -i test.bin -p Guid.Token -t HII -g VarGuid -n VarName
    Guid.Name|L"VarName"|VarGuid|0|{0x48, 0x65, 0x6c, 0x6c}

  BinToPcd.py -i test.bin -p Guid.Token -t HII -g VarGuid -n VarName -f 8
    Guid.Name|L"VarName"|VarGuid|8|{0x48, 0x65, 0x6c, 0x6c}

Cc: Yonghong Zhu <yonghong.zhu@intel.com>
Cc: Liming Gao <liming.gao@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Michael Kinney <michael.d.kinney@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>
Reviewed-by: Yonghong Zhu <yonghong.zhu@intel.com>
2016-11-14 08:40:41 -08:00
Hao Wu
c52f00d6e1 BaseTools/GenSec: Return correct status when input file size is 0
Cc: Liming Gao <liming.gao@intel.com>
Cc: Yonghong Zhu <yonghong.zhu@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Hao Wu <hao.a.wu@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>
2016-11-10 16:28:39 +08:00
Hao Wu
b390737ad0 BaseTools/GenFfs: Fix return too early when input file is of size 0
Commit 2cb8743524 eliminates possible NULL
pointer dereference in GenFfs tool source codes. However, it doesn't
correctly handle the case when the input file is of size 0. This will lead
to possible build issues.

This commits refine the logic to handle the above case.

Cc: Liming Gao <liming.gao@intel.com>
Cc: Yonghong Zhu <yonghong.zhu@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Hao Wu <hao.a.wu@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>
2016-11-10 16:28:33 +08:00
Hao Wu
49d8f534cc BaseTools/PeCoffLib: Check 'RelocDir' before finding relocation block
To match the code logics in MdePkg/Library/BasePeCoffLib, add checks for
'RelocDir' before finding the relocation block.

Cc: Liming Gao <liming.gao@intel.com>
Cc: Yonghong Zhu <yonghong.zhu@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Hao Wu <hao.a.wu@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>
2016-11-09 16:25:25 +08:00
Hao Wu
fef15ecd20 BaseTools/VfrCompile/Pccts: Make assignment operator not returning void
The assignment operators for class ANTLRTokenPtr return void in current
code.

This commit makes them return the reference to the object just like
primitive types do.

Cc: Liming Gao <liming.gao@intel.com>
Cc: Yonghong Zhu <yonghong.zhu@intel.com>
Cc: Eric Dong <eric.dong@intel.com>
Cc: Dandan Bi <dandan.bi@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Hao Wu <hao.a.wu@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>
2016-11-08 16:38:30 +08:00
Hao Wu
d556383627 BaseTools/VfrCompile/Pccts: Add virtual destructor for class DLGInputStream
Class DLGInputStream defined in DLexerBase.h has a virtual method but no
virtual destructor.

This commit add an empty virtual destructor to avoid potential
memory/resource leak when an object of a class derived from class
DLGInputStream is deleted through a pointer to the DLGInputStream class.

Cc: Liming Gao <liming.gao@intel.com>
Cc: Yonghong Zhu <yonghong.zhu@intel.com>
Cc: Eric Dong <eric.dong@intel.com>
Cc: Dandan Bi <dandan.bi@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Hao Wu <hao.a.wu@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>
2016-11-08 16:38:27 +08:00
Hao Wu
aeadb1c453 BaseTools/VolInfo: Add definitions for command format strings
Cc: Liming Gao <liming.gao@intel.com>
Cc: Yonghong Zhu <yonghong.zhu@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Hao Wu <hao.a.wu@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>
2016-11-08 16:38:23 +08:00
Hao Wu
38eb573b09 BaseTools/VfrCompile: Explicitly state format string for DebugMsg()
For calls to API DebugMsg(), explicitly state format string as "%s" when
the given variable list is a sting.

Cc: Liming Gao <liming.gao@intel.com>
Cc: Yonghong Zhu <yonghong.zhu@intel.com>
Cc: Eric Dong <eric.dong@intel.com>
Cc: Dandan Bi <dandan.bi@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Hao Wu <hao.a.wu@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>
2016-11-08 16:38:21 +08:00
Hao Wu
d6a1ce3b13 BaseTools/VolInfo: Provide string width in '%s' specifier in format string
String width is not specified for '%s' specifier in the format string for
scanf functions.

This commit now specifies the string length for '%s' in format strings
according to the size of receiving buffers.

Cc: Liming Gao <liming.gao@intel.com>
Cc: Yonghong Zhu <yonghong.zhu@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Hao Wu <hao.a.wu@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>
2016-11-08 16:38:18 +08:00
Hao Wu
5baa399e50 BaseTools/GenVtf: Provide string width in '%s' specifier in format string
String width is not specified for '%s' specifier in the format string for
scanf functions.

This commit now specifies the string length for '%s' in format strings
according to the size of receiving buffers.

Cc: Liming Gao <liming.gao@intel.com>
Cc: Yonghong Zhu <yonghong.zhu@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Hao Wu <hao.a.wu@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>
2016-11-08 16:38:15 +08:00
Hao Wu
2a9afe80c3 BaseTools/VolInfo: Fix file handles not being closed
Cc: Liming Gao <liming.gao@intel.com>
Cc: Yonghong Zhu <yonghong.zhu@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Hao Wu <hao.a.wu@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>
2016-11-08 16:38:12 +08:00
Hao Wu
4d32be8888 BaseTools/TianoCompress: Fix file handles not being closed
Cc: Liming Gao <liming.gao@intel.com>
Cc: Yonghong Zhu <yonghong.zhu@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Hao Wu <hao.a.wu@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>
2016-11-08 16:38:10 +08:00
Hao Wu
1880d5e4d0 BaseTools/LzmaCompress: Fix file handles not being closed
Cc: Liming Gao <liming.gao@intel.com>
Cc: Yonghong Zhu <yonghong.zhu@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Hao Wu <hao.a.wu@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>
2016-11-08 16:38:07 +08:00
Hao Wu
181c955937 BaseTools/GenVtf: Fix file handles not being closed
Cc: Liming Gao <liming.gao@intel.com>
Cc: Yonghong Zhu <yonghong.zhu@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Hao Wu <hao.a.wu@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>
2016-11-08 16:38:05 +08:00
Hao Wu
320ba37a56 BaseTools/GenFv: Fix file handles not being closed
Cc: Liming Gao <liming.gao@intel.com>
Cc: Yonghong Zhu <yonghong.zhu@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Hao Wu <hao.a.wu@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>
2016-11-08 16:38:02 +08:00
Hao Wu
9639f7d378 BaseTools/GenCrc32: Fix file handles not being closed
Cc: Liming Gao <liming.gao@intel.com>
Cc: Yonghong Zhu <yonghong.zhu@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Hao Wu <hao.a.wu@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>
2016-11-08 16:37:59 +08:00
Hao Wu
197b8f261b BaseTools/GenBootSector: Fix file handles not being closed
Cc: Liming Gao <liming.gao@intel.com>
Cc: Yonghong Zhu <yonghong.zhu@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Hao Wu <hao.a.wu@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>
2016-11-08 16:37:57 +08:00
Hao Wu
1e124de018 BaseTools/EfiRom: Fix file handles not being closed
Cc: Liming Gao <liming.gao@intel.com>
Cc: Yonghong Zhu <yonghong.zhu@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Hao Wu <hao.a.wu@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>
2016-11-08 16:37:54 +08:00
Hao Wu
8500665494 BaseTools/VolInfo: Fix potential memory leak
Cc: Liming Gao <liming.gao@intel.com>
Cc: Yonghong Zhu <yonghong.zhu@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Hao Wu <hao.a.wu@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>
2016-11-08 16:37:52 +08:00
Hao Wu
bdf5f73120 BaseTools/VfrCompile: Fix potential memory leak
Cc: Liming Gao <liming.gao@intel.com>
Cc: Yonghong Zhu <yonghong.zhu@intel.com>
Cc: Eric Dong <eric.dong@intel.com>
Cc: Dandan Bi <dandan.bi@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Hao Wu <hao.a.wu@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>
2016-11-08 16:37:49 +08:00
Hao Wu
076947cfce BaseTools/TianoCompress: Fix potential memory leak
Cc: Liming Gao <liming.gao@intel.com>
Cc: Yonghong Zhu <yonghong.zhu@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Hao Wu <hao.a.wu@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>
2016-11-08 16:37:47 +08:00
Hao Wu
b14f278de4 BaseTools/Split: Fix potential memory and resource leak
Cc: Liming Gao <liming.gao@intel.com>
Cc: Yonghong Zhu <yonghong.zhu@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Hao Wu <hao.a.wu@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>
2016-11-08 16:37:44 +08:00
Hao Wu
399caf2d14 BaseTools/GenVtf: Fix potential memory leak
Cc: Liming Gao <liming.gao@intel.com>
Cc: Yonghong Zhu <yonghong.zhu@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Hao Wu <hao.a.wu@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>
2016-11-08 16:37:41 +08:00
Hao Wu
77e4cf5f11 BaseTools/GenSec: Fix potential memory leak
Cc: Liming Gao <liming.gao@intel.com>
Cc: Yonghong Zhu <yonghong.zhu@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Hao Wu <hao.a.wu@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>
2016-11-08 16:37:38 +08:00
Hao Wu
3f63e17551 BaseTools/GenPage: Fix potential memory leak
Cc: Liming Gao <liming.gao@intel.com>
Cc: Yonghong Zhu <yonghong.zhu@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Hao Wu <hao.a.wu@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>
2016-11-08 16:37:36 +08:00
Hao Wu
6db9787110 BaseTools/GenFv: Fix potential memory leak
Cc: Liming Gao <liming.gao@intel.com>
Cc: Yonghong Zhu <yonghong.zhu@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Hao Wu <hao.a.wu@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>
2016-11-08 16:37:33 +08:00
Hao Wu
fb4ea38c46 BaseTools/EfiRom: Fix potential memory leak
Cc: Liming Gao <liming.gao@intel.com>
Cc: Yonghong Zhu <yonghong.zhu@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Hao Wu <hao.a.wu@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>
2016-11-08 16:37:30 +08:00
Hao Wu
aee346514d BaseTools/C/Common: Fix potential memory leak
Cc: Liming Gao <liming.gao@intel.com>
Cc: Yonghong Zhu <yonghong.zhu@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Hao Wu <hao.a.wu@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>
2016-11-08 16:37:28 +08:00
Hao Wu
5e85fb52d0 BaseTools/VfrCompile: Remove unused local variables
Cc: Liming Gao <liming.gao@intel.com>
Cc: Yonghong Zhu <yonghong.zhu@intel.com>
Cc: Eric Dong <eric.dong@intel.com>
Cc: Dandan Bi <dandan.bi@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Hao Wu <hao.a.wu@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>
2016-11-08 16:37:25 +08:00
Hao Wu
77dee0b185 BaseTools/VfrCompile: Avoid freeing freed memory in classes
For classes that contain dynamically allocated data members, copy
constructor and assignment operator should be implemented or both
operations should be prohibited to avoid freeing freed memory caused by
shallow copy.

This commit declares both copy constructor and assignment operator as
'private' for classes that contain dynamically allocated data members.
This will prevent freeing already freed memory.

Cc: Liming Gao <liming.gao@intel.com>
Cc: Yonghong Zhu <yonghong.zhu@intel.com>
Cc: Eric Dong <eric.dong@intel.com>
Cc: Dandan Bi <dandan.bi@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Hao Wu <hao.a.wu@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>
2016-11-08 16:37:23 +08:00
Hao Wu
0d46defefa BaseTools/VfrCompile: Add assignment operator definition for some classes
For class that defines the copy constructor, it is better to add the
assignment operator definition as well.

This commit adds the definition for assignment operator for the classes
with the copy constructor defined.

Cc: Liming Gao <liming.gao@intel.com>
Cc: Yonghong Zhu <yonghong.zhu@intel.com>
Cc: Eric Dong <eric.dong@intel.com>
Cc: Dandan Bi <dandan.bi@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Hao Wu <hao.a.wu@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>
2016-11-08 16:37:20 +08:00
Hao Wu
fd5425230e BaseTools/VfrCompile: Avoid freeing memory with mismatched functions
Memory allocated by operator new[] should be freed using delete[] to avoid
possible memory leak.

Cc: Liming Gao <liming.gao@intel.com>
Cc: Yonghong Zhu <yonghong.zhu@intel.com>
Cc: Eric Dong <eric.dong@intel.com>
Cc: Dandan Bi <dandan.bi@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Hao Wu <hao.a.wu@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>
2016-11-08 16:37:17 +08:00
Hao Wu
a6ac965bca BaseTools/VfrCompile: Add checks for user/file inputs
Cc: Liming Gao <liming.gao@intel.com>
Cc: Yonghong Zhu <yonghong.zhu@intel.com>
Cc: Eric Dong <eric.dong@intel.com>
Cc: Dandan Bi <dandan.bi@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Hao Wu <hao.a.wu@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>
2016-11-08 16:37:15 +08:00
Hao Wu
6f30cefd79 BaseTools/GenFv: Add checks for user/file inputs
Cc: Liming Gao <liming.gao@intel.com>
Cc: Yonghong Zhu <yonghong.zhu@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Hao Wu <hao.a.wu@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>
2016-11-08 16:37:12 +08:00
Hao Wu
47affb48e9 BaseTools/EfiRom: Add checks for user/file inputs
Cc: Liming Gao <liming.gao@intel.com>
Cc: Yonghong Zhu <yonghong.zhu@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Hao Wu <hao.a.wu@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>
2016-11-08 16:37:09 +08:00
Hao Wu
bab5ad2fd1 BaseTools/VfrCompile: Add checks for array access
Cc: Liming Gao <liming.gao@intel.com>
Cc: Yonghong Zhu <yonghong.zhu@intel.com>
Cc: Eric Dong <eric.dong@intel.com>
Cc: Dandan Bi <dandan.bi@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Hao Wu <hao.a.wu@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>
2016-11-08 16:37:07 +08:00
Hao Wu
5acc8d3cdd BaseTools/TianoCompress: Add checks for array access
Cc: Liming Gao <liming.gao@intel.com>
Cc: Yonghong Zhu <yonghong.zhu@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Hao Wu <hao.a.wu@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>
2016-11-08 16:37:04 +08:00
Hao Wu
b3520abde8 BaseTools/C/Common: Add checks for array access
Cc: Liming Gao <liming.gao@intel.com>
Cc: Yonghong Zhu <yonghong.zhu@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Hao Wu <hao.a.wu@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>
2016-11-08 16:37:01 +08:00
Hao Wu
f45b5a7605 BaseTools/GenVtf: Fix parameter format mismatch in scanf functions
According to MSDN https://msdn.microsoft.com/en-us/library/6ttkkkhh.aspx

Format specification '%x' for scanf expects type 'int *', modify the type
of the relating variable to 'int' to keep them matched.

Cc: Liming Gao <liming.gao@intel.com>
Cc: Yonghong Zhu <yonghong.zhu@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Hao Wu <hao.a.wu@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>
2016-11-08 16:36:58 +08:00
Hao Wu
bd82cb4f21 BaseTools/GenFw: Fix parameter format mismatch in scanf functions
According to MSDN https://msdn.microsoft.com/en-us/library/6ttkkkhh.aspx

Format specification '%X' for scanf expects type 'int *', modify the type
of the relating variable to 'int' to keep them matched.

Cc: Liming Gao <liming.gao@intel.com>
Cc: Yonghong Zhu <yonghong.zhu@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Hao Wu <hao.a.wu@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>
2016-11-08 16:36:56 +08:00
Hao Wu
488ace56a6 BaseTools/GenFv: Fix parameter format mismatch in scanf functions
According to MSDN https://msdn.microsoft.com/en-us/library/6ttkkkhh.aspx &
https://msdn.microsoft.com/en-us/library/xdb9w69d.aspx

Format specification '%llx' for scanf expects type 'long long *', modify
the type of the relating variable to 'long long' to keep them matched.

Cc: Liming Gao <liming.gao@intel.com>
Cc: Yonghong Zhu <yonghong.zhu@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Hao Wu <hao.a.wu@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>
2016-11-08 16:36:54 +08:00
Hao Wu
851c97ce78 BaseTools/C/Common: Fix parameter format mismatch in scanf functions
According to MSDN https://msdn.microsoft.com/en-us/library/6ttkkkhh.aspx

Format specification '%x' for scanf expects type 'int *', modify the type
of the relating variable to 'int' to keep them matched.

Cc: Liming Gao <liming.gao@intel.com>
Cc: Yonghong Zhu <yonghong.zhu@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Hao Wu <hao.a.wu@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>
2016-11-08 16:36:51 +08:00
Hao Wu
ed9ff2688a BaseTools/VolInfo: Fix parameter format mismatch in printf functions
Format specification '%ls' for printf expects type 'wchar_t *', cast the
type of the parameter to 'wchar_t *' to keep them matched.

Cc: Liming Gao <liming.gao@intel.com>
Cc: Yonghong Zhu <yonghong.zhu@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Hao Wu <hao.a.wu@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>
2016-11-08 16:36:48 +08:00
Hao Wu
f8708503cf BaseTools/GenBootSector: Fix parameter format mismatch in printf functions
The return value of GetLastError() API is 32-bit unsigned integer, change
the relating format specification from '%x' to '%lx' to keep them matched.

Cc: Liming Gao <liming.gao@intel.com>
Cc: Yonghong Zhu <yonghong.zhu@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Hao Wu <hao.a.wu@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>
2016-11-08 16:36:45 +08:00
Hao Wu
61eb9834a3 BaseTools/VfrCompile: Initialize local variables before being used
Cc: Liming Gao <liming.gao@intel.com>
Cc: Yonghong Zhu <yonghong.zhu@intel.com>
Cc: Eric Dong <eric.dong@intel.com>
Cc: Dandan Bi <dandan.bi@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Hao Wu <hao.a.wu@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>
2016-11-08 16:36:43 +08:00
Hao Wu
10bcabc6be BaseTools/TianoCompress: Initialize local variables before being used
Cc: Liming Gao <liming.gao@intel.com>
Cc: Yonghong Zhu <yonghong.zhu@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Hao Wu <hao.a.wu@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>
2016-11-08 16:36:40 +08:00
Hao Wu
9dd00cb66e BaseTools/VolInfo: Avoid possible NULL pointer dereference
Cc: Liming Gao <liming.gao@intel.com>
Cc: Yonghong Zhu <yonghong.zhu@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Hao Wu <hao.a.wu@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>
2016-11-08 16:36:38 +08:00
Hao Wu
9b78c54a09 BaseTools/VfrCompile: Avoid possible NULL pointer dereference
Cc: Liming Gao <liming.gao@intel.com>
Cc: Yonghong Zhu <yonghong.zhu@intel.com>
Cc: Eric Dong <eric.dong@intel.com>
Cc: Dandan Bi <dandan.bi@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Hao Wu <hao.a.wu@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>
2016-11-08 16:36:35 +08:00
Hao Wu
d1f6eb27fe BaseTools/TianoCompress: Avoid possible NULL pointer dereference
Cc: Liming Gao <liming.gao@intel.com>
Cc: Yonghong Zhu <yonghong.zhu@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Hao Wu <hao.a.wu@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>
2016-11-08 16:36:33 +08:00
Hao Wu
90114c101f BaseTools/GenVtf: Avoid possible NULL pointer dereference
Cc: Liming Gao <liming.gao@intel.com>
Cc: Yonghong Zhu <yonghong.zhu@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Hao Wu <hao.a.wu@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>
2016-11-08 16:36:30 +08:00
Hao Wu
248fce0329 BaseTools/GenSec: Avoid possible NULL pointer dereference
Cc: Liming Gao <liming.gao@intel.com>
Cc: Yonghong Zhu <yonghong.zhu@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Hao Wu <hao.a.wu@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>
2016-11-08 16:36:27 +08:00
Hao Wu
18c2a7621d BaseTools/GenPage: Avoid possible NULL pointer dereference
Cc: Liming Gao <liming.gao@intel.com>
Cc: Yonghong Zhu <yonghong.zhu@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Hao Wu <hao.a.wu@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>
2016-11-08 16:36:24 +08:00
Hao Wu
06b4573598 BaseTools/GenFw: Avoid possible NULL pointer dereference
Cc: Liming Gao <liming.gao@intel.com>
Cc: Yonghong Zhu <yonghong.zhu@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Hao Wu <hao.a.wu@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>
2016-11-08 16:36:21 +08:00
Hao Wu
2224702134 BaseTools/GenFv: Avoid possible NULL pointer dereference
Cc: Liming Gao <liming.gao@intel.com>
Cc: Yonghong Zhu <yonghong.zhu@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Hao Wu <hao.a.wu@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>
2016-11-08 16:36:19 +08:00
Hao Wu
2cb8743524 BaseTools/GenFfs: Avoid possible NULL pointer dereference
Cc: Liming Gao <liming.gao@intel.com>
Cc: Yonghong Zhu <yonghong.zhu@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Hao Wu <hao.a.wu@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>
2016-11-08 16:36:14 +08:00
Hao Wu
02875ba228 BaseTools/EfiRom: Avoid possible NULL pointer dereference
Cc: Liming Gao <liming.gao@intel.com>
Cc: Yonghong Zhu <yonghong.zhu@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Hao Wu <hao.a.wu@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>
2016-11-08 16:36:12 +08:00
Hao Wu
2ff3293d7b BaseTools/C/Common: Avoid possible NULL pointer dereference
Cc: Liming Gao <liming.gao@intel.com>
Cc: Yonghong Zhu <yonghong.zhu@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Hao Wu <hao.a.wu@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>
2016-11-08 16:36:09 +08:00
Yonghong Zhu
7e7a811664 BaseTools: Add the support for character '<' and '>' in the map file
Current the regex for the symbol in the map file doesn't support the '<'
and '>' character, while user use Lambda Expression (C++11 feature), it
would generate the something like @V<lambda_xxx>@ in the map file which
cause build fail to parse the symbol in map file.

Cc: Liming Gao <liming.gao@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Yonghong Zhu <yonghong.zhu@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>
2016-11-05 09:01:49 +08:00
Jiewen Yao
fdaf78424d BaseTools/Pkcs7: Add readme.md
Add readme.md to describe the X.509 certificate generation.

Cc: Yonghong Zhu <yonghong.zhu@intel.com>
Cc: Liming Gao <liming.gao@intel.com>
Cc: Michael D Kinney <michael.d.kinney@intel.com>
Cc: Qin Long <qin.long@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Jiewen Yao <jiewen.yao@intel.com>
Reviewed-by: Qin Long <qin.long@intel.com>
2016-11-04 22:30:43 +08:00
Yonghong Zhu
669b6cc60b BaseTools: Fix the Windows GCC Build Failure with too long path
When path is too long, build tool will wrap them into resp.txt, then call
gcc @resp.txt. It will cause windows GCC build failure, because resp.txt
still uses windows directory separator \. This patch change the \ to /.

Cc: Liming Gao <liming.gao@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Yonghong Zhu <yonghong.zhu@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>
2016-11-04 14:57:09 +08:00
Jiewen Yao
e9d0933d45 BaseTool/Pkcs7: Add TestRoot.cer.
We add this binary data file for TestRoot.cer.
So that a platform may include this default file in FDF,
to check if the platform is using default test key,
or different production key.

Cc: Yonghong Zhu <yonghong.zhu@intel.com>
Cc: Liming Gao <liming.gao@intel.com>
Cc: Michael D Kinney <michael.d.kinney@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Jiewen Yao <jiewen.yao@intel.com>
Reviewed-by: Yonghong Zhu <yonghong.zhu@intel.com>
Reviewed-by: Michael D Kinney <michael.d.kinney@intel.com>
2016-11-03 13:44:45 +08:00
Liming Gao
c4ab09ef2f BaseTools LzmaCompress: Update LZMA to new 16.04 version
New version LZMA SDK improves the compression performance on windows OS,
and has no change on the compression ratio. I compress 8M FVMAIN image,
the compression time is reduced from 2.590s to 1.419s.

Cc: Yonghong Zhu <yonghong.zhu@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Liming Gao <liming.gao@intel.com>
Reviewed-by: Yonghong Zhu <yonghong.zhu@intel.com>
2016-11-03 10:21:15 +08:00
Yonghong Zhu
90a4021967 BaseTools:introduce PREFIX env for VS tool path
This patch introduce PREFIX env for VS tool path for tools_def.template
file.

Cc: Liming Gao <liming.gao@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Yonghong Zhu <yonghong.zhu@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>
2016-11-02 10:00:31 +08:00
Yonghong Zhu
314b26a847 BaseTools: Update toolsetup.bat to call the set_vsprefix_envs.bat
Update toolsetup.bat to call the set_vsprefix_envs.bat to set the PREFIX
envs.

Cc: Liming Gao <liming.gao@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Yonghong Zhu <yonghong.zhu@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>
2016-11-02 09:58:16 +08:00
Yonghong Zhu
40d7406f6e BaseTools: Add a new bat file to set PREFIX envs
Add set_vsprefix_envs.bat to set PREFIX envs as the default values if
they are not set.

Cc: Liming Gao <liming.gao@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Yonghong Zhu <yonghong.zhu@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>
2016-11-02 09:53:19 +08:00
Yonghong Zhu
a0c9ce31b6 BaseTools: Fix a bug for tooldef class not include the newly Env
Prebuild script may update os.environ, but the tooldef class not include
the new ENV variables. so after the Launch prebuild script, we should
re-init the tooldef class to include the new ENV variables.

Cc: Liming Gao <liming.gao@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Yonghong Zhu <yonghong.zhu@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>
2016-11-02 09:50:04 +08:00
Yonghong Zhu
18ca2fec97 BaseTools: Fix a bug for ExpandMacros to support mixed case ENV var
os.environ contains all environment variables uppercase on Windows which
cause the key in the self.MacroDictionary is uppercase, but the real
variable name maybe mixed case, eg:WINSDK81x86, then we can't find the
variable in the self.MacroDictionary.

Cc: Liming Gao <liming.gao@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Yonghong Zhu <yonghong.zhu@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>
2016-11-02 09:49:04 +08:00
Yonghong Zhu
2a6402d490 BaseTools: Fix the bug for OptionRom generation with different arch
The GenFds tool uses the same output for the same module with the
different arch, IA32 and X64 module will have the same output. The
solution is add the arch info in the output directory.

Cc: Liming Gao <liming.gao@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Yonghong Zhu <yonghong.zhu@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>
2016-11-02 09:47:41 +08:00
Leif Lindholm
c112e371ce edksetup.sh, BaseTools/BuildEnv: add --reconfig support
Add command line option --reconfig to edksetup.sh, forcing cached
copies of Conf/*.txt to be overwritten.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Leif Lindholm <leif.lindholm@linaro.org>
Reviewed-by: Liming Gao <liming.gao@intel.com>
2016-10-24 13:53:16 +01:00
Cinnamon Shia
92063b0b21 edksetup.bat: Support --nt32 X64
Support --nt32 X64 for building 64-bit NT32.
For setting up Windows environment variables requited by NT32, follow the
same approach as Edk2Setup.bat by using the get_vsvars.bat and
SetVisualStudio.bat.

Sync the help text of NT32 with Edk2Setup.bat.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Cinnamon Shia <cinnamon.shia@hpe.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>
2016-10-24 10:49:16 +08:00
Liming Gao
c4260115f0 BaseTools VS Makefile: Use /MT in replace of /MD to remove specific dll
/MD option will introduce the specific version dll dependency. It will cause
the compiled C tools not work on some system.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Liming Gao <liming.gao@intel.com>
Reviewed-by: Yonghong Zhu <yonghong.zhu@intel.com>
2016-10-21 16:40:49 +08:00
Yonghong Zhu
c3926cdbbd BaseTools/PatchCheck.py: Update to report error for EFI_D_*
In EDK2, DEBUG_* is recommended to be used instead of EFI_D_*. For new
code, they should use DEBUG_* macro.

Fixes:https://bugzilla.tianocore.org/show_bug.cgi?id=143
Cc: Liming Gao <liming.gao@intel.com>
Cc: Jordan Justen <jordan.l.justen@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Yonghong Zhu <yonghong.zhu@intel.com>
Reviewed-by: Jordan Justen <jordan.l.justen@intel.com>
2016-10-21 07:28:01 +08:00
Yonghong Zhu
e709bbb1ce BaseTools/PatchCheck.py: Update to handle the two [] as prefix
The bug is that only remove the first [] when it does the char count,
however sometimes we use [edk2][patch] as prefix, this patch fix this bug.

Fixes: https://bugzilla.tianocore.org/show_bug.cgi?id=113
Cc: Liming Gao <liming.gao@intel.com>
Cc: Jordan Justen <jordan.l.justen@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Yonghong Zhu <yonghong.zhu@intel.com>
Reviewed-by: Jordan Justen <jordan.l.justen@intel.com>
2016-10-21 07:25:22 +08:00
Yonghong Zhu
e61406708c BaseTools/PatchCheck.py: Update for max length of subject and message line
This patch update PatchCheck.py:
1. The subject line of the commit message should be < 72 characters.
2. The other lines of the commit message should be < 76 characters.

Fixes: https://bugzilla.tianocore.org/show_bug.cgi?id=113
Cc: Liming Gao <liming.gao@intel.com>
Cc: Jordan Justen <jordan.l.justen@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Yonghong Zhu <yonghong.zhu@intel.com>
Reviewed-by: Jordan Justen <jordan.l.justen@intel.com>
2016-10-21 07:23:57 +08:00
Gary Lin
99e55970ff BaseTools: Fix typos in comments and variables
- Pacakge -> Package
- outputed -> outputted
- successull -> successfully
- Libary -> Library
- Pointion -> Position
- paramter -> parameter

Cc: Yonghong Zhu <yonghong.zhu@intel.com>
Cc: Liming Gao <liming.gao@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Gary Lin <glin@suse.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>
Reviewed-by: Yonghong Zhu <yonghong.zhu@intel.com>
2016-10-20 11:18:27 +08:00
Yonghong Zhu
67e11e4d59 BaseTools: support PCD value to use expression in the DEC file
This patch add the support for Pcd value to use expression in the DEC file.

Cc: Liming Gao <liming.gao@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Yonghong Zhu <yonghong.zhu@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>
2016-10-19 10:03:49 +08:00
Yonghong Zhu
6d034a2add BaseTools: Enhance tool to generate EFI_HII_IIBT_DUPLICATE image block
When *.IDF file contains multiple definitions of image which point to the
same image, current build tool generates multiple image blocks which
contain the same image content.
This patch enhance tool to generate EFI_HII_IIBT_DUPLICATE image blocks
for non-first images for such case, to save the HII package size.

Fixes: https://bugzilla.tianocore.org/show_bug.cgi?id=145
Cc: Liming Gao <liming.gao@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Yonghong Zhu <yonghong.zhu@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>
2016-10-19 10:02:31 +08:00
Yonghong Zhu
245cda6641 BaseTools: Update sign tool to make MonotonicCount *after* Payload
The WIN_CERTIFICATE_UEFI_GUID AuthInfo defined in the UEFI spec
mentioned that It is a signature across the image data and the
Monotonic Count value. After clarification, we do the signature
calculation, we put MonotonicCount after Payload.

Cc: Liming Gao <liming.gao@intel.com>
Cc: Jiewen Yao <jiewen.yao@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Yonghong Zhu <yonghong.zhu@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>
Reviewed-by: Jiewen Yao <jiewen.yao@intel.com>
Tested-by: Jiewen Yao <jiewen.yao@intel.com>
2016-10-17 13:26:22 +08:00
Michael Kinney
dd170333f6 BaseTools/GenFds: Support FDF sections in any order
https://bugzilla.tianocore.org/show_bug.cgi?id=141

This patch updates EDK II FDF parser in GenFds to allow sections
to be placed in any order in the FDF file.

Cc: Kelly Steele <kelly.steele@intel.com>
Cc: Yonghong Zhu <yonghong.zhu@intel.com>
Cc: Liming Gao <liming.gao@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Michael Kinney <michael.d.kinney@intel.com>
Reviewed-by: Yonghong Zhu <yonghong.zhu@intel.com>
2016-10-12 10:36:03 -07:00
Yonghong Zhu
19e3aa7a8a BaseTools: Extend FMP to support FV statement and FD statement
This patch extend the <FmpFileData> to support <FvStatements> and
<FdStatenents>, just like the normal [Capsule] section format.
In order to fix the bug https://bugzilla.tianocore.org/show_bug.cgi?id=132

Cc: Liming Gao <liming.gao@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Yonghong Zhu <yonghong.zhu@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>
2016-10-12 12:48:44 +08:00
Yonghong Zhu
4b8234d054 BaseTools: support the NOOPT target with the GCC tool chains
Update the tools_def.template to add NOOPT support with GCC tool chains.
Also disable -flto and -Os in NOOPT target for GCC5.

Cc: Liming Gao <liming.gao@intel.com>
Cc: Laszlo Ersek <lersek@redhat.com>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Yonghong Zhu <yonghong.zhu@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>
Reviewed-by: Laszlo Ersek <lersek@redhat.com>
Tested-by: Bruce Cran <bruce.cran@sandisk.com>
2016-10-12 07:17:00 +08:00
Liming Gao
202726b3ce BaseTools Makefile: Enable O2 option for GCC tool chain
Enable O2 option to generate fast code for performance improvement.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Liming Gao <liming.gao@intel.com>
Reviewed-by: Jordan Justen <jordan.l.justen@intel.com>
2016-10-08 13:44:35 +08:00
Liming Gao
c52d9f71ba BaseTools GenVtf: Initialize the return point as NULL
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Liming Gao <liming.gao@intel.com>
Reviewed-by: Jordan Justen <jordan.l.justen@intel.com>
2016-10-08 13:44:33 +08:00
Liming Gao
9a1a63cf11 BaseTools Makefile: Enable O2 option to replace Od for VS tool chain
Enable O2 option to generate fast code for performance improvement.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Liming Gao <liming.gao@intel.com>
Acked-by: Jordan Justen <jordan.l.justen@intel.com>
2016-10-08 13:44:31 +08:00
Liming Gao
5277efed28 BaseTools EfiLdrImage: Remove unnecessary exit (0)
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Liming Gao <liming.gao@intel.com>
Reviewed-by: Jordan Justen <jordan.l.justen@intel.com>
2016-10-08 13:42:49 +08:00
Hao Wu
ed72804638 BaseTools Build: Fix build break for clean target in Linux
In Linux, Command needs to be String instead of list when Command run
as shell with True.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Liming Gao <liming.gao@intel.com>
Reviewed-by: Yonghong Zhu <yonghong.zhu@intel.com>
2016-09-30 14:13:53 +08:00
Liming Gao
0eb330424c BaseTools VS Makefile: Don't include ms.common in ms.app
ms.common is included by every tool Makefile. it is not necessary to be placed
in ms.app again.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Liming Gao <liming.gao@intel.com>
Reviewed-by: Yonghong Zhu <yonghong.zhu@intel.com>
2016-09-30 14:13:49 +08:00
Liming Gao
2dc547da46 BaseTools Makefile: Missing LFAGS in app.makefile
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Liming Gao <liming.gao@intel.com>
Reviewed-by: Yonghong Zhu <yonghong.zhu@intel.com>
2016-09-30 14:13:45 +08:00
Hao Wu
7807dea57f BaseTools: List missing source python files for Ecc tool in Makefile
Add missing python sources files that are dependent for Ecc tool in
Makefile.

Cc: Yonghong Zhu <yonghong.zhu@intel.com>
Cc: Liming Gao <liming.gao@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Hao Wu <hao.a.wu@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>
Reviewed-by: Yonghong Zhu <yonghong.zhu@intel.com>
2016-09-27 16:26:13 +08:00
Yonghong Zhu
324dd9b468 BaseTools: Add some posixlike files for Linux
Add the posixlike files for Rsa2048Sha256Sign, Rsa2048Sha256GenerateKeys
and Pkcs7Sign.

Cc: Liming Gao <liming.gao@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Yonghong Zhu <yonghong.zhu@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>
2016-09-27 14:00:42 +08:00
Yonghong Zhu
333ba578fe BaseTools: support generating image package from BMP/JPEG/PNG files
BaseTools add support to generating image package from BMP/JPEG/PNG
files.
1) New file type *.idf Image definition file to describe HII image
resource. It is the ASCII text file, and includes one or more "#image
IMAGE_ID [TRANSPARENT] ImageFileName".
2) New IMAGE_TOKEN macro is used to refer to IMAGE_ID.
3) New AutoGen header file $(MODULE_NAME)ImgDefs.h to include the
generated ImageId definition.
4) New $(MODULE_NAME)Idf.hpk or $(MODULE_NAME)Images are generated
as the output binary HII image package.

Cc: Liming Gao <liming.gao@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Yonghong Zhu <yonghong.zhu@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>
2016-09-27 09:43:28 +08:00
Yonghong Zhu
587e9dfbba BaseTools: handling the case that map file is not exist
We meet a case that add the library inf file which has the uni file in
the [Sources] section, for this case there will no map file exist, it
cause build tools report Traceback  error.

Cc: Liming Gao <liming.gao@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Yonghong Zhu <yonghong.zhu@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>
2016-09-25 08:21:56 +08:00
Liming Gao
7419aedd93 BaseTools: Update toolsetup.bat to set PYTHONPATH env to run python source
When python tool exe doesn't exist, toolsetup.bat will set up PYTHONPATH,
and set python tool dos script directory into system PATH.

Cc: Yonghong Zhu <yonghong.zhu@intel.com>
Cc: Michael Kinney <michael.d.kinney@intel.com>
Cc: Erik Bjorge <erik.c.bjorge@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Liming Gao <liming.gao@intel.com>
Reviewed-by: Yonghong Zhu <yonghong.zhu@intel.com>
Reviewed-by: Erik Bjorge <erik.c.bjorge@intel.com>
2016-09-21 11:20:34 +08:00
Liming Gao
efb1e40f91 BaseTools: Update Python Makefile not to depend on PYTHON_FREEZER_PATH
If PYTHON_FREEZER_PATH is not set, Python tools will not be freeze.

Cc: Yonghong Zhu <yonghong.zhu@intel.com>
Cc: Michael Kinney <michael.d.kinney@intel.com>
Cc: Erik Bjorge <erik.c.bjorge@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Liming Gao <liming.gao@intel.com>
Reviewed-by: Yonghong Zhu <yonghong.zhu@intel.com>
Reviewed-by: Erik Bjorge <erik.c.bjorge@intel.com>
2016-09-21 10:49:18 +08:00
Liming Gao
71f5913eb9 BaseTools: Update python tool to call external tools with shell true mode
Python tool may run from source as the dos batch files. So, update python
code to call external tools with shell true mode.

Cc: Yonghong Zhu <yonghong.zhu@intel.com>
Cc: Michael Kinney <michael.d.kinney@intel.com>
Cc: Erik Bjorge <erik.c.bjorge@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Liming Gao <liming.gao@intel.com>
Reviewed-by: Yonghong Zhu <yonghong.zhu@intel.com>
Reviewed-by: Erik Bjorge <erik.c.bjorge@intel.com>
2016-09-21 10:49:15 +08:00
Liming Gao
bf069759ef BaseTools: Add Windows batch files to run python tool from Source
Add 13 windows batch files for every python tool.

Cc: Yonghong Zhu <yonghong.zhu@intel.com>
Cc: Michael Kinney <michael.d.kinney@intel.com>
Cc: Erik Bjorge <erik.c.bjorge@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Liming Gao <liming.gao@intel.com>
Reviewed-by: Yonghong Zhu <yonghong.zhu@intel.com>
Reviewed-by: Erik Bjorge <erik.c.bjorge@intel.com>
2016-09-21 10:49:12 +08:00
Yonghong Zhu
a01f68bd9b BaseTools: Follow PI1.4a to fix artificial limitation of PCD SkuId range
Current BaseTools follow previous PI spec to use UINT8 for SkuId, to
follow PI1.4a, BaseTools need to be updated to fix artificial limitation
of PCD SkuId range.

This patch is to update BaseTools to use UINT64 for SkuId, since the
PCD database structure needs to be naturally aligned, the PCD database
structure layout is adjusted to keep the natural alignment and version
is updated to 6.

Note: As the PCD database structure layout is adjusted, the structure
definition in MdeModulePkg/Include/Guid/PcdDataBaseSignatureGuid.h and
PCD drivers also need to be updated. That means the source code and
BaseTools need to be upgraded at the same time, and if they are not
upgraded at the same time, build error like below will be triggered
to help user identify the problem.

"Please make sure the version of PCD PEIM Service and the generated
PCD PEI Database match."

Cc: Liming Gao <liming.gao@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Yonghong Zhu <yonghong.zhu@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>
2016-09-20 16:50:48 +08:00
Yonghong Zhu
f8db6527da BaseTools: Fix the bug to handle the read-only file
change the 'r+b' to 'rb' for some file's open, since these files we only
read it and no need to write. It can fix the bug that the file's attribute
had been set to read-only.

Cc: Liming Gao <liming.gao@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Yonghong Zhu <yonghong.zhu@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>
2016-09-15 16:09:38 +08:00
Laszlo Ersek
2d41ea3aed BaseTools/EfiRom: supply missing machine type lookup strings
"EfiRom --dump" does not recognize the 0x8664 machine type:

>   EFI ROM header contents
>     EFI Signature          0x0EF1
>     Compression Type       0x0001 (compressed)
>     Machine type           0x8664 (unknown)
>     Subsystem              0x000B (EFI boot service driver)
>     EFI image offset       0x0050 (@0xF650)

Add lookup strings for the remaining EFI_IMAGE_MACHINE_* numeric macros
that can be found in
"BaseTools/Source/C/Include/IndustryStandard/PeImage.h". The strings
follow Table 12. "UEFI Image Types" from the UEFI v2.6 spec.

Cc: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Cc: Liming Gao <liming.gao@intel.com>
Cc: Yonghong Zhu <yonghong.zhu@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Laszlo Ersek <lersek@redhat.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>
Reviewed-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
2016-09-09 10:36:30 +02:00
Liming Gao
4ac14ceae0 BaseTools VfrCompile Pccts: Update GCC Flags to the specific one with BUILD_ prefix
This change is also applied to VfrCompile Pccts antlr and dlg tool.

In V2, add the missing C rules.

Cc: Giri P Mudusuru <giri.p.mudusuru@intel.com>
Cc: Yonghong Zhu <yonghong.zhu@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Liming Gao <liming.gao@intel.com>
Reviewed-by: Giri P Mudusuru <giri.p.mudusuru@intel.com>
Reviewed-by: Yonghong Zhu <yonghong.zhu@intel.com>
2016-09-08 13:05:11 +08:00
Liming Gao
fa318476e4 BaseTools VfrCompile GNU makefile: Replace CXX with BUILD_CXX
The change is missing in VfrComile GNUmakefile.

Cc: Giri P Mudusuru <giri.p.mudusuru@intel.com>
Cc: Yonghong Zhu <yonghong.zhu@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Liming Gao <liming.gao@intel.com>
Reviewed-by: Giri P Mudusuru <giri.p.mudusuru@intel.com>
Reviewed-by: Yonghong Zhu <yonghong.zhu@intel.com>
2016-09-08 13:05:07 +08:00
Liming Gao
b15153451c BaseTools GNU makefile: remove unused .S rule
Cc: Yonghong Zhu <yonghong.zhu@intel.com>
Cc: Giri P Mudusuru <giri.p.mudusuru@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Liming Gao <liming.gao@intel.com>
Reviewed-by: Giri P Mudusuru <giri.p.mudusuru@intel.com>
Reviewed-by: Yonghong Zhu <yonghong.zhu@intel.com>
2016-09-08 13:05:03 +08:00
Liming Gao
a9355bb81a BaseTools GNU makefile: Add BUILD_CXXFLAGS to align make built-in rule
GNU make built-in rule to Compiling C++ programs with
‘$(CXX) $(CPPFLAGS) $(CXXFLAGS) -c’.
To align to it, add empty BUILD_CXXFLAGS in cpp rule.

Cc: Giri P Mudusuru <giri.p.mudusuru@intel.com>
Cc: Yonghong Zhu <yonghong.zhu@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Liming Gao <liming.gao@intel.com>
Reviewed-by: Giri P Mudusuru <giri.p.mudusuru@intel.com>
Reviewed-by: Yonghong Zhu <yonghong.zhu@intel.com>
2016-09-08 13:04:57 +08:00
Ard Biesheuvel
8f0b62a5da BaseTools/tools_def AARCH64: enable frame pointers for DEBUG builds
Enable frame pointers on DEBUG builds so we can support backtraces in
crash dumps.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Reviewed-by: Leif Lindholm <leif.lindholm@linaro.org>
Tested-by: Leif Lindholm <leif.lindholm@linaro.org>
2016-09-07 17:22:27 +01:00
Yonghong Zhu
11eaa7affb BaseTools: Change source files to DOS format
Cc: Liming Gao <liming.gao@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Yonghong Zhu <yonghong.zhu@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>
2016-09-04 13:25:49 +08:00
Yonghong Zhu
5f53a7aa59 BaseTools: UpdateImageSize include Image auth info for FMP Auth capsule
Per UEFI spec UpdateImageSize may or may not include Firmware Image
Authentication information. so for FMP auth capsule, UpdateImageSize
should include the Image auth info.

Cc: Liming Gao <liming.gao@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Yonghong Zhu <yonghong.zhu@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>
2016-08-30 15:56:21 +08:00
Ard Biesheuvel
4962fcfa7d BaseTools/GenFw: ignore dynamic RELA sections
When building PIE (ET_DYN) executables, an additional RELA section is
emitted (in addition to the per-section .rela.text and .rela.data sections)
that is intended to be resolved at runtime by a ET_DYN compatible loader.

At the moment, due to the fact that we don't support GOT based relocations,
this dynamic RELA section only contains relocations that are redundant,
i.e., each R_xxx_RELATIVE relocation it contains duplicates a R_xxx_xx64
relocation appearing in .rela.text or .rela.data, and so we can simply
ignore this section (and we already ignore it in practice due to the fact
that it points to the NULL section, which has the SHF_ALLOC bit cleared).

For example,

  Section Headers:
    [Nr] Name              Type             Address           Offset
         Size              EntSize          Flags  Link  Info  Align
    [ 0]                   NULL             0000000000000000  00000000
         0000000000000000  0000000000000000           0     0     0
    [ 1] .text             PROGBITS         0000000000000240  000000c0
         000000000000427c  0000000000000008  AX       0     0     64
    [ 2] .rela.text        RELA             0000000000000000  00009310
         0000000000001bf0  0000000000000018   I       7     1     8
    [ 3] .data             PROGBITS         00000000000044c0  00004340
         00000000000046d0  0000000000000000  WA       0     0     64
    [ 4] .rela.data        RELA             0000000000000000  0000af00
         0000000000000600  0000000000000018   I       7     3     8
    [ 5] .rela             RELA             0000000000008bc0  00008a10
         0000000000000600  0000000000000018           0     0     8
    [ 6] .shstrtab         STRTAB           0000000000000000  0000b500
         0000000000000037  0000000000000000           0     0     1
    [ 7] .symtab           SYMTAB           0000000000000000  00009010
         0000000000000210  0000000000000018           8    17     8
    [ 8] .strtab           STRTAB           0000000000000000  00009220
         00000000000000eb  0000000000000000           0     0     1

  Relocation section '.rela.data' at offset 0xaf00 contains 64 entries:
    Offset          Info           Type           Sym. Value    Sym. Name + Addend
  000000004800  000100000001 R_X86_64_64       0000000000000240 .text + 3f5b
  000000004808  000100000001 R_X86_64_64       0000000000000240 .text + 3f63
  000000004810  000100000001 R_X86_64_64       0000000000000240 .text + 3f79
  000000004818  000100000001 R_X86_64_64       0000000000000240 .text + 3f90
  000000004820  000100000001 R_X86_64_64       0000000000000240 .text + 3fa6
  ...

  Relocation section '.rela' at offset 0x8a10 contains 64 entries:
    Offset          Info           Type           Sym. Value    Sym. Name + Addend
  000000004800  000000000008 R_X86_64_RELATIVE                    419b
  000000004808  000000000008 R_X86_64_RELATIVE                    41a3
  000000004810  000000000008 R_X86_64_RELATIVE                    41b9
  000000004818  000000000008 R_X86_64_RELATIVE                    41d0
  000000004820  000000000008 R_X86_64_RELATIVE                    41e6
  000000004828  000000000008 R_X86_64_RELATIVE                    41ff
  ...

Note that GOT based relocations result in entries that *only* appear in the
dynamic .rela section and not in .rela.text or .rela.data. This means two
things if we intend to add support for GOT based relocations:
- we must check that a dynamic RELA section exists;
- we must filter out duplicates between .rela and .rela.xxx, to prevent
  emitting duplicate fixups into the PE/COFF .reloc section.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Reviewed-by: Liming Gao <liming.gao@intel.com>
2016-08-23 16:14:34 +02:00
Liming Gao
a61331e8b7 BaseTools GnuMakefile: Update GCC Flags to the specific one with BUILD_ prefix
To avoid the conflict with the default GCC flag name, BUILD_ prefix is added.

Cc: Giri P Mudusuru <giri.p.mudusuru@intel.com>
Cc: Yonghong Zhu <yonghong.zhu@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Liming Gao <liming.gao@intel.com>
Reviewed-by: Yonghong Zhu <yonghong.zhu@intel.com>
Reviewed-by: Giri P Mudusuru <giri.p.mudusuru@intel.com>
2016-08-23 10:25:04 +08:00
Liming Gao
00588512dc BaseTools GNU Makefile: Add the missing rules for cpp source file
Cc: Giri P Mudusuru <giri.p.mudusuru@intel.com>
Cc: Yonghong Zhu <yonghong.zhu@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Liming Gao <liming.gao@intel.com>
Reviewed-by: Yonghong Zhu <yonghong.zhu@intel.com>
Reviewed-by: Giri P Mudusuru <giri.p.mudusuru@intel.com>
2016-08-23 10:23:57 +08:00
Yonghong Zhu
759be99db5 BaseTools: update BinaryFiles.txt file to add Pkcs7Sign Tool
add Pkcs7Sign.exe and related pem file into BinaryFiles.txt for build
server to automatically build the binary win32 files.

Cc: Liming Gao <liming.gao@intel.com>
CC: Erik Bjorge <erik.c.bjorge@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Yonghong Zhu <yonghong.zhu@intel.com>
Reviewed-by: Erik Bjorge <erik.c.bjorge@intel.com>
2016-08-23 07:58:07 +08:00
Yonghong Zhu
a07901418a BaseTools: add capsule image header for auth FMP capsule file
in last commit 91ae29, it missed to add the
EFI_FIRMWARE_MANAGEMENT_CAPSULE_IMAGE_HEADER for the auth FMP capsule.

Cc: Liming Gao <liming.gao@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Yonghong Zhu <yonghong.zhu@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>
2016-08-23 07:57:10 +08:00
Yonghong Zhu
4977810b0f BaseTools/UserManuals: update with new report bug mail address
The .rtf files in BaseTools/UserManuals still tell users to Report bugs
to sourceforge mail address. Since we no longer use the sourceforge
mailing lists we should update it.

Cc: Liming Gao <liming.gao@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Yonghong Zhu <yonghong.zhu@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>
2016-08-23 07:55:07 +08:00
Ard Biesheuvel
669a7562cb BaseTools/GccBase.lds: don't copy RELA section to PE/COFF
The CLANG38 toolchain creates a PIE binary at link time. This is
necessary since the LTO code generation may otherwise result in
code that cannot execute correctly when loaded above 2 GB.

PIE executables contain a RELA section consisting of dynamic
relocation entries that are intended for consumption by the loader
at runtime. For this reason, it has the SHF_ALLOC attribute set by
default, and will be identified by GenFw as a section that needs to
be copied into the PE/COFF binary, resulting in waste of space since
the PE/COFF loader does not use this data at all.

So mark the RELA section as informational: this will prevent the
linker from setting the SHF_ALLOC attribute, causing GenFw to
ignore it.

DxeCore.efi before:

    Detected 'X64' type PE/COFF image consisting of 3 sections
    Section alignment:      0x40
    File alignment:         0x40
    Section '.text' @ 0x00000240
    File offset:            0x240
    Virtual size:           0x21000
    Raw size:               0x21000
    Section '.data' @ 0x00021240
    File offset:            0x21240
    Virtual size:           0x3640
    Raw size:               0x3640
    Section '.reloc' @ 0x00024880
    File offset:            0x24880
    Virtual size:           0x280
    Raw size:               0x280

DxeCore.efi after:

    Detected 'X64' type PE/COFF image consisting of 3 sections
    Section alignment:      0x40
    File alignment:         0x40
    Section '.text' @ 0x00000240
    File offset:            0x240
    Virtual size:           0x1f440
    Raw size:               0x1f440
    Section '.data' @ 0x0001f680
    File offset:            0x1f680
    Virtual size:           0x3640
    Raw size:               0x3640
    Section '.reloc' @ 0x00022cc0
    File offset:            0x22cc0
    Virtual size:           0x280
    Raw size:               0x280

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Reviewed-by: Liming Gao <liming.gao@intel.com>
2016-08-22 12:26:42 +02:00
Liming Gao
8866d337ea BaseTools PeCoffLib: Fix the issue to get RelocationsStripped from TE image
If PE image has no relocation section, and has not set RELOCS_STRIPPED,
after it is converted to TE image, GenFw will set its relocation section
VirtualAddress to non-zero address, and keep Size value as Zero. MdePkg
BasePeCoffLib applied this rule to get RelocationsStripped attribute. But,
it is missing in BaseTools BasePeCoffLib.

Cc: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Cc: Yonghong Zhu <yonghong.zhu@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Liming Gao <liming.gao@intel.com>
Reviewed-by: Yonghong Zhu <yonghong.zhu@intel.com>
Tested-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
2016-08-22 15:54:42 +08:00
Yonghong Zhu
35dc964bf1 BaseTools: Fix a bug use 'COMMON' as CodeBase in BuildOptions section
Current BaseTools query the BuildOptions not cover the case that use
'COMMON' as CodeBase, while DSC spec allow this usage. This Patch add
support for such 'common.DXE_RUNTIME_DRIVER' as the Scope2 in the query
Condition.

Cc: Liming Gao <liming.gao@intel.com>
Cc: Kurt Kennett <Kurt.Kennett@microsoft.com>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Yonghong Zhu <yonghong.zhu@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>
2016-08-19 15:39:36 +08:00
Yonghong Zhu
91ae2988c6 BaseTools: FMP capsule add the support to generate auth info
Current BaseTools cannot generate EFI_FIRMWARE_IMAGE_AUTHENTICATION
for FMP capsule. this patch fix it by FDF spec's update to add the
definition for CERTIFICATE_GUID and  MONOTONIC_COUNT. BaseTools call
the tool by CERTIFICATE_GUID to generate the certdata and fill the header
info.

Cc: Liming Gao <liming.gao@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Yonghong Zhu <yonghong.zhu@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>
2016-08-19 15:37:59 +08:00
Yonghong Zhu
9b98c41640 BaseTools: Rsa2048Sha256Sign add new option to support Monotonic count
the EFI_FIRMWARE_IMAGE_AUTHENTICATION struct require the AuthInfo which
is a signature across the image data and the Monotonic Count value, so we
add the new option to support Monotonic count.

Cc: Liming Gao <liming.gao@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Yonghong Zhu <yonghong.zhu@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>
2016-08-19 15:35:02 +08:00
Yonghong Zhu
cd1c960469 BaseTools: Add the PKCS7 tool
Provide the PKCS7 Tool to support the CertType - EFI_CERT_TYPE_PKCS7_GUID,
then user can use this tool to add EFI_FIRMWARE_IMAGE_AUTHENTICATION
for a binary.

Cc: Liming Gao <liming.gao@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Jiewen Yao <jiewen.yao@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>
2016-08-19 15:33:25 +08:00
Shi, Steven
6d732bbbc2 BaseTools-CLANG38: Add -O3 in DLINK2 flag
CLANG38 build fail after CC_FLAG is added in the link rule.
This failure is because the CLANG38 enable the LTO through LLVMgold.so
linker plugin, but the LLVMgold.so plugin cannot accept the clang -Oz
CC flag as build option. After CC_FLAG is added in the link rule,
the LLVMgold.so plugin reports linking error. LLVMgold.so only accept
-O0 ~ -O3, and you can see it in the LLVM gold plugin source code
in below:

http://llvm.org/svn/llvm-project/llvm/tags/RELEASE_380/final/tools/gold/
gold-plugin.cpp line173:

if (opt[1] < '0' || opt[1] > '3')
   message(LDPL_FATAL, "Optimization level must be between 0 and 3");

Add -O3 in the *_CLANG38_*_DLINK2_FLAGS to override the -Oz flag in
*_CLANG38_*_CC_FLAGS to pass LLVMgold.so linking.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Steven Shi <steven.shi@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>
2016-08-19 12:58:37 +08:00
Yonghong Zhu
00bcb5c27a BaseTools: check CONF_PATH env to get the configure files
Add CONF_PATH env check. First priority is user set the conf dir by
--conf option, then the CONF_PATH env, the last one is the standard
WORKSPACE(PACKAGE_PATH)/Conf.
Also print the conf path directory in the build log.

Cc: Liming Gao <liming.gao@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Yonghong Zhu <yonghong.zhu@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>
2016-08-19 10:54:52 +08:00
Leo Duran
adb6ac2563 BaseTools/GenFv: Account for rebase of FV section containing VTF file
Account for rebase of FV section containing VTF file on IA32/IA64.
This supports cases where the reset vector may not be set at 0xFFFFFFF0.

For example, FV section defined as:
[FV.FvSecPei]
  FvBaseAddress = $(FV_BOOT_BASE)
  FvForceRebase = TRUE

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Leo Duran <leo.duran@amd.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>
2016-08-14 21:20:51 +02:00
Ard Biesheuvel
d977ba4406 BaseTools RVCT: ignore various RVC diagnostics
This updates the RVCT CC flags so various diagnostics that trigger
warnings-as-errors are silenced. In particular, RVCT complains about
missing newlines at the end of source files, mixing of enums and int
values and return statements followed by a break, all of which occur
in the Tianocore codebase, but none of which are actual errors in the
code. So just silence them.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Reviewed-by: Liming Gao <liming.gao@intel.com>
2016-08-12 09:04:13 +02:00
Ard Biesheuvel
ff59570f41 BaseTools ARM AARCH64: drop redundant compiler arguments
The ARM and AARCH64 CC_FLAGS definitions include both GCC_ALL_CC_FLAGS
and GCC44_ALL_CC_FLAGS, resulting in many of the compiler arguments
being passed twice. Since the CLANG35 definitions do not refer to
GCC44_ALL_CC_FLAGS, drop the reference for GCCx as well.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Reviewed-by: Leif Lindholm <leif.lindholm@linaro.org>
Reviewed-by: Liming Gao <liming.gao@intel.com>
2016-08-12 09:02:20 +02:00
Ard Biesheuvel
6f8ecc41d7 BaseTools ARM AARCH64: pass CC flags to linker for XIP modules as well
Commit 478f50990a ("BaseTools GCC: add the compiler flags to the linker
command line") added the compiler flags to the linker command line,
which is required for LTO to function correctly, since it involves code
generation at link time.

This patch failed to update the build rules for XIP modules on AARCH64,
which not only requires the ordinary CC flags but also the XIP CC flags
to prevent the LTO backend to, e.g., emit code that does not adhere to
the strict alignment rules we impose for code that may execute with the
MMU off.

So update the XIP link rules as well. Since AARCH64 and ARM are not
supported by any toolchains in the GCCLD build rule family, drop the
reference to GCCLD while we're at it.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Reviewed-by: Leif Lindholm <leif.lindholm@linaro.org>
Reviewed-by: Liming Gao <liming.gao@intel.com>
2016-08-12 09:01:58 +02:00
Dandan Bi
753cf34e29 BaseTool/VfrCompile: Remove reset button opcode in CheckQuestionOpCode
"EFI_IFR_RESET_BUTTON_OP" is a statement, not a question,
so remove it from function CheckQuestionOpCode.

Cc: Liming Gao <liming.gao@intel.com>
Cc: Eric Dong <eric.dong@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Dandan Bi <dandan.bi@intel.com>
Reviewed-by: Eric Dong <eric.dong@intel.com>
2016-08-12 12:31:42 +08:00
Shi, Steven
6f756db5ea BaseTools-Conf:Introduce CLANG38 new toolchain for x86
This adds support for LLVM 3.8.x in LTO mode for IA32 and X64.
CLANG38 enable LLVM Link Time Optimization (LTO) and code size
optimization flag (-Oz) by default for aggressive code size
improvement. CLANG38 X64 code is small code model + PIE.

CLANG LTO needs PIE in link flags to generate PIE code correctly,
otherwise the PIE is not really enabled. (e.g. OvmfPkgX64 will
hang in 64bits SEC at high address because of small model code
displacement overflow).

Test pass platforms: OVMF (OvmfPkgIa32.dsc, OvmfPkgX64.dsc and
OvmfPkgIa32X64.dsc).
Test compiler and linker version: LLVM 3.8, GNU ld 2.26.

Example steps to use the CLANG38 tool chain to build OVMF platform:
1. Download and extract the llvm 3.8.0 Pre-Built Binaries from
http://www.llvm.org/releases/ (e.g. http://www.llvm.org/releases/
3.8.0/clang+llvm-3.8.0-x86_64-linux-gnu-ubuntu-16.04.tar.xz and
extract it as ~/clang38).
2. Copy LLVMgold.so from https://github.com/shijunjing/edk2/blob/
llvm/BaseTools/Bin/LLVMgold.so to above clang lib folder (e.g.
~/clang38/lib/LLVMgold.so)
3. Install new version linker with plugin support (e.g. ld 2.26 in
GNU Binutils 2.26 or Ubuntu16.04)
$ cd edk2
$ git checkout llvm
$ export CLANG38_BIN=path/to/your/clang38/
(e.g. export CLANG38_BIN=~/clang38/bin/)
$ source edksetup.sh
$ make -C BaseTools/Source/C
$ build -t CLANG38 -a X64 -p OvmfPkg/OvmfPkgX64.dsc -n 5 -b DEBUG
-DDEBUG_ON_SERIAL_PORT
$ cd edk2/Build/OvmfX64/DEBUG_CLANG38/FV
$ qemu-system-x86_64.exe -bios OVMF.fd -serial file:serial.log -m 4096
 -hda fat:.

If you want, you can build and install GNU Binutils 2.26 as below steps
in Ubuntu:
Download binutils-2.26 source code from http://ftp.gnu.org/gnu/binutils/
 and extract it to ~/binutils-2.26
$sudo apt-get install bison
$sudo apt-get install flex
Install other necessary binutils build tools if missing
$ mkdir build
$ cd build
$ ../binutils-2.26/configure --enable-gold --enable-plugins
--disable-werror --prefix=/usr
$ make -j 5
$ sudo make install

If you want, you can build LLVMgold.so as below steps
Download llvm-3.8.0 source code from http://www.llvm.org/releases/
3.8.0/llvm-3.8.0.src.tar.xz and extract it to ~/llvm-3.8.0.src
Download clang3.8.0 source code from http://www.llvm.org/releases/
3.8.0/cfe-3.8.0.src.tar.xz and extract it to ~/llvm-3.8.0.src/tools/clang
Refer http://clang.llvm.org/get_started.html to Install other necessary
clang build tools if missing
$ mkdir llvm38build
$ cd llvm38build
If your GNU Binutils 2.26 is in /home/jshi19/binutils-2.26,
$ cmake ../llvm-3.8.0.src -G "Unix Makefiles" -DCMAKE_BUILD_TYPE="Release"
-DLLVM_TARGETS_TO_BUILD="X86" -DCMAKE_VERBOSE_MAKEFILE=ON
-DCMAKE_CXX_COMPILER="/usr/bin/g++" -DCMAKE_C_COMPILER="/usr/bin/gcc"
-DLLVM_BINUTILS_INCDIR=/home/jshi19/binutils-2.26/include
$ make -j 5 LLVMgold The LLVMgold.so is in ~/llvm38build/lib/LLVMgold.so

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Steven Shi <steven.shi@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>
2016-08-10 12:56:34 +08:00
Shi, Steven
b5e006edb9 BaseTools-Conf:Remove short dash in ar flag for LLVM
Both binutils ar and LLVM ar support "cr", but LLVM ar doens't
support add "-" in the flags, and llvm-ar cannot accept "-cr".
So remove the short dash "-" to make llvm archives work.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Steven Shi <steven.shi@intel.com>
Reviewed-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
2016-08-10 12:56:27 +08:00
Ard Biesheuvel
0f73cca02b BaseTools ARM: impose strict alignment only for XIP modules
Given that we only support ARMv7 and up in Tianocore (due to the fact
that the PI spec mandates that the PEI services table pointer be stored
in the TPIDRURW register, which is not available on earlier CPUs), we can
assume that any code executing with the MMU on may perform unaligned
accesses (since the AArch32 bindings in the UEFI spec stipulate that
unaligned accesses should be allowed if supported by the CPU)

So relax the alignment restrictions to XIP modules only, i.e., BASE, SEC,
PEI_CORE and PEIM type modules, exactly like we do for AARCH64 already.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Reviewed-by: Liming Gao <liming.gao@intel.com>
2016-08-09 09:50:05 +02:00
Ard Biesheuvel
3cdbd7528b BaseTools CLANG35: add missing XIP flags for AARCH64
When building for AARCH64, code that may execute with the MMU off should
not perform unaligned accesses, which is why we set -mstrict-align for
BASE, SEC, PEI_CORE and PEIM modules when building with GCCx. However,
this setting is missing from CLANG35 so set it there as well.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Reviewed-by: Liming Gao <liming.gao@intel.com>
2016-08-09 09:49:57 +02:00
Hess Chen
9e730bd164 BaseTools/UPT: Fix a install issue
Fix a corner case issue of installing a module without
any files which causes installing UNI file failure

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Hess Chen <hesheng.chen@intel.com>
Reviewed-by: Yonghong Zhu <yonghong.zhu@intel.com>
2016-08-09 14:39:56 +08:00
Ard Biesheuvel
c9f297559b BaseTools X64: fold PLT relocations into simple relative references
For X64/GCC, we use position independent code with hidden visibility
to inform the compiler that symbol references are never resolved at
runtime, which removes the need for PLTs and GOTs. However, in some
cases, GCC has been reported to still emit PLT based relocations, which
we need to handle in the ELF to PE/COFF perform by GenFw.

Unlike GOT based relocations, which are non-trivial to handle since the
indirections in the code can not be fixed up easily (although relocation
types exist for X64 that annotate relocation targets as suitable for
relaxation), PLT relocations simply point to jump targets, and we can
relax such relocations by resolving them using the symbol directly rather
than via a PLT entry that does nothing more than tail call the function
we already know it is going to call (since all symbol references are
resolved in the same module).

So handle R_X86_64_PLT32 as a R_X86_64_PC32 relocation.

Suggested-by: Steven Shi <steven.shi@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Reviewed-by: Liming Gao <liming.gao@intel.com>
2016-08-08 08:26:41 +02:00
Dandan Bi
74bbe31b8d BaseTools/VfrCompile: Add two new option for VfrCompile
1.--autodefault option
   VfrCompile will generate default opcodes for questions if some
   default are missing.
2 --checkdefault option
   VfrCompile will check whether every question has no default or
   has all default. If not, will generate an error to let user know
   the question misses default.

Cc: Liming Gao <liming.gao@intel.com>
Cc: Eric Dong <eric.dong@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Dandan Bi <dandan.bi@intel.com>
Reviewed-by: Eric Dong <eric.dong@intel.com>
Reviewed-by: Yonghong Zhu <yonghong.zhu@intel.com>
2016-08-08 11:07:24 +08:00
Dandan Bi
bec3a18108 BaseTool/VfrCompile: Add missing question opcode
The function CheckQuestionOpCode is to check whether the opcode
is question opcode, but it misses two question opcodes:
'EFI_IFR_REF_OP' and 'EFI_IFR_RESET_BUTTON'. Now add them.

Cc: Liming Gao <liming.gao@intel.com>
Cc: Eric Dong <eric.dong@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Dandan Bi <dandan.bi@intel.com>
Reviewed-by: Eric Dong <eric.dong@intel.com>
Reviewed-by: Yonghong Zhu <yonghong.zhu@intel.com>
2016-08-08 11:04:46 +08:00
Yonghong Zhu
622b17582e BaseTools: Fix the bug when use FILE_GUID override the module in DSC
In last commit 2502b73, it doesn't cover the case that in the DSC file
use FILE_GUID to override the module.

Cc: Liming Gao <liming.gao@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Yonghong Zhu <yonghong.zhu@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>
2016-08-08 10:53:30 +08:00
Yonghong Zhu
c3915fa586 BaseTools: Allow string token identifier to use lower case letters
This patch is to align the code behavior with UNI spec that string token
identifier can use upper case and lower case letters.

Cc: Liming Gao <liming.gao@intel.com>
Cc: Felix <Felixp@ami.com>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Yonghong Zhu <yonghong.zhu@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>
2016-08-08 10:52:31 +08:00
Ard Biesheuvel
0667e98527 BaseTools GCC/ARM: add -fno-builtin to CC flags
Avoid build errors when including OpensslLib, which may throw
undefined reference errors for builtin functions if -fno-builtin
is not specified (and it is already set for IA32, X64 and AARCH64)
So set it for ARM as well.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Reviewed-by: Leif Lindholm <leif.lindholm@linaro.org>
Reviewed-by: Liming Gao <liming.gao@intel.com>
2016-08-05 16:32:36 +02:00
Ard Biesheuvel
478f50990a BaseTools GCC: add the compiler flags to the linker command line
Now that we invoke GCC as the linker for the GCC toolchain family,
we can pass the CC flags to the linker as well. This is only
required for LTO (which may involve code generation during the link
stage), but does not interfere with non-LTO builds.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Reviewed-by: Liming Gao <liming.gao@intel.com>
2016-08-03 17:41:59 +02:00
Ard Biesheuvel
f8d0b96629 BaseTools GCC5: disable warnings-as-errors for now
GCC5 runs in LTO mode, which means it may generate code from an
intermediate representation during the link stage, at which time
additional diagnostics are run that may emit warnings.

Some of these warnings seem to be spurious, e.g., the following
warning which is emitted when building OVMF for IA32 or ArmVirtQemu
for ARM (but not for X64 resp. AARCH64)

  .../MdeModulePkg/Library/UefiHiiLib/HiiLib.c:
                 In function 'HiiCreateGuidOpCode.constprop':
  .../MdeModulePkg/Library/UefiHiiLib/HiiLib.c:3228:10:
                 error: function may return address of local variable
                                            [-Werror=return-local-addr]
     return (UINT8 *)OpCodePointer;
            ^
  .../MdeModulePkg/Library/UefiHiiLib/HiiLib.c:3208:17: note: declared here
     EFI_IFR_GUID  OpCode;
                   ^
  lto1: all warnings being treated as errors
  lto-wrapper: fatal error: gcc returned 1 exit status

So before adding the contents of CC_FLAGS to the linker command line,
defuse the default '-Werror' by adding '-Wno-error' to DLINK2_FLAGS
for GCC5.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Reviewed-by: Liming Gao <liming.gao@intel.com>
2016-08-03 17:41:54 +02:00
Ard Biesheuvel
108c5b6018 BaseTools GCC: move -c compiler flag to build rules
In order to be able to share the compiler flags with the linker (which
is required for LTO since it involves the linker doing code generation
based on the LTO bytecode), move the -c GCC argument to the build rules,
and drop it from the GCC CC_FLAGS definitions in tools_def.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Reviewed-by: Liming Gao <liming.gao@intel.com>
2016-08-03 17:41:41 +02:00
Hess Chen
06eb35402e BaseTool/Upt: Avoid UNI file name conflict
When creating a UNI file if there is a name conflict, add an index
from 0 to the file name

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Hess Chen <hesheng.chen@intel.com>
Reviewed-by: Yonghong Zhu <yonghong.zhu@intel.com>
2016-08-03 10:52:08 +08:00
Hess Chen
0e025deac5 BaseTool/UPT: Not expand macro for UserExtension
All MACRO values defined by the DEFINE statements
n any section (except [Userextensions] sections
other than TianoCore."ExtraFiles) of the INF or
DEC file must be expanded before processing of the file.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Hess Chen <hesheng.chen@intel.com>
Reviewed-by: Yonghong Zhu <yonghong.zhu@intel.com>
2016-08-03 10:50:14 +08:00
Hess Chen
645a51287e BaseTool/Upt: Add support for Private
Support new syntax in package DEC file as below:
[Includes.Common.Private]
[Ppis.Common.Private]
[Guids.Common.Private]
[Protocols.Common.Private]

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Hess Chen <hesheng.chen@intel.com>
Reviewed-by: Yonghong Zhu <yonghong.zhu@intel.com>
2016-08-03 10:49:31 +08:00
Hess Chen
6cf9903481 BaseTool/UPT: Add Test Install
Add a new function to test if a DIST file list
one by one to see if they can meet the requirement
of Dependency.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Hess Chen <hesheng.chen@intel.com>
Reviewed-by: Yonghong Zhu <yonghong.zhu@intel.com>
2016-08-03 10:47:52 +08:00
Yonghong Zhu
e5cf919889 BaseTools: Keep the Pcd order in the Asbuilt Inf is same with Source
The original behavior is that in the Asbuilt inf Pcd's order is base on
the Pcd's offset. Now we change the order to keep it is same with the Pcd
order in the source inf file.

Cc: Liming Gao <liming.gao@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Yonghong Zhu <yonghong.zhu@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>
2016-08-02 19:39:01 +08:00
Ard Biesheuvel
b89919ee8f BaseTools AARCH64: override XIP module linker alignment to 32 bytes
Now that GenFw converts small code model ADRP instructions to ADR on
the fly, we can reduce the alignment for XIP modules, where large
alignment values may cause considerable waste of flash space due to
excessive padding. This limits the module size to 1 MB, but this is
not a concern in practice.

So set the XIP section alignment to 0x20 for DEBUG_GCC49, DEBUG_GCC5
and *_CLANG35, all of which use the small code model.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Reviewed-by: Leif Lindholm <leif.lindholm@linaro.org>
2016-08-02 10:58:25 +02:00
Ard Biesheuvel
026a82abf0 BaseTools/GenFw AARCH64: convert ADRP to ADR instructions if binary size allows it
The ADRP instruction in the AArch64 ISA requires the link time and load time
offsets of a binary to be equal modulo 4 KB. The reason is that this instruction
always produces a multiple of 4 KB, and relies on a subsequent ADD or LDR
instruction to set the offset into the page. The resulting symbol reference
only produces the correct value if the symbol in question resides at that
exact offset into the page, and so loading the binary at arbitrary offsets
is not possible.

Due to the various levels of padding when packing FVs into FVs into FDs, this
alignment is very costly for XIP code, and so we would like to relax this
alignment requirement if possible.

Given that symbols that are sufficiently close (within 1 MB) of the reference
can also be reached using an ADR instruction which does not suffer from this
alignment issue, let's replace ADRP instructions with ADR after linking if
the offset can be encoded in this instruction's immediate field. Note that
this only makes sense if the section alignment is < 4 KB. Otherwise,
replacing the ADRP has no benefit, considering that the subsequent ADD or
LDR instruction is retained, and that micro-architectures are more likely
to be optimized for ADRP/ADD pairs (i.e., via micro op fusing) than for
ADR/ADD pairs, which are non-typical.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Reviewed-by: Leif Lindholm <leif.lindholm@linaro.org>
2016-08-02 10:58:07 +02:00
Ard Biesheuvel
4a8466d4ba BaseTools GCC: introduce GCC5 toolchain to support GCC v5.x in LTO mode
This adds support for GCC 5.x in LTO mode for IA32, X64, ARM and
AARCH64. Due to the fact that the GCC project switched to a new
numbering scheme where the first digit is now incremented for every
major release, the new toolchain is simply called 'GCC5', and is
intended to support all GCC v5.x releases.

Since IA32 and X64 enable compiler optimizations (-Os) for both DEBUG
and RELEASE builds, LTO support is equally enabled for both targets.
On ARM and AARCH64, DEBUG builds are not optimized, and so the LTO
optimizations are only enabled for RELEASE.

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>
2016-08-02 10:54:11 +02:00
Ard Biesheuvel
7fd5d61980 BaseTools GCC: drop GNU notes section from EFI image
Recent versions of GNU ld automatically emit a .notes section into
the ELF binary containing a build id. Since this is an allocatable
section by default, it will be identified by GenFw as a section
that requires PE/COFF conversion, which may cause sections to be
moved around unexpectedly.

So retain the section, but tag it as INFO, which tells the linker
that it should not be accounted for in the binary's memory layout.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Acked-by: Jordan Justen <jordan.l.justen@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>
2016-08-02 10:54:11 +02:00
Ard Biesheuvel
a1b8baccc3 BaseTools GCC: use 'gcc' as the linker command for GCC44 and later
To accommodate upcoming GCCx toolchain versions that require 'gcc' to
be used as the linker in order to support LTO, switch GCC44 and later
(including CLANG35) to a new DLINK build rule that invokes 'gcc' as the
linker instead of 'ld'. Since gcc expects its command line arguments in
a different format, and expects arguments that it needs to pass to the
linker to be prefixed with '-Wl,', this involves changes to most of the
DLINK_FLAGS definitions in tools_def.template, as well as some changes to
module .INF files that set their own linker options.

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>
2016-08-02 08:40:43 +02:00
Ard Biesheuvel
befb3ba515 BaseTools UNIXGCC ELFGCC CYGGCC: clone GCC build rule family into GCCLD
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>
2016-08-02 08:40:31 +02:00
Ard Biesheuvel
1c63516075 BaseTools CLANG35: drop problematic use-movt and save-temps options
Some versions of Clang fail on every input file when using the
-save-temps options, and produces the following heplful error message:

  <unknown>:0: error: Undefined temporary symbol

Simply dropping the option for CLANG35 is the simplest way around this,
since the value of storing .i and .s files is dubious anyway.

Also, drop the arm-use-movt option, which does not appear to be
supported anymore by recent versions of clang.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Acked-by: Jordan Justen <jordan.l.justen@intel.com>
2016-08-02 08:21:46 +02:00
Hess Chen
92e9b9f9df BaseTools/Ecc: GUID checkpoint
Fix a bug of checking duplicate GUID

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Hess Chen <hesheng.chen@intel.com>
Reviewed-by: Yonghong Zhu <yonghong.zhu@intel.com>
2016-07-29 16:16:17 +08:00
Yonghong Zhu
25193a3339 BaseTools: Add build info for binary modules that only list in FDF file
If the binary module is list in the FDF file but not list in the DSC
file, current build report would not include these binary module's info
in the report "Module section". The patch fix this issue.

Cc: Liming Gao <liming.gao@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Yonghong Zhu <yonghong.zhu@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>
2016-07-29 16:14:12 +08:00
Liming Gao
402834d206 BaseTools: Correct ReadMe.txt file with CRLF line ending
Cc: Yonghong Zhu <yonghong.zhu@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Liming Gao <liming.gao@intel.com>
2016-07-29 09:18:11 +08:00
Yonghong Zhu
2502b73557 BaseTools: report error if source module INF is only list in FDF file
If source module INF is not listed in DSC, it will not be built. And it
is listed in FDF, GenFds will fail to find its build output. To reminder
user this issue early, build tool should report failure to user in early
phase.

Cc: Liming Gao <liming.gao@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Yonghong Zhu <yonghong.zhu@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>
2016-07-27 09:48:58 +08:00
Hao Wu
ae5cc3c303 BaseTools/toolsetup.bat: Fix bug caused by 'CONF_PATH' not defined
In batch script files, setting a variable in an 'if' block will only take
effect after the 'if' block.

This commit fixes the issue of using the variable 'CONF_PATH' right after
it is being set in an 'if' block.

Cc: Yonghong Zhu <yonghong.zhu@intel.com>
Cc: Liming Gao <liming.gao@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Hao Wu <hao.a.wu@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>
2016-07-26 14:10:56 +08:00
Marvin Haeuser
1f2cd65297 BaseTools/toolsetup: Do not set CONF_PATH when already set.
When CONF_PATH is already set, toolsetup.bat overwrites its value.
This is not the case on Linux platforms (BuildEnv) and
contra-productive when using the same Workspace across multiple
Operating Systems.
With this patch, a check is performed prior to setting the variable.
Furthermore, it will not be scanned for Conf directories in
PACKAGES_PATH directories to respect the user's choice.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Marvin Haeuser <Marvin.Haeuser@outlook.com>
Reviewed-by: Yonghong Zhu <yonghong.zhu@intel.com>
2016-07-26 10:42:09 +08:00
Thomas Palmer
03630a8148 Preserve hii section in GCC binaries
According to UEFI spec:
Once an image is loaded, LoadImage() installs
EFI_HII_PACKAGE_LIST_PROTOCOL on the handle if the image contains a
custom PE/COFF resource with the type 'HII'. The protocol's
interface pointer points to the HII package list which is contained
in the resource's data.

This is controlled by the UEFI_HII_RESOURCE_SECTION define in the INF
file.  When present the HII resource is linked with the module
binary.

Unfortunately GCC-built binaries have been stripping the .hii section
entirely.  See  "[edk2] HII gEfiHiiPackageListProtocolGuid problem
with  GCC48(VS2012x86 works)"
http://thread.gmane.org/gmane.comp.bios.tianocore.devel/13438
http://thread.gmane.org/gmane.comp.bios.tianocore.devel/14899

This patch tells the linker to preserve the .hii sections

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Thomas Palmer <thomas.palmer@hpe.com>
Acked-by: Laszlo Ersek <lersek@redhat.com>
Tested-by: Bruce Cran <bruce.cran@gmail.com>
Reviewed-by: Bruce Cran <bruce.cran@gmail.com>
Reviewed-by: Yonghong Zhu <yonghong.zhu@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>
2016-07-26 10:21:45 +08:00
Ard Biesheuvel
f49513f666 BaseTools/tools_def: switch GCC/X64 to the PIE small model
The ordinary small code model for x86_64 cannot be used in UEFI, since
it assumes the executable is loaded in the first 2 GB of memory.
Therefore, we use the large model instead, which can execute anywhere,
but uses absolute 64-bit wide quantities for all symbol references,
which is costly in terms of code size.

So switch to the PIE small code model, this uses 32-bit relative
references where possible, but does not make any assumptions about the
load address (i.e., all absolute symbol references are 64-bits wide).
Note that, due to the 'protected' visibility pragma introduced in an
earlier patch, there is no need for the EDK2 build system to deal with
GOT related ELF relocation types.

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>
Tested-by: Laszlo Ersek <lersek@redhat.com>
Tested-By: Liming Gao <liming.gao@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>
2016-07-21 13:32:09 +02:00
Ard Biesheuvel
247093f45d BaseTools/tools_def: enable Os optimization for GCC X64 builds
Now that we switched to the __builtin_ms_va_list VA_LIST type for
GCC/X64, we can trust the compiler to do the right thing even under
optimization, and so we can enable -Os optimization all the way back
to GCC44, and drop the -D define that prevents the use of the __builtin
VA_LIST types. Note that this requires the -maccumulate-outgoing-args
switch as well.

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>
Tested-by: Laszlo Ersek <lersek@redhat.com>
Tested-By: Liming Gao <liming.gao@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>
2016-07-21 13:32:09 +02:00
Laszlo Ersek
9c4dbdff1d BaseTools/tools_def.template: bump minimum required NASM versions
NASM had been unable to assemble segment register operations before the
following git commit:

  http://repo.or.cz/nasm.git/commitdiff/21d4ccc3c338

That commit was first released in NASM 2.10:

  http://repo.or.cz/nasm.git/commitdiff/ff62f33da0a2

This makes NASM 2.07 unusable for edk2 in general, because now we have a
lot of X64 assembly code that works with segment registers. For example
in:

  UefiCpuPkg/Library/CpuExceptionHandlerLib/X64/ExceptionHandlerAsm.nasm

Bump the minimum required version to 2.10, for use with GCC toolchains.

Furthermore, list NASM 2.12.01 as a requirement for all other toolchains.
In particular, for source level debugging, VS20xx requires CodeView 8
debug symbols, and only NASM 2.12.01 and later produce those. (Suggested
by Liming, Mike, and Andrew.)

Cc: Andrew Fish <afish@apple.com>
Cc: Liming Gao <liming.gao@intel.com>
Cc: Michael Kinney <michael.d.kinney@intel.com>
Cc: Yonghong Zhu <yonghong.zhu@intel.com>
Ref: http://thread.gmane.org/gmane.comp.bios.edk2.devel/14612
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Laszlo Ersek <lersek@redhat.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>
2016-07-18 19:22:58 +02:00
Yonghong Zhu
c9da41b235 BaseTools: Fix a bug for FixedPcd value generation in AutoGen file
If the library is listed in [Components] section for build only, its
used FixedPcd Value is not generated into AutoGen code. This patch
cover this case to generate the FixedPcd Value in AutoGen file.

Cc: Liming Gao <liming.gao@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Yonghong Zhu <yonghong.zhu@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>
2016-07-18 08:51:27 +08:00
Yonghong Zhu
0199377c0d BaseTools: Update the FV region name as upper letter
Since in the GenFds phase, the FV is generated as upper letter. This
patch update the FV region name as upper letter, it can fix the build
report generate failure on case sensitive file system.

Cc: Liming Gao <liming.gao@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Yonghong Zhu <yonghong.zhu@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>
Reviewed-by: Andrew Fish <afish@apple.com>
2016-07-14 09:10:45 +08:00
Laszlo Ersek
a78b518b6e BaseTools/GenFds: unbreak Region.PadBuffer
In its current form, Region.PadBuffer() fills every second byte with 0x20,
the default separator string of Python's string.join():

https://docs.python.org/2/library/string.html#string.join

This corrupts some firmware because (a) 0x20 never corresponds to any
ErasePolarity, (b) the PadData produced are actually longer than Size.

Cc: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Cc: Liming Gao <liming.gao@intel.com>
Cc: Yonghong Zhu <yonghong.zhu@intel.com>
Reported-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Fixes: bd907fb638
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Laszlo Ersek <lersek@redhat.com>
Tested-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Reviewed-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
2016-07-12 16:22:28 +02:00
Laszlo Ersek
bd907fb638 BaseTools/GenFds: speed up Region.PadBuffer()
The current implementation calls both pack() and Buffer.write() Size
times. The new implementation calls both of these methods only once; the
full data to write are constructed locally [1]. The range() function is
replaced by xrange() because the latter is supposed to be faster / lighter
weight [2].

On my laptop, I tested the change as follows: I pre-built the series at
[3] with

  build -a X64 -p OvmfPkg/OvmfPkgX64.dsc -t GCC48 -b DEBUG \
      -D HTTP_BOOT_ENABLE -D SECURE_BOOT_ENABLE

(The series at [3] is relevant because it increases the size of one of the
padded regions by 8.5 MB, slowing down the build quite a bit.)

With all source code already compiled, repeating the above command takes
approximately 45 seconds. With the patch applied, it goes down to 29
seconds.

[1] http://stackoverflow.com/questions/27384093/fastest-way-to-write-huge-data-in-file
[2] https://docs.python.org/2/library/functions.html?highlight=xrange#xrange
[3] http://thread.gmane.org/gmane.comp.bios.edk2.devel/14214

We can also measure the impact with a synthetic test:

> import timeit
>
> test_old = """
> import struct, string, StringIO
> Size = (8 * 1024 + 512) * 1024
> Buffer = StringIO.StringIO()
> PadData = 0xFF
> for i in range(0, Size):
>     Buffer.write(struct.pack('B', PadData))
> """
>
> test_new = """
> import struct, string, StringIO
> Size = (8 * 1024 + 512) * 1024
> Buffer = StringIO.StringIO()
> PadByte = struct.pack('B', 0xFF)
> PadData = string.join(PadByte for i in xrange(0, Size))
> Buffer.write(PadData)
> """
>
> print(timeit.repeat(stmt=test_old, number=1, repeat=3))
> print(timeit.repeat(stmt=test_new, number=1, repeat=3))

The output is

[8.231637001037598, 8.81188416481018, 8.948754072189331]
[0.5503702163696289, 0.5461571216583252, 0.578315019607544]

Cc: Yonghong Zhu <yonghong.zhu@intel.com>
Cc: Liming Gao <liming.gao@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Laszlo Ersek <lersek@redhat.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>
2016-07-12 13:19:27 +02:00
Laszlo Ersek
5588565f48 BaseTools/GenFds: factor out Region.PadBuffer() method
The same logic is used in five places; factor it out to a common method.

Cc: Yonghong Zhu <yonghong.zhu@intel.com>
Cc: Liming Gao <liming.gao@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Laszlo Ersek <lersek@redhat.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>
2016-07-12 13:19:10 +02:00
Star Zeng
d84577e573 BaseTools MemoryProfileSymbolGen.py: Handle 64bits rva from "nm -l xxx.dll"
Current MemoryProfileSymbolGen.py assumes the rva is 32bits,
the patch is to remove the restriction to match any lengths
of rva.

Cc: Jiewen Yao <jiewen.yao@intel.com>
Cc: Liming Gao <liming.gao@intel.com>
Cc: Yonghong Zhu <yonghong.zhu@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Star Zeng <star.zeng@intel.com>
Reviewed-by: Jiewen Yao <jiewen.yao@intel.com>
2016-07-05 17:25:38 +08:00
Yonghong Zhu
40b4e21dbc BaseTools: Add support for $(FAMILY) macro
Build spec mentions $(FAMILY) macro be used in DSC/FDF to specify the tool
chain family, like GCC, MSFT. This patch add the support for this macro.

Cc: Liming Gao <liming.gao@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Yonghong Zhu <yonghong.zhu@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>
2016-07-05 15:51:21 +08:00
Star Zeng
1d9869f9e9 BaseTools Scripts: Add MemoryProfileSymbolGen.py
This tool depends on DIA2Dump.exe (VS) or nm (gcc) to parse debug entry.

Usage: MemoryProfileSymbolGen.py [--version] [-h] [--help] [-i inputfile
[-o outputfile]]

Copyright (c) 2016, Intel Corporation. All rights reserved.

Options:
  --version             show program's version number and exit
  -h, --help            show this help message and exit
  -i INPUTFILENAME, --inputfile=INPUTFILENAME
                        The input memory profile info file output from
                        MemoryProfileInfo application in MdeModulePkg
  -o OUTPUTFILENAME, --outputfile=OUTPUTFILENAME
                        The output memory profile info file with symbol,
                        MemoryProfileInfoSymbol.txt will be used if it is not

Cc: Jiewen Yao <jiewen.yao@intel.com>
Cc: Liming Gao <liming.gao@intel.com>
Cc: Yonghong Zhu <yonghong.zhu@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Star Zeng <star.zeng@intel.com>
Reviewed-by: Jiewen Yao <jiewen.yao@intel.com>
2016-07-01 09:39:59 +08:00
Jordan Justen
ad00b0452e BaseTools ConvertMasmToNasm: Don't try to reconvert .nasm files
We now check to see if the destination .nasm file already exists. If
it does, then we don't try to convert the .asm to .nasm.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Jordan Justen <jordan.l.justen@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>
2016-06-28 13:16:53 -07:00
Jordan Justen
5de927b54b BaseTools ConvertMasmToNasm: Support preserving assembly files
In the first stage of conversion, we need to preserve the AT&T style
.s assembly files for use with OS X toolchains.

This change allows '--keep=s' to be used with the script to preserve
these files.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Jordan Justen <jordan.l.justen@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>
2016-06-28 13:16:46 -07:00
Jordan Justen
90694f1218 BaseTools ConvertMasmToNasm: put filter/map result in tuple for python3
Python 3's filter and map functions returns an iterator which you
can't call len() on. Since we'll want to use len() later, we put the
filter results into a tuple.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Jordan Justen <jordan.l.justen@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>
2016-06-28 13:16:39 -07:00
Jordan Justen
c8102434ba BaseTools ConvertMasmToNasm: Support ASM_PFX in .asm files
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Jordan Justen <jordan.l.justen@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>
2016-06-28 13:16:19 -07:00
Yonghong Zhu
8832c79d64 BaseTools: ignore the binary LIB file in gen_libs
For single module build, it would call gen_libs target. then if it use
binary LIB file, it cause build failure.

Cc: Liming Gao <liming.gao@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Yonghong Zhu <yonghong.zhu@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>
2016-06-15 08:56:17 +08:00
Yonghong Zhu
9ccb26bc99 BaseTools: fix the bug to build a compressed ROM image via .INF file
Fix the bug that always use the '-e' as OPTROM_FLAGS even the .INF file
has statement 'PCI_COMPRESS  = TRUE'.

Cc: Liming Gao <liming.gao@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Yonghong Zhu <yonghong.zhu@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>
2016-06-04 21:22:00 +08:00
Yonghong Zhu
570ae1ebc8 BaseTools: Add error handling for current_dir is not exist
Add the error handling to cover the case that current_dir is not exist.

Cc: Liming Gao <liming.gao@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Yonghong Zhu <yonghong.zhu@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>
2016-06-04 21:20:23 +08:00
Thomas Palmer
f285d0213b BaseTools: Bash script fix for PosixLike/LzmaF86Compress
Add missing "done" token needed to complete the for loop. Tested in
Ubuntu 14.04

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Thomas Palmer <thomas.palmer@hpe.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>
2016-06-02 13:10:17 +08:00
Michael Zimmermann
6608330d76 BaseTools: Fix bad macro expansion during tools_def.txt parsing
this is something I missed in 8ac46e4

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Michael Zimmermann <sigmaepsilon92@gmail.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>
2016-05-27 12:31:00 +08:00
Michael Zimmermann
8ac46e4ef7 BaseTools: add '!include' support to tools_def.txt parser
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Michael Zimmermann <sigmaepsilon92@gmail.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>
2016-05-26 11:07:48 +08:00
Michael Zimmermann
8b14b35b19 BaseTools: Fix comments about return value of 'LoadToolDefFile'
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Michael Zimmermann <sigmaepsilon92@gmail.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>
2016-05-26 11:07:45 +08:00
Liming Gao
483b01d2da BaseTools: Fix GenFds issue to wrongly get file without postfix.
GenFds GenSection will search the output file based on the file extension.
If the output file has no extension, it should be skip.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Liming Gao <liming.gao@intel.com>
Reviewed-by: Andrew Fish <afish@apple.com>
2016-05-26 10:58:30 +08:00
Yonghong Zhu
e4979beee9 BaseTools/GenFds: enhance to get TOOL_CHAIN_TAG and TARGET value
when user don't set TOOL_CHAIN_TAG and TARGET by –D Flag, then GenFds
would report failure for format:
FILE DATA = $(OUTPUT_DIRECTORY)/$(TARGET)_$(TOOL_CHAIN_TAG)/testfile
so this patch enhance to get the TOOL_CHAIN_TAG and TARGET value by
following priority (high to low): 1. the Macro value set by -D Flag;
2. Get the value by the -t/-b option. 3. get the value from target.txt
file. Besides, this patch also remove the error checking for missing
-t/-b option.

Cc: Liming Gao <liming.gao@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Yonghong Zhu <yonghong.zhu@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>
2016-05-25 13:43:54 +08:00
Zhu, Yonghong
f6190a01c1 BaseTools: Add error condition for the path in PACKAGES_PATH env
This patch adds two error conditions:
1) if one path in PACKAGES_PATH doesn't exist.
2) if the space exists in the PACKAGES_PATH.

In V2, highlight one path in PACKAGES_PATH env doesn't exist.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Yonghong Zhu <yonghong.zhu@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>
Reviewed by: Andrew Fish <afish@apple.com>
2016-05-23 17:05:48 +08:00
Zenith432
d3bb711834 BaseTools: Eliminate two shift-negative-value in FvLib.c
clang 3.8 flags -Wshift-negative-value warning, which turns fatal due to
use of -Werror.

Fixes: https://github.com/tianocore/edk2/issues/49

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Zenith432 <zenith432@users.sourceforge.net>
Reviewed-by: Liming Gao <liming.gao@intel.com>
2016-05-18 09:50:44 +08:00
Yonghong Zhu
c28d2e1047 BaseTools: support private package definition
EDKII build spec and DEC spec updated to support private package
definition.
If GUID, Protocol or PPI is listed in a DEC file, where the  Private
modifier is used in the section tag ([Guids.common.Private] for example),
only modules within the package are permitted to use the GUID, Protocol
or PPI. If a module or library instance outside of the package attempts
to use the item, the build must fail with an appropriate error message.

Cc: Liming Gao <liming.gao@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Yonghong Zhu <yonghong.zhu@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>
2016-05-18 08:59:30 +08:00
Samer El-Haj-Mahmoud
7b1fe7acdc BaseTools: Add HII definitions from UEFI 2.6
Add HII definitions from UEFI 2.6 for HII Image Variability and PNG
Blocks

Cc: Yonghong Zhu <yonghong.zhu@intel.com>
Cc: Liming Gao <liming.gao@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Samer El-Haj-Mahmoud <elhaj@hpe.com>
Reviewed-by: Dandan Bi <dandan.bi@intel.com>
Reviewed-by: Yonghong Zhu <yonghong.zhu@intel.com>
2016-05-16 15:47:21 +08:00
Yonghong Zhu
849e54aa64 BaseTools/GenFw: enhance to use Magic Field to identify the image
Original use the File Header Machine Field to identify
EFI_IMAGE_OPTIONAL_HEADER32 or EFI_IMAGE_OPTIONAL_HEADER64, it cannot
correctly handle EBC arch PE32 image.

Cc: Liming Gao <liming.gao@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Yonghong Zhu <yonghong.zhu@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>
2016-05-16 09:06:05 +08:00
Yonghong Zhu
4ce415e55d BaseTools/GenFds: enhance INF built arch filter
The bug is use FILE_GUID override to build the same module more than
once, GenFds report warning "xxx NOT found in DSC file; Is it really
a binary module?". The root cause is the module path with FILE_GUID
overridden has the file name FILE_GUIDmodule.inf, then
PlatformDataBase.Modules use FILE_GUIDmodule.inf as key which cause
__GetPlatformArchList__ return empty.

Cc: Liming Gao <liming.gao@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Yonghong Zhu <yonghong.zhu@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>
2016-05-16 09:03:41 +08:00
Yonghong Zhu
518aebe2f7 BaseTools: Fix bug to not mix comment into Asbuilt inf Depex section
in the generated Asbuilt inf would include the driver's complete
dependency expression, and it would be wrote as comment format. Original
bug is mix the depex expression with real comment in the depex section.
this patch is ignore the real comment, and list the depex expression.

Cc: Liming Gao <liming.gao@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Yonghong Zhu <yonghong.zhu@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>
2016-05-16 08:57:51 +08:00
Yonghong Zhu
321151fedb BaseTools: Fix bug in GenFds to handle FV image alignment
Cover the case that .fv file in the [Binaries] section.

Cc: Liming Gao <liming.gao@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Yonghong Zhu <yonghong.zhu@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>
2016-05-11 12:25:44 +08:00
Yonghong Zhu
ad319b9307 BaseTools: fix a bug for uni file \x####\ format handling
It should start from the last '\x' position + 1 to find next '\x'
character.

Cc: Liming Gao <liming.gao@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Yonghong Zhu <yonghong.zhu@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>
2016-05-11 10:09:08 +08:00
Yonghong Zhu
314e2fb175 BaseTools: Support \x####\ in UNI files to specify non-ascii characters
UNI spec updated to allow using \x####\ to specify non-ascii characters,
# is a hex digit.

Cc: Liming Gao <liming.gao@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Yonghong Zhu <yonghong.zhu@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>
2016-05-06 10:06:58 +08:00
Thomas Palmer
cdd1b5e548 BaseTools/Build: Better DSC arch filtering
Description:
When building for any specific architecture, the build script today is loading
DSC sections for other architectures not in the build. The build process should
disregard DSC sections that are not relevant to the build.

My previous patch only fixed issue for one section type (Components). This
patch will handle all section types by updating the MetaFileParser class, which
now takes a Arch argument and will filter the DSC table results as they are
returned from the database.  The database still contains all information from
DSCs for when builds support multiple arch's

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Thomas Palmer <thomas.palmer@hpe.com>
Reviewed-by: Yonghong Zhu <yonghong.zhu@intel.com>
2016-04-29 14:53:27 +08:00
Yonghong Zhu
35217a337c BaseTools: fix the bug for FMP to support use Macro as path description
Fix the bug for FMP image to support to use Macro as path description,
eg: FILE DATA = $(OUTPUT_DIRECTORY)/$(TARGET)_$(TOOL_CHAIN_TAG)/test.efi

Cc: Liming Gao <liming.gao@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Yonghong Zhu <yonghong.zhu@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>
2016-04-29 14:51:06 +08:00
Yonghong Zhu
481252bbc9 BaseTools: Fix the bug for .aml to use ASL binary type in Asbuilt inf
Per build spec, the .aml file should use ASL binary type in the Asbuilt
inf file. the original bug is .aml file may use BIN as binary type when
the module type is not BASE or USER_DEFINED. This patch 1) fix this bug.
2) fix some indent coding style issue.

Cc: Liming Gao <liming.gao@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Yonghong Zhu <yonghong.zhu@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>
2016-04-27 09:39:53 +08:00
Yonghong Zhu
df81077f77 BaseTools: Update FMP Capsule support to follow FDF spec
Current the FMP Capsule feature is supported, but its format has a little
different with FDF spec. so this patch 1) Align the FMP Capsule with FDF
spec. 2) fix some style issue, eg: Tab. 3) Add a SectionParser function to
check the section header info since this method is used in 7 places.

Cc: Liming Gao <liming.gao@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Yonghong Zhu <yonghong.zhu@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>
2016-04-27 09:39:15 +08:00
Hess Chen
4a21fb3b67 BaseTools/UPT: UPT to Support UTF-8
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Hess Chen <hesheng.chen@intel.com>
Reviewed-by: Yonghong Zhu <yonghong.zhu@intel.com>
2016-04-26 12:02:02 +08:00
Hess Chen
b739e14d7f BaseTools/ECC: Remove UNI checkpoint from ECC
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Hess Chen <hesheng.chen@intel.com>
Reviewed-by: Yonghong Zhu <yonghong.zhu@intel.com>
2016-04-26 12:01:07 +08:00
Hess Chen
f8895c2ad4 Update ECC to support more doxygen keywords
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Hess Chen <hesheng.chen@intel.com>
Reviewed-by: Yonghong Zhu <yonghong.zhu@intel.com>
2016-04-26 11:20:59 +08:00
Yonghong Zhu
6b17c11b6f BaseTools: add the support for --pcd feature to patch the binary efi
the original --pcd feature can override the Pcd value when build the
source driver, while it missed the binary driver. this patch add the
support to patch the binary efi for --pcd feature.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Yonghong Zhu <yonghong.zhu@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>
2016-04-20 09:32:52 +08:00
Yonghong Zhu
2a29017e3e BaseTools: Add mixed PCD support feature
Problem statement:
The current build system requires that a PCD must use the same access
method for all modules. A Binary Module may use a different PCD access
method than: 1.A source tree build it is integrated into. 2.Other Binary
Modules in platform build that use the same PCD.

Solution:
1. Source build:
No change. PCDs must use the same access method for building all Source
Modules.
2. Mixed Source & Binary Builds or Binary Only Builds:
1) Source Modules - No changes
2) Module that is interpreted as a Binary Module
a.DSC file may optionally override default value of PatchableInModule
PCDs in scope of Binary Module.
b.DSC file must declare DynamicEx PCD subtype for all DynamicEx PCDs
from Binary Modules.
c.FDF file must list Binary Module INF

Build update:
1. PCDs in a binary module are permitted to use the PatchableInModule
or DynamicEx access methods (the Binary INF clearly identifies the PCD
access method for each PCD). The build must support binary modules that
use the same or different PCD access method than the Source INFs or
other Binary INFs.
2. Build report list PCDs that have mixed PCD access methods.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Yonghong Zhu <yonghong.zhu@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>
2016-04-20 09:24:46 +08:00
Yonghong Zhu
61ee1dff16 BaseTools: fix a bug for PEI VPD Pcd collection
When a PEI phase VPD PCD only list in the DSC IA32 arch, then build X64
arch image, it missed to collect this PEI VPD pcd into VPD Pcd map file.

Cc: Liming Gao <liming.gao@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Yonghong Zhu <yonghong.zhu@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>
2016-04-19 18:40:37 +08:00
Yonghong Zhu
e642ceb8a5 BaseTools/GenFds: remove the old logic since ActivePlatform is abs. path
We can support the DSC file out of workspace. this old logic first make
the absolute path to relative path and strips the leading slash off,
then append it to workspace. it cause GenFds failure on Linux when the
DSC file is out of workspace. Since we make sure the ActivePlatform is
abs. path, so we don't need this old logic to change the abs. path to
relative.

Cc: Liming Gao <liming.gao@intel.com>
Cc: Marvin Haeuser <marvin.haeuser@outlook.com>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Yonghong Zhu <yonghong.zhu@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>
2016-04-19 18:35:42 +08:00
Yonghong Zhu
d429fcd0d2 BaseTools: enhance error handling for DSC file
Add logic for DSC file validation for Prebuild init. Add logic to detect
error for DSC parser when '{' is missing.

Cc: Liming Gao <liming.gao@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Yonghong Zhu <yonghong.zhu@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>
2016-04-19 18:32:35 +08:00
Thomas Palmer
7717798408 BaseTools/Build: Consider only build-specified architectures
When building for any specific architecture, the build script today
is loading DSC sections for other architectures not in the build.
The build process should disregard DSC sections that are not
relevant to the build.

This fixes scenario whereby a build occurs in a source tree that was
been cleaned of non-essential directories.  For instance, X64 builds
do not require the ArmPkg directory to build a firmware image.  This
condition (build break when ArmPkg is absent) occurs when included
DSCs have sections for multiple architectures.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Thomas Palmer <thomas.palmer@hpe.com>
Reviewed-by: Yonghong Zhu <yonghong.zhu@intel.com>
2016-04-19 10:30:54 +08:00
Marvin.Haeuser@outlook.com
7a5f1426c5 BaseTools: Fix PLATFORM_DIR variable value.
In commit 017fb1cd4c, the PLATFORM_DIR
macro has been updated to resolve to the correct path. However, it is
incorrectly accessed via curved rather than curly braces by GenMake.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Marvin Haeuser <Marvin.Haeuser@outlook.com>
Reviewed-by: Yonghong Zhu <yonghong.zhu@intel.com>
2016-04-15 10:33:24 +08:00
Yonghong Zhu
670bf6a722 BaseTools/VolInfo: Update to handle PE image with .code section only
rebase the image which only has .code section, but no other section, the
tool return error. this patch fix this bug to support it.

Cc: Liming Gao <liming.gao@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Yonghong Zhu <yonghong.zhu@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>
2016-04-15 08:43:49 +08:00
Yonghong Zhu
3c4db2dfe2 BaseTools/GenFw: Update to handle PE image with .code section only
current GenFw rebase the image which only has .code section, but no other
section, the tool return error. this patch fix this bug to support it.

Cc: Liming Gao <liming.gao@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Yonghong Zhu <yonghong.zhu@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>
2016-04-15 08:43:12 +08:00
Yonghong Zhu
67a69059f7 BaseTools: Fix the bug to correctly handle the [BuildOptions]
the last fix call os.path.normpath() function, which removes the
trailing slash character, it cause NASM failure for ResetVector
driver.

Cc: Liming Gao <liming.gao@intel.com>
Cc: Laszlo Ersek <lersek@redhat.com>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Yonghong Zhu <yonghong.zhu@intel.com>
Tested-by: Laszlo Ersek <lersek@redhat.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>
2016-04-15 08:41:21 +08:00
Yonghong Zhu
2b1c08acfc BaseTools: fix the bug for [BuildOptions] of multiple workspace support
when enable Multiple workspace and there have other option(eg: -I) before
$(WORKSPACE), handleWsMacro cannot return correct which cause the
ArmVirtPkg build failure.
example:
[BuildOptions]
  *_*_AARCH64_PLATFORM_FLAGS == -I$(WORKSPACE)/ArmVirtPkg/Include

Cc: Liming Gao <liming.gao@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Yonghong Zhu <yonghong.zhu@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>
2016-04-14 12:58:11 +08:00
Yonghong Zhu
017fb1cd4c BaseTools: fix PLATFORM_DIR variable value for multiple workspace
when enable the multiple workspace, the PLATFORM_DIR still is
$(WORKSPACE)\AnyPkg, even though it is in a PACKAGES_PATH folder. this
patch fix this issue to use the real path.

Cc: Liming Gao <liming.gao@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Yonghong Zhu <yonghong.zhu@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>
2016-04-14 12:57:19 +08:00
Leif Lindholm
3f7f287178 BaseTools: use unsigned chars on ARM architectures
By default, the ARM architectures have unsigned chars, whereas the other
architectures supported by EDK2 by default have signed chars.
However, EDK2 uses -funsigned-chars on those architectures to change the
default behaviour.

Unfortunately, the ARM architectures explicitly break their default
behaviour by specifying -fsigned-chars (I presume in a pre-emptive
attempt at avoiding incompatibility).

Since this situation is already confusing enough, switch the ARM
architectures to also specify -funsigned-chars explicitly rather than
just dropping the current parameter.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Leif Lindholm <leif.lindholm@linaro.org>
Reviewed-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Reviewed-by: Liming Gao <liming.gao@intel.com>
2016-04-12 13:19:38 +08:00
Yonghong Zhu
eca5be7a7d BaseTools: generate hash value in build report for each output EFI image
Build report add new report type 'HASH' to include the hash value for
each output EFI image.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Yonghong Zhu <yonghong.zhu@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>
2016-04-12 13:16:06 +08:00
Yonghong Zhu
9947f5769f BaseTools/VolInfo: generate HASH value for each PE image
VolInfo Tool add new option --hash to use openssl to generate hash value
for each PE image. If the image base address is not zero, we will rebase
its base address to zero before generate hash value.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Yonghong Zhu <yonghong.zhu@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>
2016-04-12 13:14:21 +08:00
Cinnamon Shia
716132efb1 BaseTools: Remove /Oi from Visual Studio tool chains.
Remove /Oi from Visual Studio tool chains. because of the following reasons:
1. Intrinsic is Compiler-dependent.
2. Adding /Oi (Generate Intrinsic Functions) doesn't promise 100% replacing
   the function call with inline functions.
   /Oi is only a request, but doesn't force, the compilers to use the intrinsic.
   The visual studio optimizer can still use the library version.
3. Since EDK2 doesn't include Visual Studio header files, intrinsic function
   should not be used.

Built Nt32Pkg, OvmfPkg, ShellPkg, MdeModulePkg and CryptoPkg successfully.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Cinnamon Shia <cinnamon.shia@hpe.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>
Reviewed-by: Qin Long <qin.long@intel.com>
2016-04-08 11:23:27 +08:00
Yonghong Zhu
f0dc69e61b BaseTools: Add support to merge Prebuild and Postbuild into build Process
This feature is enhance build tool to incorporate execution of prebuild
and postbuild.

1.Prebuild script
a.DEFINE PREBUILD in DSC [Defines] section
b.Build command -D PREBUILD to override the one in DSC [Defines] section
1)If PREBUILD is a file, then this file will be used as prebuild script.
2)If PREBUILD is empty, then prebuild script will be disabled.
3)If PREBUILD is not defined in [Defines] section and not passed in on
command line, then prebuild script is also disabled.

2.Prebuild option
a.All options of build tool
b.TARGET, ARCH and TOOL_CHAIN_TAG value, Those value will be from
target.txt file if they are not in build command line.
c.Additional options following prebuild definition. Quotes are needed
when these additional options are present.
d.Quotes would also be required if the path to the prebuild command
contains space or special characters.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Yonghong Zhu <yonghong.zhu@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>
2016-04-07 13:13:22 +08:00
Yonghong Zhu
d7cd335681 BaseTools: Enhance --Pcd which override by build option
This patch 1) enhance the help info for --pcd to use " but not '.
2) Add the condition statements for build option Pcd type check.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Yonghong Zhu <yonghong.zhu@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>
2016-04-07 13:12:22 +08:00
Yonghong Zhu
213ae07750 BaseTools: cache the defined Guid tool to improve the performance
Current GenFds Tool class GuidSection() is parsing the tools_def.txt for
every GUID'ed section that has a GUID defined tool, it cause a bad
performance. so this patch cache the defined Guid tool to improve the
performance.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Yonghong Zhu <yonghong.zhu@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>
2016-04-06 13:40:14 +08:00
Yonghong Zhu
cfaaf99bdd BaseTools/GenFds: Fix the bug for wrong alignment generate for RAW file
When do the multiple raw file support feature, it cause the regression
that the raw file section alignment value was wrongly overridden by the
single raw file. this patch: 1) fix the wrong overridden bug. 2) remove
the duplicate code for combine multiple raw file into one.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Yonghong Zhu <yonghong.zhu@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>
2016-04-05 13:24:04 +08:00
Yonghong Zhu
c8d07c5eeb BaseTools: Add two new sections for PCD in the build report
Build Spec updated to add two new sections for PCD in the build report.
1.Conditional directives section:If the DSC or FDF file contains
conditional directive statements.
2.Unused PCDs section: If the DSC or FDF file define values for PCDs that
are not used by any module and are not used in conditional directive
statements.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Yonghong Zhu <yonghong.zhu@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>
2016-03-29 15:21:46 +08:00
Yonghong Zhu
4fa7b3301e BaseTools: Remove the unnecessary check for RAW File
Because the __VerifyFile function already checked whether the file is
valid.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Yonghong Zhu <yonghong.zhu@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>
2016-03-28 12:27:50 +08:00
Yonghong Zhu
877c0a93be BaseTools: generate alignment when the FV content come from the filesystem
when the FV contents come from the filesystem instead of from a named FDF
section, the build tool missed to generate alignment for this FV. The fix
is get the alignment value from FV header and use this value to generate
alignment.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Yonghong Zhu <yonghong.zhu@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>
2016-03-27 15:12:50 +08:00
Yonghong Zhu
860992ed70 BaseTools: Extend the RAW format to support multiple binary files
Current FDF spec updated to support multiple binary files for RAW File
in the [FV] and [Capsule] section. For the multiple normal files, it may
have the optional FfsAlignment.
Example:
FILE RAW = 197DB236-F856-4924-91F8-C1F12FB875F3 {
 Align=16 $(PLATFORM_PACKAGE)/Binaries/File1.pdb
 Align=16 $(PLATFORM_PACKAGE)/Binaries/File2.pdb
 Align=16 $(PLATFORM_PACKAGE)/Binaries/File3.pdb
}

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Yonghong Zhu <yonghong.zhu@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>
2016-03-27 15:11:52 +08:00
Ard Biesheuvel
f37d891c1b BaseTools AARCH64: move DEBUG GCC49 to the small code model
When building AARCH64 platforms that include a Shell binary built from
source, we run into trouble when using the tiny code model for DEBUG
builds. The reason is that the Shell binary built in DEBUG mode exceeds
the 1 MB range of the ADR instruction, so anything that gets pulled into
the final link of the Shell binary either needs to be built with the small
or large model, or needs to be sorted in some way to put the ADR references
close to their targets.

Since code size is not a big concern for DEBUG builds anyway, let's move
to the small code model for all modules when using DEBUG GCC49. This way,
there is no need for workarounds that are specific to UEFI_APPLICATION
modules in general, or the Shell application in particular.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Reviewed-by: Leif Lindholm <leif.lindholm@linaro.org>
2016-03-25 12:37:47 +01:00
Ard Biesheuvel
20d00edf21 BaseTools/GCC: set -Wno-unused-but-set-variables only on RELEASE builds
This aligns the GCC definitions for 4.6 and up to align with the ARM and
AARCH64 definitions, which is to ignore unused but set variables only on
RELEASE builds. This allows us to find instances of unused variables that
are left behind after refactoring. It also allows us to find bad new code,
which, due to the EDK2 coding style which disallows initialized automatic
variables, may contain such variables without having been noticed by other
toolchains.

(Slightly edited) observation from Jordan Justen
<jordan.l.justen@intel.com>: RELEASE builds must keep the flag because
debug code (such as assertions) may collapse to nothing -- e.g. if a
platform defines MDEPKG_NDEBUG for RELEASE -- and therefore trigger the
warning.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Reviewed-by: Liming Gao <liming.gao@intel.com>
Reviewed-by: Laszlo Ersek <lersek@redhat.com>
Cc: Yonghong Zhu <yonghong.zhu@intel.com>
Reviewed-by: Jordan Justen <jordan.l.justen@intel.com>
Reviewed-by: Jeff Fan <jeff.fan@intel.com>
[lersek@redhat.com: incorporate commit message update from Jordan]
Signed-off-by: Laszlo Ersek <lersek@redhat.com>
2016-03-25 10:53:02 +01:00
Peter Kirmeier
4480414642 BaseTools: Updated BuildNotes URLs
Updated URLs (git repository and step-by-step instructions)

Cc: Yonghong Zhu <yonghong.zhu@intel.com>
Cc: Liming Gao <liming.gao@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Peter Kirmeier <topeterk@freenet.de>
Reviewed-by: Yonghong Zhu <yonghong.zhu@intel.com>
2016-03-25 09:46:44 +08:00
Yonghong Zhu
3570e33248 BaseTools: not include the undefined macro in response file
In last Nmake patch, when we generate the response file, we would replace
all the Macros in the make file. Once there have undefined macro used,
the tool direct report error. In this patch, we use following solution to
resolve the failure.
1. Add all the defined macros into AutoGenObject macro dict
2. For the undefined macros which used in the Make file, when we generate
the response file, we not include this macro, let make phase to handle.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Yonghong Zhu <yonghong.zhu@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>
2016-03-23 17:36:09 +08:00
Yonghong Zhu
725cdb8fbf BaseTools: Fix nmake failure due to command-line length limitation
NMAKE is limited to command-line length of 4096 characters. Due to the
large number of /I directives specified on command line (one per include
directory), the path length of WORKSPACE is multiplied by the number of
/I directives and can exceed the limit.
This patch:
1. Add new build option -l, --cmd-len to set the maximum command line
length, default value is 4096.
2. Generate the response file only if the command line length exceed its
maximum characters (default is 4096) when build the module. Cover
PP_FLAGS, CC_FLAGS, VFRPP_FLAGS, APP_FLAGS, ASLPP_FLAGS, ASLCC_FLAGS and
ASM_FLAGS.
3. The content of the response file is combine from the FLAGS option and
INC option.
4. When build failure, it would print out the response file's file
location and its content.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Yonghong Zhu <yonghong.zhu@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>
2016-03-22 17:16:49 +08:00
Yonghong Zhu
763e8edf61 BaseTools: add new command line option to support override PCD value
this patch add new feature to support override PCD value on the command
line. The value from the command line is the highest priority.
1.Add option(--pcd) to support both PcdName and TokenSpaceGuild.PcdName
2.For void* type PCD, use following format:
  cstring PCD: --pcd PcdName="string"
  unicodestring PCD: --pcd PcdName=L"string"
  CArray PCD: --pcd PcdName=B"{0x1, 0x2}"
3.Build Report, use *B to show the PCD value was overridden in the
command line.
4.Error Condition:
Report error if the PCD is not found
Report error if the PcdName is found under multiple different TokenSpaceGuid
Report error if PCD value syntax is incorrect
Report error if void* type PCD value exceed its max size

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Yonghong Zhu <yonghong.zhu@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>
2016-03-16 10:35:52 +08:00
Marvin Haeuser
89a811538e BaseTools: Support recent versions of cx_freeze.
This patch fixes the assumed invalid command to start recent versions
of cx_freeze on Windows, which are python and not Windows
executables. To launch them correctly, the '$(PYTHON_HOME)\python'
prefix has been added, so that Python can interpret the tool.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Marvin Haeuser <Marvin.Haeuser@outlook.com>
Reviewed-by: Yonghong Zhu <yonghong.zhu@intel.com>
2016-03-15 17:03:10 +08:00
Yonghong Zhu
df1e1b63d4 BaseTools: Add two macros into AutoGenObject macro dict
Add DEST_DIR_OUTPUT and DEST_DIR_DEBUG into AutoGenObject macro dict.
Because some module (eg: BaseUefiCpuLib) may use this macro in the make
file.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Yonghong Zhu <yonghong.zhu@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>
2016-03-15 16:59:52 +08:00
Peter Kirmeier
f9b940ecf9 BaseTools: Mentioned get_vsvars.bat at ReadMe
When someone doesn't know where to find or what to do with
vsvars32.bat, get_vsvars.bat can be used.

CC: Yonghong Zhu <yonghong.zhu@intel.com>
CC: Liming Gao <liming.gao@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Peter Kirmeier <topeterk@freenet.de>
Reviewed-by: Liming Gao <liming.gao@intel.com>
2016-03-15 12:35:15 +08:00
Yonghong Zhu
53c1329529 BaseTools/BPDG: Fix the bug to get the PCD Size
The original bug is only consider int format of PcdSize, but forgot the
Hex format. The fix is use the already exist variable PCD.PcdBinSize
which done to translate PCD size cover both format.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Yonghong Zhu <yonghong.zhu@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>
2016-03-14 11:33:12 +08:00
Yonghong Zhu
3a0f8bdef3 BaseTools: update the mail address for stack trace info
Update the mail address from edk2-devel@lists.sourceforge.net to
edk2-devel@lists.01.org.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Yonghong Zhu <yonghong.zhu@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>
Reviewed-by: Andrew Fish <afish@apple.com>
2016-03-11 12:29:59 +08:00
Jordan Justen
7e869eeb15 BaseTools ConvertMasmToNasm: Support Python 3
The script is updated to support both python 2.7 and python 3.

v2:
 * Use io.open() rather than open() (Jaben)

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Jordan Justen <jordan.l.justen@intel.com>
Cc: Yonghong Zhu <yonghong.zhu@intel.com>
Cc: Liming Gao <liming.gao@intel.com>
Cc: Erik Bjorge <erik.c.bjorge@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>
Reviewed-by: Erik Bjorge <erik.c.bjorge@intel.com>
2016-03-10 10:01:40 -08:00
Jordan Justen
bc6a342535 BaseTools ConvertMasmToNasm: Fix exception when no arguments are given
Convert to use the argparse library rather than optparse.

As part of the conversion, the script will now give an error message
if no arguments are given. Previously the script would give an
exception when no arguments were given.

Fixes: https://github.com/tianocore/edk2/issues/65
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Jordan Justen <jordan.l.justen@intel.com>
Cc: Yonghong Zhu <yonghong.zhu@intel.com>
Cc: Liming Gao <liming.gao@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>
2016-03-10 10:01:39 -08:00
Jordan Justen
5369c2bb73 BaseTools ConvertMasmToNasm: Fix running script outside of a git tree
The script previously would hit an exception if it was run outside of
a git tree.

The exception looked like:

edk2/BaseTools/Scripts/ConvertMasmToNasm.py Version 0.01
Traceback (most recent call last):
  File "edk2/BaseTools/Scripts/ConvertMasmToNasm.py", line 986, in <module>
    ConvertAsmApp()
  File "edk2/BaseTools/Scripts/ConvertMasmToNasm.py", line 984, in __init__
    ConvertAsmFile(src, dst, self)
  File "edk2/BaseTools/Scripts/ConvertMasmToNasm.py", line 209, in __init__
    CommonUtils.__init__(self, clone)
  File "edk2/BaseTools/Scripts/ConvertMasmToNasm.py", line 69, in __init__
    self.gitemail = clone.gitemail
AttributeError: ConvertAsmApp instance has no attribute 'gitemail'

Fixes: https://github.com/tianocore/edk2/issues/63
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Jordan Justen <jordan.l.justen@intel.com>
Cc: Yonghong Zhu <yonghong.zhu@intel.com>
Cc: Liming Gao <liming.gao@intel.com>
Cc: Michael Kinney <michael.d.kinney@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>
2016-03-10 09:59:11 -08:00
Cohen, Eugene
eca22f362c BaseTools: Update ARM/AArch64 GenFv vector processing for encapsulated FVs
Instead of only handling SEC Core or PEI Core instances in the outer FV,
the GenFv tool will now recurse into FV image FFS files to look for instances
in encapsulated FVs so the vector area can be updated appropriately.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Eugene Cohen <eugene@hp.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>
2016-03-10 22:04:11 +07:00
Yonghong Zhu
815ada26cb BaseTools: report warning if VOID* PCD with {} value is not 8-byte aligned
For VOID* Pcd with {} value, If platform developer wants to put in a
specific hex offset value that is not 8-byte aligned for VOID * then we
allow it with a warning message.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Yonghong Zhu <yonghong.zhu@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>
2016-03-10 17:39:58 +08:00
Liming Gao
452582852d BaseTools: Change source files to DOS format.
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Liming Gao <liming.gao@intel.com>
Reviewed-by: Yonghong Zhu <yonghong.zhu@intel.com>
2016-03-10 17:37:51 +08:00
Marvin Haeuser
01e418d652 BaseTools: Add Multiple Workspaces support for custom Makefiles.
This patch makes sure the MODULE_DIR variable points to the correct
location when multiple workspaces are used. Currently, it is
always prefixed with $(WORKSPACE), which only works as long as the
package is in the Workspace.
Code modules were not effected because the required paths were valid,
but for custom Makefiles, the MODULE_DIR variable is used.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Marvin Haeuser <Marvin.Haeuser@outlook.com>
Reviewed-by: Yonghong Zhu <yonghong.zhu@intel.com>
2016-03-09 10:05:27 +08:00
Yonghong Zhu
b9da8fe0e3 BaseTools/LZMA: fix the format issue for last patch
There are no functional changes in this patch. fixing the format base on
last commit.
The only change is 1) add back the blank line, which can help we better
compare with the original LZMA source code. 2) remove the indent of
#ifndef and #endif.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Yonghong Zhu <yonghong.zhu@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>
2016-03-03 12:06:41 +08:00
Yonghong Zhu
b0c583cdd1 BaseTools: fix LzmaCompress VS2013 make failure
when make BaseTools by VS2013, LzmaEnc.c report warning C4127:
conditional expression is constant, so this patch fix this issue.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Yonghong Zhu <yonghong.zhu@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>
2016-02-29 17:56:48 +08:00
Michael Kinney
c261c27dce BaseTools/tools_def.txt: Add -march=i586 for IA32 GCC targets
Newer GCC compilers use a default of march higher than i586
for -m32 (IA32 configuration) and this is causing generation of
instructions that are not compatible with all IA32 targets.
Specically Galileo platform support in the QuarkPlatformPkg does
not boot if GCC48 or higher is used.

This is similar to the following checkin that was done to address
this same issue for VS2012 and higher tool chains:

SHA-1: 71028ba2c4

Cc: Yonghong Zhu <yonghong.zhu@intel.com>
Cc: Liming Gao <liming.gao@intel.com>
Cc: Leroy Leahy <leroy.p.leahy@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Michael Kinney <michael.d.kinney@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>
2016-02-24 20:28:07 -08:00
Yonghong Zhu
7cf1e91d61 BaseTools/Trim: Fix the bug for stripping when no line directive in file
when no line directive in file, the tool still need to strip the typedef
statement (eg: typedef struct, typedef union ..).

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Yonghong Zhu <yonghong.zhu@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>
2016-02-19 16:11:08 +08:00
Larry Hauch
cbf14fa084 BaseTools/Conf/XMLSchema: Reformat XML using Visual Studio 2013
There are no functional changes in this patch.
The only change is to the XML format, updated using Visual Studio
Edit->Advanced->Format Document.

Different XML Schema editors use different formats for indentation and
line breaks. Visual Studio 2013 uses a two space indentation for content.

Cc: Zhu Yonghong <yonghong.zhu@intel.com>

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Larry Hauch <larry.hauch@intel.com>
Reviewed-by: Yonghong Zhu <yonghong.zhu@intel.com>
2016-02-19 09:44:32 +08:00
Laszlo Ersek
6cc7ada465 BaseTools: LzmaCompress: fix gcc-6 warning "misleading-indentation"
The way the first use of the "_maxMode" variable is commented out (i.e.,
together with the enclosing "if" statement) in GetOptimum() triggers the
"misleading-indentation" warning that is new in gcc-6.0, for the block of
code that originally depended on the "if" statement. Gcc believes
(mistakenly) that the programmer believes (mistakenly) that the block
depends on (repIndex == 0) higher up.

Restore the if statement, with a controlling expression that comprises the
constant 1 and "_maxMode" commented out.

Cc: Jordan Justen <jordan.l.justen@intel.com>
Cc: Cole Robinson <crobinso@redhat.com>
Cc: Liming Gao <liming.gao@intel.com>
Cc: Yonghong Zhu <yonghong.zhu@intel.com>
Reported-by: Cole Robinson <crobinso@redhat.com>
Suggested-by: Jordan Justen <jordan.l.justen@intel.com>
Build-tested-by: Cole Robinson <crobinso@redhat.com>
Ref: https://bugzilla.redhat.com/show_bug.cgi?id=1307439
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Laszlo Ersek <lersek@redhat.com>
Reviewed-by: Jordan Justen <jordan.l.justen@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>
2016-02-18 05:28:50 +01:00
Yonghong Zhu
730ffca194 BaseTools/VolInfo: add some generic options
The Help information provided by VolInfo does not follow the EDK II Tools
Design doc, so this patch update the help text and add the generic
options: -d, -v, -q, -s.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Yonghong Zhu <yonghong.zhu@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>
2016-02-18 11:39:15 +08:00
Yonghong Zhu
790f60f22e BaseTools: report an error message when failed to start build command
when build.py was failing to build packages but was not providing any
error message except for “Failed to start command.” this patch provide
the error message.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Yonghong Zhu <yonghong.zhu@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>
2016-02-18 11:30:26 +08:00
Yonghong Zhu
a754c70cee BaseTools/GenFw: Fix a bug for GCC build
current GCC build report error: 'for' loop initial declarations are only
allowed in C99 or C11 mode, the patch fix this failure.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Yonghong Zhu <yonghong.zhu@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>
2016-02-18 11:25:54 +08:00
Michael LeMay
ea3e924a0c BaseTools/GenFw: Correct datatypes in diagnostic messages and check for string termination
This patch revises multiple diagnostic messages to use correct
datatypes.  It also checks that a symbol name that is about to be used
in a diagnostic message is terminated by a null character within the
contents of the string table section so that the print routine does
not read past the end of the string table section contents when
reading the symbol name.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Michael LeMay <michael.lemay@intel.com>
Reviewed-by: Yonghong Zhu <yonghong.zhu@intel.com>
2016-02-17 13:23:59 +08:00
Michael LeMay
621bb723a4 BaseTools/GenFw: Enhance error message for bad symbol definitions
This patch expands the error message that is output when GenFw
encounters a bad symbol definition or an unsupported symbol type.  It
displays the symbol name, the symbol address, and a message that
describes both possibilities (bad symbol definition or unsupported
symbol type).  It also provides two examples of unsupported symbol
types.

Furthermore, this patch revises the conditional for detecting bad
symbol definitions to eliminate a redundant test (a Sym->st_shndx
value of SHN_ABS should certainly be greater than mEhdr->e_shnum) and
to change another test from 'Sym->st_shndx > mEhdr->e_shnum' to
'Sym->st_shndx >= mEhdr->e_shnum' for consistency with the test in
GetShdrByIndex.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Michael LeMay <michael.lemay@intel.com>
Reviewed-by: Yonghong Zhu <yonghong.zhu@intel.com>
2016-02-17 13:21:44 +08:00
Michael LeMay
17751c5fa4 BaseTools/GenFw: Exit with error when header lookup fails
This patch revises GetPhdrByIndex and GetShdrByIndex to cause GenFw to
exit with an error message when a section header lookup fails.  The
current behavior of those functions in such circumstances is to return
NULL, which can cause GenFw to subsequently fault when it attempts to
dereference the null pointer.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Michael LeMay <michael.lemay@intel.com>
Reviewed-by: Yonghong Zhu <yonghong.zhu@intel.com>
2016-02-17 13:17:26 +08:00
edk2 dev
fbf2338143 BaseTools-Source: Update displayed version information
Standardize the --version and --help text command-line options

Updated tools to correctly display the Build number when using command-line
option --version and exit successfully after termination.
Ecc was also updated to print informational messages after the options are
parsed.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Larry Hauch <larry.hauch@intel.com>
Reviewed-by: Erik Bjorge <erik.c.bjorge@intel.com>
2016-02-16 10:58:40 +08:00
Ard Biesheuvel
0b6249f590 BaseTools/GenFw AARCH64: add support for relative data relocations
This adds support to the ELF to PE/COFF conversion performed by GenFw for
the AArch64 ELF relocation types R_AARCH64_PREL64, R_AARCH64_PREL32 and
R_AARCH64_PREL16. Since we already require the ELF and PE/COFF section
layouts to be identical in order to support other relative relocation
types, this is simply a matter of whitelisting these new relocation types
in the same way.

While we're at it, clean up the code a bit, and add a comment explaining
why these relocations are ignored in WriteRelocations64 ().

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Reviewed-by: Leif Lindholm <leif.lindholm@linaro.org>
Reviewed-by: Liming Gao <liming.gao@intel.com>
2016-02-15 10:29:38 +01:00
Yonghong Zhu
5aec6991e7 BaseTools: Update BaseTools to pass VS2015 compiler
Fix some errors to pass VS2015 compiler.
1. warning C4456: declaration of xxx hides previous local declaration
2. warning C4005: 'UINT8_MAX': macro redefinition

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Yonghong Zhu <yonghong.zhu@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>

git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@19768 6f19259b-4bc3-4df7-8a09-765794883524
2016-01-29 04:54:37 +00:00
Yonghong Zhu
e459de7800 BaseTools:Incremental build not work if VPD values in DSC changed by -D
If a -D flag is passed into build that selects different lines in
[PcdsDynamicExVpd], then build does not see any changes to the timestamp
of the DSC file and the VPD tool is not used to regenerate the VPD
region based in the statements that are active. so we changed the detect
condition and use SaveFileOnChange function to generate VPD.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Yonghong Zhu <yonghong.zhu@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>

git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@19767 6f19259b-4bc3-4df7-8a09-765794883524
2016-01-29 04:48:55 +00:00
Yonghong Zhu
d66670f9ea BaseTools: Fix the bug for VOID* Patchable PCD declaration in Library
VOID* Patchable PCD in Library has the different declaration from the
one in Driver, this issue that will cause GCC LTO build failure.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Yonghong Zhu <yonghong.zhu@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>

git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@19766 6f19259b-4bc3-4df7-8a09-765794883524
2016-01-29 04:46:47 +00:00
Yonghong Zhu
ca85291f1f BaseTools: Fix a bug for VpdOffset calculate
The VpdOffset value in the DSC both support integer and Hex value, so we
fix the bug to support both format.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Yonghong Zhu <yonghong.zhu@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>

git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@19765 6f19259b-4bc3-4df7-8a09-765794883524
2016-01-29 04:44:54 +00:00
Yonghong Zhu
cb04330eee BaseTools: Fix the bug when no FD section in the FDF file
Check if the Fdf.CurrentFdName is not None and in Fdf.Profile.FdDict
before using it which fix a crash issue when no FD section in FDF file.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Yonghong Zhu <yonghong.zhu@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>

git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@19747 6f19259b-4bc3-4df7-8a09-765794883524
2016-01-26 08:45:34 +00:00
Eugene Cohen
a243297253 BaseTools: make build report tolerant of FVs specified by name
Check if the FV name is in the FV dictionary before using it which fixes 
a crash during build report generation when FVs are specified by path in 
the FDF.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Eugene Cohen <eugene@hp.com>
Reviewed-by: Yonghong Zhu <yonghong.zhu@intel.com>


git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@19705 6f19259b-4bc3-4df7-8a09-765794883524
2016-01-21 09:10:55 +00:00
Charles Duffy
8d0776f3e6 BaseTools: Improve LzmaF86Compress wrapper
- Remove test usage declared obsolescent by POSIX
- Pass argv array through as literal rather than forming into a string, then
  string-splitting and glob-expanding same.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Charles Duffy <chaduffy@cisco.com>
Reviewed-by: Yonghong Zhu <yonghong.zhu@intel.com>

git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@19697 6f19259b-4bc3-4df7-8a09-765794883524
2016-01-20 05:15:55 +00:00
Charles Duffy
87157f76f0 BaseTools: Use python2 if available in Tests/GNUmakefile
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Charles Duffy <chaduffy@cisco.com>
Reviewed-by: Yonghong Zhu <yonghong.zhu@intel.com>

git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@19696 6f19259b-4bc3-4df7-8a09-765794883524
2016-01-20 05:14:10 +00:00
Charles Duffy
5e40764835 BaseTools: Improve shell wrapper for C build commands
- Avoid obsolescent forms of test builtin (`-a` and `-o`; see APPLICATION USAGE
  section of http://pubs.opengroup.org/onlinepubs/9699919799/utilities/test.html).
- Quote all expansions to prevent string-splitting and globbing.
- Avoid unspecified "exit -1" (only single-byte integers are valid); instead,
  use identical exit status to shell command-not-found.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Charles Duffy <chaduffy@cisco.com>
Reviewed-by: Yonghong Zhu <yonghong.zhu@intel.com>

git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@19695 6f19259b-4bc3-4df7-8a09-765794883524
2016-01-20 05:12:02 +00:00
Charles Duffy
6928c1d3ee BaseTools: Improve shell wrappers for Python build commands
- Use `python2` executable if it exists, to avoid breakage on systems (such as
  Arch Linux) where `python` is Python 3.
- Quote all references to `$0`, for safety when located in a directory
  containing spaces in its name.
- Use the `exec` shell command to avoid leaving the shell wrapper in the
  process table when invoking the actual build tool.
- Use `"$@"` rather than `$*` to pass arguments through directly rather than
  concatenating to a string, and then string-splitting and glob-expanding its
  contents.
- Use `$BASH_SOURCE` in preference to `$0` (which is only guaranteed to be
  process name, *not* source path).

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Charles Duffy <chaduffy@cisco.com>
Reviewed-by: Yonghong Zhu <yonghong.zhu@intel.com>

git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@19694 6f19259b-4bc3-4df7-8a09-765794883524
2016-01-20 05:09:06 +00:00
Yonghong Zhu
4cb7bade0a BaseTools: process the files by the priority in BUILDRULEORDER
By the BUILDRULEORDER feature to process files listed in INF [Sources]
sections in priority order, if a filename is listed with multiple
extensions, the tools will use only the file that matches the first
extension in the space separated list.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Yonghong Zhu <yonghong.zhu@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>

git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@19686 6f19259b-4bc3-4df7-8a09-765794883524
2016-01-19 12:58:52 +00:00
Yonghong Zhu
22061fab23 BaseTools: VPD Tool to allocate VPD region be aligned based on value type
Base on build spec update, ASCII strings(“string”), will be byte aligned,
Unicode strings(L”string”) will be two-byte aligned, Byte arrays,
{0x00, 0x01} will be 8-byte aligned.
This patch is going to update VPD Tool to allocate VOID* PCDs to an offset
value that is aligned based in syntax of the PCD value.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Yonghong Zhu <yonghong.zhu@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>

git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@19651 6f19259b-4bc3-4df7-8a09-765794883524
2016-01-18 01:47:50 +00:00
Yonghong Zhu
5a13737abf BaseTools: VOID* PCDs in VPD region must be aligned based on value type
Base on build spec update, ASCII strings(“string”), will be byte aligned,
Unicode strings(L”string”) will be two-byte aligned, Byte arrays,
{0x00, 0x01} will be 8-byte aligned.
This patch is going to halt with an error message if a VOID* PCD has an
offset value that is not aligned based on the syntax of the PCD value.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Yonghong Zhu <yonghong.zhu@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>

git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@19650 6f19259b-4bc3-4df7-8a09-765794883524
2016-01-18 01:46:25 +00:00
Yonghong Zhu
8b54f22f60 BaseTools: Fix GenPatchPcdTable to support '-' characters in file names
The Regular Expression parsing of lines in MAP files does not currently
support the use of '-' in the column for the filename the symbol is
sources from, it cause a build break from the GenPatchPcdTable.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Yonghong Zhu <yonghong.zhu@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>

git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@19649 6f19259b-4bc3-4df7-8a09-765794883524
2016-01-18 01:42:20 +00:00
Ard Biesheuvel
d764d59849 BaseTools AARCH64: build XIP modules with strict alignment
GCC for AARCH64 recognizes byte swapping load and store sequences
and may replace them with wider loads or stores combined with rev
instructions. In some cases (i.e., with GCC version 5 and later)
this may result in unaligned accesses, which are not allowed before
we turn the MMU on.

So build any modules or static libraries that may execute with the MMU
off with -mstrict-align. Other modules don't need this switch, so we
can remove it from the CLANG35/AARCH64 common CC flags.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Reviewed-by: Liming Gao <liming.gao@intel.com>

git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@19638 6f19259b-4bc3-4df7-8a09-765794883524
2016-01-11 08:50:49 +00:00
Ard Biesheuvel
3a02a87f9f BaseTools AARCH64: add separate GCC build rule for XIP objects
This introduces a special .c to .obj build rule for GCC/AARCH64 that
takes into account additional compiler flags that have been specified
via *_*_*_CC_XIPFLAGS. These will be passed after (and in addition to)
the ordinary CC_FLAGS.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Reviewed-by: Liming Gao <liming.gao@intel.com>

git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@19637 6f19259b-4bc3-4df7-8a09-765794883524
2016-01-11 08:50:39 +00:00
Michael Thomas
819a2394f1 BaseTools/VfrCompile: honor CC if it is set
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Michael Thomas <malinka@entropy-development.com>
Reviewed-by: Yonghong Zhu <yonghong.zhu@intel.com>

git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@19636 6f19259b-4bc3-4df7-8a09-765794883524
2016-01-11 07:42:03 +00:00
Hao Wu
64957e357b BaseTools: Fix 'caculate' typos
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Hao Wu <hao.a.wu@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>

git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@19604 6f19259b-4bc3-4df7-8a09-765794883524
2016-01-06 01:13:35 +00:00
Ard Biesheuvel
c2a892d7c8 BaseTools CLANG35: use -target in PP flags as well
The Clang preprocessor may rely on builtin defines that are target
dependent, so we should add the -target argument also when invoking
the preprocessor directly.

Contributed-under: TianoCore Contribution Agreement 1.0
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>

git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@19584 6f19259b-4bc3-4df7-8a09-765794883524
2016-01-04 09:31:42 +00:00
Ard Biesheuvel
d4dcd5542a BaseTools CLANG35: use linux-gnu target triplets explicitly
Since we are combining Clang with the GNU linker, make that explicit in
the target triplet. This affects certain builtin defines and other compiler
behavior that may be unspecified otherwise.

Contributed-under: TianoCore Contribution Agreement 1.0
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>

git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@19583 6f19259b-4bc3-4df7-8a09-765794883524
2016-01-04 09:31:33 +00:00
Hess Chen
bc003bc076 BaseTool/UPT: Fix a typo issue
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Hess Chen <hesheng.chen@intel.com>
Reviewed-by: Yonghong Zhu <yonghong.zhu@intel.com>

git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@19576 6f19259b-4bc3-4df7-8a09-765794883524
2015-12-30 02:22:30 +00:00
Hess Chen
975889279d BaseTool/ECC: Add UTF-8 support on ECC tool
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Hess Chen <hesheng.chen@intel.com>
Reviewed-by: Yonghong Zhu <yonghong.zhu@intel.com>

git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@19575 6f19259b-4bc3-4df7-8a09-765794883524
2015-12-30 02:22:02 +00:00
Larry Hauch
1794756453 BaseTools: Fix Makefile to correctly break during a build failure
Updated the Makefile so that nmake will correctly fail if the cxfreeze command fails to complete successfully.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Larry Hauch <larry.hauch@intel.com>
Reviewed-by: Yonghong Zhu <yonghong.zhu@intel.com>

git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@19501 6f19259b-4bc3-4df7-8a09-765794883524
2015-12-23 18:30:20 +00:00
Liming Gao
4e06673dbc BaseTools: Update Scripts to support VS2015 env
edk2 Edk2Setup.bat depends on those scripts to configure VS env.
Update them to support VS2015.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Liming Gao <liming.gao@intel.com>
Reviewed-by: Yonghong Zhu <yonghong.zhu@intel.com>

git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@19431 6f19259b-4bc3-4df7-8a09-765794883524
2015-12-22 01:01:54 +00:00
Yonghong Zhu
534ef50ca1 BaseTools: Fix one bug in FD region for multiple workspace support
Update the os.path.join to mws.join for FILE/INF/CAPSULE/FV region type.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Yonghong Zhu <yonghong.zhu@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>

git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@19319 6f19259b-4bc3-4df7-8a09-765794883524
2015-12-17 09:38:43 +00:00
Ard Biesheuvel
b9f7890c47 BaseTools ARM: add CLANG35 support
This extends the existing CLANG35 toolchain definition with support for
building for the ARM architecture. In order to be able to reuse the existing
ARM GCC definitions as much as possible, the following changes have been
made to the existing ARM GCC support:
- the -mapcs option has been removed; it is a no-op under Thumb (our default)
  and we use AAPCS (-mabi=aapcs) anyway
- the -mword-relocations option has been moved from GCC_ARM_CC_FLAGS to
  the GCC4x specific option: CLANG does not support it, and uses '-mllvm
  -marm-use-movt=0' instead.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Reviewed-by: Leif Lindholm <leif.lindholm@linaro.org>
Reviewed-by: Liming Gao <liming.gao@intel.com>

git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@19284 6f19259b-4bc3-4df7-8a09-765794883524
2015-12-15 15:02:24 +00:00
Jordan Justen
3f45c1375d BaseTools/Scripts: Add ConvertUni.py script
This script uses python codecs to convert .uni string files between
the utf-16 and utf-8 formats.

The advantages of utf-8 data:
 * Generally smaller files
 * More commonly supported by editors
 * Not treated as binary data in patch files

The script was tested on MdePkg with both python 2.7 and python 3.4.
It was able to convert all MdePkg .uni files between utf-8 and utf-16
multiple times always producing the same files for each format.

v2:
 * Rename ConvertUtf16ToUtf8.py to ConvertUni.py
 * Also support utf-8 to utf-16 conversion (with --utf-16)

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Jordan Justen <jordan.l.justen@intel.com>
Reviewed-by: Jaben Carsey <jaben.carsey@intel.com>
Reviewed-by: Michael Kinney <michael.d.kinney@intel.com>
Reviewed-by: Yonghong Zhu <yonghong.zhu@intel.com>

git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@19247 6f19259b-4bc3-4df7-8a09-765794883524
2015-12-15 04:50:50 +00:00
Hess Chen
044f60172b BaseTools/Ecc: Fix a bug to report fake issue
Fix a bug to ignore the lib ins defined in [components] section but also listed in SkipDir

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Hess Chen <hesheng.chen@intel.com>
Reviewed-by: Yonghong Zhu <yonghong.zhu@intel.com>

git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@19238 6f19259b-4bc3-4df7-8a09-765794883524
2015-12-14 08:08:21 +00:00
Ard Biesheuvel
088dc24508 BaseTools/GenFw RVCT: fix relocation processing of PT_DYNAMIC sections
Unlike GNU ld, which can be instructed to emit symbol based static
relocations into fully linked binaries using the --emit-relocs command
line switch, the RVCT armlink tool can only emit dynamic relocations
into the PT_DYNAMIC segment.

This has two consequences
. we can only identify absolute relocations, so there is no way to fix
  up relative relocations between sections, or check their validity in
  the PE/COFF layout
. the r_offset fields of the PT_DYNAMIC DT_REL entries are relative
  either to the base of the image or to any of its segments but *not* to
  the base of the input section that contains the location they refer
  to, and converting them to PE/COFF image offsets is non-trivial unless
  the sections are laid out in the same way in the ELF and PE/COFF
  versions of the binary.

There is really only one way to deal with this, and that is to require
that the ELF and PE/COFF versions of the binary are identical in memory.
So enforce that in the code.

Also, fix the utterly broken relocation fixup code that dereferences
ELF32_R_SYM(r_info) both as a 1-based program header index and a 0-based
section header index. If this code ever produced working binaries, it
was purely by chance.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Reviewed-by: Liming Gao <liming.gao@intel.com>

git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@19236 6f19259b-4bc3-4df7-8a09-765794883524
2015-12-14 07:56:02 +00:00
Ard Biesheuvel
b12ef6b964 BaseTools RVCT: use scatter file to enforce minimum section alignment
Up until SVN r18540, GenFw created invalid PE/COFF binaries for the ARM
architecture, by allowing PE/COFF .data sections to appear at offsets
that were not aligned to the global PE/COFF section alignment. The
reason for this was that the relocation metadata emitted by RVCT's
armlink only contains dynamic absolute relocations, so it is impossible
to recalculate relative relocations between .text and .data, and so the
relative offset between the two needs to be preserved.

Since r18540, we do align .data to the PE/COFF section alignment,
resulting in potentially corrupt PE/COFF binaries unless .data happens
to appear at a 32-byte aligned offset. So let's introduce a RVCT scatter
file that sets this alignment for the ELF .data section (and subsequent
.bss section).

At the same time, set the start offset to 0x220 bytes (which is the size
of our 32-bit PE/COFF header) so that the memory layouts are identical
between ELF and PE/COFF. Also add a 4 KB aligned version that can be
used to build DXE_RUNTIME_DRIVER modules with runtime memory protection
enabled.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Reviewed-by: Eugene Cohen <eugene@hp.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>

git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@19235 6f19259b-4bc3-4df7-8a09-765794883524
2015-12-14 07:55:46 +00:00
Ard Biesheuvel
214a3b7941 BaseTools GCC: avoid the use of COMMON symbols
The default behavior of the GCC compiler is to emit uninitialized globals
with external linkage into a COMMON section, where duplicate definitions
are merged. This may result in unexpected behavior, since global variables
defined under the same name in different C files may not refer to the same
logical data item.

For instance, the definitions of EFI_EVENT mVirtualAddressChangeEvent that
[used to] appear in the following files:

  CryptoPkg/Library/BaseCryptLib/SysCall/RuntimeMemAllocation.c
  MdeModulePkg/Universal/Variable/RuntimeDxe/VariableDxe.c

will be folded into a single instance of the variable when the latter
module includes the former library, which can lead to unexpected results.

Even if some may argue that there are legal uses for COMMON allocation, the
high modularity of EDK2 combined with the low level of awareness of the
intracicies surrounding common allocation and the generally poor EDK2
developer discipline regarding the use of the STATIC keyword* make a strong
case for disabling it by default, and re-enabling it explicitly for packages
that depend on it.

So prevent GCC from emitting variables into the COMMON section, by passing
-fno-common to the compiler, and discarding the section in the GNU ld linker
script.

* Any function or variable that is only referenced from the translation unit
  that defines it could be made STATIC. This does not only prevent issues
  like the above, it also allows the compiler to generate better code, e.g.,
  drop out of line function definitions after inlining all invocations or
  perform constant propagation on variables.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Reviewed-by: Liming Gao <liming.gao@intel.com>
Reviewed-by: Laszlo Ersek <lersek@redhat.com>
Tested-by: Laszlo Ersek <lersek@redhat.com>

git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@19164 6f19259b-4bc3-4df7-8a09-765794883524
2015-12-08 07:40:12 +00:00
Yonghong Zhu
5c1edc5534 Revert the change in r19143 for BUILDRULEORDER.
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Yonghong Zhu <yonghong.zhu@intel.com>

git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@19150 6f19259b-4bc3-4df7-8a09-765794883524
2015-12-08 03:06:41 +00:00
Yonghong Zhu
7f3f3133ce BaseTools: update man page to add some descriptions
add the description for --ignore-sources and --check-usage into man page.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Yonghong Zhu <yonghong.zhu@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>


git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@19144 6f19259b-4bc3-4df7-8a09-765794883524
2015-12-07 09:10:33 +00:00
Yonghong Zhu
48aed71c65 BaseTools: process the files by the priority in BUILDRULEORDER
By the BUILDRULEORDER feature to process files listed in INF [Sources]
sections in priority order, if a filename is listed with multiple
extensions, the tools will use only the file that matches the first
extension in the space separated list.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Yonghong Zhu <yonghong.zhu@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>

git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@19143 6f19259b-4bc3-4df7-8a09-765794883524
2015-12-07 09:09:31 +00:00
Yonghong Zhu
4aa9826def BaseTools: Fix a bug when apply patches to SEC use the FILE_GUID override
Fix a bug when applying patches to SEC modules that use the FILE_GUID
override. Since a temp dir is used when FILE_GUID override is used, the
INF file path comparisons fail. The fix is to capture the real INF file
path comparisons instead of using the temp dir path to the INF.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Yonghong Zhu <yonghong.zhu@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>

git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@19142 6f19259b-4bc3-4df7-8a09-765794883524
2015-12-07 09:08:05 +00:00
Yonghong Zhu
2ff9e57574 BaseTools: Enhance GenFv Tool to report error message
When two vtf files in one FV image, no FV file can be generated, but it
report the stack trace info. so we enhance the tool to report error
message directly but not the stack trace info.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Yonghong Zhu <yonghong.zhu@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>


git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@19141 6f19259b-4bc3-4df7-8a09-765794883524
2015-12-07 09:04:39 +00:00
Yonghong Zhu
043928da6a BaseTools: Fix a bug in the VPD report generation
Changed the if condition to check whether current Region is FD VPD region
to fix a bug in the VPD report generation.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Yonghong Zhu <yonghong.zhu@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>


git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@19139 6f19259b-4bc3-4df7-8a09-765794883524
2015-12-07 09:03:35 +00:00
Yonghong Zhu
ca9d6d7962 Revert the change in r19137.
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Yonghong Zhu <yonghong.zhu@intel.com>

git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@19138 6f19259b-4bc3-4df7-8a09-765794883524
2015-12-07 09:01:44 +00:00
Yonghong Zhu
eadb60d96f BaseTools: Enhance GenFv Tool to report error message
When two vtf files in one FV image, no FV file can be generated, but it
report the stack trace info. so we enhance the tool to report error
message directly but not the stack trace info.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Yonghong Zhu <yonghong.zhu@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>

git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@19137 6f19259b-4bc3-4df7-8a09-765794883524
2015-12-07 08:29:10 +00:00
Yonghong Zhu
b21a13fbb6 BaseTools: Add support for INF statement in FD region
FD region today can be file or data, but not a patched image.Add support
for an INF statement in an FD region, so the binary from the INF can be
patched prior to being added to the FD region.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Yonghong Zhu <yonghong.zhu@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>

git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@19136 6f19259b-4bc3-4df7-8a09-765794883524
2015-12-07 08:27:53 +00:00
Jordan Justen
103733f8e6 BaseTools PatchCheck.py: Support binary diff
This allows a patch with binary data that is generated with --binary
to be parsed by the PatchCheck.py script.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Jordan Justen <jordan.l.justen@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>

git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@19104 6f19259b-4bc3-4df7-8a09-765794883524
2015-12-03 08:18:00 +00:00
Wang Yu
5d9cd24ede BaseTools: Add VS2015 tool chain in tools_def.template
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Wang Yu <yu.wang@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>

git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@19101 6f19259b-4bc3-4df7-8a09-765794883524
2015-12-03 03:19:01 +00:00
Eugene Cohen
8e18fbd70d BaseTools RVCT: add preprocessor preinclude for AutoGen.h
Ensure that AutoGen.h is force-included when the RVCT preprocessor
is invoked.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Eugene Cohen <eugene@hp.com>
Reviewed-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>

git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@19097 6f19259b-4bc3-4df7-8a09-765794883524
2015-12-02 16:11:33 +00:00
Yonghong Zhu
47fea6afd7 BaseTools: Clean some coding style issues
This patch clean some coding style issues, majorly for space character.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Yonghong Zhu <yonghong.zhu@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>

git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@19080 6f19259b-4bc3-4df7-8a09-765794883524
2015-12-01 04:22:16 +00:00
Yonghong Zhu
35ba063da8 BaseTools/toolsetup.bat: fixed the error when the path contains space
We have a new simple and effective method to resolve the original issue
that the PATH env's update error when the path contains space, so this
patch remove the last check in and use the new method to fix the original
issue.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Yonghong Zhu <yonghong.zhu@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>

git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@19028 6f19259b-4bc3-4df7-8a09-765794883524
2015-11-30 03:43:25 +00:00
Yonghong Zhu
38b986e3d0 BaseTools: Add build error detection for Dynamic PCD name conflict
when multiple Dynamic PCD have different token space guid but same PCD
name, it is difficult for user to check why the generated autogen.c and
autogen.h are not consistent. so we add a check before generating
autogen.c and report error directly that user can know what happened
immediately.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Yonghong Zhu <yonghong.zhu@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>

git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@19027 6f19259b-4bc3-4df7-8a09-765794883524
2015-11-30 03:40:37 +00:00
Yonghong Zhu
fb3d22793e BaseTools: Add a VPD report subsection of FLASH to the Report
Build Spec already added a VPD report subsection of FLASH to the Report
chapter, it provide a simple way for user to determine where the VPD
region and VPD PCDs are located in the fd file.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Yonghong Zhu <yonghong.zhu@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>

git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@19026 6f19259b-4bc3-4df7-8a09-765794883524
2015-11-30 03:36:50 +00:00
Ard Biesheuvel
3164361121 BaseTools/GenFw ARM: allow R_ARM_REL32 relocations
R_ARM_REL32 are relative relocations, so we don't need to do anything
special when performing the ELF to PE/COFF conversion, since our memory
layout is identical between the two binary formats. So just allow them.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Reviewed-by: Liming Gao <liming.gao@intel.com>

git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@18931 6f19259b-4bc3-4df7-8a09-765794883524
2015-11-24 08:40:33 +00:00
Hess Chen
48b77f5ea9 BaseTool/UPT: Add supporting of decimal numbers for INF_VERSION and DEC_SPECIFICATION
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Hess Chen <hesheng.chen@intel.com>
Reviewed-by: Yonghong Zhu <yonghong.zhu@intel.com>


git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@18868 6f19259b-4bc3-4df7-8a09-765794883524
2015-11-18 05:38:35 +00:00
Yonghong Zhu
1834aeeac6 BaseTools/toolsetup.bat: fixed the error when the path contains space
when the path contains space, it will report error for PATH Environment
update.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Yonghong Zhu <yonghong.zhu@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>

git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@18852 6f19259b-4bc3-4df7-8a09-765794883524
2015-11-17 07:45:04 +00:00
Yonghong Zhu
868c9c35a6 BaseTools: Fix two warning reported in the make phase.
when we make BaseTools, it report warnings about VfrError.cpp and VolInfo,
so this patch fix this warning.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Yonghong Zhu <yonghong.zhu@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>

git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@18851 6f19259b-4bc3-4df7-8a09-765794883524
2015-11-17 07:40:00 +00:00
Yonghong Zhu
30fbfcc929 BaseTools/GenFw: add new option to not zero PE/COFF optional header fields
Add new option --keepoptionalheader and that flag does not zero PE/COFF
optional header fields including the version fields. It can support the
case that the PE/COFF optional header would be kept.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Yonghong Zhu <yonghong.zhu@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>

git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@18767 6f19259b-4bc3-4df7-8a09-765794883524
2015-11-11 06:30:42 +00:00
Ard Biesheuvel
67b3c0f958 BaseTools GCC: move PECOFF_HEADER_SIZE definition before LD script
Older versions of binutils need all symbols to be defined when consuming
the linker script passed via the command line. So move the definition
'--defsym=PECOFF_HEADER_SIZE=...' before the '--script=...' command line
argument.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Reviewed-by: Liming Gao <liming.gao@intel.com>

git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@18747 6f19259b-4bc3-4df7-8a09-765794883524
2015-11-09 08:39:28 +00:00
Yonghong Zhu
3ab1434a6e BaseTools: Allow decimal values in the EDK II meta-data file
Because the EDK II meta-data specifications already allow using decimal
values in the EDK II Meta-data file [Defines] section, this patch update
code to allow this usage.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Yonghong Zhu <yonghong.zhu@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>

git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@18746 6f19259b-4bc3-4df7-8a09-765794883524
2015-11-09 07:43:07 +00:00
Liming Gao
f25da33d13 BaseTools: Print PACKAGES_PATH build environment if it is set.
Print the optional build environment PACKAGES_PATH and EDK_TOOLS_BIN.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Liming Gao <liming.gao@intel.com>
Reviewed-by: Michael Kinney <michael.d.kinney@intel.com>

git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@18733 6f19259b-4bc3-4df7-8a09-765794883524
2015-11-06 02:57:07 +00:00
Liming Gao
31b27ef1aa BaseTools: Don't require ECP pkg in WORKSPACE when PACKAGES_PATH is set
When PACKAGES_PATH is set, ECP pkg may be in another directory, not exist
in WORKSPACE. So, keep this check in single WORKSPACE.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Liming Gao <liming.gao@intel.com>
Reviewed-by: Michael Kinney <michael.d.kinney@intel.com>

git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@18731 6f19259b-4bc3-4df7-8a09-765794883524
2015-11-06 01:10:25 +00:00
Yonghong Zhu
7919244076 BaseTools:remove the redundant directories for '-f' with absolute path.
when the absolute path is given to '-f', it would create some redundant
empty directories.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Yonghong Zhu <yonghong.zhu@intel.com>
Reviewed-by: Hao Wu <hao.a.wu@intel.com>

git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@18675 6f19259b-4bc3-4df7-8a09-765794883524
2015-10-27 03:29:50 +00:00
Liming Gao
c2305a4af8 BaseTools: Add MultipleWorkspace.py in the common dependency.
Add new added MultipleWorkspace.py in the common dependency to freeze
python tools for Windows.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Liming Gao <liming.gao@intel.com>
Reviewed-by: Yonghong Zhu <yonghong.zhu@intel.com>

git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@18663 6f19259b-4bc3-4df7-8a09-765794883524
2015-10-26 08:48:39 +00:00
Yonghong Zhu
7beed8a3da BaseTools:added extern protocol/PPI/GUID definition in AutoGen for Library
We already added the extern declaration for protocols/PPI/GUID in AutoGen.h
file for driver, but missing this feature for the Library. so this patch
add it.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Yonghong Zhu <yonghong.zhu@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>

git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@18661 6f19259b-4bc3-4df7-8a09-765794883524
2015-10-26 03:26:55 +00:00
Jordan Justen
a7e173b07a BaseTools/Scripts: Add PatchCheck.py script
This script can be used to check some expected rules for EDK II
patches. It only works on git formatted patches.

It checks both the commit message and the lines that are added in the
patch diff.

In the commit message it verifies line lengths, signature formats, and
the Contributed-under tag.

In the patch, it checks that line endings are CRLF for all files that
don't have a .sh extension. It verifies that no trailing whitespace is
present and that tab characters are not used.

Patch contributors should use this script prior to submitting their
patches. Package maintainers can also use it to verify incoming
patches.

It can also be run by specifying a git revision list, so actual patch
files are not always required.

For example, to checkout this last 5 patches in your git branch you
can run:

  python PatchCheck.py HEAD~5..

Or, a shortcut (like git log):

  python PatchCheck.py -5

The --oneline option works similar to git log --oneline.

The --silent option enables silent operation.

The script supports python 2.7 and python 3.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Jordan Justen <jordan.l.justen@intel.com>
Cc: Erik Bjorge <erik.c.bjorge@intel.com>
Cc: Yonghong Zhu <yonghong.zhu@intel.com>
Cc: Liming Gao <liming.gao@intel.com>
Reviewed-by: Leif Lindholm <leif.lindholm@linaro.org>
Reviewed-by: Erik Bjorge <erik.c.bjorge@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>

git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@18652 6f19259b-4bc3-4df7-8a09-765794883524
2015-10-22 06:01:02 +00:00
Eric Dong
c0c300a15c BaseTools VfrCompiler: In order to keep consistent, add an optional ";" for condition op-code.
Current grammar for suppressif opcode not consistent in statement and option case, this patch fixed this issue. The same case also existed for other condition opcodes.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Eric Dong <eric.dong@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>

git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@18606 6f19259b-4bc3-4df7-8a09-765794883524
2015-10-15 01:03:47 +00:00
Liming Gao
1e69581335 BaseTools: Fix the issue to support windows root directory
Use os.path.relpath to get the relative directory instead of directly trim it.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Liming Gao <liming.gao@intel.com>
Reviewed-by: Yonghong Zhu <yonghong.zhu@intel.com>

git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@18602 6f19259b-4bc3-4df7-8a09-765794883524
2015-10-14 09:43:43 +00:00
Yonghong Zhu
af9785a9ed BaseTools: Fixed an error reported during generating report
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Yonghong Zhu <yonghong.zhu@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>

git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@18601 6f19259b-4bc3-4df7-8a09-765794883524
2015-10-12 06:02:09 +00:00
Hess Chen
8145b63e97 BaseTool/UPT: Fix two wrong imports for UPT
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Hess Chen <hesheng.chen@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>

git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@18600 6f19259b-4bc3-4df7-8a09-765794883524
2015-10-10 05:46:00 +00:00
Ard Biesheuvel
94762ddef6 BaseTools/PeCoffLoader: fix handling of ARM MOVW/MOVT instruction relocs
The handling of ARM MOVW/MOVT relocations sets the FixupData twice (once
incorrectly), but fails to advance the *FixupData pointer afterwards.
This is not actually a problem, since the fixup data is never used but
let's fix it anyway in case anyone reuses this code.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Reviewed-by: Leif Lindholm <leif.lindholm@linaro.org>
Reviewed-by: Liming Gao <liming.gao@intel.com>

git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@18596 6f19259b-4bc3-4df7-8a09-765794883524
2015-10-09 18:55:28 +00:00
Liming Gao
094a67398f BaseTools: Update edksetup.sh to support multiple workspaces
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Liming Gao <liming.gao@intel.com>
Reviewed-by: Wu Hao A <hao.a.wu@intel.com>

git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@18584 6f19259b-4bc3-4df7-8a09-765794883524
2015-10-08 09:29:56 +00:00
Liming Gao
485eb3a252 BaseTools: Update Edk2Setup.bat to support multiple workspaces
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Liming Gao <liming.gao@intel.com>
Reviewed-by: Wu Hao A <hao.a.wu@intel.com>

git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@18583 6f19259b-4bc3-4df7-8a09-765794883524
2015-10-08 09:29:36 +00:00
Liming Gao
dcc8078699 BaseTools: Update edksetup.bat to support multiple workspaces
1. Update edksetup.bat and toolsetup.bat to handle PACKAGES_PATH.
   BaseTools directory may be in PACKAGES_PATH instead of WORKSAPCE.
2. Introduce EDK_TOOLS_BIN env points to the windows binary tools dir.
   Windows BaseTools Win32 may be a separate directory.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Liming Gao <liming.gao@intel.com>
Reviewed-by: Wu Hao A <hao.a.wu@intel.com>

git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@18582 6f19259b-4bc3-4df7-8a09-765794883524
2015-10-08 09:29:09 +00:00
Li YangX
c4f52e128f BaseTools: Update ECC tool to support multiple workspaces
Update ECC to refer MultipleWorkspace class to convert
the file path from WORKSPACE and PACKAGES_PATH.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Li YangX <yangx.li@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>

git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@18581 6f19259b-4bc3-4df7-8a09-765794883524
2015-10-08 09:28:51 +00:00
Hesheng Chen
fb0f8067ea BaseTools: Update UPT tool to support multiple workspaces
Update UPT to refer MultipleWorkspace class to convert
the file path from WORKSPACE and PACKAGES_PATH.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Hesheng Chen <hesheng.chen@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>

git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@18580 6f19259b-4bc3-4df7-8a09-765794883524
2015-10-08 09:28:15 +00:00
Li YangX
05cc51ad58 BaseTools: Update Build tool to support multiple workspaces
WORKSPACE is still kept.
New PACKAGES_PATH is introduced to specify the additional WORKSPACEs.
In PACKAGES_PATH, ';' is separator in Windows, ':' is separator in Linux.

Build directory is in WORKSPACE. Package, BaseTools and Conf directory
will be found from WORKSPACE and PACKAGES_PATH.

In implementation, BaseTools adds MultipleWorkspace class for
the file path conversion from WORKSPACE and PACKAGES_PATH.

Verify two tree layouts.
Root\edk2\MdePkg
Root\edk2\MdeMdeModulePkg
Root\edk2\...
1. set WORKSPACE=Root\edk2
2. set WORKSPACE=Root, and set PACKAGES_PATH=Root\edk2

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Li YangX <yangx.li@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>

git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@18579 6f19259b-4bc3-4df7-8a09-765794883524
2015-10-08 09:27:14 +00:00
Ard Biesheuvel
63e1c23b22 BaseTools/AARCH64: use large code model for GCC <= 4.8
As it turns out, upstream GCC only supports the AArch64 'tiny' code
model as of version 4.9. Since the default 'small' code model requires
4 KB section alignment (which is undesirable for the XIP modules),
revert GCC 4.7 and 4.8 to using the 'large' code model instead.

Reported-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Tested-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
Reviewed-by: Leif Lindholm <leif.lindholm@linaro.org>

git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@18569 6f19259b-4bc3-4df7-8a09-765794883524
2015-10-02 14:48:30 +00:00
Ard Biesheuvel
64a63d6942 BaseTools/ARM: move to unified GCC linker script
Instead of using the ARM builtin linker script for GNU ld, use the
new unified one instead. This will allow us to increase the section
alignment for DXE_RUNTIME_MODULEs, which is a prerequisite for
enabling the UEFIv2.5 Properties Table memory protection feature.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Tested-by: Michael Zimmermann <sigmaepsilon92@gmail.com>
Reviewed-by: Leif Lindholm <leif.lindholm@linaro.org>

git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@18565 6f19259b-4bc3-4df7-8a09-765794883524
2015-10-01 14:01:07 +00:00
Ard Biesheuvel
0bd0d6dff6 BaseTools/GenFw: disable RVCT linker size optimization
Disable the RVCT size optimization that may put sections at an offset
that is not aligned to their own alignment, by adding the --no_legacyalign
switch to the RVCT linker command line. This is necessary since such sections
cannot be correctly converted into PE/COFF sections without padding them at
the front, which defeats the purpose of the optimization anyway.

With the optimization gone, we can also remove the special case for ARM in
GenFw that could result in corrupt PE/COFF images to be emitted. Instead,
sections whose base address is not aligned correctly are outright rejected.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Reviewed-by: Leif Lindholm <leif.lindholm@linaro.org>

git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@18540 6f19259b-4bc3-4df7-8a09-765794883524
2015-09-24 19:35:16 +00:00
Ard Biesheuvel
0c960e86c2 BaseTools/GenFw: remove ARM and RVCT references from ELF64 code
ARM and RVCT apply to 32-bit code only, so remove any references
to them (including the workaround for the linker) from the 64-bit
version of ElfConvert.c

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Reviewed-by: Leif Lindholm <leif.lindholm@linaro.org>

git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@18539 6f19259b-4bc3-4df7-8a09-765794883524
2015-09-24 19:35:10 +00:00
Hess Chen
00261e1dc6 BaseTools/Ecc: Remove checkpoint for STATIC modifier
1. Fix a bug of removing the checkpoint for STATIC modifier 
2. Fix a bug of parsing CONST variable

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Hess Chen <hesheng.chen@intel.com>
Reviewed-by: YangX Li <yangx.li@intel.com>

git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@18446 6f19259b-4bc3-4df7-8a09-765794883524
2015-09-14 07:12:29 +00:00
Ard Biesheuvel
4f7d5c6792 BaseTools/GenFw: align RVA of debug
SVN commit r18077 ("BaseTools/GenFw: move .debug contents to .data to
save space") removed the separate .debug section after moving its
contents into .text or .data. However, this change does not take into
account that some of these contents need to appear at a 32-bit aligned
offset. So align the debug data RVA to 32 bits.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Reviewed-by: Liming Gao <liming.gao@intel.com>

git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@18443 6f19259b-4bc3-4df7-8a09-765794883524
2015-09-11 07:07:06 +00:00
Jeff Fan
a921cd16e6 Revert the change in r18404.
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Jeff Fan <jeff.fan@intel.com>

git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@18405 6f19259b-4bc3-4df7-8a09-765794883524
2015-09-06 08:58:25 +00:00
Jeff Fan
ed30d582c1 Update BaseTools binary to match main trunk r18339.
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Jeff Fan <jeff.fan@intel.com>

git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@18404 6f19259b-4bc3-4df7-8a09-765794883524
2015-09-06 08:52:50 +00:00
Yingke Liu
29d960f901 BaseTools: Fixed bug for single FV generating.
If -i is specified and this FV has no BlockSize defined,
tool did not inherit FD's BlockSize.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Yingke Liu <yingke.d.liu@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>

git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@18339 6f19259b-4bc3-4df7-8a09-765794883524
2015-08-28 02:04:37 +00:00
Dandan Bi
2bf63b20d2 BaseTools:To generate string default type correctly in VfrCompiler
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Dandan Bi <dandan.bi@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>

git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@18336 6f19259b-4bc3-4df7-8a09-765794883524
2015-08-27 08:19:40 +00:00
Liming Gao
23cc8adbaf BaseTools: Fix the missing depex file in GenFds
If FDF FfsRule describes |.depex for depex file on source build, it may
be missed in the generated FD image. GenFds tool needs to check the
output file list and find the matched one.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Liming Gao <liming.gao@intel.com>
Reviewed-by: Yingke Liu <yingke.d.liu@intel.com>

git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@18318 6f19259b-4bc3-4df7-8a09-765794883524
2015-08-26 06:33:31 +00:00
Cecil Sheng
118bf0960c BaseTools: Nested !include support in DSC and FDF files
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Cecil Sheng <cecil.sheng@hp.com>
Reviewed-by: Samer El-Haj-Mahmoud <elhaj@hp.com>
Reviewed-by: Yingke Liu <yingke.d.liu@intel.com>

git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@18317 6f19259b-4bc3-4df7-8a09-765794883524
2015-08-26 06:28:59 +00:00
Liming Gao
e70504cd49 BaseTools: Update SetPcdPtr in AutoGen Code
For patchable PCD, map SetPcdPtr() to LibPatchPcdSetPtrAndSize(),
then the size of the updated VOID* value can be cached.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Liming Gao <liming.gao@intel.com>
Reviewed-by: Star Zeng <star.zeng@intel.com>

git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@18272 6f19259b-4bc3-4df7-8a09-765794883524
2015-08-24 05:02:35 +00:00
Liming Gao
27187d2463 BaseTools: Fix AutoGen issue for Patchable VOID* PCD.
Patchable VOID* PCD set operation should map LibPatchPcdSetPtr()
and LibPatchPcdSetPtrS() API. This has been done when PCD is used
in driver, but not done when PCD is used in library.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Liming Gao <liming.gao@intel.com>
Reviewed-by: Star Zeng <star.zeng@intel.com>

git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@18271 6f19259b-4bc3-4df7-8a09-765794883524
2015-08-24 05:02:07 +00:00
Bob Feng
2f5acc3b95 BaseTools: Generate macro for the size of PCD value
PcdLib introduces new APIs to get the size of PCD value.
BaseTools generates those macros in AutoGen code.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Bob Feng <bob.c.feng@intel.com>
Reviewed-by: Star Zeng <star.zeng@intel.com>

git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@18270 6f19259b-4bc3-4df7-8a09-765794883524
2015-08-24 05:01:38 +00:00
Liming Gao
9023704f95 BaseTools: Add NULL pointer check in AutoGen code
For DynamicEx PCD, if NULL pointer is specified as token space GUID,
it will directly be used to compare GUID value in AutoGen code.
To avoid access NULL pointer, NULL pointer will be checked first.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Liming Gao <liming.gao@intel.com>
Reviewed-by: Star Zeng <star.zeng@intel.com>

git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@18267 6f19259b-4bc3-4df7-8a09-765794883524
2015-08-24 05:00:05 +00:00
Hess Chen
72358997e7 BaseTools/Ecc: Remove checkpoint for STATIC modifier
Remove checkpoint for STATIC modifier to allow this usage

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Hess Chen <hesheng.chen@intel.com>
Reviewed-by: YangX Li <yangx.li@intel.com>

git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@18264 6f19259b-4bc3-4df7-8a09-765794883524
2015-08-24 02:53:27 +00:00
Star Zeng
6eff5d22b4 BaseTools: Follow PI spec to update ExtendedSize in EFI_FFS_FILE_HEADER2
for FFS data above 16 bytes alignment requirement.

PI spec requires FFS header to be at 8 bytes alignment to FV header.
And, FFS data alignment requires the beginning of the file data must
be aligned on a particular boundary, such as 1, 16, 128 bytes or above.
If FFS data alignment requires to be above 16 bytes, and FFS header
must be at 8 byte alignment, so FFS header size must be multiple of 8.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Star Zeng <star.zeng@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>

git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@18262 6f19259b-4bc3-4df7-8a09-765794883524
2015-08-24 01:42:37 +00:00
Bob Feng
072418e553 BaseTools: Fix build fail when the number in validlist is long type.
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: "Bob Feng" <bob.c.feng@intel.com>
Reviewed-by: "Chen, Hesheng" <hesheng.chen@intel.com>




git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@18256 6f19259b-4bc3-4df7-8a09-765794883524
2015-08-21 01:09:16 +00:00
Ard Biesheuvel
06cd723125 BaseTools AARCH64: use tiny code model by default
The AARCH64 tiny code model produces more efficient code, since it
uses relative symbol references rather than absolute references, i.e.,
an emitted relative reference refers to the symbol directly rather
than a literal containing its 64-bit absolute address. This saves
space in the binary, and reduces the number of relocation fixups that
need to be applied by the PE/COFF loader.

So now that we support relative relocations in GenFw, move to the
tiny code model by default. Note that the large model can still be
selected by individual modules by adding -mcmodel=large to the
appropriate CC_FLAGS.

Contributed-under: TianoCore Contribution Agreement 1.0
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>

git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@18242 6f19259b-4bc3-4df7-8a09-765794883524
2015-08-20 06:39:12 +00:00
Liming Gao
71028ba2c4 BaseTools: Add /arch:IA32 option in VS2012 and VS2013
VS2012 and VS2013 turn on optimizations by default that generate the
use of CMOV instruction. This is a change from previous version VS2008.
This means when you build with VS2012 or VS2013, it will generate UD
exceptions on Quark.

To resolve it, add /arch:IA32 options to not use enhanced instructions.
https://msdn.microsoft.com/en-us/library/7t5yh4fd(v=vs.140).aspx

Update the default options of VS2012 & VS2013 tool chain IA32 arch in
BaseTools\Conf\tools_def.template to make sure the generated Quark
compatibility driver.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Liming Gao <liming.gao@intel.com>
Reviewed-by: Michael Kinney <michael.d.kinney@intel.com>

git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@18230 6f19259b-4bc3-4df7-8a09-765794883524
2015-08-18 02:52:32 +00:00
Ard Biesheuvel
70bd69912a BaseTools GCC: prevent unaligned memory accesses on ARM GCC 4.6
In GCC 4.7, a feature was added to the ARM backend that allows
unaligned loads and stores to be emitted. Since it is enabled by
default on ARMv6 and later CPUs, and since such code is not suitable
in our case (i.e., bare metal code), we must disable it by passing the
-mno-unaligned-access option if we are using GCC 4.7 or later.

However, this particular feature and its enabling by default have been
backported to version 4.6 by Linaro. Since the Linaro toolchains are
widely used for ARM development, and also shipped by distros such as
Ubuntu, we should disable the feature on version 4.6 as well.
Unfortunately, since the upstream version does not support the feature,
it also does not understand the -mno-unaligned-access option.

Since GCC sets the builtin #define __ARM_FEATURE_UNALIGNED to 1 when
-munaligned-access is in effect, we can force the build to fail in this
case by passing -D__ARM_FEATURE_UNALIGNED=0 on the GCC command line.

This will produce the following error message:

  <command-line>:0:0: error: "__ARM_FEATURE_UNALIGNED" redefined [-Werror]
  <built-in>:0:0: note: this is the location of the previous definition

and terminate the build.

This patch may cause some existing builds to fail, but they will be
builds that were previously at risk of unexpected runtime exceptions.
Those builds can also easily be switched to the GCC47 profile instead,
generating safe binaries.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Reviewed-by: Leif Lindholm <leif.lindholm@linaro.org>

git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@18228 6f19259b-4bc3-4df7-8a09-765794883524
2015-08-17 12:02:50 +00:00
Ard Biesheuvel
26ecc55c02 BaseTools IA32/X64: prevent .eh_frame sections from being generated
After the recent GNU linker script changes, the following warning is
emitted many times during the OVMF build:

BFD: <...>: warning: Empty loadable segment detected, is this intentional ?

This is caused by the fact that, now that the section layout has changed
somewhat, the .eh_frame section is assigned an ELF segment of its own,
which ends up with no contents at all after we strip the .eh_frame
section from the output. (Note that the program headers that contain the
segment information are completely irrelevant to us since the PE/COFF
conversion does not rely on them.)

Since we only retain the .eh_frame data for external debugging, and not
for things like stack unwinding or generating backtraces at runtime, we
can remedy the situation by passing -fno-asynchronous-unwind-tables on
the GCC command line. This option instructs the compiler to emit the
unwind data into a debug section called .debug_frame instead of into
.eh_frame.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Reviewed-by: Laszlo Ersek <lersek@redhat.com>
Build-tested-by: Laszlo Ersek <lersek@redhat.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>

git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@18217 6f19259b-4bc3-4df7-8a09-765794883524
2015-08-13 06:02:00 +00:00
Ard Biesheuvel
64ffb95441 BaseTools: remove ARMGCC and ARMLINUXGCC toolchains
The ARMGCC and ARMLINUXGCC toolchains are specific to the ARM and
AARCH64 architectures, and overlap with the toolchain configuration
that is provided by the GCC44 - GCC49 toolchains, which are defined
for all architectures.

To reduce the maintenance burden, and make it easier to keep these
different architectures aligned, remove the ARMGCC and ARMLINUXGCC
toolchains entirely.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Reviewed-by: Leif Lindholm <leif.lindholm@linaro.org>
Reviewed-by: Liming Gao <liming.gao@intel.com>

git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@18212 6f19259b-4bc3-4df7-8a09-765794883524
2015-08-12 05:25:48 +00:00
Ard Biesheuvel
ad2a2e5623 BaseTools: add ARCH detection for AARCH64 and ARM
Add auto detection for the ARCH variable for AARCH64 and ARM
systems. This allows us to do a native build of the BaseTools
without the need to set ARCH externally.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Reviewed-by: Liming Gao <liming.gao@intel.com>

git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@18206 6f19259b-4bc3-4df7-8a09-765794883524
2015-08-12 05:22:49 +00:00
Qiu Shumin
9979bab783 BaseTools/GenFds: Fix 'NoneType' object is not iterable error.
When adding section VERSION in FDF file, for example:
FILE FREEFORM = PCD(gEfiIntelFrameworkModulePkgTokenSpaceGuid.PcdLogoFile) {
    SECTION RAW = MdeModulePkg/Logo/Logo.bmp
    SECTION UI = "Logo"
    SECTION VERSION = "0001"
  }
GenFds will report the following error:
Traceback (most recent call last):
  File "GenFds.py", line 276, in main
  File "GenFds.py", line 391, in GenFd
  File "Fd.py", line 93, in GenFd
  File "Region.py", line 106, in AddToBuffer
  File "Fv.py", line 114, in AddToBuffer
  File "FfsFileStatement.py", line 117, in GenFfs
  File "VerSection.py", line 80, in GenSection
  File "GenFdsGlobalVariable.py", line 401, in GenerateSection
TypeError: 'NoneType' object is not iterable.
We found in GenFdsGlobalVariable.py line 401 'list' requires a iteralbe object as parameter while the 'Input' is None.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Qiu Shumin <shumin.qiu@intel.com>
Reviewed-by: Yingke Liu <yingke.d.liu@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>

git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@18205 6f19259b-4bc3-4df7-8a09-765794883524
2015-08-12 01:27:31 +00:00
Ard Biesheuvel
5c02fc49ae BaseTools: add CLANG35 toolchain with AARCH64 support
This adds support for building the AARCH64 platforms using the
Clang compiler and assembler combined with the GNU (cross-)linker.

The chosen name CLANG35 is based on version 3.5 being the oldest
supported version, but no issues are known that should prevent its
use with any later version.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Reviewed-by: Leif Lindholm <leif.lindholm@linaro.org>
Tested-by: Leif Lindholm <leif.lindholm@linaro.org>
Reviewed-by: Liming Gao <liming.gao@intel.com>

git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@18198 6f19259b-4bc3-4df7-8a09-765794883524
2015-08-10 07:55:26 +00:00
Ard Biesheuvel
24d610e677 BaseTools/GenFw: allow AArch64 tiny and small code model relocations
The AArch64 small C model makes extensive use of ADRP/ADD and
ADRP/{LDR,STR} pairs to emit PC-relative symbol references with
a +/- 4 GB range. Since the relocation pair splits the relative
offset into a relative page offset and an absolute offset into
a 4 KB page, we need to take extra care to ensure that the target
of the relocation preserves its alignment relative to a 4 KB
alignment boundary.

Also, due to a problem with the --emit-relocs GNU ld option, where
it does not recalculate the addends for section relative relocations,
the only way to guarantee correct code is by requiring the relative
section offset to be equal in the ELF and PE/COFF versions of the
binary. This affects both the 'tiny' and 'small' GCC code models.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Reviewed-by: Leif Lindholm <leif.lindholm@linaro.org>
Tested-by: Leif Lindholm <leif.lindholm@linaro.org>
Reviewed-by: Liming Gao <liming.gao@intel.com>

git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@18197 6f19259b-4bc3-4df7-8a09-765794883524
2015-08-10 07:55:18 +00:00
Yingke Liu
55668ca245 BaseTools/Trim: Fixed a bug that cannot trim long values
The long value substitution must move to the front of
HEX substitution, and updated build_rule to add --trim-long

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Yingke Liu <yingke.d.liu@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>

git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@18170 6f19259b-4bc3-4df7-8a09-765794883524
2015-08-06 08:05:59 +00:00
Ard Biesheuvel
c4a59af8c1 BaseTools IA32/X64: Use GccBase.lds instead of gcc*-ld-script
These scripts all now have the same contents, so we only need to use
GccBase.lds. Therefore we can delete gcc-4K-align-ld-script,
gcc4.4-ld-script and gcc4.9-ld-script.

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>
Tested-by: Liming Gao <liming.gao@intel.com>

git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@18142 6f19259b-4bc3-4df7-8a09-765794883524
2015-08-03 08:23:59 +00:00
Ard Biesheuvel
a7ab160209 BaseTools AARCH64: remove incremental linker script for 64K alignment
Now that we moved all users to the unified GCC linker script, remove
the old 64 KB incremental linker script for AARCH64 since it is now
unused.

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: Leif Lindholm <leif.lindholm@linaro.org>
Tested-by: Leif Lindholm <leif.lindholm@linaro.org>

git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@18141 6f19259b-4bc3-4df7-8a09-765794883524
2015-08-03 08:23:36 +00:00
Ard Biesheuvel
6b3720e438 BaseTools AARCH64: move to unified GCC linker script
Drop the GCC AARCH64 specific linker script and use the new
unified one instead.

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: Leif Lindholm <leif.lindholm@linaro.org>
Tested-by: Leif Lindholm <leif.lindholm@linaro.org>

git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@18138 6f19259b-4bc3-4df7-8a09-765794883524
2015-08-03 08:23:05 +00:00
Ard Biesheuvel
233bd25b00 BaseTools GCC: move AutoGen.obj contents to .text section
All AutoGen.obj files consist of global GUID definitions, fixed
and patchable PCDs and other data that is essentially read-only at
runtime but has not been declared as such for various reasons.

By moving these contents to .text we achieve two things:
- global GUIDs and other data items which must be constant for correct
  program operation can no longer be modified, for instance, when
  running a DXE_RUNTIME_MODULE binary under the OS with the Properties
  Table feature for memory protection enabled;
- the .data section becomes smaller, and may be dropped completely for
  many XIP modules, which reduces wasted FV space if the PE/COFF section
  alignment is large.

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>
Tested-by: Liming Gao <liming.gao@intel.com>
Tested-by: Leif Lindholm <leif.lindholm@linaro.org>

git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@18137 6f19259b-4bc3-4df7-8a09-765794883524
2015-08-03 08:22:50 +00:00
Ard Biesheuvel
56948ba190 BaseTools GCC: align start of .data to .text alignment
Now that GenFw honors the ELF section alignment when placing the
PE/COFF sections in the output, the start of the PE/COFF version of
.data will be aligned to the alignment of .text if its alignment is
higher than the default. So duplicate this behavior in the ELF output,
this will make the memory layout of the PE/COFF binary match the
layout of the ELF version more closely.

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>
Tested-by: Liming Gao <liming.gao@intel.com>
Tested-by: Leif Lindholm <leif.lindholm@linaro.org>

git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@18136 6f19259b-4bc3-4df7-8a09-765794883524
2015-08-03 08:22:39 +00:00
Ard Biesheuvel
efe690cab3 BaseTools GCC: add unified GCC linker script for all archs and versions
This unifies all GCC linker scripts into a single parametrised GCC
linker script that can be used for all GCC versions and architectures.

The two parameters that can be set on the linker command line are:
- PECOFF_HEADER_SIZE, this is a build time property of GenFw, but
  its value is different between 32-bit and 64-bit;
- common-page-size, this can be set using -z on the ld command line,
  and controls the value of the COMMONPAGESIZE constant when used in
  a linker script. This value is used for the minimum section alignment.

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>
Tested-by: Liming Gao <liming.gao@intel.com>
Tested-by: Leif Lindholm <leif.lindholm@linaro.org>

git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@18135 6f19259b-4bc3-4df7-8a09-765794883524
2015-08-03 08:22:28 +00:00
Ard Biesheuvel
c28a4ab663 BaseTools IA32/X64: get header size and alignment from ld commandline
Instead of hardcoding the values for the PE/COFF header size and the
section alignment, set them on the linker command line. This factors
out these values from the various linker scripts, which will allow us
to unify them in a subsequent patch.

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>
Tested-by: Liming Gao <liming.gao@intel.com>

git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@18134 6f19259b-4bc3-4df7-8a09-765794883524
2015-08-03 08:22:16 +00:00
Ard Biesheuvel
25e63063e3 BaseTools IA32/X64: move .got contents to the PE/COFF .text section
Move the .got contents to the PE/COFF .text section. This should be
a no-op, since we typically don't generate position independent code
(i.e., using -fPIC). But since the GOT contains variable addresses that
are updated at relocation time only, its contents are best kept in .text
to prevent them from being overwritten inadvertently.

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>
Tested-by: Liming Gao <liming.gao@intel.com>

git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@18133 6f19259b-4bc3-4df7-8a09-765794883524
2015-08-03 08:22:00 +00:00
Ard Biesheuvel
cdeb268cb0 BaseTools IA32/X64: drop redundant alignment from linker script
There is no need to pad out the end of a section of the start of
the following section is aligned to the same value. So drop the
redundant ALIGN() statements.

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>
Tested-by: Liming Gao <liming.gao@intel.com>

git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@18132 6f19259b-4bc3-4df7-8a09-765794883524
2015-08-03 08:21:49 +00:00
Ard Biesheuvel
fa1d29d5cc BaseTools IA32/X64: move .rodata to PE/COFF .text section
The .rodata ELF section contains constant non-executable data that
should never be modified by the program itself. Since the risk of
inadvertent modification is typically higher than the risk of
inadvertent execution, it makes sense to put this data in the
R-X .text section rather than in the RW- .data section.
So move it there.

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>
Tested-by: Liming Gao <liming.gao@intel.com>

git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@18131 6f19259b-4bc3-4df7-8a09-765794883524
2015-08-03 08:21:39 +00:00
Ard Biesheuvel
e90ba6e1ea BaseTools IA32/X64: remove NOP padding from X86/IA32 GCC linker scripts
The NOP padding in the GCC linker scripts ensures that all empty
regions in the ELF binary are filled with x86 NOP instructions.

There is no upside to doing this: if the CPU ends up executing these
instructions, we have little hope of resuming normal execution of the
program anyway. And having NOP slides in memory only makes it easier
for attackers to launch exploits. So remove them.

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>
Tested-by: Liming Gao <liming.gao@intel.com>

git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@18130 6f19259b-4bc3-4df7-8a09-765794883524
2015-08-03 08:21:28 +00:00
Yingke Liu
aaf8aa7b2c BaseTools: Add a keyword FvNameString in FDF
The keyword with value TRUE OR FALSE is used to
indicate whether the FV UI name is included in
FV EXT header as a entry or not.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Yingke Liu <yingke.d.liu@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>

git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@18090 6f19259b-4bc3-4df7-8a09-765794883524
2015-07-28 05:53:08 +00:00
Ard Biesheuvel
47746688e1 BaseTools/GenFv: optimize away redundant padding
To prevent double padding of XIP modules leading to excessive
waste of FV space, try to adjust existing padding rather than
adding more.

Instead of adding a pad file to the FV to line up an FFS file that
itself may contain padding to line up the payload, try to find a
dedicated padding section inside the FFS, and reduce its size to
place all subsequent aligned FFS section at their respective minimum
alignments.

When using 4 KB section alignment (which is required on AARCH64 in
some cases), this will save 4 KB for each XIP module.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Reviewed-by: Liming Gao <liming.gao@intel.com>
Reviewed-by: Yingke Liu <yingke.d.liu@intel.com>

git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@18080 6f19259b-4bc3-4df7-8a09-765794883524
2015-07-27 13:50:30 +00:00
Ard Biesheuvel
46d0f3f871 BaseTools: use GUID identifiable section for FFS alignment padding
Instead of using an anonymous section of type EFI_SECTION_RAW to pad
out the first aligned FFS section to its required alignment, use a
section with a dedicated GUID if the size of the padding permits it.

This allows for more flexibility when placing such FFS images in a
firmware volume, because we will now be able to remove padding rather
than add more, by shrinking the size of this section instead of
padding out the start of the FFS image to file alignment.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Reviewed-by: Liming Gao <liming.gao@intel.com>
Reviewed-by: Yingke Liu <yingke.d.liu@intel.com>

git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@18079 6f19259b-4bc3-4df7-8a09-765794883524
2015-07-27 13:50:19 +00:00
Ard Biesheuvel
02a5421f57 BaseTools/GenFw: move PE/COFF header closer to payload
The secondary header (not the DOS header) of a PE/COFF binary
does not reside at a fixed offset. Instead, its offset into the
file is recorded in the DOS header.

This gives us the flexibility to move it, along with the section
headers, to right before the first section if there is considerable
space before it, i.e., when the PE/COFF file alignment is substantially
larger than the size of the header.

Since the PE/COFF to TE conversion replaces everything before the
section headers with a simple TE header, this change removes all
the header padding from such images, leading to smaller files.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Reviewed-by: Liming Gao <liming.gao@intel.com>
Reviewed-by: Yingke Liu <yingke.d.liu@intel.com>

git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@18078 6f19259b-4bc3-4df7-8a09-765794883524
2015-07-27 13:50:09 +00:00
Ard Biesheuvel
0192b71ca3 BaseTools/GenFw: move .debug contents to .data to save space
In order to reduce the memory footprint of PE/COFF images when
using large values for the PE/COFF section alignment, move the
contents of the .debug section to data, and point the debug data
directory entry to it. This allows us to drop the .debug section
entirely, as well as any associated rounding. Since our .debug
section only contains the filename of the ELF input image, the
penalty of keeping this data in a non-discardable section is
negligible.

Note that the PE/COFF spec v6.3 explicitly mentions that this is
allowed.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Reviewed-by: Liming Gao <liming.gao@intel.com>
Reviewed-by: Yingke Liu <yingke.d.liu@intel.com>

git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@18077 6f19259b-4bc3-4df7-8a09-765794883524
2015-07-27 13:49:54 +00:00
Scott Duplichan
41ab153f85 BaseTools: Make AutoGen.h array declaration match AutoGen.c definition
When a quoted string is used as initialization data in a DEC file PCD
entry, the PCD data type in that entry must be VOID*. The created
AutoGen.c defines the PCD data as UINT8[] or UINT16[], depending on
the string type. The created AutoGen.h, however, declares the PCD data
as VOID*. For a standard compile/link, this works because AutoGen.c
doesn't include AutoGen.h. But when GCC LTO is used, the link time
code generation detects the mismatch and the build fails. This
change makes the AutoGen.h PCD data declaration match the AutoGen.c
definition.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Scott Duplichan <scott@notabs.org>
Reviewed-by: Yingke Liu <yingke.d.liu@intel.com>
Signed-off-by: Laszlo Ersek <lersek@redhat.com>

git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@18058 6f19259b-4bc3-4df7-8a09-765794883524
2015-07-26 08:04:10 +00:00
Ard Biesheuvel
2cec9ccde7 BaseTools/Common: fix heap overrun in ReadMemoryFileLine ()
ReadMemoryFileLine () appends a NULL character to the string
it returns, but it failed to account for it in the allocation.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Reviewed-by: Yingke Liu <yingke.d.liu@intel.com>
Signed-off-by: Laszlo Ersek <lersek@redhat.com>

git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@18047 6f19259b-4bc3-4df7-8a09-765794883524
2015-07-26 08:03:15 +00:00
Yingke Liu
547a650793 BaseTools: Fixed incorrect alignment bug.
The alignment in rule section is shared by modules to generate FFS,
it should not be modified by certain module.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Yingke Liu <yingke.d.liu@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>

git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@18016 6f19259b-4bc3-4df7-8a09-765794883524
2015-07-16 00:56:14 +00:00
Ard Biesheuvel
2c69d6ffee BaseTools/PeCoffLib: handle EFI_IMAGE_REL_BASED_DIR64 in generic code
Relocations of type EFI_IMAGE_REL_BASED_DIR64 are handled in exactly
the same way on all 64-bit machine types (IPF, X64 and AARCH64).
So move the handling of this type to the generic part of the relocation
routine PeCoffLoaderRelocateImage ().

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Reviewed-by: Liming Gao <liming.gao@intel.com>
Reviewed-by: Yingke Liu <yingke.d.liu@intel.com>

git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@17942 6f19259b-4bc3-4df7-8a09-765794883524
2015-07-14 08:15:28 +00:00
Liming Gao
2a618e50b5 BaseTools: Fix BinWrappers LzmaF86Compress Script
LzmaF86Compress Script should use $arg to arg value.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Liming Gao <liming.gao@intel.com>
Reviewed-by: Laszlo Ersek <lersek@redhat.com>

git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@17909 6f19259b-4bc3-4df7-8a09-765794883524
2015-07-10 02:51:38 +00:00
Leif Lindholm
28e80befa4 BaseTools: aarch64: add -fno-asynchronous-unwind-tables to gcc cflags
Some toolchains, at least Fedora GCC, generate inline unwind tables in
object files. These confuses GenFw to no end, leading to build failures:
  GenFw: ERROR 3000: Invalid WriteSections64(): ...
         unsupported ELF EM_AARCH64 relocation 0x105.
  GenFw: ERROR 3000: Invalid WriteSections64(): ...
         unsupported ELF EM_AARCH64 relocation 0x0.

I am aware of no current use of these tables, so explicitly disable
their generation for aarch64.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Leif Lindholm <leif.lindholm@linaro.org>
Tested-by: Wei Huang <wei@redhat.com>
Reviewed-by: Olivier Martin <olivier.martin@arm.com>



git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@17905 6f19259b-4bc3-4df7-8a09-765794883524
2015-07-09 16:29:44 +00:00
Hess Chen
fe90f4836a BaseTools/Upt: Add a BOM check for UNI file and fix some help message error
Add a BOM check for UNI file and fix some help message error

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Hess Chen <hesheng.chen@intel.com>
Reviewed-by: YangX Li <yangx.li@intel.com>

git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@17876 6f19259b-4bc3-4df7-8a09-765794883524
2015-07-08 05:43:22 +00:00
Hess Chen
2549514f01 BaseTools/Upt: Update UPT to ignore "!include" statement when parsing UNI file
Update UPT to ignore "!include" statement when parsing UNI file

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Hess Chen <hesheng.chen@intel.com>
Reviewed-by: YangX Li <yangx.li@intel.com>

git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@17872 6f19259b-4bc3-4df7-8a09-765794883524
2015-07-08 03:00:17 +00:00
Bruce Cran
5ddccf34c4 BaseTools: Fix build on FreeBSD and allow use of non-gcc system compiler
On FreeBSD, uuid.h is in /usr/include, not /usr/include/uuid.

Fix some errors when building using clang caused by self-assignment: the
preferred way to 'use' a variable is '(void)x;', not 'x = x;'.

Where the system provides $(CC) etc. by default, don't override it to be gcc.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Bruce Cran <bruce@cran.org.uk>
Reviewed-by: Yingke Liu <yingke.d.liu@intel.com>

git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@17866 6f19259b-4bc3-4df7-8a09-765794883524
2015-07-08 01:06:25 +00:00
Ard Biesheuvel
64a910f3da BaseTools: AArch64: use explicit linker scripts
Instead of relying on the builtin linker script of GNU ld, which
may vary based on binutils version (which is not tightly coupled to
the GCC version) and linker command line options, introduce a linker
script for AArch64 to be used by all GCC/binutils versions.

The script is laid out such that two ELF sections .text and .data are
created that map onto the PE/COFF with the same names. By aligning
.data to the minimum alignment of .text, and by not adding any
additional padding -which is what LD's builtin linker script does- the
relative offset between .text and .data is retained after the PE/COFF
conversion. This should prevent problems with debuggers and other
tooling that are ELF based.

Also provided is an overlay linker script that increases the alignment
of .text and .data to 64 KB. This is intended for DXE_RUNTIME_DRIVER
modules, to make them compatible with the newly introduced
Properties Table feature.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Reviewed-by: Olivier Martin <Olivier.Martin@arm.com>

git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@17824 6f19259b-4bc3-4df7-8a09-765794883524
2015-07-06 15:57:50 +00:00
Bob Feng
0b5203bd84 BaseTools/Build: Fix the range expression evaluation error.
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: "Bob Feng" <bob.c.feng@intel.com>
Reviewed-by: "Chen, Hesheng" <hesheng.chen@intel.com>
Reviewed-by: "Liu, Yingke D" <yingke.d.liu@intel.com>

git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@17822 6f19259b-4bc3-4df7-8a09-765794883524
2015-07-06 00:55:15 +00:00
Jordan Justen
288ed59079 Revert tree to r17801
Revert r17802 "BaseTools: AArch64: use explicit linker scripts"
Revert r17803 "ArmVirtPkg: build runtime drivers with 64 KB section alignment"
Revert r17804 "IntelFrameworkModulePkg: AcpiS3SaveDxe: prepare for End-of-Dxe callback"
Revert r17805 "IntelFrameworkModulePkg: AcpiS3SaveDxe: call S3Ready() at End-of-Dxe"
Revert r17806 "OvmfPkg: AcpiS3SaveDxe: prepare for End-of-Dxe callback"

Requested-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Jordan Justen <jordan.l.justen@intel.com>

git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@17807 6f19259b-4bc3-4df7-8a09-765794883524
2015-07-02 07:23:33 +00:00
Ard Biesheuvel
f0dbe9fa0a BaseTools: AArch64: use explicit linker scripts
Instead of relying on the builtin linker script of GNU ld, which
may vary based on binutils version (which is not tightly coupled to
the GCC version) and linker command line options, introduce a linker
script for AArch64 to be used by all GCC/binutils versions.

The script is laid out such that two ELF sections .text and .data are
created that map onto the PE/COFF with the same names. By aligning
.data to the minimum alignment of .text, and by not adding any
additional padding -which is what LD's builtin linker script does- the
relative offset between .text and .data is retained after the PE/COFF
conversion. This should prevent problems with debuggers and other
tooling that are ELF based.

Also provided is an overlay linker script that increases the alignment
of .text and .data to 64 KB. This is intended for DXE_RUNTIME_DRIVER
modules, to make them compatible with the newly introduced
Properties Table feature.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>

git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@17802 6f19259b-4bc3-4df7-8a09-765794883524
2015-07-02 06:36:00 +00:00
Hess Chen
d77cc2063d BaseTools/Ecc: Fix a bug when checking copyright format
Fix a bug to only checking the copyright listed in config.ini file.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Hess Chen <hesheng.chen@intel.com>
Reviewed-by: YangX Li <yangx.li@intel.com>

git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@17801 6f19259b-4bc3-4df7-8a09-765794883524
2015-07-02 06:05:26 +00:00
Hess Chen
fa3a21569b BaseTools/Ecc: Fix a bug to get correct member variable
Fix a bug to get correct member variable by ignoring 'OPTIONAL' modifier

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Hess Chen <hesheng.chen@intel.com>
Reviewed-by: YangX Li <yangx.li@intel.com>

git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@17800 6f19259b-4bc3-4df7-8a09-765794883524
2015-07-02 06:02:42 +00:00
Yingke Liu
5015bee226 BaseTools: Fixed BuildOptions bug.
The BuildOptions in an INF should also follow override rule: If '==' is used, all previous options are overridden.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Yingke Liu <yingke.d.liu@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>

git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@17796 6f19259b-4bc3-4df7-8a09-765794883524
2015-07-02 03:42:34 +00:00
Samer El-Haj-Mahmoud
7b6dad328f BaseTools: Add missing EfiPersistentMemory to EFI_MEMORY_TYPE
To sync with the EFI_MEMROYT_TYPE definition in MdePkg

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Samer El-Haj-Mahmoud <samer.el-haj-mahmoud@hp.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>

git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@17792 6f19259b-4bc3-4df7-8a09-765794883524
2015-07-01 15:21:03 +00:00
Yingke Liu
a1fe73a1c7 BaseTools: Checked return value of malloc for EfiCompress.
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Yingke Liu <yingke.d.liu@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>

git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@17775 6f19259b-4bc3-4df7-8a09-765794883524
2015-07-01 05:16:46 +00:00
Yingke Liu
b40286bbec BaseTools: Do not create an empty file if Rsa2048Sha256Sign was failed.
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Yingke Liu <yingke.d.liu@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>

git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@17774 6f19259b-4bc3-4df7-8a09-765794883524
2015-07-01 05:14:28 +00:00
Ard Biesheuvel
203beadc12 There needs to be a space between the output section name and the colon, i.e.,
.text : ALIGN(0x1000)
       ^

Fix this for all output sections

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Reviewed-by: Liming Gao <liming.gao@intel.com>

git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@17748 6f19259b-4bc3-4df7-8a09-765794883524
2015-07-01 01:04:28 +00:00
Yingke Liu
16e3d2e89f BaseTools: Added GCC ld script to support 4K alignment.
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Yingke Liu <yingke.d.liu@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>

git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@17728 6f19259b-4bc3-4df7-8a09-765794883524
2015-06-29 03:20:25 +00:00
Ard Biesheuvel
54b1b57a59 BaseTools: Update GenFw to support 4K alignment.
Get maximum section alignment from each ELF section, and this alignment is used to create PE header.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Reviewed-by: Liming Gao <liming.gao@intel.com>

git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@17727 6f19259b-4bc3-4df7-8a09-765794883524
2015-06-29 03:17:34 +00:00
Yingke Liu
bbb6369486 BaseTools: Updated tool_def to support 4K alignment.
Replace '/MERGE:.data=.text /MERGE:.rdata=.text' with /MERGE:.rdata=.data

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Yingke Liu <yingke.d.liu@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>

git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@17726 6f19259b-4bc3-4df7-8a09-765794883524
2015-06-29 03:14:33 +00:00
Yingke Liu
061eb5c31d BaseTools: Update IASL download link and remove specific version info.
The version of IASL compiler in the tools_def.template file no longer exists on the acpica.org site.
Update download link and remove the specific version info from the tools_def.template file.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Yingke Liu <yingke.d.liu@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>

git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@17725 6f19259b-4bc3-4df7-8a09-765794883524
2015-06-29 03:10:25 +00:00
Hess Chen
83461d2ce8 BaseTools/Ecc: Fix a bug of determining boolean variable incorrectly
Fix a bug of determining boolean variable incorrectly in C parser

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Hess Chen <hesheng.chen@intel.com>
Reviewed-by: YangX Li <yangx.li@intel.com>

git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@17711 6f19259b-4bc3-4df7-8a09-765794883524
2015-06-25 08:10:51 +00:00
Hess Chen
e84d2b709b BaseTools/Ecc: Fix two bugs for the checkpoint of GUID
a) Fix a bug of displaying wrong format of a GUID
b) Fix a bug of setting wrong exception keyword

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Hess Chen <hesheng.chen@intel.com>
Reviewed-by: YangX Li <yangx.li@intel.com>

git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@17710 6f19259b-4bc3-4df7-8a09-765794883524
2015-06-25 08:08:55 +00:00
Hess Chen
ce2f594006 BaseTools/Ecc: Fix a bug in parser
Fix a bug to not break when parsing a macro and not find its value

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Hess Chen <hesheng.chen@intel.com>
Reviewed-by: YangX Li <yangx.li@intel.com>

git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@17709 6f19259b-4bc3-4df7-8a09-765794883524
2015-06-25 08:05:42 +00:00
Hess Chen
14239f6603 BaseTools/Ecc: Add a checkpoint for invalid DEC file.
Add a checkpoint to check whether a header file in 'include' directory is defined in DEC file

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Hess Chen <hesheng.chen@intel.com>
Reviewed-by: YangX Li <yangx.li@intel.com>

git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@17708 6f19259b-4bc3-4df7-8a09-765794883524
2015-06-25 08:01:59 +00:00
Hess Chen
b66592d8eb BaseTools/Ecc: Add a checkpoint for invalid PCD info.
Add a checkpoint to check invalid format of @ValidRange, @ValidList and @Expression for a PCD

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Hess Chen <hesheng.chen@intel.com>
Reviewed-by: YangX Li <yangx.li@intel.com>

git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@17707 6f19259b-4bc3-4df7-8a09-765794883524
2015-06-25 07:59:16 +00:00
Hess Chen
1b2467c58f BaseTools/Ecc: Add a checkpoint for invalid UNI file.
Add a checkpoint to check that the UNI file which is associated by INF or DEC file need define the prompt and help information.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Hess Chen <hesheng.chen@intel.com>
Reviewed-by: YangX Li <yangx.li@intel.com>

git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@17706 6f19259b-4bc3-4df7-8a09-765794883524
2015-06-25 07:50:55 +00:00
Hess Chen
8c3f9b4e3c BaseTools/Ecc: Add a Configuration item
Add a ‘SkipFileList’ in config.ini to exclude the files not be scanned.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Hess Chen <hesheng.chen@intel.com>
Reviewed-by: YangX Li <yangx.li@intel.com>

git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@17705 6f19259b-4bc3-4df7-8a09-765794883524
2015-06-25 07:43:03 +00:00
Jordan Justen
156d6d65a5 BaseTools/Tests: Verify supported UTF-8 data is allowed
We test a simple case of UTF-8 with and without the UTF-8 BOM.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Jordan Justen <jordan.l.justen@intel.com>
Reviewed-by: Laszlo Ersek <lersek@redhat.com>
Reviewed-by: Michael D Kinney <michael.d.kinney@intel.com>
Reviewed-by: Yingke Liu <yingke.d.liu@intel.com>

git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@17699 6f19259b-4bc3-4df7-8a09-765794883524
2015-06-23 23:34:43 +00:00
Jordan Justen
8fb5a0cae3 BaseTools/Tests: Verify unsupported UTF-8 data is rejected
Surrogate pair characters can be encoded in UTF-8 files, but they are
not valid UCS-2 characters.

For example, this python interpreter code:
>>> import codecs
>>> codecs.encode(u'\ud801', 'utf-8')
'\xed\xa0\x81'

But, the range of 0xd800 - 0xdfff should be rejected as unicode code
points because they are reserved for the surrogate pair usage in
UTF-16 files.

We test that this case is rejected for UTF-8 with and without the
UTF-8 BOM.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Jordan Justen <jordan.l.justen@intel.com>
Reviewed-by: Laszlo Ersek <lersek@redhat.com>
Reviewed-by: Michael D Kinney <michael.d.kinney@intel.com>
Reviewed-by: Yingke Liu <yingke.d.liu@intel.com>

git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@17698 6f19259b-4bc3-4df7-8a09-765794883524
2015-06-23 23:34:38 +00:00
Jordan Justen
15c3a04cd0 BaseTools/Tests: Verify 32-bit UTF-8 chars are rejected
Since UTF-8 .uni unicode files might contain strings with unicode code
points larger than 16-bits, and UEFI only supports UCS-2 characters,
we need to make sure that BaseTools rejects these characters in UTF-8
.uni source files.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Jordan Justen <jordan.l.justen@intel.com>
Reviewed-by: Michael D Kinney <michael.d.kinney@intel.com>
Reviewed-by: Yingke Liu <yingke.d.liu@intel.com>

git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@17697 6f19259b-4bc3-4df7-8a09-765794883524
2015-06-23 23:34:33 +00:00
Jordan Justen
be264422c9 BaseTools/UniClassObject: Support UTF-8 string data in .uni files
This allows .uni input files to be encoded with UTF-8. Today, we only
support UTF-16 encoding.

The strings are still converted to UCS-2 data for use in EDK II
modules. (This is the only unicode character format supported by UEFI
and EDK II.)

Although UTF-8 would allow any UCS-4 character to be present in the
source file, we restrict the entire file to the UCS-2 range.
(Including comments.) This allows the files to be converted to UTF-16
if needed.

v2:
 * Drop .utf8 extension. Use .uni file for UTF-8 data (mdkinney)
 * Merge in 'BaseTools/UniClassObject: Verify string data is 16-bit'
   commit

v3:
 * Restrict the entire file's characters (including comments) to the
   UCS-2 range in addition to string data. (mdkinney)

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Jordan Justen <jordan.l.justen@intel.com>
Reviewed-by: Michael D Kinney <michael.d.kinney@intel.com>
Reviewed-by: Yingke Liu <yingke.d.liu@intel.com>

git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@17696 6f19259b-4bc3-4df7-8a09-765794883524
2015-06-23 23:34:28 +00:00
Jordan Justen
dadfab5b23 BaseTools/Tests: Verify unsupported UTF-16 are rejected
Supplementary Plane characters can exist in UTF-16 files,
but they are not valid UCS-2 characters.

For example, this python interpreter code:
>>> import codecs
>>> codecs.encode(u'\U00010300', 'utf-16')
'\xff\xfe\x00\xd8\x00\xdf'

Therefore the UCS-4 0x00010300 character is encoded as two
16-bit numbers (0xd800 0xdf00) in a little endian UTF-16
file.

For more information, see:
http://en.wikipedia.org/wiki/UTF-16#U.2B10000_to_U.2B10FFFF

This test checks to make sure that BaseTools will reject these
characters in UTF-16 files.

The range of 0xd800 - 0xdfff should also be rejected as unicode code
points because they are reserved for the surrogate pair usage in
UTF-16 files.

This test was fixed by the previous commit:
"BaseTools/UniClassObject: Verify valid UCS-2 chars in UTF-16 .uni files"

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Jordan Justen <jordan.l.justen@intel.com>
Reviewed-by: Laszlo Ersek <lersek@redhat.com>
Reviewed-by: Michael D Kinney <michael.d.kinney@intel.com>
Reviewed-by: Yingke Liu <yingke.d.liu@intel.com>

git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@17695 6f19259b-4bc3-4df7-8a09-765794883524
2015-06-23 23:34:22 +00:00
Jordan Justen
d80e451b18 BaseTools/UniClassObject: Verify valid UCS-2 chars in UTF-16 .uni files
Supplementary Plane characters can exist in UTF-16 files,
but they are not valid UCS-2 characters.

For example, refer to this python interpreter code:
>>> import codecs
>>> codecs.encode(u'\U00010300', 'utf-16')
'\xff\xfe\x00\xd8\x00\xdf'

Therefore the UCS-4 0x00010300 character is encoded as two
16-bit numbers (0xd800 0xdf00) in a little endian UTF-16
file.

For more information, see:
http://en.wikipedia.org/wiki/UTF-16#U.2B10000_to_U.2B10FFFF

This means that our current BaseTools code could be allowing
unsupported UTF-16 characters be used. To fix this, we decode the file
using python's utf-16 decode support. Then we verify that each
character's code point is 0xffff or less.

v3:
 * Based on Mike Kinney's feedback, we now read the whole file and
   verify up-front that it contains valid UCS-2 characters. Thanks
   also to Laszlo Ersek for pointing out the Supplementary Plane
   characters.

v4:
 * Reject code points in 0xd800-0xdfff range since they are reserved
   for UTF-16 surrogate pairs. (lersek)

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Jordan Justen <jordan.l.justen@intel.com>
Reviewed-by: Laszlo Ersek <lersek@redhat.com>
Reviewed-by: Michael D Kinney <michael.d.kinney@intel.com>
Reviewed-by: Yingke Liu <yingke.d.liu@intel.com>

git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@17694 6f19259b-4bc3-4df7-8a09-765794883524
2015-06-23 23:34:19 +00:00
Jordan Justen
df91e0f90a BaseTools/Tests: Add unit test for AutoGen.UniClassObject
This verifies that a UTF-16 data (with BOM) .uni file is successfully
read.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Jordan Justen <jordan.l.justen@intel.com>
Reviewed-by: Michael D Kinney <michael.d.kinney@intel.com>
Reviewed-by: Yingke Liu <yingke.d.liu@intel.com>

git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@17693 6f19259b-4bc3-4df7-8a09-765794883524
2015-06-23 23:34:14 +00:00
Jordan Justen
183ca96455 BaseTools/EdkLogger: Support unit tests with a SILENT log level
This allows the unit tests to run without the errors logging to the
screen.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Jordan Justen <jordan.l.justen@intel.com>
Reviewed-by: Michael D Kinney <michael.d.kinney@intel.com>
Reviewed-by: Yingke Liu <yingke.d.liu@intel.com>

git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@17692 6f19259b-4bc3-4df7-8a09-765794883524
2015-06-23 23:34:09 +00:00
Jordan Justen
53fc4ba266 BaseTools/Tests: Always add BaseTools source to import path
This allows unit tests to easily include BaseTools python
modules. This is very useful for writing unit tests.

Actually, previously, we would do this when RunTests.py was executed,
so unit tests could easily import BaseTools modules, so long as they
were executed via RunTests.

This change allows running the unit test files individually which can
be faster for developing the new unit test cases.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Jordan Justen <jordan.l.justen@intel.com>
Reviewed-by: Michael D Kinney <michael.d.kinney@intel.com>
Reviewed-by: Yingke Liu <yingke.d.liu@intel.com>

git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@17691 6f19259b-4bc3-4df7-8a09-765794883524
2015-06-23 23:34:04 +00:00
Liming Gao
e878891ea6 BaseTools: Convert ".\\" to "" in FilePath
Convert ".\\" to "", because it doesn't work with WINDOWS_EXTENSION_PATH.
WINDOWS_EXTENSION_PATH can support the file path larger than 260 length.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Liming Gao <liming.gao@intel.com>
Reviewed-by: Yingke Liu <yingke.d.liu@intel.com>

git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@17686 6f19259b-4bc3-4df7-8a09-765794883524
2015-06-23 10:48:04 +00:00
Bob Feng
901fd82238 BaseTools/Build: Add error report for incorrect syntax in DEC file.
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: "Bob Feng" <bob.c.feng@intel.com>
Reviewed-by: Laszlo Ersek <lersek@redhat.com>

git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@17685 6f19259b-4bc3-4df7-8a09-765794883524
2015-06-23 08:45:06 +00:00
Yingke Liu
f827cd07d0 BaseTools: The token values cannot be numeric same with different PCDs.
Current check only compared string format of toke value.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Yingke Liu <yingke.d.liu@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>

git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@17682 6f19259b-4bc3-4df7-8a09-765794883524
2015-06-23 07:02:03 +00:00
Yingke Liu
37fe82ee80 BaseTools: Fixed a bug that Build Report always uses DEC default value for VPD PCD.
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Yingke Liu <yingke.d.liu@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>

git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@17681 6f19259b-4bc3-4df7-8a09-765794883524
2015-06-23 06:59:45 +00:00
Yingke Liu
45265a8614 BaseTools: Fix a bug that UNI file can't have comment after #include "file.uni"
The 'include' regular expression cannot match spaces before or after this statement.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Yingke Liu <yingke.d.liu@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>

git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@17680 6f19259b-4bc3-4df7-8a09-765794883524
2015-06-23 06:52:12 +00:00
Yingke Liu
09ae0f1113 BaseTools: Build report should not be generated if build failed.
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Yingke Liu <yingke.d.liu@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>

git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@17679 6f19259b-4bc3-4df7-8a09-765794883524
2015-06-23 06:49:25 +00:00
Yingke Liu
a3251d8446 BaseTools: Supported FMP capsule image.
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Yingke Liu <yingke.d.liu@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>

git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@17678 6f19259b-4bc3-4df7-8a09-765794883524
2015-06-23 06:46:01 +00:00
Yingke Liu
1ba5124ed0 BaseTools: Fixed Build Option override bugs.
if '==' is specified, it overrides all options that specified by '='; if no '==' is specified, all options that match current build criteria are combined.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Yingke Liu <yingke.d.liu@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>

git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@17665 6f19259b-4bc3-4df7-8a09-765794883524
2015-06-19 01:43:45 +00:00
Hess Chen
510f154ea2 BaseTools/Upt: Update help message
Update help message of UPT to remove Intel(R) from the string.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Hess Chen <hesheng.chen@intel.com>
Reviewed-by: lhauch <larry.hauch@intel.com>

git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@17662 6f19259b-4bc3-4df7-8a09-765794883524
2015-06-19 00:05:25 +00:00
Hess Chen
af0c61aefc BaseTools/Upt: Update error message
Update error message of installation failure to avoid confusion.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Hess Chen <hesheng.chen@intel.com>
Reviewed-by: lhauch <larry.hauch@intel.com>

git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@17661 6f19259b-4bc3-4df7-8a09-765794883524
2015-06-19 00:02:34 +00:00
Yingke Liu
b442ad5c07 BaseTools: Fixed a bug to generate correct path of PACKAGE_RELATIVE_PATH
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Yingke Liu <yingke.d.liu@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>

git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@17642 6f19259b-4bc3-4df7-8a09-765794883524
2015-06-16 04:23:00 +00:00
Yingke Liu
0614d73be3 BaseTools: Generate a FV EXT entry for FV UI name.
This patch also removed a warning message.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Yingke Liu <yingke.d.liu@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>

git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@17627 6f19259b-4bc3-4df7-8a09-765794883524
2015-06-12 00:58:18 +00:00
Yingke Liu
e63ec1beac BaseTools: Fixed an error reported during generating report.
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Yingke Liu <yingke.d.liu@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>

git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@17623 6f19259b-4bc3-4df7-8a09-765794883524
2015-06-11 05:21:59 +00:00
Yingke Liu
aeaaf754ee BaseTools: Generate a binary file and list it in Binary section of As Built INF.
This binary file contains offset of VFR and UNI data.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Yingke Liu <yingke.d.liu@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>

git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@17622 6f19259b-4bc3-4df7-8a09-765794883524
2015-06-11 05:20:00 +00:00
Yingke Liu
35f69db91b BaseTools: Support build options for specific module type in DSC.
This patch extended BuildOptions section in DSC to support [BuildOptions.ARCH.CodeBase.MODULE_TYPE]

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Yingke Liu <yingke.d.liu@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>

git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@17621 6f19259b-4bc3-4df7-8a09-765794883524
2015-06-11 05:16:40 +00:00
lhauch
ff6096f5e4 Adds new files to the Makefile for testing changed sources
The files were added April 9th, revision 17158, but the Makefile was not updated.
Converted all tabs in this make file to space characters.

[Test]
nmake cleanall
nmake
Successfully built all binaries

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: lhauch <larry.hauch@intel.com>
Reviewed-by: Joe Peterson <joe.peterson@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>




git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@17612 6f19259b-4bc3-4df7-8a09-765794883524
2015-06-10 14:34:40 +00:00
Yingke Liu
867d1cd4cd BaseTools: Append FILE_GUID to BaseName.
This patch makes sure the EFI file in $(BIN_DIR) is unique. If there are modules with same BaseName, the FILE_GUID is appended.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Yingke Liu <yingke.d.liu@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>

git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@17608 6f19259b-4bc3-4df7-8a09-765794883524
2015-06-10 07:50:59 +00:00
lhauch
4c75d0531b Removing the msvcr71.dll - no longer required, building with VS2013.
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: lhauch <larry.hauch@intel.com>
Reviewed-by: Joe Peterson <joe.peterson@intel.com>

git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@17602 6f19259b-4bc3-4df7-8a09-765794883524
2015-06-09 18:20:51 +00:00
Liming Gao
49b0a79388 BaseTools: Update BuildRule for *.nasmb
*.nasmb is place of *.asm16. To keep the same output file, copy the output
file with .com postfix.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Liming Gao <liming.gao@intel.com>
Reviewed-by: Yingke Liu <yingke.d.liu@intel.com>

git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@17580 6f19259b-4bc3-4df7-8a09-765794883524
2015-06-08 09:44:57 +00:00
Liming Gao
b74d65ed3a BaseTools: Update GenFds to handle file type Ffs Rule
Ffs Rule can specify a file type instead of specific file name. GenFds
should search Binary sections of module INF file and output directory
of the module to find all matched file with the specific file type.
Current GenFds only considers the final output target file. This patch
applies the above rule to match output file with the specific file type.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Liming Gao <liming.gao@intel.com>
Reviewed-by: Yingke Liu <yingke.d.liu@intel.com>

git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@17579 6f19259b-4bc3-4df7-8a09-765794883524
2015-06-08 09:44:01 +00:00
Yingke Liu
8262037ff8 BaseTools: Added extern declaration for protocols/PPI/GUID in AutoGhen.h
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Yingke Liu <yingke.d.liu@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>

git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@17573 6f19259b-4bc3-4df7-8a09-765794883524
2015-06-08 08:08:58 +00:00
Jordan Justen
c85bc0c9d4 BaseTools/Conf: Don't support upper case nasm extensions
For *.asm and *.s, there have been cases of *.Asm and *.S files, but
since the nasm extensions are new, we don't need to support the upper
case extensions.

In other words, remove .Nasm and .NASM.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Jordan Justen <jordan.l.justen@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>

git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@17544 6f19259b-4bc3-4df7-8a09-765794883524
2015-06-01 23:21:00 +00:00
Eric Dong
366430c715 BaseTools: Add reconnect request flag for question.
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Eric Dong <eric.dong@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>


git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@17514 6f19259b-4bc3-4df7-8a09-765794883524
2015-05-27 02:25:48 +00:00
Yingke Liu
ec22bede67 BaseTools: Add default BuildRuleOrder in tools_def.template
*_*_*_*_BUILDRULEORDER = nasm Nasm NASM asm Asm ASM S s
*_XCODE32_*_*_BUILDRULEORDER    = S s nasm Nasm NASM
*_XCLANG_*_*_BUILDRULEORDER     = S s nasm Nasm NASM
*_XCODE5_*_*_BUILDRULEORDER     = S s nasm Nasm NASM

Tool Chain in Mac Os will use S as the first priority. Other tool chains
use nasm as the first priority.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Yingke Liu <yingke.d.liu@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>

git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@17510 6f19259b-4bc3-4df7-8a09-765794883524
2015-05-26 10:32:47 +00:00
Yingke Liu
fe4bf2f923 BaseTools: Implement BUILDRULEORDER for tools_def
This feature allows the toolchain to choose a preference for source file
extensions in tools_def.txt. The first extension is given the highest priority.

Here is an example usage for tools_def.txt:
*_*_*_*_BUILDRULEORDER         = nasm Nasm NASM asm Asm ASM S s
*_XCODE5_*_*_BUILDRULEORDER    = S s nasm Nasm NASM

Now, if a .inf lists these sources: 1.nasm, 1.asm and 1.S
All toolchains, except XCODE5 will use the 1.nasm file. The XCODE5
toolchain will use the 1.S file.

Note that the build_rule.txt file also impacts the decision, because,
for instance there is no build rule for .asm files on GCC toolchains.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Yingke Liu <yingke.d.liu@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>

git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@17509 6f19259b-4bc3-4df7-8a09-765794883524
2015-05-26 10:32:07 +00:00
Bob Feng
c1b9129c3c BaseTools/Build: The PCD value in uninitialized data range should be natural aligned.
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: "Bob Feng" <bob.c.feng@intel.com>
Reviewed-by: "Liu, Yingke D" <yingke.d.liu@intel.com>
Tested-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>



git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@17416 6f19259b-4bc3-4df7-8a09-765794883524
2015-05-12 00:58:20 +00:00
Eric Dong
4e4872bc64 BaseTools: Fix build fail issue.
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Eric Dong <eric.dong@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>

git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@17346 6f19259b-4bc3-4df7-8a09-765794883524
2015-05-06 12:52:16 +00:00
Eric Dong
1afac950f9 BaseTools: Enhance the check for numeric opcode with EFI_IFR_DISPLAY_INT_DEC attribute.
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Eric Dong <eric.dong@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>
Reviewed-by: Aaron Pop <Aaron.Pop@congatec.com>

git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@17344 6f19259b-4bc3-4df7-8a09-765794883524
2015-05-06 12:29:33 +00:00
Eric Dong
5d37761661 BaseTools: Enable Match2 Opcode.
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Eric Dong <eric.dong@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>
Reviewed-by: Samer El-Haj-Mahmoud <samer.el-haj-mahmoud@hp.com>

git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@17338 6f19259b-4bc3-4df7-8a09-765794883524
2015-05-06 10:38:04 +00:00
Eric Dong
ddaf640f50 BaseTools: Enable buffer type value for default and oneofoption opcode.
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Eric Dong <eric.dong@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>

git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@17335 6f19259b-4bc3-4df7-8a09-765794883524
2015-05-06 09:35:14 +00:00
Eric Dong
e2a5feb9d6 BaseTool: Add refresh form opcode in vfrcompiler.
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Eric Dong <eric.dong@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>

git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@17333 6f19259b-4bc3-4df7-8a09-765794883524
2015-05-06 09:27:07 +00:00
Liming Gao
e8b4d9f4aa BaseTools: Ignore BaseTools/Bin/Win32 directory in .gitignore
Configure .gitignore file to ignore Bin/Win32 and Lib directory.
Those two directories are generated when BaseTools are compiled at Windows.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Liming Gao <liming.gao@intel.com>
Reviewed-by: Jordan Justen <jordan.l.justen@intel.com>

git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@17187 6f19259b-4bc3-4df7-8a09-765794883524
2015-04-17 07:40:44 +00:00
lhauch
14e900dd13 Updated for ECC.exe
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: lhauch <larry.hauch@intel.com>


git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@17163 6f19259b-4bc3-4df7-8a09-765794883524
2015-04-10 16:00:18 +00:00
Bob Feng
1ae469b9ed BaseTools/Build: Add all support skuid to the Pcd DB system skuid table
Update PcdDataBase System SkuIdTable. The system SkuId Table should have all the platform supported skuid.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: "Bob Feng" <bob.c.feng@intel.com>
Reviewed-by: "Chen, Hesheng" <hesheng.chen@intel.com>
Reviewed-by: "Liu, Yingke D" <yingke.d.liu@intel.com>


git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@17159 6f19259b-4bc3-4df7-8a09-765794883524
2015-04-10 07:06:13 +00:00
Bob Feng
82a6a9605c BaseTools/Build: Add SDL support
1.BaseTool add ATTRIBUTE (+/-RT, RO) support in PCD declaration in DSC file
2.BaseTool collect valid PCD value in DEC file and generate data base for runtime sanity check
3.BaseTool support SetPcd error.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: "Bob Feng" <bob.c.feng@intel.com>
Reviewed-by: "Chen, Hesheng" <hesheng.chen@intel.com>
Reviewed-by: "Liu, Yingke D" <yingke.d.liu@intel.com>

git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@17158 6f19259b-4bc3-4df7-8a09-765794883524
2015-04-10 06:59:47 +00:00
Chen, Hesheng
b7668ccee9 BaseTools/Ecc: Add ECC (EFI Code Checker) Binary into BaseTools bin directory.
Modify the makefile to build Ecc

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: "Chen, Hesheng" <hesheng.chen@intel.com>
Reviewed-by: "Liu, Yingke D" <yingke.d.liu@intel.com>


git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@17157 6f19259b-4bc3-4df7-8a09-765794883524
2015-04-10 06:20:39 +00:00
Cinnamon Shia
ca04b83afb NT32Pkg: Fix build errors from building secure boot with NT32 X64
Root cause: The CryptoPkg\Library\IntrinsicLib needs override MSFT build option to remove /Oi and /GL, 
but it doesn’t work because of the build option override in Nt32Pkg.dsc.
Solution: Remove /X in BaseTools/Conf/tools_def.template

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Cinnamon Shia <cinnamon.shia@hp.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>


git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@17069 6f19259b-4bc3-4df7-8a09-765794883524
2015-03-23 05:39:51 +00:00
Erik Bjorge
234f9ff96e BaseTools/GenFw: Set the PE/COFF attribute BaseOfData with the address of the first '.data' section
Before this change the alignment of the first data section was not taken into account.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Erik Bjorge <erik.c.bjorge@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>

git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@16831 6f19259b-4bc3-4df7-8a09-765794883524
2015-02-11 08:20:17 +00:00
Yingke Liu
22a99b87c4 1. Update UpdateBuildVersion.py;
2. Generate correct HII data offset.
3. Fixed a bug for incorrect PCD value used in conditional statement.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Yingke Liu <yingke.d.liu@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>


git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@16784 6f19259b-4bc3-4df7-8a09-765794883524
2015-02-06 03:40:27 +00:00
Jordan Justen
3f3c4895da */Contributions.txt: Update example email address
Use the example.com domain as recommended in RFC 2606.

NOTE: This does not modify the wording of the "TianoCore Contribution
      Agreement 1.0" section

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Jordan Justen <jordan.l.justen@intel.com>
Reviewed-by: Bruce Cran <bruce.cran@gmail.com>

git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@16724 6f19259b-4bc3-4df7-8a09-765794883524
2015-02-03 17:29:14 +00:00
Yingke Liu
2f04e52739 Fix SET statement bug which is always evaluated even it is in a False conditional statement.
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Yingke Liu <yingke.d.liu@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>

git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@16620 6f19259b-4bc3-4df7-8a09-765794883524
2015-01-19 05:04:28 +00:00
Yingke Liu
b0e23cf32b Fixed build issue with fds target specified.
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Yingke Liu <yingke.d.liu@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com> 
Reviewed-by: Hesheng Chen <hesheng.chen@intel.com>


git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@16619 6f19259b-4bc3-4df7-8a09-765794883524
2015-01-19 05:01:39 +00:00
Liming Gao
c5f1d437ed BaseTools Fix NASM tool version in comments of tools_def.template
NASM tool version should be 2.07 instead of 2.0.7.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Liming Gao <liming.gao@intel.com>
Reviewed-by: Jordan Justen <jordan.l.justen@intel.com>

git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@16596 6f19259b-4bc3-4df7-8a09-765794883524
2015-01-09 10:07:02 +00:00
Eric Dong
5c7956a2a3 Fixed VfrCompile crash on efivarstore statement.
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Eric Dong <eric.dong@intel.com>
Reviewed-by: Aaron Pop <aaronp@ami.com>


git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@16591 6f19259b-4bc3-4df7-8a09-765794883524
2015-01-08 08:36:05 +00:00
Eric Dong
871f673315 Rollback change 16544.
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Eric Dong <eric.dong@intel.com>

git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@16561 6f19259b-4bc3-4df7-8a09-765794883524
2014-12-30 03:03:37 +00:00
Cinnamon Shia
997a5d1b04 Fix ‘build run’ doesn’t work for NT32 X64 build.
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Cinnamon Shia <cinnamon.shia@hp.com>
Reviewed-by: Yingke Liu <yingke.d.liu@intel.com>

git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@16550 6f19259b-4bc3-4df7-8a09-765794883524
2014-12-23 05:48:31 +00:00
Aaron Pop
f571ef9880 Fixed VfrCompile crash on efivarstore statement.
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Aaron Pop <aaronp@ami.com>
Reviewed-by: Eric Dong <eric.dong@intel.com>


git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@16544 6f19259b-4bc3-4df7-8a09-765794883524
2014-12-22 02:21:53 +00:00
Hess Chen
8d62ae35ca BaseTools/ECC: Fix some issues of ECC tool
Add support for the usage which is defined in the above line for a Protocol/Ppi/Guid
Add support for “!ERROR”
Ignore issue of parsing a macro

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Hess Chen <hesheng.chen@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>


git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@16487 6f19259b-4bc3-4df7-8a09-765794883524
2014-12-09 06:41:58 +00:00
Yingke Liu
8546dfeace Fix a regression bug to uni parser.
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Yingke Liu <yingke.d.liu@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>

git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@16469 6f19259b-4bc3-4df7-8a09-765794883524
2014-12-03 08:30:56 +00:00
Scott Duplichan
62771cee1d Fix ARM build failure with gcc 4.6.
Gcc option -mno-unaligned-access is supported by gcc 4.7 and newer, so it shouldn't be used with gcc 4.6.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Scott Duplichan <scott@notabs.org>
Reviewed-by: Yingke Liu <yingke.d.liu@intel.com>
Reviewed-by: Olivier Martin <Olivier.martin@arm.com>

git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@16464 6f19259b-4bc3-4df7-8a09-765794883524
2014-12-02 00:44:04 +00:00
Yingke Liu
edafa0bbe4 Enhance error handling for external tool.
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Yingke Liu <yingke.d.liu@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>

git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@16458 6f19259b-4bc3-4df7-8a09-765794883524
2014-12-01 08:22:07 +00:00
Cecil Sheng
71f02911b1 Corrected slash and quote handling in the strings of UNI files.
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Cecil Sheng <cecil.sheng@hp.com>
Reviewed-by: Yingke Liu <yingke.d.liu@intel.com>

git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@16456 6f19259b-4bc3-4df7-8a09-765794883524
2014-12-01 01:05:05 +00:00
Hess Chen
1f0a062f8c BaseTools/UPT: Fix an issue of storing wrong PCD into XML file.
Fix an issue of storing wrong PCD into XML file to only store PcdEx for AsBuilt sections

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Hess Chen <hesheng.chen@intel.com>
Reviewed-by: Yingke Liu <yingke.d.liu@Intel.com>


git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@16426 6f19259b-4bc3-4df7-8a09-765794883524
2014-11-25 04:58:17 +00:00
Scott Duplichan
915a379b1c BaseTools: Extend support for Windows hosted gcc to versions 4.4-4.7.
Revision 16400 adds support for Windows hosted gcc versions 4.8 and 4.9.
With this change, all of the GCCXX tool chains can be used from Windows.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Scott Duplichan <scott@notabs.org>
Reviewed-by: Liming Gao <liming.gao@intel.com>

git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@16418 6f19259b-4bc3-4df7-8a09-765794883524
2014-11-24 02:43:17 +00:00
Scott Duplichan
285a175441 BaseTools: Modify gcc 4.8 and 4.9 tool chain definition to support building from Windows.
Here is a new patch that adds Windows support for both gcc 4.8.x and gcc 4.9.x. 
This time testing is more thorough: boot testing using Duet for all 4 combinations of 
IA32/X64 and gcc 4.8.2 and gcc 4.9.1 passes. A Windows hosted gcc 4.8.2 has been added here:
http://sourceforge.net/projects/edk2developertoolsforwindows/

The environment variable settings for Windows look like:

set UEFI_BUILD_TOOLS=%cd%\tools
set NASM_PREFIX=%UEFI_BUILD_TOOLS%\nasm211\
set GCC48_BIN=%UEFI_BUILD_TOOLS%\gcc482-x86\bin\
set GCC48_DLL=%UEFI_BUILD_TOOLS%\gcc482-x86\dll\;%GCC48_BIN%
set GCC48_ARM_PREFIX=%UEFI_BUILD_TOOLS%\gcc482-arm\bin\
set GCC48_AARCH64_PREFIX=%UEFI_BUILD_TOOLS%\gcc482-aarch64\bin\
set GCC49_BIN=%UEFI_BUILD_TOOLS%\gcc491-x86\bin\
set GCC49_DLL=%UEFI_BUILD_TOOLS%\gcc491-x86\dll\;%GCC49_BIN%
set GCC49_ARM_PREFIX=%UEFI_BUILD_TOOLS%\gcc491-arm\bin\
set GCC49_AARCH64_PREFIX=%UEFI_BUILD_TOOLS%\gcc491-aarch64\bin\

No change is needed for building from Linux. 

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Scott Duplichan <scott@notabs.org>
Reviewed-by: Liming Gao <liming.gao@intel.com>

git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@16400 6f19259b-4bc3-4df7-8a09-765794883524
2014-11-18 02:38:20 +00:00
Liming Gao
d808fc659d BaseTools: Correct NASM output file type for UNIXGCC and CYGGCC.
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Liming Gao <liming.gao@intel.com>
Reviewed-by: Yingke Liu <yingke.d.liu@intel.com>

git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@16399 6f19259b-4bc3-4df7-8a09-765794883524
2014-11-18 02:19:47 +00:00
Yingke Liu
bcbdc75535 BaseTools: Fix a cleanall issue.
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Yingke Liu <yingke.d.liu@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>

git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@16338 6f19259b-4bc3-4df7-8a09-765794883524
2014-11-12 08:26:03 +00:00
Yingke Liu
8200fcfe54 BaseTool: Support EDKII style GUID definition for VFR function.
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Yingke Liu <yingke.d.liu@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>

git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@16330 6f19259b-4bc3-4df7-8a09-765794883524
2014-11-11 07:33:50 +00:00
Olivier Martin
b85f57995e BaseTools/GenFw: Fixed R_AARCH64_CALL26/R_AARCH64_JUMP26 when referring to start of a section
When R_AARCH64_CALL26/R_AARCH64_JUMP26 relocations referred to static
functions, they sometime refer to the start of the '.text' section + addend.
It means the addend is different of '0'.
The non-patched code (before applying the relocation) already contains
the correct offset.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Olivier Martin <olivier.martin@arm.com>
Reviewed-by: Yingke Liu <yingke.d.liu@intel.com>



git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@16302 6f19259b-4bc3-4df7-8a09-765794883524
2014-11-05 18:56:17 +00:00
Jordan Justen
26830e8579 EDK II Contributions.txt: Update patch format information
Update to show what the patch looks like in email form.

NOTE: This does not modify the wording of the "TianoCore Contribution
      Agreement 1.0" section

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Jordan Justen <jordan.l.justen@intel.com>
Reviewed-by: Jaben Carsey <jaben.carsey@intel.com>

git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@16297 6f19259b-4bc3-4df7-8a09-765794883524
2014-10-31 22:05:50 +00:00
Jordan Justen
fe7ad7f6af BaseTools: Add ConvertMasmToNasm.py script
This script is intended to assist with MASM to NASM syntax
conversions.

The output should be manually inspected and adjusted as needed, since
this script does not provide a perfect conversion.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Jordan Justen <jordan.l.justen@intel.com>
Acked-by: Yingke D Liu <yingke.d.liu@intel.com>

git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@16285 6f19259b-4bc3-4df7-8a09-765794883524
2014-10-31 19:55:15 +00:00
Hess Chen
0414ec24ba BaseTools/UPT: Remove Macro Expend for UserExtension section
Remove Macro Expend for UserExtension section

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Hess Chen <hesheng.chen@intel.com>
Reviewed-by: Gao, Liming <liming.gao@intel.com>

git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@16226 6f19259b-4bc3-4df7-8a09-765794883524
2014-10-22 06:44:45 +00:00
Ryan Harkin
71bcf79963 EDK II: Add .gitignore
While edk2 is still maintained in SVN, Many edk2 developers use git
for their main workflow, using the official mirrors.

Add a .gitignore to the EDK II root, BaseTools and Conf directories to
prevents files generated as part of the build from cluttering up "git
status" output.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Ryan Harkin <ryan.harkin@linaro.org>
[removed Linaro-specific bits, rework for upstream]
Signed-off-by: Leif Lindholm <leif.lindholm@linaro.org>
Reviewed-by: Jordan Justen <jordan.l.justen@intel.com>

git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@16213 6f19259b-4bc3-4df7-8a09-765794883524
2014-10-14 16:08:15 +00:00
Nikolai Saoukh
0a0ca7877d BaseTools: Use '/' as path separator for objcopy --add-gnu-debuglink
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Nikolai Saoukh <nms@otdel-1.org>
Reviewed-by: Jordan Justen <jordan.l.justen@intel.com>

git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@16172 6f19259b-4bc3-4df7-8a09-765794883524
2014-09-25 02:29:18 +00:00
Leif Lindholm
e0ba625fc6 BaseTools: Actually plug in BaseTools build on AArch64
Support for building BaseTools on AArch64 is available in the tree, but
not currently "plugged in". This patch adds the required snippet.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Leif Lindholm <leif.lindholm@linaro.org>
Reviewed-by: Olivier Martin <olivier.martin@arm.com>



git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@16169 6f19259b-4bc3-4df7-8a09-765794883524
2014-09-24 21:07:53 +00:00
Gao, Liming
b4dfada85d BaseTools: Update nmake Makefile to handle the file path with “:\\”.
DOS del command doesn’t handle “:\\” in the file path. This patch converts “:\\” to “:\”.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Gao, Liming <liming.gao@intel.com>
Reviewed-by: lhauch <larry.hauch@intel.com>

git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@16160 6f19259b-4bc3-4df7-8a09-765794883524
2014-09-23 01:32:56 +00:00
Hess Chen
e7ae4a7cb3 BaseTools/ECC: Ignore duplicate check for 'NULL' library
Update a checkpoint to ignore duplicate check for 'NULL' library

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Hess Chen <hesheng.chen@intel.com>
Reviewed-by: Yingke Liu <yingke.d.liu@Intel.com>

git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@16154 6f19259b-4bc3-4df7-8a09-765794883524
2014-09-22 07:37:28 +00:00
Hess Chen
875cc5bb97 BaseTools/Upt: Fix several bugs
1. Fix a bug of generating additional EOL in file header.
2. Fix a bug of format error for Defines section.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Hess Chen <hesheng.chen@intel.com>
Reviewed-by: Yingke Liu <yingke.d.liu@Intel.com>

git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@16153 6f19259b-4bc3-4df7-8a09-765794883524
2014-09-22 07:06:12 +00:00
Hess Chen
76d475117d BaseTools/Upt: Fix several bugs
1. Fix a bug of packaging a full path file in zip at Linux.
2. Fix a format error of generating Hob/Event/BootMode information.
3. Fix a bug of generating additional “GUID” subtype for “UNDEFINED” guid.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Hess Chen <hesheng.chen@intel.com>
Reviewed-by: Yingke Liu <yingke.d.liu@Intel.com>

git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@16149 6f19259b-4bc3-4df7-8a09-765794883524
2014-09-19 02:04:08 +00:00
Gao, Liming
ec53da7bfa BaseTools: Update the BaseTools/Source/Python/Makefile to check for dependent files
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Gao, Liming <liming.gao@intel.com>
Reviewed-by: Hauch, Larry <larry.hauch@intel.com>

git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@16124 6f19259b-4bc3-4df7-8a09-765794883524
2014-09-17 08:47:01 +00:00
Gao, Liming
4d10d18db9 Update Build Tool version from 0.51 to 0.60
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Gao, Liming <liming.gao@intel.com>


git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@16114 6f19259b-4bc3-4df7-8a09-765794883524
2014-09-16 09:03:00 +00:00
Yingke Liu
9b9500a1c9 Support DSC and FDF file out of WORKSPACE by GenFds.
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Yingke Liu <yingke.d.liu@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>

git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@16113 6f19259b-4bc3-4df7-8a09-765794883524
2014-09-16 08:33:40 +00:00
Andrew Fish
438f3ad68f BaseTools/Source/C: Only used '-Wno-self-assign' when BaseTools are built on DARWIN
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Andrew Fish <afish@apple.com>
Reviewed-By: Olivier Martin <olivier.martin@arm.com>
Tested-By: Olivier Martin <olivier.martin@arm.com>
Reviewed-by: Gao, Liming <liming.gao@intel.com>



git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@16106 6f19259b-4bc3-4df7-8a09-765794883524
2014-09-16 00:38:12 +00:00
lhauch
6c22c0a35d The current Makefile only checks the primary python file, such as build.py and does not check other files in tool’s directory tree.
This modification adds all of the other files within the tool’s directory tree that would be a cause to rebuild the tool.

The format in the Makefile for listing these other files was selected to allow the nightly build script to detect changes in the additional files.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: lhauch <larry.hauch@intel.com>
Reviewed-by: Gao, Liming <liming.gao@intel.com>


git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@16103 6f19259b-4bc3-4df7-8a09-765794883524
2014-09-12 22:59:04 +00:00
Feng, Bob C
84cc912aee This patch is going to fix the issue of the mis-match between the index of Platform DynamicPcd list and Dynamic Pcd generated token number.
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Feng, Bob C <bob.c.feng@intel.com>
Reviewed-by: Yingke Liu <yingke.d.liu@intel.com>

git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@16101 6f19259b-4bc3-4df7-8a09-765794883524
2014-09-12 08:46:30 +00:00
Yingke Liu
7ae7dcb976 BaseTools: Fix the regression issue after enbaling s_* an d_* macros in FDF.
Add the missing 'MacroDict' field in FfsInfStatement. 

The issue is that BaseTools/Source/Python/GenFds/FfsInfStatement.py", line 448, in __ExtendMacro__
    String = GenFdsGlobalVariable.MacroExtend(String, self.MacroDict)
AttributeError: OptRomInfStatement instance has no attribute 'MacroDict'

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Yingke Liu <yingke.d.liu@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>


git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@16099 6f19259b-4bc3-4df7-8a09-765794883524
2014-09-12 06:57:22 +00:00
Abner Chang
0acb3d2862 Add support for ${s_*} and ${d_*} macros for in FDF file for the INF files, and for each statement in the build rules.
The following keywords are supported:
"src", "s_path", "s_dir", "s_name", "s_base", "s_ext", "dst", "d_path", "d_name", "d_base", "d_ext" 

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Abner Chang <abner.chang@hp.com>
Reviewed-by: Yingke Liu <yingke.d.liu@intel.com>
Reviewed-by: Larry Hauch <larry.hauch@intel.com>


git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@16094 6f19259b-4bc3-4df7-8a09-765794883524
2014-09-11 06:44:17 +00:00
Andrew Fish
e5367bfb61 BaseTools: Fix XCODE5 to work properly with NASM
The default object type for NASM is raw binary, and this will not link.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Andrew Fish <afish@apple.com>
Reviewed-by: Jordan Justen <jordan.l.justen@intel.com>


git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@16085 6f19259b-4bc3-4df7-8a09-765794883524
2014-09-10 16:48:59 +00:00
lhauch
0d5d829c0e This file allows a developer to add a new tool in either the C or Python trees, add the executable (and any supporting files, such as the TestSigningPrivateKey.pem file) to this file and the build server will automatically make sure that the new files are added to the BaseTools\Bin\Win32 directory. The Win32 directory is located in https://svn.code.sf.net/p/edk2-toolbinaries/code/trunk/Win32 repository.
Developer - Tool add process:
1)	Developer adds code for the new tool.
2)	Developer updates the Makefile in the C or Python directory
a)	The entry must make sure that the executable is generated in the BaseTools\Bin\Win32 directory and any supporting files are copied to the same directory as part of the build step.
3)	Developer adds the <Toolname>.exe under the [Bin.Win32] section in the BinaryFiles.txt file.
4)	Developer adds other files required to be present in the [ExtraFiles.Win32] section in the BinaryFiles.txt file.

Build Server:
1)	Build all binaries by calling nmake on the Source\C\Makefile and Source\Python\Makefile
2)	After building the binaries, the build server verify that the files listed in BaseTools\Source\BinFiles.txt are also in the edk2-toolbinaries project,
a.	If a file is not under source control, then the build server will add file as long as it is present.

File format:
[SectionName.TargetDir]
File1
File2
…

Where: 
SectionName is one of Bin, ExtraFiles or CxFreeze
TargeDir is the name of the subdirectory in the BaseTools\Bin directory tree.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: lhauch <larry.hauch@intel.com>


git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@16063 6f19259b-4bc3-4df7-8a09-765794883524
2014-09-05 14:15:40 +00:00
Hess Chen
49d9b71df2 BaseTools/AutoGen: Remove redundant copy action for binary module
Remove redundant copy action for binary module to copy binary files to output directory only when the binary module is a library

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Hess Chen <hesheng.chen@intel.com>
Reviewed-by: Yingke Liu <yingke.d.liu@Intel.com>

git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@16057 6f19259b-4bc3-4df7-8a09-765794883524
2014-09-04 08:32:44 +00:00
Hess Chen
cf2b2bdef3 BaseTools/UPT: Replace os.linesep with '\r\n' when generating UNI files.
Replace os.linesep with '\r\n' when generating UNI files to make sure all files are under DOS format.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Hess Chen <hesheng.chen@intel.com>
Reviewed-by: Gao, Liming <liming.gao@intel.com>

git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@16041 6f19259b-4bc3-4df7-8a09-765794883524
2014-09-03 08:25:10 +00:00
Hess Chen
51b8553fd2 BaseTools/CommonLib: Add a step to convert ":\\" to ":\"
Convert ":\\\\" to ":\\", because it doesn't work with WINDOWS_EXTENSION_PATH.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Hess Chen <hesheng.chen@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com> 


git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@16039 6f19259b-4bc3-4df7-8a09-765794883524
2014-09-03 02:09:19 +00:00
Jordan Justen
b3f9cdaebb BaseTools tools_def: Indicate that NASM 2.07 or later is required
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Jordan Justen <jordan.l.justen@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>

git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@16018 6f19259b-4bc3-4df7-8a09-765794883524
2014-09-01 17:22:58 +00:00
Jordan Justen
ff0279814a BaseTools build_rule: Add .nasm => .obj build rule
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Jordan Justen <jordan.l.justen@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>

git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@16017 6f19259b-4bc3-4df7-8a09-765794883524
2014-09-01 17:22:51 +00:00
Jordan Justen
9a5a743582 BaseTools tools_def: Add NASM_FLAGS
Note: Only tested with the GCC49 toolchain so far.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Jordan Justen <jordan.l.justen@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>

git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@16016 6f19259b-4bc3-4df7-8a09-765794883524
2014-09-01 17:07:19 +00:00
Feng, Bob C
12d37ace00 This patch is going to fix the issue of only Default SkuId is built into the External Pcd DataBase.
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Feng, Bob C <bob.c.feng@intel.com>
Reviewed-by: Gao, Liming <liming.gao@intel.com>

git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@16006 6f19259b-4bc3-4df7-8a09-765794883524
2014-08-30 12:59:03 +00:00
Anderw Fish
9358dc21e7 BaseTools: Cleanup XCODE build rules
Update C-Code-File rule since XCODE never needs the SYMRENAME step.
Add *.S16 to Mash16-Code-File rule to supoprt 16-bit assmebly with XCODE

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Anderw Fish <afish@apple.com>
Reviewed-by: Gao, Liming <liming.gao@intel.com> 


git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@15980 6f19259b-4bc3-4df7-8a09-765794883524
2014-08-29 18:34:04 +00:00
Anderw Fish
4484f397d3 BaseTools: Add the XCODE5 tools target to supoprt Xcode 5
Xcode 5 changed the arguments required to supoprt X64 EFIAPI so it is a new 
target. XCODE5 supports Xcode 5.* and Xcode 6.*, and will probably support
future versions of Xcode as well. 

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Anderw Fish <afish@apple.com>
Reviewed-by: Gao, Liming <liming.gao@intel.com> 



git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@15979 6f19259b-4bc3-4df7-8a09-765794883524
2014-08-29 18:29:46 +00:00
Yingke Liu
97fa0ee9b1 License header updated to match correct format.
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Yingke Liu <yingke.d.liu@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>

git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@15971 6f19259b-4bc3-4df7-8a09-765794883524
2014-08-28 13:53:34 +00:00
Anderw Fish
f7523dee90 BaseTools: Fix BaseTools C compiler flags for Xcode 5
-fno-merge-constants is not supported by clang, and it warns it will turn into
  a hard error in the future.
-Wno-deprecated-declarations removes warnings about obsolete libraries that
  are not secure.
-Wno-self-assign removes warnings from LZMA code.
    
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Anderw Fish <afish@apple.com>
Reviewed-by: Jordan Justen <jordan.l.justen@intel.com>



git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@15938 6f19259b-4bc3-4df7-8a09-765794883524
2014-08-28 05:13:37 +00:00
Anderw Fish
ed395cfecd BaseTools: Fix clang C++ build error
Move argument default to constructor to remove clang warning.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Anderw Fish <afish@apple.com>
Reviewed-by: Gao, Liming <liming.gao@intel.com>



git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@15932 6f19259b-4bc3-4df7-8a09-765794883524
2014-08-28 05:04:57 +00:00
Anderw Fish
07355bd5cc [BaseTools] clang warns that since BaseAddress is unsigned it can never be < 0.
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Anderw Fish <afish@apple.com>
Reviewed-by: Gao, Liming <liming.gao@intel.com>


git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@15931 6f19259b-4bc3-4df7-8a09-765794883524
2014-08-28 05:02:35 +00:00
Andrew Fish
057ac410e3 BaseTools: add support Xcode 5 in the EmulatorPkg
The XCODE32 target is used to build the x86_64 Mac OS X application for the 
emulator. The other Xcode targets build the EFIAPI needed for UEFI. This patch
removes an obsolete command line argument.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Andrew Fish <afish@apple.com>
Reviewed-by: Jordan Justen <jordan.l.justen@intel.com>



git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@15930 6f19259b-4bc3-4df7-8a09-765794883524
2014-08-28 04:57:12 +00:00
lhauch
f4260465a8 Updated GenBootSector, GenCrc32 and GenPage to remove duplicate “Build” word in the version output, updated the minor number and copyright as needed.
Updated the VolInfo version output to remove the tool description from the --version output string.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: lhauch <larry.hauch@intel.com>
Reviewed-by: Gao, Liming <liming.gao@intel.com>

git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@15924 6f19259b-4bc3-4df7-8a09-765794883524
2014-08-27 16:14:42 +00:00
Hess Chen
fae62ff21a This patch is going to:
1.       Support a force binary build mode by adding “--ignore-source” to command line options.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Hess Chen <hesheng.chen@intel.com>
Reviewed-by: Yingke Liu <yingke.d.liu@intel.com>

git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@15897 6f19259b-4bc3-4df7-8a09-765794883524
2014-08-26 07:14:38 +00:00
Hess Chen
421ccda307 This patch is going to:
1.	Add a recovery mode for UPT failure
2.	Add UNI file support
3.	Add binary file header support
4.	Add support for PCD error message
5.	Add support for replace
6.	Format generated INF/DEC files
7.	Update dependency check
8.	Other minor fixes


Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Hess Chen <hesheng.chen@intel.com>
Reviewed-by: Gao, Liming <liming.gao@intel.com>

git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@15896 6f19259b-4bc3-4df7-8a09-765794883524
2014-08-26 05:58:02 +00:00
Feng, Bob C
a0a2cd1ea6 This patch is going to correct the external PCD database generation rule to support the case that all binary driver are only listed in FDF file.
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Feng, Bob C <bob.c.feng@intel.com>
Reviewed-by: Yingke Liu <yingke.d.liu@intel.com>

git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@15893 6f19259b-4bc3-4df7-8a09-765794883524
2014-08-26 02:52:24 +00:00
Jordan Justen
fad213a3db EDK II Contributions.txt: Note acceptable contribution licenses
We strongly prefer that contribtions be offered using the same license
as the project/module. But, we should document other acceptable
licenses for contributions.

This will allow package owners to more easily know if they can accept
a contribution under a different source license.

NOTE: This does not modify the wording of the "TianoCore Contribution
      Agreement 1.0" section

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Jordan Justen <jordan.l.justen@intel.com>
Reviewed-by: Mark Doran <mark.doran@intel.com>

git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@15892 6f19259b-4bc3-4df7-8a09-765794883524
2014-08-25 23:10:18 +00:00
lhauch
d90aa46258 BootSectImage.exe, EfiLdrImage.exe and Split.exe tools have incorrect output from the --version option.
This patch fixes the --version option output and corrects the description displayed.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: lhauch <larry.hauch@intel.com>
Reviewed-by: Gao, Liming <liming.gao@intel.com>


git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@15890 6f19259b-4bc3-4df7-8a09-765794883524
2014-08-25 20:06:55 +00:00
Yingke Liu
b69fd59e6f Fix nmake cleanall bugs.
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Yingke Liu <yingke.d.liu@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>

git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@15887 6f19259b-4bc3-4df7-8a09-765794883524
2014-08-25 05:00:34 +00:00
Hess Chen
b3d07ff8d2 This patch is going to:
1.       Add a checkpoint to check if an UNI file is a valid UTF-16 file
2.       Add a checkpoint to check if a GUID/PPI/PROTOCOL/PCD is in a valid format.
3.       Some other minor changes.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Hess Chen <hesheng.chen@intel.com>
Reviewed-by: Yingke Liu <yingke.d.liu@intel.com>

git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@15886 6f19259b-4bc3-4df7-8a09-765794883524
2014-08-25 01:16:34 +00:00
lhauch
bf47c6a11b Setting the svn property, svn:executable on the new scripts.
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: lhauch <larry.hauch@intel.com>
Reviewed-by: Gao, Liming <liming.gao@intel.com>


git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@15868 6f19259b-4bc3-4df7-8a09-765794883524
2014-08-21 17:20:55 +00:00
lhauch
bd63012c73 Adding files for proposed replacement for edksetup.bat.
This changes includes new scripts that breaks out some of the functionality in edksetup.bat and eliminates calling the toolsetup.bat file in BaseTools directory.

Edk2Setup.bat is to be used for testing. If no bugs are reported by the end of September, 2014, the file will be renamed to edksetup.bat.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: lhauch <larry.hauch@intel.com>
Reviewed-by: Gao, Liming <liming.gao@intel.com>



git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@15867 6f19259b-4bc3-4df7-8a09-765794883524
2014-08-21 16:41:41 +00:00
Hess Chen
0923aa1c3a This patch is going to:
1.	Skip the content defined in USER EXTENSION section without raising an error.
2.	Wrap os.utime to use two arguments.
3.	Add GenFdsCommand for PlatformAutoGen

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Hess Chen <hesheng.chen@intel.com>
Reviewed-by: Gao, Liming <liming.gao@intel.com>


git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@15865 6f19259b-4bc3-4df7-8a09-765794883524
2014-08-21 07:51:21 +00:00
Yingke Liu
07b8564b11 AutoGen.c can only be generated if the module has intermediate object files generated or links other libraries.
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Yingke Liu <yingke.d.liu@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>

git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@15864 6f19259b-4bc3-4df7-8a09-765794883524
2014-08-21 07:12:33 +00:00
Yingke Liu
fcd4fbf30d 1. AutoGen.c should be generated if it is not empty even if there are no C source files.
2. If there are sub directories in current module, the corresponding directory in OUTPUT should be created.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Yingke Liu <yingke.d.liu@intel.com>
Reviewed-by: Chen, Hesheng <hesheng.chen@intel.com>
Reviewed-by: Feng, Bob C <bob.c.feng@intel.com>


git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@15860 6f19259b-4bc3-4df7-8a09-765794883524
2014-08-21 01:39:18 +00:00
Olivier Martin
cb60328323 BaseTools: Added support for GCC stack protector for ARM architecture
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Olivier Martin <olivier.martin@arm.com>
Reviewed-by: Yingke Liu <yingke.d.liu@intel.com>



git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@15854 6f19259b-4bc3-4df7-8a09-765794883524
2014-08-20 18:02:38 +00:00
Hess Chen
df0cee8d8c This patch is going to:
1. Fix a bug in GenFds for wrongly handling '"' of command line parameter.
2. Provide different input parameter mode for different OS. For Linux, using a list. For Windows, using a string.
3. Remove 3 un-existing function calling.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Hess Chen <hesheng.chen@intel.com>
Reviewed-by: Yingke Liu <yingke.d.liu@intel.com>


git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@15847 6f19259b-4bc3-4df7-8a09-765794883524
2014-08-20 07:41:38 +00:00
Yingke Liu
4805b4b5dd Fix an issue of building BaseTools from sources using VS2013.
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Yingke Liu <yingke.d.liu@intel.com>
Reviewed-by: Hauch, Larry <larry.hauch@intel.com>
Reviewed-by: Gao, Liming <liming.gao@intel.com>

git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@15844 6f19259b-4bc3-4df7-8a09-765794883524
2014-08-20 02:26:07 +00:00
Hess Chen
01ce353813 This patch is going to fix a build failure (running of GenFds) in Linux system caused by patch at r15816.
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Hess Chen <hesheng.chen@intel.com>
Reviewed-by: Gao, Liming <liming.gao@intel.com>


git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@15831 6f19259b-4bc3-4df7-8a09-765794883524
2014-08-19 08:22:04 +00:00
Jordan Justen
abb158ded4 BaseTools: Add rules to build NASM source file into a binary
v2:
 * Use EDK II tool name of NASMB rather than NASMBIN
 * Use EDK II extension of .nasmb rather than .nasmbin
v3:
 * Create listing file
 * Don't change into source directory
 * Add ENV(NASM_PREFIX) before nasm for NASM_PATH

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Jordan Justen <jordan.l.justen@intel.com>
Reviewed-by: Laszlo Ersek <lersek@redhat.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>

git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@15820 6f19259b-4bc3-4df7-8a09-765794883524
2014-08-18 23:03:17 +00:00
Hess Chen
03af275332 This patch is going to retire the top level makefile on BaseTools for supporting a pure binary build without any complier.
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Hess Chen <hesheng.chen@intel.com>
Reviewed-by: Yingke Liu <yingke.d.liu@intel.com>

git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@15816 6f19259b-4bc3-4df7-8a09-765794883524
2014-08-18 04:59:01 +00:00
Hess Chen
1be2ed90a2 There is a limitation on WINDOWS OS for the length of entire file path can’t be larger than 255. There is an OS API provided by Microsoft to add “\\?\” before the path header to support the long file path. Enable this feature on basetools.
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Hess Chen <hesheng.chen@intel.com>
Reviewed-by: Yingke Liu <yingke.d.liu@intel.com>

git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@15809 6f19259b-4bc3-4df7-8a09-765794883524
2014-08-15 03:06:48 +00:00
Michael Kinney
c9df168fa0 Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Michael Kinney  <michael.d.kinney@intel.com>
Reviewed-by: lhauch <larry.hauch@intel.com>

Fix the behavior of the –version flag in the Rsa2048Sha256 tools and update logic for showing program name, version, usage, and copyright information to match other BaseTools.




git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@15805 6f19259b-4bc3-4df7-8a09-765794883524
2014-08-14 20:08:17 +00:00
Michael Kinney
65ce860e49 Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Michael Kinney  <michael.d.kinney@intel.com>
Reviewed-by: Yingke Liu <yingke.d.liu@intel.com>

Add support for RSA 2048 SHA 256 signing and verification encoded in a PI FFS GUIDED Encapsulation Section.  The primary use case of this feature is in support of signing and verification of encapsulated FVs for Recovery and Capsule Update, but can potentially be used for signing and verification of any content that can be stored in a PI conformant FFS file.  Signing operations are performed from python scripts that wrap OpenSsl command line utilities.  Verification operations are performed using the OpenSsl libraries in the CryptoPkg.

The guided encapsulation sections uses the UEFI 2.4 Specification defined GUID called EFI_CERT_TYPE_RSA2048_SHA256_GUID.  The data layout for the encapsulation section starts with the UEFI 2.4 Specification defined structure called EFI_CERT_BLOCK_RSA_2048_SHA256 followed immediately by the data.  The signing tool included in these patches performs encode/decode operations using this data layout.  HashType is set to the UEFI 2.4 Specification defined GUID called EFI_HASH_ALGORITHM_SHA256_GUID.

MdePkg/Include/Guid/WinCertificate.h
================================= 
//
// WIN_CERTIFICATE_UEFI_GUID.CertType
// 
#define EFI_CERT_TYPE_RSA2048_SHA256_GUID \
  {0xa7717414, 0xc616, 0x4977, {0x94, 0x20, 0x84, 0x47, 0x12, 0xa7, 0x35, 0xbf } }

///
/// WIN_CERTIFICATE_UEFI_GUID.CertData
/// 
typedef struct {
  EFI_GUID  HashType;
  UINT8     PublicKey[256];
  UINT8     Signature[256];
} EFI_CERT_BLOCK_RSA_2048_SHA256;

MdePkg/Include/Protocol/Hash.h
================================= 
#define EFI_HASH_ALGORITHM_SHA256_GUID \
  { \
    0x51aa59de, 0xfdf2, 0x4ea3, {0xbc, 0x63, 0x87, 0x5f, 0xb7, 0x84, 0x2e, 0xe9 } \
  }

The verification operations require the use of public key(s).  A new PCD called gEfiSecurityPkgTokenSpaceGuid.PcdRsa2048Sha256PublicKeyBuffer is added to the SecurityPkg that supports one or more SHA 256 hashes of the public keys.  A SHA 256 hash is performed to minimize the FLASH overhead of storing the public keys.  When a verification operation is performed, a SHA 256 hash is performed on EFI_CERT_BLOCK_RSA_2048_SHA256.PublicKey and a check is made to see if that hash matches any of the hashes in the new PCD.  It is recommended that this PCD always be configured in the DSC file as storage type of [PcdsDynamixExVpd], so the public keys are stored in a protected read-only region.

While working on this feature, I noticed that the CRC32 signing and verification feature was incomplete.  It only supported CRC32 based verification in the DXE Phase, so the attached patches also provide support for CRC32 based verification in the PEI Phase.

I also noticed that the most common method for incorporating guided section extraction libraries was to directly link them to the DXE Core, which is not very flexible.  The attached patches also add a generic section extraction PEIM and a generic section extraction DXE driver that can each be linked against one or more section extraction libraries.  This provides a platform developer with the option of providing section extraction services with the DXE Core or providing section extraction services with these generic PEIM/DXE Drivers.

Patch Summary
==============
1)	BaseTools - Rsa2049Sha256Sign python script that can perform test signing or custom signing of PI FFS file GUIDed sections
  a.	Wrapper for a set of OpenSsl command line utility operations
  b.	OpenSsl command line tool must be installed in location that is in standard OS path or in path specified by OS environment variable called OPENSSL_PATH
  c.	Provides standard EDK II command line arguments for a tool that encodes/decodes guided encapsulation section 

Rsa2048Sha256Sign - Copyright (c) 2013 - 2014, Intel Corporation. All rights reserved.
usage: Rsa2048Sha256Sign -e|-d [options] <input_file>

positional arguments:
  input_file            specify the input filename

optional arguments:
  -e                    encode file
  -d                    decode file
  -o filename, --output filename
                        specify the output filename
  --private-key PRIVATEKEYFILE
                        specify the private key filename. If not specified, a
                        test signing key is used.
  -v, --verbose         increase output messages
  -q, --quiet           reduce output messages
  --debug [0-9]         set debug level
  --version             display the program version and exit
  -h, --help            display this help text

2)	BaseTools - Rsa2049Sha256GenerateKeys python script that can generate new private/public key and PCD value that is SHA 256 hash of public key using OpenSsl command line utilities.
  a.	Wrapper for a set of OpenSsl command line utility operations
  b.	OpenSsl command line tool must be installed in location that is in standard path or in path specified by OS environment variable called OPENSSL_PATH

Rsa2048Sha256GenerateKeys - Copyright (c) 2013 - 2014, Intel Corporation. All rights reserved.
usage: Rsa2048Sha256GenerateKeys [options]

optional arguments:
  -o [filename [filename ...]], --output [filename [filename ...]]
                        specify the output private key filename in PEM format
  -i [filename [filename ...]], --input [filename [filename ...]]
                        specify the input private key filename in PEM format
  --public-key-hash PUBLICKEYHASHFILE
                        specify the public key hash filename that is SHA 256
                        hash of 2048 bit RSA public key in binary format
  --public-key-hash-c PUBLICKEYHASHCFILE
                        specify the public key hash filename that is SHA 256
                        hash of 2048 bit RSA public key in C structure format
  -v, --verbose         increase output messages
  -q, --quiet           reduce output messages
  --debug [0-9]         set debug level
  --version             display the program version and exit
  -h, --help            display this help text

3)	BaseTools\Conf\tools_def.template
  a.	Define GUID/Tool to perform RSA 2048 SHA 256 test signing and instructions on how to use alternate private/public key
b.	GUID is EFI_CERT_TYPE_RSA2048_SHA256_GUID
  c.	Tool is Rsa2049Sha256Sign
4)	MdeModulePkg\Library\PeiCrc32GuidedSectionExtractionLib
  a.	Add peer for DxeCrc32GuidedSectionExtractionLib so both PEI and DXE phases can perform basic integrity checks of PEI and DXE components
5)	MdeModulePkg\Universal\SectionExtractionPei
  a.	Generic PEIM that can link against one or more NULL section extraction library instances to provided one or more GUIDED Section Extraction PPIs
6)	MdeModulePkg\Universal\SectionExtractionDxe
  a.	Generic DXE Driver that can link against one or more NULL section extraction library instances to provide one or more GUIDED Section Extraction Protocols.
7)	SecurityPkg\Library\PeiRsa2048Sha256GuidedSectionExtractLib
  a.	NULL library instances that performs PEI phase RSA 2048 SHA 256 signature verification using OpenSsl libraries from CryptoPkg.
  b.	Based on algorithms from SecurityPkg Authenticated Variable services
  c.	Uses public key from gEfiSecurityPkgTokenSpaceGuid.PcdRsa2048Sha256PublicKeyBuffer.
8)	SecurityPkg\Library\DxeRsa2048Sha256GuidedSectionExtractLib
  a.	NULL library instances that performs DXE phase RSA 2048 SHA 256 signature verification using OpenSsl libraries from CryptoPkg.
  b.	Based on algorithms from SecurityPkg Authenticated Variable services
  c.	Uses public key from gEfiSecurityPkgTokenSpaceGuid.PcdRsa2048Sha256PublicKeyBuffer.




git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@15800 6f19259b-4bc3-4df7-8a09-765794883524
2014-08-14 06:30:10 +00:00
Harry Liebel
87280982b8 BaseTools: Add AArch64 ADR_PREL_LO21 and R_AARCH64_CONDBR19
relocations

- ADR_PREL_LO21: support for loading a PC relative label offset.
- R_AARCH64_CONDBR19: support for conditional branch instruction (ELF64 code: 280).

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Harry Liebel <Harry.Liebel@arm.com>
Signed-off-by: Olivier Martin <olivier.martin@arm.com>
Reviewed-by: Yingke Liu <yingke.d.liu@intel.com>



git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@15745 6f19259b-4bc3-4df7-8a09-765794883524
2014-08-04 08:44:11 +00:00
lhauch
d8162fb5aa CodeModule: BaseTools - tools_def.txt VS2010, VS2010x86, VS2012 and VS2012x86 update locations for rc.exe tool
This change will point to the correct location of the rc.exe tool.
RC.exe is used for building UEFI compliant drivers that must have a UEFI_HII_RESOURCE_SECTION generated as part of the .efi image file.

Contributed-under: TianoCore Contribution Agreement 1.0

Signed-off-by: lhauch <larry.hauch@intel.com>
Reviewed-by: Gao, Liming <liming.gao@intel.com>
Reviewed-by: Yingke Liu <yingke.d.liu@intel.com>


git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@15735 6f19259b-4bc3-4df7-8a09-765794883524
2014-08-01 18:11:32 +00:00
Eric Dong
cebd6ef904 Support --version command line for VfrCompile
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Eric Dong <eric.dong@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>

git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@15733 6f19259b-4bc3-4df7-8a09-765794883524
2014-08-01 04:44:16 +00:00
Eric Dong
3a8e175b33 Update vfr format for orderedlist opcode to consistent with other opcode, also compatible with old format.
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Eric Dong <eric.dong@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>

git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@15723 6f19259b-4bc3-4df7-8a09-765794883524
2014-07-31 08:24:13 +00:00
Wang, Yu
537bc12400 Add VS2013 tool chain in BaseTools\Conf\tools_def.template. Also, two issues came up related to vs2013 build and caused the build to fail.
Vs2013 issue #1:  warning message about uninitialized variables or pointers like this:
s:\incbld\ia32\intelframeworkmodulepkg\bus\isa\isabusdxe\isabus.c(395) : warning C4701: potentially uninitialized local variable 'DevicePathData' used
s:\incbld\ia32\intelframeworkmodulepkg\bus\isa\isabusdxe\isabus.c(395) : warning C4703: potentially uninitialized local pointer variable 'DevicePathData' used
LINK : fatal error LNK1257: code generation failed
The following online messages shows discussions related to this vs2013 issue and how Microsoft engineer responded.  They suggest a work around by adding the initialization for the variables.
https://connect.microsoft.com/VisualStudio/feedback/details/816730/bogus-warning-from-vs-2013

Vs2013 issue #2:
C:\Program Files\Windows Kits\8.1\include\um\winnt.h(5105) : error C2220: warning treated as error - no 'object' file generated
C:\Program Files\Windows Kits\8.1\include\um\winnt.h(5105) : warning C4005: 'InterlockedCompareExchange64' : macro redefinition
This happened for Nt32Pkg.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Wang, Yu <yu.wang@intel.com>
Reviewed-by: Gao, Liming <liming.gao@intel.com>


git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@15722 6f19259b-4bc3-4df7-8a09-765794883524
2014-07-31 06:14:01 +00:00
Paolo Bonzini
1c023eb357 BuildEnv: remove useless check before setting $WORKSPACE
As long as $EDK_TOOLS_PATH is properly set, the BaseTools/ directory
is not necessary in the workspace.  The BuildEnv file itself suggests
setting the variable if BaseTools/ is not available.

However, this only works if the user also sets $WORKSPACE.  Otherwise,
BuildEnv refuses to set WORKSPACE itself and does not even try to use
the preset $EDK_TOOLS_PATH.  Remove the check that fails, as it does
not have any practical benefit.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Reviewed-by: Jordan Justen <jordan.l.justen@intel.com>

git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@15702 6f19259b-4bc3-4df7-8a09-765794883524
2014-07-28 17:37:46 +00:00
Jordan Justen
dafe0fedc5 BaseTools: Add GCC49 toolchain; align data sections to 0x40
GCC 4.9 may use 64-byte (0x40) alignment for data sections.

Therefore we use a different link script for GCC 4.9. The only
difference from the gcc4.4-ld-script is the alignment for data
sections.

When using the GCC48 toolchain with GCC 4.9, this error would be
encountered by GenFw:
> GenFw: ERROR 3000: Invalid
>   Unsupported section alignment.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Jordan Justen <jordan.l.justen@intel.com>
Reviewed-by: Yingke Liu <yingke.d.liu@intel.com>

git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@15697 6f19259b-4bc3-4df7-8a09-765794883524
2014-07-28 17:37:10 +00:00
Jordan Justen
324c886410 BaseTools: Clear build versions to sync with buildtools/BaseTools
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Jordan Justen <jordan.l.justen@intel.com>
Reviewed-by: Michael Kinney <michael.d.kinney@intel.com>

git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@15686 6f19259b-4bc3-4df7-8a09-765794883524
2014-07-25 21:10:33 +00:00
Gao, Liming liming.gao
8b7ebdb005 Update GenFv tool to handle the file path with space.
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Gao, Liming liming.gao@intel.com
Review-by: Kinney, Michael D michael.d.kinney@intel.com

git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@15685 6f19259b-4bc3-4df7-8a09-765794883524
2014-07-25 21:10:20 +00:00
Eric Dong
0515478167 Report warning info if vfr file use the flags used for framework code only.
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Eric Dong <eric.dong@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>

git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@15684 6f19259b-4bc3-4df7-8a09-765794883524
2014-07-25 21:10:10 +00:00
Eric Dong
15be099aa7 Clean 1 build error and 1 warning for VfrCompiler.
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Eric Dong <eric.dong@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>

git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@15683 6f19259b-4bc3-4df7-8a09-765794883524
2014-07-25 21:09:59 +00:00
Eric Dong
1d218f83f1 Report warning info if an action opcode has text two statement.
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Eric Dong <eric.dong@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>

git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@15682 6f19259b-4bc3-4df7-8a09-765794883524
2014-07-25 21:09:48 +00:00
lhauch
54032ed969 CodeModule: BaseTools - Adding the svn:external to the https://svn.code.sf.net/p/edk2-toolbinaries/code/trunk/Win32
This change allows users to checkout the edk2 project ignoring the svn:externals.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: lhauch <larry.hauch@intel.com>
Reviewed-by: Michael Kinney <michael.d.kinney@intel.com>



git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@15679 6f19259b-4bc3-4df7-8a09-765794883524
2014-07-25 14:07:00 +00:00
lhauch
d2f4e548e3 CodeModule: BaseTools - Removing Win32 binaries to be replaced with an svn:external to the https://svn.code.sf.net/p/edk2-toolbinaries/code/trunk/Win32
This change allows users to checkout the edk2 project ignoring the svn:externals.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: lhauch <larry.hauch@intel.com>
Reviewed-by: Michael Kinney <michael.d.kinney@intel.com>


git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@15678 6f19259b-4bc3-4df7-8a09-765794883524
2014-07-25 14:04:48 +00:00
Gao, Liming
e4ac870fe9 Sync BaseTool trunk (version r2670) into EDKII BaseTools.
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Gao, Liming <liming.gao@intel.com>
Reviewed-by: Liu, Yingke D (yingke.d.liu@intel.com)


git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@15605 6f19259b-4bc3-4df7-8a09-765794883524
2014-07-01 07:10:10 +00:00
Tian, Hot
5c1e62f35a Fix CRLF format
Signed-off-by: Tian, Hot <hot.tian@intel.com>


git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@15189 6f19259b-4bc3-4df7-8a09-765794883524
2014-01-27 05:36:53 +00:00
Gao, Liming
f51461c829 Sync BaseTool trunk (version r2649) into EDKII BaseTools.
Signed-off-by: Gao, Liming <liming.gao@intel.com>


git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@15188 6f19259b-4bc3-4df7-8a09-765794883524
2014-01-27 05:23:15 +00:00
Gao, Liming
2bc3256ca6 Sync BaseTool trunk (version r2640) into EDKII BaseTools.
Signed-off-by: Gao, Liming <liming.gao@intel.com>
Reviewed-by: Liu, Jiang A <jiang.a.liu@intel.com>


git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@15089 6f19259b-4bc3-4df7-8a09-765794883524
2014-01-10 05:25:50 +00:00
Liming Gao
e8a47801a1 Sync BaseTool trunk (version r2610) into EDKII BaseTools.
Signed-off-by: Liming Gao <liming.gao@intel.com>


git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@14856 6f19259b-4bc3-4df7-8a09-765794883524
2013-11-18 07:41:21 +00:00
Liming Gao
ea0f646433 Sync BaseTool trunk (version r2601) into EDKII BaseTools.
Signed-off-by: Liming Gao <liming.gao@intel.com>


git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@14710 6f19259b-4bc3-4df7-8a09-765794883524
2013-09-24 07:13:44 +00:00
lhauch
ac7f472be7 Forcing the python27.dll to be executable
git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@14663 6f19259b-4bc3-4df7-8a09-765794883524
2013-09-12 17:59:05 +00:00
Liming Gao
4afd3d0422 Sync BaseTool trunk (version r2599) into EDKII BaseTools.
Signed-off-by: Liming Gao <liming.gao@intel.com>
Reviewed-by: Heshen Chen <chen.heshen@intel.com>


git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@14591 6f19259b-4bc3-4df7-8a09-765794883524
2013-08-23 02:18:16 +00:00
ydong10
1c8ade8999 Roll back the changes for BaseTools
Signed-off-by: Eric Dong <eric.dong@intel.com>

git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@13467 6f19259b-4bc3-4df7-8a09-765794883524
2012-06-25 02:24:12 +00:00
ydong10
0e4cdd85b8 Fix a typo.
Signed-off-by: Eric Dong <eric.dong@intel.com>
Reviewed-by: liming Gao <liming.gao@intel.com>

git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@13464 6f19259b-4bc3-4df7-8a09-765794883524
2012-06-21 05:52:04 +00:00
lgao4
25918452ed Sync BaseTools Trunk (version r2524) to EDKII main trunk.
Signed-off-by: Liming Gao <liming.gao@intel.com>
Reviewed-by: Liu Yingke <yingke.d.liu@intel.com>
Reviewed-by: Yurui Zeng <yurui.zeng@intel.com>


git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@13353 6f19259b-4bc3-4df7-8a09-765794883524
2012-05-23 08:27:14 +00:00
lgao4
5ef6e0d315 Sync BaseTools Trunk (version r2518) to EDKII main trunk.
Signed-off-by: Liming Gao <liming.gao@intel.com>



git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@13180 6f19259b-4bc3-4df7-8a09-765794883524
2012-04-10 07:28:51 +00:00
lgao4
ea971ce69b Sync BaseTools Trunk (version r2518) to EDKII main trunk.
Signed-off-by: Liming Gao <liming.gao@intel.com>



git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@13179 6f19259b-4bc3-4df7-8a09-765794883524
2012-04-10 07:22:37 +00:00
lgao4
64b2609fcf Sync BaseTools Trunk (version r2518) to EDKII main trunk.
Signed-off-by: Liming Gao <liming.gao@intel.com>


git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@13178 6f19259b-4bc3-4df7-8a09-765794883524
2012-04-10 07:18:20 +00:00
lgao4
66a2dc96d3 Set executable attributes for those run scripts.
Signed-off-by: lgao4

git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@13016 6f19259b-4bc3-4df7-8a09-765794883524
2012-02-15 08:06:01 +00:00
lgao4
9508d0fa4f Sync BaseTool trunk (version r2474) into EDKII BaseTools.
Signed-off-by: lgao4
Reviewed-by: gikidy



git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@12883 6f19259b-4bc3-4df7-8a09-765794883524
2011-12-16 08:52:13 +00:00
lgao4
d0acc87a41 Sync BaseTool trunk (version r2460) into EDKII BaseTools. The change mainly includes:
1. Support use expression as DSC file PCD value.
  2. Update FDF parser to fix bug to get complete macro value.
  3. Fix bug to replace SET statement macro and evaluate SET statement PCD value in FDF file.
  4. Fix a bug for MACRO defined in conditional block cannot be processed correctly

Signed-off-by: lgao4
Reviewed-by: gikidy


git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@12827 6f19259b-4bc3-4df7-8a09-765794883524
2011-12-07 06:19:28 +00:00
lgao4
2bcc713e74 Sync BaseTool trunk (version r2423) into EDKII BaseTools. The change mainly includes:
1. Fix !include issues
  2. Fix Trim to skip the postfix 'U' for hexadecimal and decimal numbers
  3. Fix building error C2733 when building C++ code.
  4. Add GCC46 tool chain definition
  5. Add new RVCT and RVCTLINUX tool chains

Signed-off-by: lgao4


git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@12782 6f19259b-4bc3-4df7-8a09-765794883524
2011-11-25 06:21:03 +00:00
lgao4
d40b2ee60e Sync BaseTool trunk (version r2397) into EDKII BaseTools. The change mainly includes
1. Fix the issue that root directory of disk can’t be used as WORKSPACE.
2. Update AutoGen code style to pass C++ compiler.

Signed-off-by: lgao4
Reviewed-by: jsu1

git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@12676 6f19259b-4bc3-4df7-8a09-765794883524
2011-11-09 04:32:08 +00:00
lgao4
0d2711a693 Sync BaseTools Trunk (version r2387) to EDKII main trunk.
Signed-off-by: lgao4
Reviewed-by: gikidy

git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@12602 6f19259b-4bc3-4df7-8a09-765794883524
2011-10-29 06:59:30 +00:00
lgao4
79b74a03e0 Sync BaseTools Branch (version r2362) to EDKII main trunk.
Signed-off-by: lgao4
Reviewed-by: jsu1
Reviewed-by: ydliu

git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@12525 6f19259b-4bc3-4df7-8a09-765794883524
2011-10-11 02:49:48 +00:00
lgao4
29e22e2bd6 Sync BaseTools Branch (version r2324) to EDKII main trunk.
Signed-off-by: lgao4

git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@12435 6f19259b-4bc3-4df7-8a09-765794883524
2011-09-23 06:03:45 +00:00
lgao4
df692f024b Sync BaseTools Branch (version r2323) to EDKII main trunk.
Signed-off-by: lgao4


git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@12379 6f19259b-4bc3-4df7-8a09-765794883524
2011-09-19 09:03:59 +00:00
lgao4
b36d134faf Sync BaseTools Branch (version r2321) to EDKII main trunk.
Signed-off-by: lgao4
Reviewed-by: gikidy


git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@12372 6f19259b-4bc3-4df7-8a09-765794883524
2011-09-18 12:17:25 +00:00
lgao4
a30e92d73f Sync BaseTools Branch (version r2271) to EDKII main trunk.
BaseTool Branch:
  https://edk2-buildtools.svn.sourceforge.net/svnroot/edk2-buildtools/branches/Releases/BaseTools_r2100

Signed-off-by: lgao4
Reviewed-by: hchen30

git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@12215 6f19259b-4bc3-4df7-8a09-765794883524
2011-08-26 07:49:27 +00:00
lgao4
4234283c3a Sync BaseTools Branch (version r2271) to EDKII main trunk.
BaseTool Branch:
  https://edk2-buildtools.svn.sourceforge.net/svnroot/edk2-buildtools/branches/Releases/BaseTools_r2100

Signed-off-by: lgao4
Reviewed-by: hchen30

git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@12214 6f19259b-4bc3-4df7-8a09-765794883524
2011-08-26 07:46:26 +00:00
gikidy
1c978f48e4 Revert last commit about "Clean up MdeModuleHii.h to remove HII_VENDOR_DEVICE_PATH and remove DevicePath.h file."
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@12175 6f19259b-4bc3-4df7-8a09-765794883524
2011-08-19 03:13:58 +00:00
gikidy
d4b3293bb3 Clean up MdeModuleHii.h to remove HII_VENDOR_DEVICE_PATH and remove DevicePath.h file.
Signed-off-by: gikidy
Reviewed-by: lgao4


git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@12174 6f19259b-4bc3-4df7-8a09-765794883524
2011-08-19 02:54:24 +00:00
ydong10
82e589a43f Revert last patch about "Modal form" opcode support.
Signed-off-by: ydong10
Reviewed-by: lgao4



git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@11768 6f19259b-4bc3-4df7-8a09-765794883524
2011-06-08 08:24:52 +00:00
ydong10
5b127d7565 Add new “Modal form” opcode.
Signed-off-by: ydong10
Reviewed-by: lgao4


git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@11766 6f19259b-4bc3-4df7-8a09-765794883524
2011-06-08 07:50:04 +00:00
lgao4
7c1fd3239d Sync BaseTools Branch (version r2161) to EDKII main trunk.
BaseTool Branch:
  https://edk2-buildtools.svn.sourceforge.net/svnroot/edk2-buildtools/branches/Releases/BaseTools_r2100

Signed-off-by: lgao4
Reviewed-by: gikidy

git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@11708 6f19259b-4bc3-4df7-8a09-765794883524
2011-05-26 07:35:18 +00:00
lgao4
9fd2164e34 Sync BaseTools Branch (version r2157) to EDKII main trunk.
BaseTool Branch:
  https://edk2-buildtools.svn.sourceforge.net/svnroot/edk2-buildtools/branches/Releases/BaseTools_r2100

git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@11702 6f19259b-4bc3-4df7-8a09-765794883524
2011-05-25 10:45:15 +00:00
lgao4
da92f27632 Sync BaseTools Branch (version r2149) to EDKII main trunk.
BaseTool Branch:
  https://edk2-buildtools.svn.sourceforge.net/svnroot/edk2-buildtools/branches/Releases/BaseTools_r2100

  



git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@11640 6f19259b-4bc3-4df7-8a09-765794883524
2011-05-11 10:26:49 +00:00
hhtian
5788e95470 update copyright format
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@11314 6f19259b-4bc3-4df7-8a09-765794883524
2011-02-15 12:13:00 +00:00
lgao4
641370270f Sync EDKII BaseTools to BaseTools project r2100.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@11118 6f19259b-4bc3-4df7-8a09-765794883524
2010-12-06 05:17:09 +00:00
lgao4
6780eef1f9 Sync EDKII BaseTools to BaseTools project r2093.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@11057 6f19259b-4bc3-4df7-8a09-765794883524
2010-11-15 02:51:34 +00:00
lgao4
a725268048 Sync EDKII BaseTools to BaseTools project r2068.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@10937 6f19259b-4bc3-4df7-8a09-765794883524
2010-10-14 06:30:37 +00:00
lgao4
08dd311f5d Sync EDKII BaseTools to BaseTools project r2065.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@10915 6f19259b-4bc3-4df7-8a09-765794883524
2010-10-11 06:26:52 +00:00
qhuang8
111be80fe4 Add missing BPDG tool sources when sync to BaseTools r2042
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@10851 6f19259b-4bc3-4df7-8a09-765794883524
2010-09-06 02:01:57 +00:00
qhuang8
e56468c072 Sync EDKII BaseTools to BaseTools project r2042.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@10850 6f19259b-4bc3-4df7-8a09-765794883524
2010-09-06 01:58:00 +00:00
andrewfish
95ac6ef640 If you install 64-bit kernel build will fail. This requires manually setting properties, but it is legal...
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@10796 6f19259b-4bc3-4df7-8a09-765794883524
2010-08-13 19:49:30 +00:00
lgao4
756ad8f8e9 Sync EDKII BaseTools to BaseTools project r2006.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@10764 6f19259b-4bc3-4df7-8a09-765794883524
2010-08-03 03:29:17 +00:00
qhuang8
6310ffd781 Sync EDKII BaseTools to BaseTools project r2000
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@10706 6f19259b-4bc3-4df7-8a09-765794883524
2010-07-28 03:07:30 +00:00
qhuang8
14c48571ae Sync EDKII BaseTools to BaseTools project r1997
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@10680 6f19259b-4bc3-4df7-8a09-765794883524
2010-07-21 02:46:15 +00:00
qhuang8
b3ef23861d Add msvcr71.dll used by base tools win32 binaries in case the environment does not have this DLL file.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@10671 6f19259b-4bc3-4df7-8a09-765794883524
2010-07-20 06:08:47 +00:00
qhuang8
9053bc517e Sync EDKII BaseTools to BaseTools project r1988
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@10607 6f19259b-4bc3-4df7-8a09-765794883524
2010-06-28 09:33:10 +00:00
lgao4
40d841f6a8 Sync EDKII BaseTools to BaseTools project r1971
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@10502 6f19259b-4bc3-4df7-8a09-765794883524
2010-05-18 05:04:32 +00:00
lhauch
47c242a6d7 Setting svn:executable property on applications that do not have it set at this time
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@10482 6f19259b-4bc3-4df7-8a09-765794883524
2010-05-11 23:15:27 +00:00
hhtian
f48d998667 Not maintained.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@10309 6f19259b-4bc3-4df7-8a09-765794883524
2010-03-25 14:40:18 +00:00
qhuang8
79714906ae Sync EDKII BaseTools to BaseTools project r1940
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@10307 6f19259b-4bc3-4df7-8a09-765794883524
2010-03-23 11:46:50 +00:00
lgao4
f3decdc362 Sync EDKII BaseTools to BaseTools project r1937.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@10287 6f19259b-4bc3-4df7-8a09-765794883524
2010-03-19 06:55:07 +00:00
lgao4
636f2be673 Sync EDKII BaseTools to BaseTools project r1928
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@10234 6f19259b-4bc3-4df7-8a09-765794883524
2010-03-12 10:54:01 +00:00
qhuang8
c69f724df0 Sync EDKII BaseTools to BaseTools project r1913.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@10193 6f19259b-4bc3-4df7-8a09-765794883524
2010-03-04 11:57:31 +00:00
lgao4
d5d56f1bc5 Sync EDKII BaseTools to BaseTools project r1911.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@10177 6f19259b-4bc3-4df7-8a09-765794883524
2010-03-04 05:29:52 +00:00
lgao4
a111b843ea Add the new added tool link.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@10129 6f19259b-4bc3-4df7-8a09-765794883524
2010-03-01 02:09:06 +00:00
lgao4
52302d4dee Sync EDKII BaseTools to BaseTools project r1903.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@10123 6f19259b-4bc3-4df7-8a09-765794883524
2010-02-28 23:39:39 +00:00
jlin16
f430c77b1b Roll back to ECC previous stable version.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@9947 6f19259b-4bc3-4df7-8a09-765794883524
2010-02-08 05:37:56 +00:00
jlin16
96e6b8e67b Update ECC predicate expression checks for brace-quoted and boolean pointer variables.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@9946 6f19259b-4bc3-4df7-8a09-765794883524
2010-02-08 05:22:26 +00:00
andrewfish
cfbd0c5f1a Default to Cortex ARM CPU type to match UEFI specification. Drive thumb from ARCHCC flags.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@9883 6f19259b-4bc3-4df7-8a09-765794883524
2010-01-30 21:31:33 +00:00
andrewfish
5e9edaea7c Turn on Thumb/Thumb2 and optimize for size.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@9863 6f19259b-4bc3-4df7-8a09-765794883524
2010-01-29 20:22:14 +00:00
andrewfish
bf586ab919 Fix Xcode bug in template
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@9831 6f19259b-4bc3-4df7-8a09-765794883524
2010-01-27 02:50:13 +00:00
lgao4
a709adfaf0 Sync tool code to BuildTools project r1783.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@9623 6f19259b-4bc3-4df7-8a09-765794883524
2009-12-29 06:16:53 +00:00
lgao4
b303ea726e Sync tool code to BuildTools project r1739.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@9397 6f19259b-4bc3-4df7-8a09-765794883524
2009-11-09 11:47:35 +00:00
vanjeff
ef12a160de updated basetools binary files which are validated synced with r1707.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@9258 6f19259b-4bc3-4df7-8a09-765794883524
2009-09-11 06:49:52 +00:00
vanjeff
fd171542e0 Sync basetools' source and binary files with r1707 of the basetools project.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@9257 6f19259b-4bc3-4df7-8a09-765794883524
2009-09-11 03:14:43 +00:00
qhuang8
8e2978b4ad Add /GF compiler option for IPF ICC tool chains by default.
This option enables read-only string pools to reduce the final PE/COFF image size.

git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@9220 6f19259b-4bc3-4df7-8a09-765794883524
2009-09-01 15:03:44 +00:00
AJFISH
c719e02c14 Adding a python script to enable RVCT 3.1 (ARM ARM compiler) to run in cygwin. The build system passes cygpaths and the Windows tool can not deal with that. The python converts paths to C:\ to make RVCT 3.1 happy. This has been fixed in RVCT 4.0. The ARM processor does not support instructions like divide, so compiler specific intrinsics are required. The .libs are checked in here and referenced from the tools_def.template file, so they are automatically included when the compiler is invoked. The souce to these .lib files will be checkin soon in a new ArmPkg.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@9201 6f19259b-4bc3-4df7-8a09-765794883524
2009-08-26 21:08:05 +00:00
jljusten
e0d22735b7 Change the default location for IASL on Unix.
The default is now /usr/bin/iasl, but $(HOME)/programs/iasl is
also shown as a commented example.

git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@9077 6f19259b-4bc3-4df7-8a09-765794883524
2009-08-15 05:05:02 +00:00
jljusten
726d5a8edc Remove '/' directory separator from CYGWIN & UNIXGCC tool specications.
This allows for the UNIXGCC_*_PETOOLS_PREFIX and CYGWIN_* macros
to potentially have a prefix before the executable name.  This allows
more flexibility for gcc/binutils when the executables include
a prefix.  Some commented examples are shown where this might be used.
For example:
  DEFINE UNIXGCC_IA32_PETOOLS_PREFIX = i386-pc-mingw32-
    or
  DEFINE UNIXGCC_IA32_PETOOLS_PREFIX = ENV(HOME)/programs/gcc/ia32/bin/i686-pc-mingw32-

git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@9076 6f19259b-4bc3-4df7-8a09-765794883524
2009-08-15 05:05:00 +00:00
vanjeff
030529de20 build tools will break if PEIM or DXE driver has no valid [Depex] section.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@9057 6f19259b-4bc3-4df7-8a09-765794883524
2009-08-12 06:53:41 +00:00
jljusten
772d3214e9 Update links for broken urls in BaseTools/gcc/mingw-gcc-build.py script.
The new version of mingw-w64-snapshot-20090419.tar.bz2
requires a modification to
  IntelFrameworkModulePkg/Library/LzmaCustomDecompressLib/UefiLzma.h
in order to build successfully with the new mingw header files.

git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@9027 6f19259b-4bc3-4df7-8a09-765794883524
2009-08-05 21:11:56 +00:00
klu2
58e4d80096 Hot fixing for the bug that GenFw can not convert ELF to PE format correctly, the root cause is invalid size of OptionalHeader is computed.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@8976 6f19259b-4bc3-4df7-8a09-765794883524
2009-07-21 16:56:35 +00:00
jljusten
2703f9e230 Restore symlinks & scripts with proper svn properties set.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@8972 6f19259b-4bc3-4df7-8a09-765794883524
2009-07-18 00:01:55 +00:00
jljusten
e7eabe08c7 Remove broken BinWrappers links/scripts.
They will be re-added in next commit.

git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@8971 6f19259b-4bc3-4df7-8a09-765794883524
2009-07-18 00:01:48 +00:00
lgao4
66775d1cb6 Sync binary tool to main trunk tool source. Update VfrCompiler tool to fix varstore name is not correctly generated.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@8969 6f19259b-4bc3-4df7-8a09-765794883524
2009-07-17 11:31:09 +00:00
lgao4
df1780f8bf Fix VfrCompiler bug to create varstore name by varstore name field not structure field for framework Vfr.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@8968 6f19259b-4bc3-4df7-8a09-765794883524
2009-07-17 11:11:56 +00:00
lgao4
30fdf1140b Check In tool source code based on Build tool project revision r1655.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@8964 6f19259b-4bc3-4df7-8a09-765794883524
2009-07-17 09:10:31 +00:00
lgao4
1252ae4c42 Synchronize build tools binaries with source code r1655 at build tool project.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@8919 6f19259b-4bc3-4df7-8a09-765794883524
2009-07-13 05:24:21 +00:00
lgao4
7bc6c82b85 ynchronize build tools binaries with source code r1655 at build tool project.
Fix a bug that GenFv tool can't generate the correct top reset vector table for IA32, X64 and IPF arch SEC module.

git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@8918 6f19259b-4bc3-4df7-8a09-765794883524
2009-07-13 05:23:00 +00:00
klu2
66e1951f49 Synchronize build tools binaries with source code r1654 at build tool project.
The modifications includes:
1) Correct the issue that build tool generate UINT8 array for unicode string type PCD, it maybe cause alignment issue. Now build tool will generate UINT16 array for unicode string type PCD.
2) Merge FdfParser.py updates to FdfParserLite.py
3) Replace EFI_IMAGE_NT_HEADERS with EFI_IMAGE_OPTIONAL_HEADER_UNION. (GenFv)
The code referencing EFI_IMAGE_NT_HEADERS has been modified to
refer to EFI_IMAGE_OPTIONAL_HEADER_UNION => Pe32/Pe32Plus.
4) Remove definitions of build machine specific types.
Remove EFI_IMAGE_OPTIONAL_HEADER, EFI_IMAGE_NT_HEADERS,
EFI_IMAGE_NT_OPTIONAL_HDR_MAGIC, and EFI_IMAGE_MACHINE_TYPE_SUPPORTED,
since these were defined differently based on the architecture
of the build machine.  The BaseTools should support the edk2
supported processor architectures and not depend on the architecture
of the build platform.
5) Added support for the ARM processor type
Added RVCT as a ToolChainFamily (Real View Compiler Tools from ARM)
Enabled FixedAtBuild 32-bit PCDs to be used from GCC or RVCT assembler.
Updated GenFw to support RVCT ELF images and removed #ifdefs for ELF. Also made ELF to PE/COFF features available on all supported build targets for the tools by adding some FreeBSD ELF headers.
Updated GenFv to support the ARM reset vector in ZeroBytes of the FV header.

git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@8872 6f19259b-4bc3-4df7-8a09-765794883524
2009-07-10 09:38:06 +00:00
lgao4
c437405563 Synchronize the build tools' binary with source files at r1645 in build tool project.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@8828 6f19259b-4bc3-4df7-8a09-765794883524
2009-07-09 05:47:15 +00:00
xli24
ee33873da1 Synchronize the build tools' binary with source files at r1640 in build tool project.
This update adds error check for environment path existence.

git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@8823 6f19259b-4bc3-4df7-8a09-765794883524
2009-07-08 15:47:25 +00:00
xli24
ee0b896904 Synchronize the build tools' binary with source files at r1639 in build tool project.
This update fixes the bug of unmatched paths due to case-sensitive comparison on case-insensitive systems.

git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@8814 6f19259b-4bc3-4df7-8a09-765794883524
2009-07-08 08:49:33 +00:00
klu2
61374f5d4f Synchronize the build tools' binary with source files at r1637 in build tool project.
The modifications are:
1. Support BuildRuleFamily attribute of tool chain tag to be filtered build rule.
2. Enhance GenFds tool to get the default PcdValue from DEC file.
3. Enhance AutoGen to generate library function constructors for SEC type module.  

git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@8764 6f19259b-4bc3-4df7-8a09-765794883524
2009-07-06 15:13:54 +00:00
klu2
c9c705a855 add quote for file path in @file option
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@8762 6f19259b-4bc3-4df7-8a09-765794883524
2009-07-06 15:03:25 +00:00
klu2
e8c42f8a7d Synchronize the binary with modification at build tool project r1634. The modification is adjusting the regular expression to handle more "#include" case when build tool calculate the dependency for source file. This modification has been tested under UNIX and MSFT tool chain.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@8699 6f19259b-4bc3-4df7-8a09-765794883524
2009-07-01 06:44:37 +00:00
klu2
03476bf384 Synchronize the binary with build tools' source at r1630 which fix the issue that the dependency of some header files is missed in Gnu makefile
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@8623 6f19259b-4bc3-4df7-8a09-765794883524
2009-06-23 05:42:02 +00:00
klu2
23d0599aae Synchronize all binaries with build tools source base on r1628.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@8617 6f19259b-4bc3-4df7-8a09-765794883524
2009-06-21 13:33:37 +00:00
klu2
e189fded67 Synchronize binary with modification of r1618 in buildtools project. The modification is made for WorkspaceDatabase.py and affect the frozen binary of build.exe, GenFds.exe and TargetTools.exe
The modification is add additional checking for whether need renew the immediate file workspace database, the renew reason maybe:
The renew reason maybe:
1) If user force to renew;
2) If user do not force renew, and
   a) If the time of last modified python source is newer than database file;
   b) If the time of last modified frozen executable file is newer than database file, the executable file is build.exe in window and build in Linux/Unix/OSX

git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@8615 6f19259b-4bc3-4df7-8a09-765794883524
2009-06-19 15:55:44 +00:00
lgao4
38d4998ad4 Add ASL_OUTFLAG to contain the different ASL output options.
ASL_FLAG to contain other ASL options.

git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@8584 6f19259b-4bc3-4df7-8a09-765794883524
2009-06-17 09:34:46 +00:00
klu2
fba25bdd54 Clarify build tools project's combo path
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@8535 6f19259b-4bc3-4df7-8a09-765794883524
2009-06-12 01:44:42 +00:00
klu2
273f5ad101 Add missing python binary freezed from build tools project at r1623
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@8534 6f19259b-4bc3-4df7-8a09-765794883524
2009-06-12 01:41:25 +00:00
klu2
94ca8fffcb Synchronize the source of build tool from build tool project (r1623) to binary in edk2 project at (r8530)
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@8531 6f19259b-4bc3-4df7-8a09-765794883524
2009-06-11 09:45:52 +00:00
klu2
d616bf7593 Fix a typo in help message.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@8475 6f19259b-4bc3-4df7-8a09-765794883524
2009-06-05 05:27:16 +00:00
klu2
33cf9937a9 Fix issue that build is broken if a dynamic PCD's value is L"".
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@8460 6f19259b-4bc3-4df7-8a09-765794883524
2009-06-04 03:37:24 +00:00
lgao4
86fe4ef3f8 Update GenFw tool to zero time/date by default.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@8450 6f19259b-4bc3-4df7-8a09-765794883524
2009-06-03 03:22:08 +00:00
lgao4
ac4e7050a3 Fix bug to fill Startup AP Vector address in FvImage
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@8443 6f19259b-4bc3-4df7-8a09-765794883524
2009-06-02 08:49:35 +00:00
klu2
740cce9ec0 The MULTIPLE_THREAD should be choice from "Disable", "Enable" but not "TRUE", "FALSE"
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@8442 6f19259b-4bc3-4df7-8a09-765794883524
2009-06-02 07:12:54 +00:00
klu2
ecb11926ec The MULTIPLE_THREAD should be choice from "Disable", "Enable" but not "TRUE", "FALSE"
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@8441 6f19259b-4bc3-4df7-8a09-765794883524
2009-06-02 07:10:41 +00:00
klu2
c9d0e0815b Add MULTIPLE_THREAD option.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@8439 6f19259b-4bc3-4df7-8a09-765794883524
2009-06-02 03:02:10 +00:00
klu2
a7ef0a80e1 1, Add checking for input parameter tool tag which is used to find external tools.
2, Make some minor fixing for TargetTool.

git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@8424 6f19259b-4bc3-4df7-8a09-765794883524
2009-06-01 08:56:04 +00:00
rsun3
94fe1ac9f6 Update build.exe after StrGather was updated. Add -s build flag in EdkShellPkg.dsc so that .UNI files with ISO 639-2 language codes of EDK Shell can be built.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@8413 6f19259b-4bc3-4df7-8a09-765794883524
2009-05-31 07:46:19 +00:00
klu2
d09651693b Fix the bug that build tool and PCD driver can not deal with byte array or ANSIC type value for dynamic PCD.
This patch including following change:
1) Build tools:
   a) StringTable in generated PCD database is changed to UINT8 array but not original UINT16, because it can also stored the ANSIC and byte array.
   b) The layout of string table in PCD database is changed. To make sure unicode string is in double byte aligned, the item in string table which hold unicode string value will be put ahead than other items. After unicode string item, the HII variable name item is immediate. The byte array item and ANSIC string array item will be put at tail of whole string table.
   c) Fix bug that build tools does not handle the size of unicode string, byte array and ANSIC string.
2) PCD PEI/DXE driver:
   The pointer of StringTable is changed to UINT8* but not original UINT16*.

git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@8392 6f19259b-4bc3-4df7-8a09-765794883524
2009-05-27 11:34:11 +00:00
lgao4
68b54c0c25 Correct GenPage to get the input option value.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@8387 6f19259b-4bc3-4df7-8a09-765794883524
2009-05-26 09:01:42 +00:00
lgao4
8aea08dc20 Correct the parameter parser of GenBootSector.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@8385 6f19259b-4bc3-4df7-8a09-765794883524
2009-05-26 07:26:08 +00:00
rsun3
b0a5e682d6 Update build.exe after StrGather python script was changed.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@8383 6f19259b-4bc3-4df7-8a09-765794883524
2009-05-26 03:40:56 +00:00
lgao4
527a098160 Remove the tool PcdSyntaxUpdate.exe. This tool is an obsolete tool. It is added to be used to update PCD format according to INF 0.44, DEC 0.41, DSC 0.40. But, now EDKII code base conforms to the newest public 1.1 version INF, DEC and DSC spec.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@8382 6f19259b-4bc3-4df7-8a09-765794883524
2009-05-26 03:05:07 +00:00
lgao4
1df9325aee Fix minor bug in tools.
1. Incorrect usage help of TianoCompress tool
2. Wrong check for the input parameters of GenVtf tool.
3. The potential issues to get FFS files in GenFv tool.

git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@8379 6f19259b-4bc3-4df7-8a09-765794883524
2009-05-25 08:24:08 +00:00
lgao4
f6427e83c8 Add the checking to the input parameter of tools.
Support the tool parameter options according to tool user manual.

git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@8378 6f19259b-4bc3-4df7-8a09-765794883524
2009-05-25 05:53:00 +00:00
klu2
ab4e42d903 Build tool need generate different value macro's name for PatchableInModule type PCD against FixedAtBuild PCD.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@8368 6f19259b-4bc3-4df7-8a09-765794883524
2009-05-21 08:43:22 +00:00
klu2
14073b3f8c Fix the bug that TAB character in uni file make unicode string missing in autogen file. Corresponding version in build tool project is r1592.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@8364 6f19259b-4bc3-4df7-8a09-765794883524
2009-05-21 04:39:36 +00:00
klu2
b20d41df13 temporary roll back build.exe because the some string definition are missed by strgather introduced latest check-in.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@8345 6f19259b-4bc3-4df7-8a09-765794883524
2009-05-20 09:44:31 +00:00
klu2
32685030d8 Freeze for build tool check-in r1591: Fix bug in the processing of backslashes in UNI files.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@8341 6f19259b-4bc3-4df7-8a09-765794883524
2009-05-20 02:20:07 +00:00
klu2
8968742e88 Originally, there are following implementation:
1) The collect action of platform's dynamic PCD database is trigged by module's autogen action. 
2) If platform is used for more than one architecture, two platform object will be created

Above two rules will cause an issue for single module building that if
1) platform support IA32 and X64
2) do single module for X64 module

then, the dynamic PCD for IA32 modules will missed in PCD database, because no IA32 module need autogen so collection action for IA32 module is not trigged.

Now, I think the collection action for platform dynamic PCD should be explicitly called after PlatformAutoGen is created.

git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@8323 6f19259b-4bc3-4df7-8a09-765794883524
2009-05-18 07:09:48 +00:00
klu2
133ed0bf9d Fix bug for -b option
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@8305 6f19259b-4bc3-4df7-8a09-765794883524
2009-05-13 05:29:20 +00:00
klu2
884f6e7652 Add checking for configuration template file.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@8304 6f19259b-4bc3-4df7-8a09-765794883524
2009-05-13 02:04:01 +00:00
klu2
66b2a7d529 Add valid range checking for count of multi-thread
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@8303 6f19259b-4bc3-4df7-8a09-765794883524
2009-05-12 07:40:59 +00:00
klu2
410ee03367 Add checking for options number to avoid user's confusion. The corresponding patch in source is r1583 in build tools project.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@8302 6f19259b-4bc3-4df7-8a09-765794883524
2009-05-12 07:30:04 +00:00
klu2
f6c412fc33 Make improvement that if target directory does not exist, create it. This patch is corresponding to r1582 in build tool project.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@8301 6f19259b-4bc3-4df7-8a09-765794883524
2009-05-12 06:40:10 +00:00
klu2
8ab1d991dc Make tool more intelligence for missing configuration item. The corresponding version number is r1581 in build tools project.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@8300 6f19259b-4bc3-4df7-8a09-765794883524
2009-05-12 06:10:59 +00:00
lgao4
9920798948 Update GenFw help usage information to clarify -z option.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@8298 6f19259b-4bc3-4df7-8a09-765794883524
2009-05-12 04:51:00 +00:00
klu2
2842d31b8f Add more validation for input parameters.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@8293 6f19259b-4bc3-4df7-8a09-765794883524
2009-05-11 07:44:55 +00:00
klu2
ca2ce09e51 Add warning message that tool chain tag will be ignored if user provide output directory from command line explicitly.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@8290 6f19259b-4bc3-4df7-8a09-765794883524
2009-05-11 07:04:28 +00:00
klu2
5796de6792 Add Fv name checking for build.exe if user gives FV name from command line. originally, this checking is only done by GenFds tool, that is too later.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@8288 6f19259b-4bc3-4df7-8a09-765794883524
2009-05-11 05:37:56 +00:00
klu2
6d40c636c2 Fix bug that trim crash when no parameter is input.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@8287 6f19259b-4bc3-4df7-8a09-765794883524
2009-05-11 03:18:42 +00:00
klu2
9449c39f5f Remove -c option for GenFds tool because it does not defined in build specification.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@8286 6f19259b-4bc3-4df7-8a09-765794883524
2009-05-11 03:01:05 +00:00
klu2
512a785d03 Update TargetTools for add set/get/clean BUILD_RULE_CONF option for target.txt file.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@8285 6f19259b-4bc3-4df7-8a09-765794883524
2009-05-11 02:34:33 +00:00
gikidy
d4244a08ad Remove -Os for UNIXGCC CC FLAGS to reduce size.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@8251 6f19259b-4bc3-4df7-8a09-765794883524
2009-05-06 09:40:50 +00:00
lgao4
de29c94afc Add the optional EfiRom CodeRevision option.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@8241 6f19259b-4bc3-4df7-8a09-765794883524
2009-05-05 07:31:56 +00:00
lgao4
1a98add516 Update EfiRom to handle ClassCode and CodeRevision options correctly.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@8240 6f19259b-4bc3-4df7-8a09-765794883524
2009-05-05 07:30:35 +00:00
jlin16
de9c25b173 GenFds change efirom command line option from '-I' to '-l'.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@8239 6f19259b-4bc3-4df7-8a09-765794883524
2009-05-05 06:26:45 +00:00
jwang36
174566661a Add SMM_DRIVER and SMM_CORE support
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@8238 6f19259b-4bc3-4df7-8a09-765794883524
2009-05-05 06:01:17 +00:00
jlin16
3b2b355772 GenFds add option ROM parameters override of those in INF file.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@8237 6f19259b-4bc3-4df7-8a09-765794883524
2009-05-05 05:26:26 +00:00
jwang36
15543340da Implemented feature request hsd202262 and incorporated SMM support
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@8229 6f19259b-4bc3-4df7-8a09-765794883524
2009-05-03 06:40:59 +00:00
jljusten
c470d83142 Add WIN32 binary build of LzmaCompress. Add LzmaCompress to tools_def.template.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@8228 6f19259b-4bc3-4df7-8a09-765794883524
2009-05-01 06:45:01 +00:00
qhuang8
33d487d463 Sync bug fix of Base Tools r1559.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@8226 6f19259b-4bc3-4df7-8a09-765794883524
2009-04-30 10:45:50 +00:00
gikidy
2a9aee6d37 Fix a typo.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@8161 6f19259b-4bc3-4df7-8a09-765794883524
2009-04-23 08:18:24 +00:00
lgao4
15a7c2f1fe Update VfrCompiler to handle ideqvallist as the first opcode case. Per UEFI spec, If the expression consists of more than a single opcode, then the first opcode in the expression must have the Scope bit set and the expression must end with EFI_IFR_END
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@8143 6f19259b-4bc3-4df7-8a09-765794883524
2009-04-22 02:29:17 +00:00
lgao4
2fd618df9d Enhance VfrCompiler to create the end label for the framework vfr file.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@8134 6f19259b-4bc3-4df7-8a09-765794883524
2009-04-20 08:11:14 +00:00
jwang36
14ca06407d Frozen from source r1551
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@8122 6f19259b-4bc3-4df7-8a09-765794883524
2009-04-17 07:22:21 +00:00
lgao4
6924b7ae26 Update VfrCompiler to support UEFI 2.1 form classguid
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@8113 6f19259b-4bc3-4df7-8a09-765794883524
2009-04-17 05:27:16 +00:00
klu2
b2f5a3718b Remove unused EFI32 macro.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@8102 6f19259b-4bc3-4df7-8a09-765794883524
2009-04-16 06:33:05 +00:00
klu2
7f612040d6 Remove unused EFI32 macro.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@8101 6f19259b-4bc3-4df7-8a09-765794883524
2009-04-16 06:32:34 +00:00
eric_tian
623471a383 update
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@8078 6f19259b-4bc3-4df7-8a09-765794883524
2009-04-14 03:20:33 +00:00
eric_tian
3b6c90a16b update tools_def.template to supply all possible combination of toolchain and ASL
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@8075 6f19259b-4bc3-4df7-8a09-765794883524
2009-04-13 12:50:50 +00:00
lgao4
7a65d44a47 enchance error handling for disableif
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@8072 6f19259b-4bc3-4df7-8a09-765794883524
2009-04-13 07:01:18 +00:00
lgao4
299b4cf312 Update GenFw -z option to zero debug data and time stamp.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@8039 6f19259b-4bc3-4df7-8a09-765794883524
2009-04-08 09:10:15 +00:00
jwang36
c44fb9d331 Generated from source r1543
a. Fixed PCD database error
b. Fixed inf file extension issue 
c. Fixed an issue in which RealPath() returns None if WORKSPACE root was passed in
d. Check MODULE_TYPE and COMPONENT_TYPE to be defined


git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@7994 6f19259b-4bc3-4df7-8a09-765794883524
2009-03-31 15:46:16 +00:00
lgao4
2ab2aad18b Fix AcpiTable C file build failure, because the compiler don't know how to set subsystem when entrypoint is not main. Append /SUBSYSTEM:CONSOLE link option.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@7987 6f19259b-4bc3-4df7-8a09-765794883524
2009-03-31 02:21:43 +00:00
jljusten
a440187f4e Change default setting for UNIXGCC_IASL. The previous
default value used the HOME environment variable, which is
not always defined on windows, and therefore will
cause the build to break for windows based builds.


git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@7986 6f19259b-4bc3-4df7-8a09-765794883524
2009-03-30 17:56:42 +00:00
qhuang8
aaf6344c9e Search framework database file at the $(WORKSPACE)/Conf directory
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@7985 6f19259b-4bc3-4df7-8a09-765794883524
2009-03-30 09:30:53 +00:00
klu2
13987f5775 Fix build broken for missing defintiion of UNIXGCC_IASL
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@7984 6f19259b-4bc3-4df7-8a09-765794883524
2009-03-30 07:58:20 +00:00
qhuang8
1b9370bc0f Enhance MigrationMsa2Inf to support extract the GUID value from DEC files. It can also extract the GUID value from XML syntax package files, SPD or NSPD.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@7983 6f19259b-4bc3-4df7-8a09-765794883524
2009-03-30 07:06:47 +00:00
qhuang8
2391e54c73 Update framework database to point to existing packages files.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@7982 6f19259b-4bc3-4df7-8a09-765794883524
2009-03-30 06:38:22 +00:00
jljusten
dd1e6e117e Change fake entry point used during ACPI Table building from main
to ReferenceAcpiTable.

git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@7979 6f19259b-4bc3-4df7-8a09-765794883524
2009-03-29 18:42:16 +00:00
jljusten
c609489087 Update Conf template files to support ACPI building with UNIXGCC.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@7978 6f19259b-4bc3-4df7-8a09-765794883524
2009-03-29 18:42:14 +00:00
jwang36
77696b61eb Add $(MD) command for vfr build rule to avoid build failure for some R8 modules
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@7976 6f19259b-4bc3-4df7-8a09-765794883524
2009-03-29 16:16:19 +00:00
jwang36
03e0648b32 Built from source r1536:
a. Show correct and bad file path when file name case is wrong
b. Remove the "_FLAGS" check in meta file parser


git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@7961 6f19259b-4bc3-4df7-8a09-765794883524
2009-03-26 15:14:27 +00:00
jlin16
5489a5003f GenFds fix PCD byte array format support for PCD specified file GUID; enhance warning message for binary module/file path case-sensitive conditions.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@7949 6f19259b-4bc3-4df7-8a09-765794883524
2009-03-25 08:22:33 +00:00
klu2
941199475d add map generation for GCC tool chain
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@7934 6f19259b-4bc3-4df7-8a09-765794883524
2009-03-24 13:08:39 +00:00
qhuang8
1e976d75f1 Temporarily rollback the previous check in for more investigations of PCD database data structures difference for PcdPeim and PcdDxe.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@7918 6f19259b-4bc3-4df7-8a09-765794883524
2009-03-21 03:59:44 +00:00
klu2
8a83f2c897 use -pie(Position Independent for executable file) instead of "-dll". A EFI image generated by UNIXGCC tool chain should be relocated when loaded.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@7911 6f19259b-4bc3-4df7-8a09-765794883524
2009-03-19 14:55:41 +00:00
jwang36
db488c7865 a. Fixed build break caused by EdkLogger.warning
b. Fixed PCD token number generation issue for PCD in library

git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@7907 6f19259b-4bc3-4df7-8a09-765794883524
2009-03-19 07:30:32 +00:00
jlin16
024a05ac5c GenFds add support for PCD specified file GUID.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@7901 6f19259b-4bc3-4df7-8a09-765794883524
2009-03-17 09:48:47 +00:00
jlin16
d26743215a GenFds add option ROM and Defines section support.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@7891 6f19259b-4bc3-4df7-8a09-765794883524
2009-03-16 10:20:03 +00:00
klu2
80610cae7d Use options for size reduction
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@7882 6f19259b-4bc3-4df7-8a09-765794883524
2009-03-16 02:03:39 +00:00
jwang36
0306d9a9c5 Added a workaround to bypass the error caused by SaveFileToDisk in Common.PyUtility.pyd
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@7878 6f19259b-4bc3-4df7-8a09-765794883524
2009-03-13 09:00:45 +00:00
klu2
47e8adb6d8 EFI driver should base 0x0
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@7877 6f19259b-4bc3-4df7-8a09-765794883524
2009-03-13 08:54:14 +00:00
lgao4
25cda2e069 Correct EfiRom tool to don't check vendor id and device id when the input image is the legacy option rom.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@7872 6f19259b-4bc3-4df7-8a09-765794883524
2009-03-13 03:28:37 +00:00
jwang36
a114969731 Try to remove duplicated include path in command line option
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@7869 6f19259b-4bc3-4df7-8a09-765794883524
2009-03-12 16:39:24 +00:00
jlin16
242d687699 GenFds: hide unnecessary warning information.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@7834 6f19259b-4bc3-4df7-8a09-765794883524
2009-03-09 03:41:44 +00:00
lgao4
b6e96fbcf3 Correct TianoCompress name for Linux/GCC.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@7833 6f19259b-4bc3-4df7-8a09-765794883524
2009-03-09 02:09:22 +00:00
jwang36
34a8fc1077 Added support of PCD HII Variable name in C style of unicode string.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@7827 6f19259b-4bc3-4df7-8a09-765794883524
2009-03-05 15:51:47 +00:00
lgao4
bda0735ba8 Update GenFw tool help text to clarify GenFw tool usage.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@7801 6f19259b-4bc3-4df7-8a09-765794883524
2009-03-04 14:31:14 +00:00
lgao4
3344d7ded8 Update GenFv tool to get FvNameGuid
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@7799 6f19259b-4bc3-4df7-8a09-765794883524
2009-03-04 07:52:49 +00:00
jlin16
e95a695825 GenFds add FV name GUID support.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@7798 6f19259b-4bc3-4df7-8a09-765794883524
2009-03-04 07:25:18 +00:00
jwang36
2696392b1e Fixed file path issue if the WORKSPACE is the root of a drive (generated from source r1506)
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@7753 6f19259b-4bc3-4df7-8a09-765794883524
2009-03-02 05:55:25 +00:00
jwang36
63418eb7d0 a. Allow different types PCD declaration in dec file
b. Generated from source r1505

git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@7745 6f19259b-4bc3-4df7-8a09-765794883524
2009-03-01 12:53:39 +00:00
jwang36
92bb89c95c Changed deprecated DPATH to DLL for CYGWINGCC tool chain.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@7732 6f19259b-4bc3-4df7-8a09-765794883524
2009-02-28 10:24:41 +00:00
jwang36
1a6c62bb0d Frozen from source r1503: added quote marks for the reference of $(MAKE) to avoid build failure because of space in MAKE path.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@7731 6f19259b-4bc3-4df7-8a09-765794883524
2009-02-28 07:09:00 +00:00
jwang36
a9f61fc3d0 Added the definition of $(MAKE) macro back into top level makefile for the sake of nmake.exe in Visual Studio 2003.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@7722 6f19259b-4bc3-4df7-8a09-765794883524
2009-02-26 16:10:19 +00:00
lgao4
b3bf1e80c8 Update GenFv tool to support creating PI extension FV header.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@7668 6f19259b-4bc3-4df7-8a09-765794883524
2009-02-25 06:28:42 +00:00
jwang36
7e6142874d 1. Fixed the issue which string ID, $LANGUAGE_NAME and $PRINTABLE_LANGUAGE_NAME, were generated if "#langdef" is not in the first uni file.
2. Fixed the issue which "//" would be taken as comment in PCD value in DSC file.
3. Generated from source r1500

git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@7662 6f19259b-4bc3-4df7-8a09-765794883524
2009-02-24 17:15:45 +00:00
jwang36
16cbc58005 Fixed single module build failure issue
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@7545 6f19259b-4bc3-4df7-8a09-765794883524
2009-02-19 10:00:25 +00:00
jwang36
9a99b39e56 Fixed an issue caused by passing string of fdf file path
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@7542 6f19259b-4bc3-4df7-8a09-765794883524
2009-02-18 14:15:15 +00:00
jwang36
56cdcbe1a5 Fixed the failure caused by specifying fdf file via "-f" switch
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@7541 6f19259b-4bc3-4df7-8a09-765794883524
2009-02-18 12:10:56 +00:00
jwang36
510750f5cf 1) Fixed silent mode issue in Linux.
2) Fixed customized build issue in Duet.

git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@7532 6f19259b-4bc3-4df7-8a09-765794883524
2009-02-17 04:14:58 +00:00
jwang36
750cfdecb9 Updated per the latest changes
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@7530 6f19259b-4bc3-4df7-8a09-765794883524
2009-02-17 02:05:01 +00:00
jwang36
a7d376877f 1. Use FAMILY defined in *_TAGNAME_*_*_FAMILY as the toolchain family
2. Force file name case check in Windows
3. Consolidate file/path operations
4. Support binary file type in build_rule.txt
5. Generate $(FILE_TYPES) macro only when it's used in build_rule.txt
6. Fix HSD202142 and HSD202144
 

git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@7529 6f19259b-4bc3-4df7-8a09-765794883524
2009-02-16 13:37:23 +00:00
jwang36
70e5ca2731 Fixed a PcdEx AutoGen bug
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@7358 6f19259b-4bc3-4df7-8a09-765794883524
2009-01-23 08:37:07 +00:00
lgao4
9d35ff8b32 Enhance GenFw tool to zero PeImage .xdata section (free form exception data) unused in BIOS, which can increase the compression ratio for the BIOS image.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@7321 6f19259b-4bc3-4df7-8a09-765794883524
2009-01-21 01:50:10 +00:00
jwang36
d95ecf491b Using share mode to create file.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@7251 6f19259b-4bc3-4df7-8a09-765794883524
2009-01-13 05:43:25 +00:00
jwang36
dacae1e8f8 Test version for performance concern.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@7249 6f19259b-4bc3-4df7-8a09-765794883524
2009-01-13 03:35:05 +00:00
jwang36
0ae247182a Fixed the out-of-sync issue of AutoGen-ed files in Windows platform.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@7248 6f19259b-4bc3-4df7-8a09-765794883524
2009-01-12 08:03:23 +00:00
jwang36
0c9ee2af3f Change the name of extension
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@7246 6f19259b-4bc3-4df7-8a09-765794883524
2009-01-12 06:12:10 +00:00
jwang36
5884bab5eb A test version making use Windows API to create AutoGen files
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@7244 6f19259b-4bc3-4df7-8a09-765794883524
2009-01-12 05:44:06 +00:00
jwang36
67d1416a43 Roll back to normal version
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@7240 6f19259b-4bc3-4df7-8a09-765794883524
2009-01-12 02:15:03 +00:00
jwang36
afa5db88b0 A trial version making use of pywin32 api to create file
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@7239 6f19259b-4bc3-4df7-8a09-765794883524
2009-01-11 08:21:41 +00:00
jwang36
8444320250 test version
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@7238 6f19259b-4bc3-4df7-8a09-765794883524
2009-01-10 13:05:21 +00:00
jwang36
cad8a80c0c Try to solve the non-existence issue of AutoGen-ed files.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@7237 6f19259b-4bc3-4df7-8a09-765794883524
2009-01-09 09:17:00 +00:00
jwang36
eb9b26e549 Final test version (GC plus bufsize=1) trying to solve the non-existence issue of AutoGen-ed files.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@7236 6f19259b-4bc3-4df7-8a09-765794883524
2009-01-09 08:01:03 +00:00
jwang36
e5ea66ab92 Another test version (using low-level api provided by os module) trying to solve the non-existence issue of AutoGen-ed files.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@7233 6f19259b-4bc3-4df7-8a09-765794883524
2009-01-09 07:33:29 +00:00
jwang36
ec7def69bf Another test version (using garbage collection to do cleanup) trying to solve the non-existence issue of AutoGen-ed files.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@7231 6f19259b-4bc3-4df7-8a09-765794883524
2009-01-09 06:54:39 +00:00
jwang36
b3ff502f6d Another test version (using bufsize=1) trying to solve the non-existence issue of AutoGen-ed files.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@7227 6f19259b-4bc3-4df7-8a09-765794883524
2009-01-09 05:36:20 +00:00
jwang36
8ec30b14c8 Another test version (using glob to check file existence) trying to solve the non-existence issue of AutoGen-ed files.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@7226 6f19259b-4bc3-4df7-8a09-765794883524
2009-01-09 05:20:11 +00:00
jwang36
88f185a232 Another test version (sleep in main loop) trying to solve the non-existence issue of AutoGen-ed files.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@7225 6f19259b-4bc3-4df7-8a09-765794883524
2009-01-09 04:57:59 +00:00
jwang36
7dd12c93b4 Another test version (using windows's specific 'c' open mode) trying to solve the non-existence issue of AutoGen-ed files.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@7224 6f19259b-4bc3-4df7-8a09-765794883524
2009-01-09 04:39:56 +00:00
jwang36
99f9af5afc Another test version trying to solve the non-existence issue of AutoGen-ed files.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@7222 6f19259b-4bc3-4df7-8a09-765794883524
2009-01-09 03:34:11 +00:00
jwang36
c52a147b40 Another test version trying to solve the non-existence issue of AutoGen-ed files.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@7221 6f19259b-4bc3-4df7-8a09-765794883524
2009-01-09 03:00:21 +00:00
lhauch
b6b554a152 Fixed the over-write message to print only with RECONFIG flag
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@7219 6f19259b-4bc3-4df7-8a09-765794883524
2009-01-08 16:58:03 +00:00
lgao4
2895c5060c Add general Tiano Compress tool path.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@7214 6f19259b-4bc3-4df7-8a09-765794883524
2009-01-08 08:46:46 +00:00
jwang36
8578c9a1d1 Another test version trying to solve the non-existence issue of AutoGen-ed files.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@7205 6f19259b-4bc3-4df7-8a09-765794883524
2009-01-08 02:06:29 +00:00
jwang36
44feaa765a A test version trying to solve the non-existence issue of AutoGen-ed files.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@7200 6f19259b-4bc3-4df7-8a09-765794883524
2009-01-07 06:27:50 +00:00
klu2
296ac32a66 Remove ASM16 tool definition, it is same as ASM tool for all tool chain in fact.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@7199 6f19259b-4bc3-4df7-8a09-765794883524
2009-01-07 02:34:39 +00:00
klu2
05e33af874 Add ASM16 rule for ICC tool chain.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@7193 6f19259b-4bc3-4df7-8a09-765794883524
2009-01-06 08:26:44 +00:00
lhauch
425332ec69 added messages for forcing reconfig, over-write of Conf files
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@7170 6f19259b-4bc3-4df7-8a09-765794883524
2008-12-31 17:05:30 +00:00
jwang36
6160c62835 Updated the changes in r7158
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@7161 6f19259b-4bc3-4df7-8a09-765794883524
2008-12-31 06:09:27 +00:00
jwang36
a388ec434a Updated the macro description according to the latest changes in build tool.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@7159 6f19259b-4bc3-4df7-8a09-765794883524
2008-12-31 06:06:11 +00:00
jwang36
2eab98c107 1) Re-fine and fully test the mechanism of getting over the long command line limitation
2) Change the -s option from "SpawnMode" to be "SilentMode"
3) Change the prototype of PeiCoreEntryPoint in AutoGen-ed code
4) Remove CalcDeps module since it's no longer needed.
5) Remove "-k", "-g" and "-l" switches from build
6) Remove MULTIPLE_THREAD in target.template. Use MAX_CONCURRENT_THREAD_NUMBER to get the functionality.



git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@7158 6f19259b-4bc3-4df7-8a09-765794883524
2008-12-31 05:53:26 +00:00
klu2
f65aced166 Correct binary tools for generating DUET image.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@7135 6f19259b-4bc3-4df7-8a09-765794883524
2008-12-26 07:56:49 +00:00
lgao4
e1b4bd1486 Roll back to add rule for uni file, change Uni output file to $(DEBUG_DIR)(+)$(MODULE_NAME)StrDefs.h.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@7119 6f19259b-4bc3-4df7-8a09-765794883524
2008-12-25 03:22:58 +00:00
lgao4
f5e6003bdf Remove unused PCH compiler option and unused build rule for uni file.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@7117 6f19259b-4bc3-4df7-8a09-765794883524
2008-12-25 01:09:52 +00:00
jwang36
d20c09b282 Fixed an issue which would cause build failure if there's more than one option input to $(MAKE) command.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@7079 6f19259b-4bc3-4df7-8a09-765794883524
2008-12-18 08:19:28 +00:00
jwang36
aceceae816 Always add files in [Sources] section to search list for string ID
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@7046 6f19259b-4bc3-4df7-8a09-765794883524
2008-12-16 13:15:03 +00:00
lgao4
6b9b954c40 Update GenSec tool to always create output file without check file content.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@7030 6f19259b-4bc3-4df7-8a09-765794883524
2008-12-15 07:39:56 +00:00
jlin16
619c3f0826 GenFds will try to deduce 'Target_Toolchain_Arch' KeyStringList for GUIDed section.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@7027 6f19259b-4bc3-4df7-8a09-765794883524
2008-12-15 07:10:49 +00:00
jwang36
7bfde65c79 Add incremental support for FD and Capsule generation.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@7018 6f19259b-4bc3-4df7-8a09-765794883524
2008-12-13 12:52:46 +00:00
jlin16
96dcf1973f GenFds enable display FV space information when incremental build.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@7012 6f19259b-4bc3-4df7-8a09-765794883524
2008-12-12 06:51:49 +00:00
jwang36
189b65e426 Update
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@7010 6f19259b-4bc3-4df7-8a09-765794883524
2008-12-12 06:30:22 +00:00
jwang36
2b366ba67d 1) Search value of Guid/Protocol/PPI in inf file only in the same category in dec file.
2) Pass all files in a module's directory to StrGather for R8 modules.

git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@7009 6f19259b-4bc3-4df7-8a09-765794883524
2008-12-12 06:22:53 +00:00
jwang36
214099c788 git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@6931 6f19259b-4bc3-4df7-8a09-765794883524 2008-12-09 07:20:12 +00:00
jwang36
1b0ea113a3 1) Separate the AutoGen code for PCDs between module and its library instances. Only macros for module's PCDs will be put in AutoGen.h. Others will be put in AutoGen.c. This is intended to catch missed PCDs in inf file more easily.
2) For better compatibile between C standards or C compiler, add type cast for PCD constants in AutoGen.h according to the PCD datum type.
3) Add incremental generation capability for FV in GenFds tool.


git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@6930 6f19259b-4bc3-4df7-8a09-765794883524
2008-12-09 07:13:26 +00:00
jwang36
354aa8a288 Updated with latest changes.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@6921 6f19259b-4bc3-4df7-8a09-765794883524
2008-12-08 09:34:17 +00:00
eric_tian
5edaeedefb revert to older version as /Zm option for "ml" can not work well.
A bug exists when there are such statement in a asm file:
_InterlockedCompareExchangePointer  PROC
_InterlockedCompareExchangePointer  ENDP
_InterlockedCompareExchange32   PROC
    mov     ecx, [esp + 4]
    mov     eax, [esp + 8]
    mov     edx, [esp + 12]
    lock    cmpxchg [ecx], edx
    ret
_InterlockedCompareExchange32   ENDP

The assembly will export _InterlockedCompareExchangePointer but not _InterlockedCompareExchange32 when using /Zm option.
This option also introduced another strange issue in link time. Link tool will complain it can not find all symbols exported in the asm file when it is built by /Zm option.

git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@6864 6f19259b-4bc3-4df7-8a09-765794883524
2008-12-05 07:35:41 +00:00
eric_tian
39eb632ebb add /Zm option for VS2005 assembly to make sure it is compatible with MASM5.1 syntax. Or "ml" in Vs2005 may break on old code style.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@6856 6f19259b-4bc3-4df7-8a09-765794883524
2008-12-05 05:25:48 +00:00
jwang36
ed21ba850d Added a feature to print out storage layout in lst file.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@6844 6f19259b-4bc3-4df7-8a09-765794883524
2008-12-04 09:08:00 +00:00
jwang36
749adca550 Re-generated with the latest source code.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@6841 6f19259b-4bc3-4df7-8a09-765794883524
2008-12-04 07:36:13 +00:00
jwang36
06b360150c a. Added a feature to allow override tools option via "==" in metafile.
b. Removed the AutoGen.c generation for R8 module without unicode file.

git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@6828 6f19259b-4bc3-4df7-8a09-765794883524
2008-12-04 04:57:45 +00:00
jwang36
0e4d589e91 Fixed regression bug HSD201375
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@6780 6f19259b-4bc3-4df7-8a09-765794883524
2008-11-29 12:20:14 +00:00
jwang36
1a974389fd Added /D$(MODULE_ENTRY_POINT)=$(ARCH_ENTRY_POINT) in EBC_CC_FLAGSto ensure correct R8's module entry point for EBC arch.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@6772 6f19259b-4bc3-4df7-8a09-765794883524
2008-11-28 06:11:32 +00:00
jwang36
b3b6a070d0 a. Fixed R8 module build issue for EBC arch
B. Fixed issue in trimming preprocessed VFR file with no space between "struct" and open "{".

git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@6771 6f19259b-4bc3-4df7-8a09-765794883524
2008-11-28 06:09:25 +00:00
lgao4
abf1c3e47f Check In Build.exe and tools_def.template
1. Declare entry point, constructor into AutoGen.h
2. Create ModuleNameStrDefs.h to contain uni code string ID. 

git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@6762 6f19259b-4bc3-4df7-8a09-765794883524
2008-11-27 09:15:52 +00:00
klu2
f560de7307 Pcd Tools need .Map file when building a EFI binary for EBC tool chain.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@6735 6f19259b-4bc3-4df7-8a09-765794883524
2008-11-26 08:21:25 +00:00
jwang36
35a646e204 Fixed an incorrect PCD type string conversion
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@6724 6f19259b-4bc3-4df7-8a09-765794883524
2008-11-25 09:59:02 +00:00
klu2
543cecc301 Use "GLOBAL_REMOVE_IF_UNREFERENCED volatile" for variable of binary patch PCD.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@6712 6f19259b-4bc3-4df7-8a09-765794883524
2008-11-24 17:57:43 +00:00
lgao4
ebff0282f2 Update VfrCompile tool to fix bug that parse the complicated expression, such as ((BOOLEAN)(1==1)) to create the wrong EndOf opcode.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@6711 6f19259b-4bc3-4df7-8a09-765794883524
2008-11-24 11:56:43 +00:00
jljusten
6ff04b8e40 Use VFRPP tool for VFR pre-processing.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@6675 6f19259b-4bc3-4df7-8a09-765794883524
2008-11-21 19:09:26 +00:00
qwang12
1459f3cd48 1) StrGather (Build.exe) in compatible mode add a Framework Package Header to replace the original “ArrayLength” generated in the output.
2) VfrCompiler in compatible mode add a Framework Package Header to replace the original “ArrayLength” generated in the output.
3) HII Thunk module nows support Narrow Font registered using Framework New Pack HII interface.
4) Fix a bug in IfrLibCreatePopUp2 by updating the prototype. The previous way of using VA_START to get the address of parameter in the argument list and expecting the parameters that follows will be found using VA_ARG macro is wrong. 


git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@6671 6f19259b-4bc3-4df7-8a09-765794883524
2008-11-21 15:07:14 +00:00
lgao4
cd3c4fcdfd 1. Enhance GenFv WriteFvMap function to print basic debug information (entrypoint, baseaddress, .text, .data section base address) when no map can be referred.
2. Enhance GenFv tool to create the non PI file system firmware volume.

3. Update VfrComile 
 1) Set the first framework var store name to “Setup”
 2) Support DEFAULT and MANUFACTURING for framework CheckBox flags value

git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@6666 6f19259b-4bc3-4df7-8a09-765794883524
2008-11-21 07:23:17 +00:00
jwang36
d4a20ec9dc Changed the way to compare the content of AutoGen with the file to be generated from it. This is to solve the re-generation issue of AutoGen files because of the newline format is different between the internal representation and the file.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@6658 6f19259b-4bc3-4df7-8a09-765794883524
2008-11-21 04:38:01 +00:00
jwang36
6ae2cf5c0f Changed file line format of AutoGen files to native style.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@6640 6f19259b-4bc3-4df7-8a09-765794883524
2008-11-20 02:00:07 +00:00
jwang36
b21f3994c7 Removed GLOBAL_REMOVE_IF_UNREFERENCED for patchable PCD because it will cause that patchable PCD variables information won't be in the map file generated by linker.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@6617 6f19259b-4bc3-4df7-8a09-765794883524
2008-11-19 02:25:50 +00:00
qwang12
a19b85ea59 [VfrCompiler FeatureRequest] Generate data for ConfigAccess.ExtractConfig() impl
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@6613 6f19259b-4bc3-4df7-8a09-765794883524
2008-11-18 14:27:22 +00:00
lgao4
64cd21af35 Update ASL build rule, Add PeiLibPciCfgModify into EDKII GlueLib PeiServiceLib to support the modules that uses EDKII Glue Lib
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@6551 6f19259b-4bc3-4df7-8a09-765794883524
2008-11-17 02:12:36 +00:00
mdkinney
d0a0826133 Update GenFv to support SEC built using X64 tools
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@6549 6f19259b-4bc3-4df7-8a09-765794883524
2008-11-15 21:54:07 +00:00
jwang36
7c98946fe6 Removed the replacement rule of PEI_PCI_CFG_PPI for R8 source code conversion
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@6534 6f19259b-4bc3-4df7-8a09-765794883524
2008-11-13 10:24:56 +00:00
jwang36
c555018670 Fixed HSD 201877: 'END' in [depex] caused GenDepex failure
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@6501 6f19259b-4bc3-4df7-8a09-765794883524
2008-11-13 08:37:47 +00:00
jwang36
a7451d112d a. Added ImportTool.bat script
b. Added more error check for Trim.exe


git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@6490 6f19259b-4bc3-4df7-8a09-765794883524
2008-11-13 07:51:03 +00:00
jwang36
53347b6ed4 a. Changed ASL code trim scheme
b. Added one more rule for convert R8 source code and added missing '&' before gPciCfgPpi.


git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@6488 6f19259b-4bc3-4df7-8a09-765794883524
2008-11-13 07:07:29 +00:00
jwang36
00ee6b6b86 a. Fixed conversion failure for ASL style include.
b. Not to save file if converted file is intact and the target file is the source file.


git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@6483 6f19259b-4bc3-4df7-8a09-765794883524
2008-11-13 04:56:54 +00:00
jwang36
74c90c7e47 a. Allowed flags of tools not defined tools_def.txt
b. Added BUILD as internal tool to pass compatible mode of unicode to build tool.
c. Added support of [Depex.common.<ModuleType>] in inf file
d. Added more optimization, especially for architecture protocols, in GeDepex tool
e. Fixed the generation of _gPeimRevision and _gDxeRevision global variables in AutoGen.c according to new MdePkg spec.
f. Changed the header file of DxeSmmeEntryPoint.h to UefiDriverEntryPoint.h in AutoGen.c since it's no longer exist.
g. Fixed $(PROCESSOR) macro replacement issue in [nmake] section


git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@6452 6f19259b-4bc3-4df7-8a09-765794883524
2008-11-11 08:37:20 +00:00
jwang36
498a6d9883 Fixed an issue which caused incorrect path generated when validating
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@6438 6f19259b-4bc3-4df7-8a09-765794883524
2008-11-10 05:54:23 +00:00
jlin16
63a66a35c8 Fix HSD 201801: [GenFds] Error reported when a non-existing INF file is specified is not clear
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@6411 6f19259b-4bc3-4df7-8a09-765794883524
2008-11-06 07:53:01 +00:00
mdkinney
0764e7ed0b Remove all references to ASMLINK16. Those are never used.
Change ASMLINK to use link16.exe instead of link.exe to make it clear this is a 16-bit operation
Remove all references to ASMLINK from IPF and X64 builds



git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@6381 6f19259b-4bc3-4df7-8a09-765794883524
2008-11-04 21:57:13 +00:00
mdkinney
acae1bc393 Remove all references to ASMLINK16. Those are never used.
Change ASMLINK to use link16.exe instead of link.exe to make it clear this is a 16-bit operation
Remove all references to ASMLINK from IPF and X64 builds



git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@6380 6f19259b-4bc3-4df7-8a09-765794883524
2008-11-04 21:50:46 +00:00
jwang36
d2ef2ab552 Fixed build failure of R8 modules with uni file
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@6310 6f19259b-4bc3-4df7-8a09-765794883524
2008-10-30 09:57:36 +00:00
jwang36
9df87888de Performance improvement on startup of build.exe
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@6289 6f19259b-4bc3-4df7-8a09-765794883524
2008-10-30 03:14:10 +00:00
jwang36
f40a038076 Fixed incorrect function prototype in AutoGen.c for PEI modules.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@6272 6f19259b-4bc3-4df7-8a09-765794883524
2008-10-28 09:40:43 +00:00
jwang36
82adad58b5 1. Fixed bugs of HSD bug trackers 201729, 201670 and 201601
2. Improved the screen output when in quiet build mode
3. Added "tbuild" target in makefile in order to not created directories in makefile. Instead, they will be created in build tool. This will give better build performance, especially in incremental build.
4. Added space check in WORKSPACE and OUTPUT_DIRECTORY (in dsc file) directory name and give error message if found.


git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@6269 6f19259b-4bc3-4df7-8a09-765794883524
2008-10-28 08:22:50 +00:00
qhuang8
e27dd4e956 Regenerate build binary (based on BaseTools r1333) to include some missing encodings to avoid build crash when generation the final image.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@6188 6f19259b-4bc3-4df7-8a09-765794883524
2008-10-22 14:05:17 +00:00
hche10x
aff8fb942c 1. Sync the binary with the latest source modification
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@6186 6f19259b-4bc3-4df7-8a09-765794883524
2008-10-22 09:06:44 +00:00
hche10x
f2ea316578 1. Sync the binary with the latest source modification
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@6185 6f19259b-4bc3-4df7-8a09-765794883524
2008-10-22 09:04:32 +00:00
qhuang8
3b1abda484 Regenerate build binary (based on BaseTools r1332) to include some missing encodings to avoid build crash when generation the final image.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@6173 6f19259b-4bc3-4df7-8a09-765794883524
2008-10-21 14:15:42 +00:00
hche10x
47b702c650 1. Sync the binary with the latest source modification
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@6162 6f19259b-4bc3-4df7-8a09-765794883524
2008-10-21 02:03:39 +00:00
jwang36
1003f96692 Fixed two minor issues
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@6122 6f19259b-4bc3-4df7-8a09-765794883524
2008-10-16 08:36:31 +00:00
jwang36
abb59a606c Fixed the incorrect file printed out when an unknown exception occurred.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@6121 6f19259b-4bc3-4df7-8a09-765794883524
2008-10-16 08:21:27 +00:00
jlin16
bf9ffb9f6b ECP support update.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@6116 6f19259b-4bc3-4df7-8a09-765794883524
2008-10-15 04:45:31 +00:00
jlin16
d3b835caa0 ECP support update.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@6078 6f19259b-4bc3-4df7-8a09-765794883524
2008-10-07 05:46:11 +00:00
jwang36
7befabe5ce Fixed HSD201706, which a None SourceOverrideDir will cause path join failure.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@6075 6f19259b-4bc3-4df7-8a09-765794883524
2008-10-06 02:53:54 +00:00
jlin16
6fa28b758b GenFds fix two UI sections error.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@5953 6f19259b-4bc3-4df7-8a09-765794883524
2008-09-23 09:28:11 +00:00
jwang36
c8b671eea5 Fixed HSD201555
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@5923 6f19259b-4bc3-4df7-8a09-765794883524
2008-09-18 05:59:18 +00:00
jwang36
205564ad9b Fixed HSD201384 & HSD201375
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@5913 6f19259b-4bc3-4df7-8a09-765794883524
2008-09-17 09:42:38 +00:00
lgao4
ffe084ee76 1. Add ASM source files directory into its Include path.
2. Change the output directory for ASL files to the subdirectory in order to avoid the same file names. 

git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@5867 6f19259b-4bc3-4df7-8a09-765794883524
2008-09-10 06:51:00 +00:00
lgao4
fc952584eb Fix vfr compiler build error for checkbox check.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@5782 6f19259b-4bc3-4df7-8a09-765794883524
2008-09-03 01:47:21 +00:00
lgao4
aae7c80fa8 Update VfrCompile to check Array Index and VarId data type.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@5780 6f19259b-4bc3-4df7-8a09-765794883524
2008-09-02 12:47:13 +00:00
jlin16
3ffe97a634 roll back workspace.py code change.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@5778 6f19259b-4bc3-4df7-8a09-765794883524
2008-09-02 08:04:28 +00:00
hche10x
ca3a49825d 1. Fix a bug for variable init issue.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@5777 6f19259b-4bc3-4df7-8a09-765794883524
2008-09-02 07:56:14 +00:00
jlin16
be9b89f598 Build & GenFds R8 ECP support.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@5762 6f19259b-4bc3-4df7-8a09-765794883524
2008-09-01 09:44:40 +00:00
lgao4
f0373115cc Add the special build rule for AcpiTable C Source file.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@5759 6f19259b-4bc3-4df7-8a09-765794883524
2008-09-01 01:18:00 +00:00
vanjeff
576b299ac9 add .mut file type support for Microcode files.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@5730 6f19259b-4bc3-4df7-8a09-765794883524
2008-08-26 06:18:30 +00:00
lgao4
98335d901b Minor change to remove /GL- option unsupported by ICC tool chain.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@5707 6f19259b-4bc3-4df7-8a09-765794883524
2008-08-21 13:23:12 +00:00
lgao4
a1c949f333 Update GenSec to handle the input file whose size is Zero. And add the unified ASL tool path and flags for ASL code.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@5706 6f19259b-4bc3-4df7-8a09-765794883524
2008-08-21 13:11:01 +00:00
jlin16
281bb4b6a3 GenFds add FV space information display.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@5652 6f19259b-4bc3-4df7-8a09-765794883524
2008-08-14 08:47:44 +00:00
lgao4
060f5fc9fc Declare Default MANUFACTURING Store for Vfr Code Reference.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@5651 6f19259b-4bc3-4df7-8a09-765794883524
2008-08-14 04:41:52 +00:00
jwang36
0d037274f8 Added TOOLCHAIN macro in makefile besides TOOLCHAIN_TAG
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@5641 6f19259b-4bc3-4df7-8a09-765794883524
2008-08-14 02:07:08 +00:00
lgao4
f4168df83f Enhance GenFv tool to print Fv Size and Length, and Get module map by module pdb pointer and get module guid by module FFS guid.
And Enhance VfrCompiler to handle framework vfr file, and print more debug information into .lst file.

git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@5635 6f19259b-4bc3-4df7-8a09-765794883524
2008-08-13 02:22:18 +00:00
jwang36
f285eb1628 1. Enhanced the format of build_rule.txt to allow module type and arch information.
2. Enhanced Trim to convert ASL style of include to C style of include
3. Enhanced Trim to convert some EDK coding convention to EDK2 ECP convention
4. Added warning message when encountering unrecognized content in DSC/DEC/INF File
5. Enhanced the GenDepex to ignore everything outside DEPENDENCY_STANT and DEPENDENCY_END in dxs file


git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@5634 6f19259b-4bc3-4df7-8a09-765794883524
2008-08-12 07:54:36 +00:00
klu2
dbb76af316 Update two tool binary for Duet platform
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@5630 6f19259b-4bc3-4df7-8a09-765794883524
2008-08-12 05:09:14 +00:00
lgao4
bdf37b3c46 Change VfrCompile.exe to VfrCompile to support the different OS.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@5623 6f19259b-4bc3-4df7-8a09-765794883524
2008-08-10 03:56:03 +00:00
jwang36
e81429bdfb Fixed a block issue caused by R8 library instance
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@5611 6f19259b-4bc3-4df7-8a09-765794883524
2008-08-07 08:02:34 +00:00
lgao4
30962c7752 Abstract VFR compiler and Flag to marco that user can customize.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@5610 6f19259b-4bc3-4df7-8a09-765794883524
2008-08-07 03:29:10 +00:00
jwang36
9e3ae2db3a Added more error check
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@5594 6f19259b-4bc3-4df7-8a09-765794883524
2008-07-31 08:24:23 +00:00
jwang36
54bac0db0b 1. Fixed escape character issue in string value of PCD
2. Added host information in build message

git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@5579 6f19259b-4bc3-4df7-8a09-765794883524
2008-07-28 04:38:06 +00:00
jwang36
4ad4145108 1. Fixed NULL library instance issue
2. Fixed non-existing table issue
3. Added more error message for format error

git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@5562 6f19259b-4bc3-4df7-8a09-765794883524
2008-07-25 06:41:38 +00:00
lgao4
2ba79f2419 Fix the bug to create Pci2.3 and Pci3.0 rom image.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@5494 6f19259b-4bc3-4df7-8a09-765794883524
2008-07-16 07:08:12 +00:00
eric_tian
73aa7f049b merge the generation of SecMain into the whole build process.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@5491 6f19259b-4bc3-4df7-8a09-765794883524
2008-07-16 05:28:50 +00:00
lgao4
658885420f Temp Roll Back Build.exe to fix the unknown NULL library class instance issue.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@5416 6f19259b-4bc3-4df7-8a09-765794883524
2008-07-08 06:33:21 +00:00
jwang36
f3947f1ac7 Polished the error checks and error messages
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@5412 6f19259b-4bc3-4df7-8a09-765794883524
2008-07-07 09:00:04 +00:00
jwang36
4611e327f4 Fixed rebuild failure issue when un-recognized macro is used in "#include" directive.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@5383 6f19259b-4bc3-4df7-8a09-765794883524
2008-06-30 07:17:54 +00:00
eric_tian
865c7e1722 Provide source level debug ability in *unix environment.
[Background]
The UnixPkg provide an simulator in *unix. To support source level debug, we need force all modules be built as ELF shard objects and dynamically load all of modules using dlopen(). For peicore, peim and dxecore, we provide a wrapper to provide PeCoffLoader interface 

git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@5382 6f19259b-4bc3-4df7-8a09-765794883524
2008-06-30 06:25:43 +00:00
eric_tian
ed0b86b183 make change to support UnixPkg build. The changes are listed as follows:
1. change ASM_PFX() macro, the underscore preceding to function symbol don't be added in Linux.
2. move some illegal characters in .S file.
3. change ELFGCC flag in tools_def.template to support Linux&ELFGCC build

git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@5381 6f19259b-4bc3-4df7-8a09-765794883524
2008-06-30 05:50:49 +00:00
lgao4
acbbe34e7b Correct print Error message
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@5358 6f19259b-4bc3-4df7-8a09-765794883524
2008-06-21 09:30:51 +00:00
jwang36
e19846c766 Fixed HSD tracker 201036
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@5350 6f19259b-4bc3-4df7-8a09-765794883524
2008-06-19 02:35:15 +00:00
lhauch
9cf974f646 fixed a typo
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@5341 6f19259b-4bc3-4df7-8a09-765794883524
2008-06-11 22:01:53 +00:00
qwang12
616380f68b Add "-l" to make VFR Compiler to generate .lst file to assist debug.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@5334 6f19259b-4bc3-4df7-8a09-765794883524
2008-06-05 07:48:54 +00:00
jwang36
23fdff8236 Added dependency of makefile to source files in order to let source files be rebuilt when tool option changes
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@5333 6f19259b-4bc3-4df7-8a09-765794883524
2008-06-05 07:36:19 +00:00
qwang12
fd6e8b4b82 add VFRPP patch for EBC WINDDK3790x1830 tool chain.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@5328 6f19259b-4bc3-4df7-8a09-765794883524
2008-06-05 01:43:26 +00:00
jwang36
d389c6f3fc Changed the error message to be clearer when no source files are found for build
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@5323 6f19259b-4bc3-4df7-8a09-765794883524
2008-06-04 07:08:50 +00:00
lgao4
00fc1dab5a Enhance GenFv tool always collect all module Map files into the single FvMap file for user easy reference.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@5305 6f19259b-4bc3-4df7-8a09-765794883524
2008-05-27 09:05:24 +00:00
jwang36
7e1230b6a1 a. Fixed the incorrect generated array in c code for default store values
b. Fixed the version string.

git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@5265 6f19259b-4bc3-4df7-8a09-765794883524
2008-05-21 08:08:57 +00:00
lhauch
76c6abd94f setting executable on these files
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@5241 6f19259b-4bc3-4df7-8a09-765794883524
2008-05-20 17:43:07 +00:00
lhauch
634739f1f1 setting executable on these files
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@5239 6f19259b-4bc3-4df7-8a09-765794883524
2008-05-20 17:29:28 +00:00
lhauch
acad1501d5 Forcing dlls and pyd files to executable
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@5236 6f19259b-4bc3-4df7-8a09-765794883524
2008-05-20 17:06:52 +00:00
jwang36
d5ce7c3e22 Fixed PCD override issue
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@5221 6f19259b-4bc3-4df7-8a09-765794883524
2008-05-19 05:12:27 +00:00
jwang36
263822c99f a. Fixed PCD override issue
b. Added error check and report for incompatible files in meta file.

git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@5212 6f19259b-4bc3-4df7-8a09-765794883524
2008-05-16 08:47:15 +00:00
jwang36
412339e0fb Fixed an error during optimizing dependency expression.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@5210 6f19259b-4bc3-4df7-8a09-765794883524
2008-05-16 03:09:51 +00:00
jwang36
f44eb8f641 Fixed error report error when more than one inf files found
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@5209 6f19259b-4bc3-4df7-8a09-765794883524
2008-05-16 02:19:28 +00:00
lgao4
0a1d7bdc45 Add ASL_FLAGS template for user reference.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@5205 6f19259b-4bc3-4df7-8a09-765794883524
2008-05-15 04:58:49 +00:00
jwang36
073e905aaa a. Fixed varid 0 issue in VfrCompile
b. Fixed an undefined variable in the parser of tools_def.txt

git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@5204 6f19259b-4bc3-4df7-8a09-765794883524
2008-05-15 03:41:16 +00:00
jwang36
c0577805c9 Fixed VFR compile issue for EBC architecture in MYTOOLS toolchain
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@5203 6f19259b-4bc3-4df7-8a09-765794883524
2008-05-15 03:00:04 +00:00
jwang36
c5e1d28d1c Fixed an issue in default storage for checkbox and changed the format of error message.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@5198 6f19259b-4bc3-4df7-8a09-765794883524
2008-05-13 09:34:02 +00:00
jwang36
335b890e40 Added incremental support in GenFds
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@5193 6f19259b-4bc3-4df7-8a09-765794883524
2008-05-09 09:21:05 +00:00
lgao4
7aef40366c Fix the bug in GenSec tool, the nonexist file can't be parsed correctly.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@5192 6f19259b-4bc3-4df7-8a09-765794883524
2008-05-09 08:45:41 +00:00
jwang36
58f33ba9d2 Changed the path of symbol file to be always the same as vtf file
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@5191 6f19259b-4bc3-4df7-8a09-765794883524
2008-05-09 08:44:42 +00:00
jwang36
aa32d1eb9f a) Added explicit banner for pass/fail indication of build
b) Fixed the issue which cause error message from FDF parser won't be printed out.
c) Fixed the error message format of FDF parser
d) Changed the exit code of build tool from always 1 to error code, if error occurred


git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@5186 6f19259b-4bc3-4df7-8a09-765794883524
2008-05-08 13:21:37 +00:00
klu2
adf74fc6b2 Fix typo.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@5184 6f19259b-4bc3-4df7-8a09-765794883524
2008-05-08 06:25:45 +00:00
klu2
1f4dfdd962 Add ASM16 tool configuration for MYTOOLS tag.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@5181 6f19259b-4bc3-4df7-8a09-765794883524
2008-05-08 04:12:33 +00:00
klu2
d61444c8c8 Update GenBootSector tools' binary for tool code cleanup.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@5172 6f19259b-4bc3-4df7-8a09-765794883524
2008-05-07 05:09:52 +00:00
klu2
65a18d1ac2 Update BootSectImage and GenBootSector tools' binary for DUET platform.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@5167 6f19259b-4bc3-4df7-8a09-765794883524
2008-05-05 08:45:07 +00:00
jwang36
714e8111b7 Fixed an issue which would cause build failure in some corner cases.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@5148 6f19259b-4bc3-4df7-8a09-765794883524
2008-04-29 06:54:10 +00:00
jwang36
48014aedba Made it working
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@5139 6f19259b-4bc3-4df7-8a09-765794883524
2008-04-28 08:11:51 +00:00
jwang36
2a3ce6dd17 Added python wrapper of EFI (de)compressor
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@5134 6f19259b-4bc3-4df7-8a09-765794883524
2008-04-28 03:54:58 +00:00
lgao4
8067d3032c Correct the bug to ignore the encapsulated section.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@5122 6f19259b-4bc3-4df7-8a09-765794883524
2008-04-24 07:44:04 +00:00
jwang36
54b8514b27 Fixed an CR/LF issue in FDF file
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@5121 6f19259b-4bc3-4df7-8a09-765794883524
2008-04-24 07:22:35 +00:00
jwang36
e645aacd53 Fixed several typo in variable names
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@5120 6f19259b-4bc3-4df7-8a09-765794883524
2008-04-24 07:20:22 +00:00
lgao4
e00f3fe1cc 1. GenSec tool only updates output file when the contents of the output file are modified.
2. GenFfs tool checks the Pe/Te section for PEI and DXE file type. If Pe section doesn't exist, GenFfs tool will report error.

git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@5117 6f19259b-4bc3-4df7-8a09-765794883524
2008-04-24 04:15:36 +00:00
jwang36
4bd94693b3 Changed GenFds to use database based module/package/platform information retrieval mechanism
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@5101 6f19259b-4bc3-4df7-8a09-765794883524
2008-04-21 06:35:06 +00:00
jwang36
6a30250d8b Added several improvements for user experience
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@5098 6f19259b-4bc3-4df7-8a09-765794883524
2008-04-20 14:35:43 +00:00
lgao4
0f9d26a7dd Add the function relative address to the base address in the map file for user easy reference.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@5096 6f19259b-4bc3-4df7-8a09-765794883524
2008-04-18 09:16:05 +00:00
jwang36
2c1bc18a3b Fixed error data in generated listing file
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@5095 6f19259b-4bc3-4df7-8a09-765794883524
2008-04-18 07:18:03 +00:00
lgao4
25ab7ab110 For MicroCode module, default copy the created image to bin directory for easy reference.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@5087 6f19259b-4bc3-4df7-8a09-765794883524
2008-04-18 03:08:20 +00:00
jwang36
23676585e0 Fixed an issue in calculating common dependency files
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@5077 6f19259b-4bc3-4df7-8a09-765794883524
2008-04-17 06:42:07 +00:00
jwang36
813bfd0813 Fixed an print issue when generating listing file
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@5074 6f19259b-4bc3-4df7-8a09-765794883524
2008-04-17 02:12:13 +00:00
jwang36
ccb2e5a64b Fixed include file matching issue if there's space in macro used in "#include".
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@5073 6f19259b-4bc3-4df7-8a09-765794883524
2008-04-17 01:46:44 +00:00
jwang36
cdb579481a Fixed a NULL library instance issue
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@5068 6f19259b-4bc3-4df7-8a09-765794883524
2008-04-15 14:21:33 +00:00
jwang36
91d3ac3514 Applied macro replacement for FDF file path in DSC file
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@5067 6f19259b-4bc3-4df7-8a09-765794883524
2008-04-15 08:56:02 +00:00
jwang36
4e4a057b72 Fixed a NULL library instance issue
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@5065 6f19259b-4bc3-4df7-8a09-765794883524
2008-04-14 07:21:32 +00:00
jwang36
409ff67707 Fixed build error if there's more than one NULL library instances for a module.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@5059 6f19259b-4bc3-4df7-8a09-765794883524
2008-04-14 03:20:00 +00:00
jwang36
23acc9566c Fixed an issue in top level makefile which missed a 'cd' command and will cause build failure on some platform.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@5041 6f19259b-4bc3-4df7-8a09-765794883524
2008-04-11 02:16:18 +00:00
jwang36
7859df05bc Fixed a typo in variable name
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@5036 6f19259b-4bc3-4df7-8a09-765794883524
2008-04-10 05:38:25 +00:00
lgao4
a36e1ce43c Add more usage description for -r option, and add option keepexceptiontable and keepzeropending not to remove exception table and zero pending data.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@5035 6f19259b-4bc3-4df7-8a09-765794883524
2008-04-10 04:07:42 +00:00
jwang36
0216f62085 a. Improved build launch performance and fixed tons of bugs
b. Employed antlr to parse dependency expression for better syntax error check

git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@5032 6f19259b-4bc3-4df7-8a09-765794883524
2008-04-09 14:14:14 +00:00
jljusten
ed4c327ca3 edk2/BaseTools:
Reference BaseTools source for gcc instructions & scripts.


git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@4997 6f19259b-4bc3-4df7-8a09-765794883524
2008-04-07 16:29:26 +00:00
lgao4
07a0a7f25c Correct one bug when add pad file may cause size exceed the region.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@4979 6f19259b-4bc3-4df7-8a09-765794883524
2008-04-02 07:18:04 +00:00
lgao4
b900faa235 Enhance GenFw tool to always zero .pdata section for PE32 and PE32+ image in order to improve compression ratio for them.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@4971 6f19259b-4bc3-4df7-8a09-765794883524
2008-03-31 05:25:03 +00:00
jwang36
eba88b794e Changed per the recent update
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@4942 6f19259b-4bc3-4df7-8a09-765794883524
2008-03-21 06:14:01 +00:00
lgao4
4a73341484 Correct Error Message format for these C tools according to the Tool Design Spec.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@4918 6f19259b-4bc3-4df7-8a09-765794883524
2008-03-19 09:22:18 +00:00
jwang36
7de83e3598 Fixed an incompatible issue in StrGather, which will cause undefined string tokens if R8 modules doesn't have their source directory in include search path list.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@4859 6f19259b-4bc3-4df7-8a09-765794883524
2008-03-17 05:59:16 +00:00
lgao4
4ee8254a0c Disable unused C++ EH and RTTI feature by adding /GX- option for VC7 and adding /GR- option for VC8.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@4849 6f19259b-4bc3-4df7-8a09-765794883524
2008-03-14 03:12:29 +00:00
lhauch
5b4756eacc Fixing gcc CC Flags and ld flags - adding map
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@4847 6f19259b-4bc3-4df7-8a09-765794883524
2008-03-13 20:46:42 +00:00
jwang36
f4c0826f4a Added "extern int __make_me_compile_correctly;" for R8 modules in AutoGen.c because it may be empty.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@4845 6f19259b-4bc3-4df7-8a09-765794883524
2008-03-13 09:09:57 +00:00
lhauch
c2192d9324 changing shortcut name to descriptive names for grouping librarys
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@4842 6f19259b-4bc3-4df7-8a09-765794883524
2008-03-12 14:08:12 +00:00
jwang36
49c8e7794e Merged bug fix (HSD200972) by Hess
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@4786 6f19259b-4bc3-4df7-8a09-765794883524
2008-03-04 06:36:01 +00:00
jwang36
c5b5c41187 Tried to fix an issue which will cause file access error.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@4785 6f19259b-4bc3-4df7-8a09-765794883524
2008-03-04 01:38:31 +00:00
jwang36
edf96db44a Re-built python tools with Python2.5.2
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@4783 6f19259b-4bc3-4df7-8a09-765794883524
2008-03-03 03:09:31 +00:00
jwang36
bc4cb041a3 Rebuilt per the Hess's bug fixes
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@4781 6f19259b-4bc3-4df7-8a09-765794883524
2008-02-29 07:30:55 +00:00
jwang36
f7f0d9e8bb Merged Jordan's update
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@4780 6f19259b-4bc3-4df7-8a09-765794883524
2008-02-29 02:19:21 +00:00
jwang36
6b36020056 Fixed dependency expression issue
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@4779 6f19259b-4bc3-4df7-8a09-765794883524
2008-02-28 12:54:18 +00:00
jlin16
3531be0158 GenFds.exe adapt to new build database structure.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@4768 6f19259b-4bc3-4df7-8a09-765794883524
2008-02-28 08:46:21 +00:00
jwang36
f4b5ed0e71 Fixed HSD200760:
Gendepex tool should handle merging of GUID in the final bianry

git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@4767 6f19259b-4bc3-4df7-8a09-765794883524
2008-02-28 07:26:54 +00:00
qhuang8
83be5e88e7 Fix the following issues: (base tools source r1024)
1. Vfr compiler cannot handle #pragma pack(push, 1) well.
2. VfrCompiler should report error for the unsupported format e.g.option text = STRING_TOKEN(STR_DISABLE), ..., key = 1;
3. VfrCompiler error messages are unclear for referencing undefined Q ID


git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@4766 6f19259b-4bc3-4df7-8a09-765794883524
2008-02-28 07:12:19 +00:00
jwang36
c47698067e Fixed a binary file support issues which will cause exception in tools when building library modules
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@4764 6f19259b-4bc3-4df7-8a09-765794883524
2008-02-28 05:39:46 +00:00
lgao4
94cb0cfbcd Update platform build tools by adding input parameter check and guid format check.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@4759 6f19259b-4bc3-4df7-8a09-765794883524
2008-02-26 09:21:46 +00:00
lhauch
ad42b17a75 Fixed option name, ForceRebuild
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@4748 6f19259b-4bc3-4df7-8a09-765794883524
2008-02-22 16:37:53 +00:00
lhauch
8014e7ceb0 Removed newbuild option from edksetup.bat command-line, this is now the default.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@4747 6f19259b-4bc3-4df7-8a09-765794883524
2008-02-22 16:31:23 +00:00
jwang36
34d675a0c9 Fixed mismatched command line switch
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@4744 6f19259b-4bc3-4df7-8a09-765794883524
2008-02-22 02:52:37 +00:00
lhauch
01c665a0a8 Fixed VFR flag to: --no-pre-processing
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@4743 6f19259b-4bc3-4df7-8a09-765794883524
2008-02-22 00:22:32 +00:00
jwang36
87acd19c6d Standardized the command line options of VfrCompile.exe and changed its uses in build_rule.template.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@4740 6f19259b-4bc3-4df7-8a09-765794883524
2008-02-21 00:50:13 +00:00
jwang36
e2336e3968 a. Added binary file support during AutoGen
b. Removed "extern int __make_me_compile_correctly;" from AutoGen.h
c. Added BUILD_RULE_CONF in target.txt to specify build rules file

git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@4705 6f19259b-4bc3-4df7-8a09-765794883524
2008-02-19 06:39:47 +00:00
jwang36
f9619f52af Added "-nopp" to VfrCompile.exe tool to bypass the preprocessing on input file
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@4698 6f19259b-4bc3-4df7-8a09-765794883524
2008-02-18 01:35:38 +00:00
jwang36
f4ccac6a8f Incorporated the latest UEFI compatible VfrCompile.exe, which supports bypassing the preprocessor.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@4697 6f19259b-4bc3-4df7-8a09-765794883524
2008-02-18 01:34:59 +00:00
jwang36
65803b123f Improved the file creation speed during incremental build.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@4696 6f19259b-4bc3-4df7-8a09-765794883524
2008-02-15 07:49:17 +00:00
jljusten
b9a615fa77 Under the buildtools.tianocore.org BaseTools tree, we are renaming
BaseTools/PseudoBin to BaseTools/BinWrappers.

This change requires an update in the buildtools source (BaseTools 
directory) as well.


git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@4690 6f19259b-4bc3-4df7-8a09-765794883524
2008-02-13 22:44:22 +00:00
qhuang8
b7fc5c8937 Remove non-existing files reference.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@4658 6f19259b-4bc3-4df7-8a09-765794883524
2008-02-01 15:12:19 +00:00
jwang36
1fcf530c94 Fixed an unicode file parser issue which will remove the "\r\n" in the string.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@4631 6f19259b-4bc3-4df7-8a09-765794883524
2008-01-25 02:23:42 +00:00
jwang36
4bd97476a9 Rollback to last revision. No need to enforce the ARCH for 'CompilerStub' library.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@4629 6f19259b-4bc3-4df7-8a09-765794883524
2008-01-24 08:50:03 +00:00
jwang36
354a7e2065 Enforced "CompilerStub" for IA32 and X64 arch only
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@4628 6f19259b-4bc3-4df7-8a09-765794883524
2008-01-24 08:35:57 +00:00
jlin16
7113867d54 using R8 component type when choosing rule for INF in FDF.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@4616 6f19259b-4bc3-4df7-8a09-765794883524
2008-01-23 08:35:52 +00:00
jlin16
8997292fb8 Support R8 modules in GenFds.exe
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@4615 6f19259b-4bc3-4df7-8a09-765794883524
2008-01-23 05:40:47 +00:00
jwang36
b7737ae527 a. Merged the recent improvement on R8 modules build
b. Fixed an issue which library instance without supported module type will be selected.

git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@4605 6f19259b-4bc3-4df7-8a09-765794883524
2008-01-22 03:08:25 +00:00
qwang12
c03fbe30c1 UEFI HII: Merge UEFI HII support changes from branch.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@4596 6f19259b-4bc3-4df7-8a09-765794883524
2008-01-21 14:30:48 +00:00
jwang36
0657905748 Fixed an issue which caused incorrect value of PCD from FDF file.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@4499 6f19259b-4bc3-4df7-8a09-765794883524
2008-01-04 08:01:45 +00:00
jlin16
900faff93e Add !include statement support in GenFds.exe which makes FDF file could include other file contents at any position in FDF.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@4497 6f19259b-4bc3-4df7-8a09-765794883524
2008-01-04 04:57:34 +00:00
lhauch
fa7f89da6f modified the UNIXGCC information
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@4492 6f19259b-4bc3-4df7-8a09-765794883524
2008-01-03 21:41:41 +00:00
lhauch
e26b8dca3f Fixed some of the comments
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@4491 6f19259b-4bc3-4df7-8a09-765794883524
2008-01-03 21:29:07 +00:00
lhauch
fbf822439a Modified BINUTILS_URL to point to mirrors.kernel.org, added comments
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@4490 6f19259b-4bc3-4df7-8a09-765794883524
2008-01-03 21:28:34 +00:00
lhauch
ab9281201a fixed paths for UNIXGCC tools
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@4489 6f19259b-4bc3-4df7-8a09-765794883524
2008-01-03 21:01:44 +00:00
jlin16
4cb5bc51fc scroll back to old HII component.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@4485 6f19259b-4bc3-4df7-8a09-765794883524
2008-01-03 09:44:55 +00:00
jlin16
b7bef2a9fb Add depex section generation feature for GenFds.exe
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@4478 6f19259b-4bc3-4df7-8a09-765794883524
2008-01-03 03:37:54 +00:00
jwang36
b2696f2fa4 Updated the revision number of build tools
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@4460 6f19259b-4bc3-4df7-8a09-765794883524
2008-01-02 03:25:49 +00:00
jwang36
2d60f29c21 Fixed a bug which caused the PCDs inherited from libraries cannot be overridden under [Components] in DSC file.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@4459 6f19259b-4bc3-4df7-8a09-765794883524
2008-01-02 03:24:17 +00:00
jwang36
63245e966f Added $(ASL_FLAGS) to $(ASL) command line
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@4445 6f19259b-4bc3-4df7-8a09-765794883524
2007-12-28 05:31:13 +00:00
lhauch
41ca88052a fixed a typo - GS8192 should be Gs8192
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@4444 6f19259b-4bc3-4df7-8a09-765794883524
2007-12-28 00:03:12 +00:00
lhauch
f260433e67 Added QIPF_fr32 flags to IPF CC flags, neede by UEFI ABI for Itanium
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@4443 6f19259b-4bc3-4df7-8a09-765794883524
2007-12-27 21:05:46 +00:00
jwang36
106c688f93 Fixed out-of-date contents (PVCS tracker 732)
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@4434 6f19259b-4bc3-4df7-8a09-765794883524
2007-12-25 09:23:17 +00:00
jwang36
d78f8ac7ee Fixed typos (PVCS tracker 749)
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@4433 6f19259b-4bc3-4df7-8a09-765794883524
2007-12-25 09:17:00 +00:00
jwang36
1c2c04dfea Fixed typos (PVCS Tracker 750)
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@4432 6f19259b-4bc3-4df7-8a09-765794883524
2007-12-25 09:15:38 +00:00
jwang36
b3354570af Added component type to module type mapping between "PE32_PEIM" and "PEIM" for R8 modules
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@4429 6f19259b-4bc3-4df7-8a09-765794883524
2007-12-24 05:39:24 +00:00
jwang36
f71c1d39e4 Changed the NMAKE path from VS2003 to VS2005 for ICC tool chain
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@4424 6f19259b-4bc3-4df7-8a09-765794883524
2007-12-24 02:51:41 +00:00
jwang36
58ce61eb5d a. Enabled building R8 modules
b. Always inherit library's [depex] if there's no dxs file declared in module's inf file

git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@4419 6f19259b-4bc3-4df7-8a09-765794883524
2007-12-22 16:58:04 +00:00
jwang36
965e8d54d9 Re-generated per the bug fixes.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@4394 6f19259b-4bc3-4df7-8a09-765794883524
2007-12-13 07:04:08 +00:00
jwang36
1f89f78983 Removed commented out lines
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@4393 6f19259b-4bc3-4df7-8a09-765794883524
2007-12-13 05:22:22 +00:00
jwang36
d5e481791d Added X64 compiler build script
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@4392 6f19259b-4bc3-4df7-8a09-765794883524
2007-12-13 05:19:41 +00:00
jwang36
c504fc2d4c Made it executable
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@4391 6f19259b-4bc3-4df7-8a09-765794883524
2007-12-12 07:34:39 +00:00
jwang36
64cf8bc004 Changed the ICC tools to use VS2005's tools and dlls because of crash of ICC working with VS2003.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@4390 6f19259b-4bc3-4df7-8a09-765794883524
2007-12-12 03:50:49 +00:00
jljusten
1f83807697 Built with vs.net 2005 from
https://buildtools.tianocore.org/svn/buildtools/trunk/BaseTools r920.

git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@4389 6f19259b-4bc3-4df7-8a09-765794883524
2007-12-11 22:38:26 +00:00
jljusten
3e9fbbfb07 deleted edk2/BaseTools/Bin/Darwin:
deleted edk2/BaseTools/Bin/PosixLike:
  Moved (as of buildtools r920) into
  https://buildtools.tianocore.org/svn/buildtools/trunk/BaseTools/PseudoBin


git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@4388 6f19259b-4bc3-4df7-8a09-765794883524
2007-12-11 09:36:25 +00:00
jljusten
2dffc141fb modified edk2/BaseTools/BuildEnv:
Minor cleanup:
    Conf/BuildEnv.sh2 -> Conf/BuildEnv.sh


git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@4387 6f19259b-4bc3-4df7-8a09-765794883524
2007-12-11 09:12:40 +00:00
jljusten
66dcb2f08a modified edk2/BaseTools/BuildEnv:
deleted  edk2/BaseTools/BuildEnv.py:
  Resolve https://edk2.tianocore.org/servlets/Scarab/id/EDKT557
    "All code in the edk2 tree must not require third party tools
     for running the provided tools."
  which refers to the usage of python by BuildEnv.py.

  /sigh


git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@4386 6f19259b-4bc3-4df7-8a09-765794883524
2007-12-11 09:03:30 +00:00
jwang36
0b67ae168e Updated this script to use the latest binutils and cygwin because the old versions of them are not available.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@4382 6f19259b-4bc3-4df7-8a09-765794883524
2007-12-11 02:06:55 +00:00
lgao4
f1d73e29d3 Fix one minor bug to print TE image correct start address into Fv map file.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@4377 6f19259b-4bc3-4df7-8a09-765794883524
2007-12-10 06:23:49 +00:00
jwang36
256a0cc3c2 Re-generated because of AutoGen changed
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@4375 6f19259b-4bc3-4df7-8a09-765794883524
2007-12-10 03:05:09 +00:00
jwang36
069cb38f00 Fixed default Token Number missing issue and default sku value issue.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@4371 6f19259b-4bc3-4df7-8a09-765794883524
2007-12-07 09:58:25 +00:00
jwang36
ff1fc29f92 Added support of calculating the string size for PCD with datum type "VOID*", if its MaxDatumSize is not specified.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@4370 6f19259b-4bc3-4df7-8a09-765794883524
2007-12-07 06:00:17 +00:00
jwang36
82ffa27185 Added 'DEFAULT' sku id for dynamic PCDs not found in DSC file.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@4369 6f19259b-4bc3-4df7-8a09-765794883524
2007-12-07 05:16:46 +00:00
jwang36
bc8306fc55 Fixed bugs of
708 - Incorrect PCD type used if the PCD is not defined in DSC file
    715 - Incorrect library instance used for DAG algorithm
    717 - Incorrect function prototype used for calling 

git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@4362 6f19259b-4bc3-4df7-8a09-765794883524
2007-12-05 07:32:49 +00:00
jwang36
df80da0460 Fixed an incorrect use of EdkLogger.error() which will cause incorrect message if there are two dsc files in the same directory.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@4352 6f19259b-4bc3-4df7-8a09-765794883524
2007-11-30 09:57:11 +00:00
jwang36
3dd6d16a88 Fixed the build issue when multi target specified, for example both DEBUG and RELEASE are specified in target.txt
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@4351 6f19259b-4bc3-4df7-8a09-765794883524
2007-11-30 09:29:15 +00:00
jwang36
fc22e99aa3 Fixed a library constructor order issue
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@4347 6f19259b-4bc3-4df7-8a09-765794883524
2007-11-30 07:14:35 +00:00
lhauch
7e6ae4d97f Rearranged flags so they are in consiste locations, change ASM warning from /W3 /W0 to just /W3
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@4335 6f19259b-4bc3-4df7-8a09-765794883524
2007-11-28 01:20:03 +00:00
lgao4
d11013980f Minor change for GenFv to support capsule attribute, GenSec to support guid header size and GenFfs to pad alignment for TeImage.
And Add GenCrc32 tool

git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@4316 6f19259b-4bc3-4df7-8a09-765794883524
2007-11-21 03:50:33 +00:00
jwang36
f20ffb9ad3 a. Revised error message for a module that is not required by a Platform when building just the module
b. Remove "/" or "\" following $(WORKSPACE) before getting real path when parsing DSC files

git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@4304 6f19259b-4bc3-4df7-8a09-765794883524
2007-11-19 08:24:41 +00:00
jwang36
4bf477810f Fixed the dependency issue on wrong name of makefile.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@4291 6f19259b-4bc3-4df7-8a09-765794883524
2007-11-08 03:57:35 +00:00
lgao4
c1f455c3a5 Fix GenFv bug without init local variable
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@4281 6f19259b-4bc3-4df7-8a09-765794883524
2007-11-07 07:48:54 +00:00
jlin16
79492e5f39 Strip the relocation section for SEC, PEIM and PEI CORE typed files, according to relocation strip flag in FDF file and shadow flag in INF file.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@4280 6f19259b-4bc3-4df7-8a09-765794883524
2007-11-07 05:59:12 +00:00
lgao4
9402de91cf Update tool to support reloc section removed, PAD file with same guid and check no duplicated guid file in the same fv image.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@4275 6f19259b-4bc3-4df7-8a09-765794883524
2007-11-06 11:23:02 +00:00
jwang36
2b993c56f7 Fixed an issue which would cause trimming empty file error.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@4272 6f19259b-4bc3-4df7-8a09-765794883524
2007-11-06 06:39:13 +00:00
yshang1
8a0d144b39 Add the -mno-red-zone for gcc on x64. Since the GNU calling convention of x64 defines the 128bytes red zone beyond the stack point could not be modified by interrupt or exception handler, and Edk prime assumes all data beyond stack point should be volatile, if not add the option, the interrupt or exception handler may corrupt the red zone, which may be used as temporary storage.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@4271 6f19259b-4bc3-4df7-8a09-765794883524
2007-11-06 05:30:16 +00:00
jwang36
d28746d23a Added change log for r4251
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@4252 6f19259b-4bc3-4df7-8a09-765794883524
2007-10-31 10:46:34 +00:00
jwang36
44e3ff2f23 a. Fixed an issue which a incorrect command (no leading space/tab) generated in top level Makefile
b. Added code to check zero thread number and disable multi-thread build mode if zero thread number.

git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@4251 6f19259b-4bc3-4df7-8a09-765794883524
2007-10-31 10:35:08 +00:00
jwang36
04e031d000 a. Changed MYTOOLS to use Visual Studio Team Suite for IA32 and X64. IPF is still use WINDKK.
b. Re-generated build.exe and GenFds.exe to incorporate new changes of build tools
c. Enable multi-thread build mode by default


git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@4246 6f19259b-4bc3-4df7-8a09-765794883524
2007-10-31 09:07:31 +00:00
jljusten
8f5a1bcc35 BaseTools/Conf/tools_def.template:
Added '-x assembler' to *_UNIXGCC_*_ASM_FLAGS so pre-processed assembly
  files (*.iii) will assemble correctly.


git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@4235 6f19259b-4bc3-4df7-8a09-765794883524
2007-10-29 23:17:12 +00:00
jljusten
9ba67b5c81 BaseTools/Conf/build_rule.template:
Fixes for GCC toolpath on unix.  (Changes tested on OS X).


git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@4233 6f19259b-4bc3-4df7-8a09-765794883524
2007-10-29 18:34:07 +00:00
jljusten
2347330465 BaseTools/Conf/tools_def.template:
Changes for UNIXGCC toolchain.
  Tested on OS X with x86_64-pc-mingw32 bintools/gcc


git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@4232 6f19259b-4bc3-4df7-8a09-765794883524
2007-10-29 08:01:12 +00:00
jljusten
408e506344 BaseTools/ConfTemplates:
Removing BaseTools/ConfTemplates/* and using common BaseTools/Conf,
  even though they cannot be made common for all systems.  (For example,
  target.template)  I will look a different method to accomplish the
  same goal.


git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@4230 6f19259b-4bc3-4df7-8a09-765794883524
2007-10-29 07:43:33 +00:00
jljusten
8625864ea9 BaseTools/BuildEnv.py:
Removing BaseTools/ConfTemplates/* and using common BaseTools/Conf,
  even though they cannot be made common for all systems.  (For example,
  target.template)  I will look a different method to accomplish the
  same goal.


git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@4229 6f19259b-4bc3-4df7-8a09-765794883524
2007-10-29 07:42:00 +00:00
jljusten
a0d76ec7db Adding link for BaseTools/Bin/PosixLike/Trim to allow tool to be run
during the build process.


git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@4228 6f19259b-4bc3-4df7-8a09-765794883524
2007-10-29 07:19:18 +00:00
jwang36
d81b56bcbe Fixed memory re-free issue
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@4214 6f19259b-4bc3-4df7-8a09-765794883524
2007-10-25 09:43:28 +00:00
jwang36
930052168f a. Re-generated all C tools with "/MLd" option
b. Removed antlr.exe and dlg.exe because they are only needed to generate VfrCompile.exe but not to build platform or module.

git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@4213 6f19259b-4bc3-4df7-8a09-765794883524
2007-10-25 08:37:44 +00:00
lhauch
c47e45a6c2 Adding GCC cross-compiler information to BaseTools folder
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@4206 6f19259b-4bc3-4df7-8a09-765794883524
2007-10-23 17:15:38 +00:00
lgao4
16b5f6819e Update verbose log info to these two tools.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@4204 6f19259b-4bc3-4df7-8a09-765794883524
2007-10-23 03:50:43 +00:00
jwang36
1db5dde14b Added Spd2Dec.exe and Fpd2Dsc.exe tools
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@4195 6f19259b-4bc3-4df7-8a09-765794883524
2007-10-22 09:34:05 +00:00
jwang36
94dfb890bb git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@4194 6f19259b-4bc3-4df7-8a09-765794883524 2007-10-22 09:29:18 +00:00
jwang36
183eb3e617 Added change log for the latest tools update (r4190 & r4189).
Added revision number information of tools source code.

git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@4193 6f19259b-4bc3-4df7-8a09-765794883524
2007-10-22 09:27:45 +00:00
jwang36
8809fb07fb Updated with the latest changes of build tools.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@4191 6f19259b-4bc3-4df7-8a09-765794883524
2007-10-22 09:09:57 +00:00
jwang36
48cc75952c Fixed build issue when building individual module with unsupported architectures.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@4190 6f19259b-4bc3-4df7-8a09-765794883524
2007-10-22 09:08:11 +00:00
jwang36
07fdb39deb a) Added support of breaking build when no library instance is found for a library class.
b) Added support of use PCD value from DEC/INF file if it's not defined in DSC file but defined in an INF file.

git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@4189 6f19259b-4bc3-4df7-8a09-765794883524
2007-10-22 06:53:10 +00:00
jlin16
2062f2b3f3 git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@4185 6f19259b-4bc3-4df7-8a09-765794883524 2007-10-19 11:08:45 +00:00
jlin16
c35a9c1d25 passing -v and -d options to c tools.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@4184 6f19259b-4bc3-4df7-8a09-765794883524
2007-10-19 11:07:42 +00:00
jljusten
6e98e26326 Make scripts work from $WORKSPACE/BaseTools.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@4152 6f19259b-4bc3-4df7-8a09-765794883524
2007-10-17 02:19:35 +00:00
jljusten
b9e61d7d16 Moving from $WORKSPACE/Tools/BuildEnv $WORKSPACE/BaseTools/BuildEnv.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@4150 6f19259b-4bc3-4df7-8a09-765794883524
2007-10-17 02:08:31 +00:00
jljusten
07a756b95e Restoring $WORKSPACE/BaseTools location, as the plan is to deprecate
$WORKSPACE/Tools instead.


git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@4147 6f19259b-4bc3-4df7-8a09-765794883524
2007-10-17 01:54:36 +00:00
jljusten
8b2d58875a Moved $WORKSPACE/BaseTools to $WORKSPACE/Tools/BaseTools.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@4142 6f19259b-4bc3-4df7-8a09-765794883524
2007-10-16 20:56:54 +00:00
jljusten
9bb5c95447 Reorganize templates to allow different templates
in different build environments.


git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@4136 6f19259b-4bc3-4df7-8a09-765794883524
2007-10-16 20:26:25 +00:00
jljusten
f6148b1e01 This script will help automate build environment initialization.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@4135 6f19259b-4bc3-4df7-8a09-765794883524
2007-10-16 20:23:06 +00:00
jlin16
e542e30a19 git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@4134 6f19259b-4bc3-4df7-8a09-765794883524 2007-10-16 13:48:53 +00:00
jlin16
92d1603827 change location of FvAddress.inf to FV\Ffs.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@4133 6f19259b-4bc3-4df7-8a09-765794883524
2007-10-16 13:47:21 +00:00
jwang36
30311cfc7a Solved the VS2005 assembler issue in which "/omf" switch cannot call linker.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@4132 6f19259b-4bc3-4df7-8a09-765794883524
2007-10-16 12:17:53 +00:00
jwang36
8e5c3581bb Changed the default directory of VS2005TEAMSTUIE to the default installation directory of Visual Studio 2005 Team Suite Edition.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@4129 6f19259b-4bc3-4df7-8a09-765794883524
2007-10-16 08:08:01 +00:00
jwang36
af437b7c2e Added VS2005TEAMSUITE tool chain
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@4126 6f19259b-4bc3-4df7-8a09-765794883524
2007-10-16 06:50:20 +00:00
jwang36
496085b93e Fixed an issue which cause mismatch of line directive in preprocessed GNU assembly code.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@4122 6f19259b-4bc3-4df7-8a09-765794883524
2007-10-16 05:33:05 +00:00
jwang36
c8c6d794df Added GCC assembly code preprocessing support
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@4114 6f19259b-4bc3-4df7-8a09-765794883524
2007-10-15 06:17:00 +00:00
jwang36
cba02989d1 Added DLL attribute for SLINK and/or CC command because Intel Compiler and linker need the cl.exe and lib.exe from Visual Studio.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@4106 6f19259b-4bc3-4df7-8a09-765794883524
2007-10-12 03:36:32 +00:00
jwang36
06ca7f7102 Corrected the wrong ARCH in WINDDK3790x1830 tool chain and added MAKE command for it.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@4105 6f19259b-4bc3-4df7-8a09-765794883524
2007-10-12 03:02:30 +00:00
jwang36
651cad36c1 Updated with the latest changes of build tools.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@4104 6f19259b-4bc3-4df7-8a09-765794883524
2007-10-12 02:31:44 +00:00
jwang36
2067a15b92 Updated the revision number of build.exe
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@4097 6f19259b-4bc3-4df7-8a09-765794883524
2007-10-11 15:08:14 +00:00
jwang36
72b8a1a8ba a) Fixed single module hang issue when using spawn mode
b) Fixed FD generation failure issue when in multi-thread mode
c) Added code to check if MAKE command is defined or not


git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@4096 6f19259b-4bc3-4df7-8a09-765794883524
2007-10-11 14:52:56 +00:00
jwang36
eb1c2d7bd9 Added MAKE command for ICC and CYGWINGCC tool chain
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@4095 6f19259b-4bc3-4df7-8a09-765794883524
2007-10-11 13:34:31 +00:00
jwang36
b63906e1a8 Updated the revision number of build.exe and GenFds.exe
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@4092 6f19259b-4bc3-4df7-8a09-765794883524
2007-10-11 08:59:55 +00:00
jwang36
b7509087b0 a) Supported MAKE command in tools_def.txt
b) Cleaned several message strings in code
c) Solved hang issue when the build.exe is broken by Ctrl+C
d) Added more specific information for "-v" option of build.exe
e) Added "-v"/"-d"/"-q" option for GenFds.exe in makefile if build.exe is called with one of them.
f) Removed the calling to vsvars32.bat and added "--nt32" option in edksetup.bat because the nmake.exe's path has been put in tools_def.txt and build.exe will use that information to call nmake.exe
g) Removed the calling to vsvars32.bat in BaseTools/toolsetup.bat


git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@4091 6f19259b-4bc3-4df7-8a09-765794883524
2007-10-11 08:58:33 +00:00
jlin16
32efb82aab git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@4086 6f19259b-4bc3-4df7-8a09-765794883524 2007-10-11 05:51:44 +00:00
jlin16
d29358f327 Fix the problem of UI and Version section override by the same string. Also not generate empty optional sections.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@4085 6f19259b-4bc3-4df7-8a09-765794883524
2007-10-11 04:00:48 +00:00
mdkinney
9c1c9f1ba8 Only report a circular dependency between library constructors if the total number of constructors > 1.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@4082 6f19259b-4bc3-4df7-8a09-765794883524
2007-10-10 18:56:13 +00:00
lhauch
23fbee5168 Updated GenFw.exe to handle Microcode Text files with comment only, blank lines, and leading white-space characters
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@4081 6f19259b-4bc3-4df7-8a09-765794883524
2007-10-10 18:22:13 +00:00
jwang36
a7593b363b Updated the revision number of source of build.exe and GenFds.exe
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@4079 6f19259b-4bc3-4df7-8a09-765794883524
2007-10-10 08:53:40 +00:00
jwang36
870beba32f Fix bug of UI override not take effect for INF.
Fix bug of FD "shrink" for Lakeport platform.
Error report format change for FDF parser.

git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@4078 6f19259b-4bc3-4df7-8a09-765794883524
2007-10-10 08:48:24 +00:00
jwang36
e6d6b06d50 Enabled Visual Studio 2005 Professional Edition tool chain
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@4077 6f19259b-4bc3-4df7-8a09-765794883524
2007-10-10 08:27:03 +00:00
mdkinney
7ebb01af9b Update FIT_SIGNATURE from "_FIT_" to "_FIT_ "
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@4047 6f19259b-4bc3-4df7-8a09-765794883524
2007-10-08 20:26:38 +00:00
jwang36
5d8e88cb18 Updated the revision number of build.exe and GenFds.exe
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@4046 6f19259b-4bc3-4df7-8a09-765794883524
2007-10-08 10:43:56 +00:00
jwang36
3b1e58ef92 Fixed build hang issue in multi-thread mode and in configuration loading error
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@4045 6f19259b-4bc3-4df7-8a09-765794883524
2007-10-08 10:27:52 +00:00
jlin16
884bb16075 Add support for MACRO in key string list of INF.
stop GenFds when GenVtf error occurs.

git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@4044 6f19259b-4bc3-4df7-8a09-765794883524
2007-10-08 09:53:37 +00:00
htao
9ac6d580c8 Use return GetUtilityStatus (); to exit and report the tool status.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@4042 6f19259b-4bc3-4df7-8a09-765794883524
2007-10-08 07:53:03 +00:00
htao
7a51cc6b2c error/warn/debug message format has been updated so update the tool binary.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@4040 6f19259b-4bc3-4df7-8a09-765794883524
2007-10-08 07:09:45 +00:00
lgao4
208f5b63e1 Fix one bug on memory access exceed in GenFw tool
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@4008 6f19259b-4bc3-4df7-8a09-765794883524
2007-09-30 05:54:12 +00:00
jwang36
ced44f7370 a. Fixed unnecessary re-build issue
b. Fixed build.exe won't exit issue when error occurred in multi-thread build mode.


git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@3986 6f19259b-4bc3-4df7-8a09-765794883524
2007-09-29 09:49:24 +00:00
lgao4
7659c39953 Add more verbose and debug info for GenFv, GenFfs, GenSec and GenFw tools.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@3981 6f19259b-4bc3-4df7-8a09-765794883524
2007-09-29 08:21:02 +00:00
jlin16
53b6246146 Add MACRO support for path in FDF file.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@3979 6f19259b-4bc3-4df7-8a09-765794883524
2007-09-29 06:59:25 +00:00
jwang36
327f4e7d26 Fixed an issue in which the dependent makefile is put in wrong rule.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@3975 6f19259b-4bc3-4df7-8a09-765794883524
2007-09-29 02:50:00 +00:00
jwang36
de0f811d4a Fixed an issue that is the auto-generated code for dynamic-ex PCD is not correct
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@3974 6f19259b-4bc3-4df7-8a09-765794883524
2007-09-29 01:46:24 +00:00
jlin16
04748716cb Add cycle reference check for FD/FV in FDF file.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@3963 6f19259b-4bc3-4df7-8a09-765794883524
2007-09-28 06:22:17 +00:00
qhuang8
e08ce86e47 Add binary Spd2Dec tool
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@3953 6f19259b-4bc3-4df7-8a09-765794883524
2007-09-27 12:09:25 +00:00
jwang36
5364ee3303 Fixed an issue which DSC file in current directory has higher priority than DSC file set in target.txt
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@3951 6f19259b-4bc3-4df7-8a09-765794883524
2007-09-27 09:34:58 +00:00
jlin16
68102e9aff Fix typo for 'SectList'.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@3950 6f19259b-4bc3-4df7-8a09-765794883524
2007-09-27 09:06:57 +00:00
jwang36
89669de767 Removed TAB characters
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@3949 6f19259b-4bc3-4df7-8a09-765794883524
2007-09-27 08:34:42 +00:00
jwang36
451ec64ad2 Added change log for build.exe
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@3948 6f19259b-4bc3-4df7-8a09-765794883524
2007-09-27 08:32:09 +00:00
jwang36
2f1b3cb20e 1) Improved spawn mode (multi-thread) build performance
2) Changed the error/debug/warning message format
3) Added "--log" command line option to support storing log in file


git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@3947 6f19259b-4bc3-4df7-8a09-765794883524
2007-09-27 08:30:39 +00:00
lgao4
7eb4be1851 update ChangeLog.txt by adding acpi table rule change.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@3942 6f19259b-4bc3-4df7-8a09-765794883524
2007-09-27 06:22:14 +00:00
htao
03edc4b239 update Fpd2Dsc.exe interface to sync users guide and add tool usage in ReadMe.txt. where Fpd2Dsc.exe source is r767 in BaseTools project.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@3940 6f19259b-4bc3-4df7-8a09-765794883524
2007-09-27 05:22:31 +00:00
htao
aaf9042310 update Fpd2Dsc.exe interface to sync users guide and add tool usage in ReadMe.txt. where Fpd2Dsc.exe source is r767 in BaseTools project.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@3939 6f19259b-4bc3-4df7-8a09-765794883524
2007-09-27 05:19:33 +00:00
klu2
0ad41bfa87 Add log
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@3937 6f19259b-4bc3-4df7-8a09-765794883524
2007-09-27 05:02:32 +00:00
klu2
b4b771c91b Modify PEIM's entry point
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@3936 6f19259b-4bc3-4df7-8a09-765794883524
2007-09-27 04:57:28 +00:00
htao
e05c174707 Check in Fpd2Dsc.exe tool which Python code version is 765 in BaseTools project.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@3935 6f19259b-4bc3-4df7-8a09-765794883524
2007-09-27 03:55:38 +00:00
jlin16
5f568053f5 git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@3927 6f19259b-4bc3-4df7-8a09-765794883524 2007-09-26 08:58:35 +00:00
jlin16
c6d9c4d190 GenFds.exe add feature of Capsule generation.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@3926 6f19259b-4bc3-4df7-8a09-765794883524
2007-09-26 08:57:28 +00:00
jwang36
8d7d0e50d2 Changed Enable to Disable as default value of MULTIPLE_THREAD
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@3923 6f19259b-4bc3-4df7-8a09-765794883524
2007-09-26 06:19:10 +00:00
jwang36
ca5fab07d3 Changed the GnuMakefile to Makefile as a workaround for CYGWINGCC toolchain build
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@3921 6f19259b-4bc3-4df7-8a09-765794883524
2007-09-26 01:55:21 +00:00
jlin16
1051e1d437 Add feature of generating FV address map.
Improve GenFds.exe performance by insuring each FV generated once.

git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@3919 6f19259b-4bc3-4df7-8a09-765794883524
2007-09-25 08:10:11 +00:00
jlin16
679efe0afa update changelog and source revision for build tools.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@3912 6f19259b-4bc3-4df7-8a09-765794883524
2007-09-21 12:26:36 +00:00
jlin16
b6001acc8e Add support of INF file in FDF that describe binary files.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@3911 6f19259b-4bc3-4df7-8a09-765794883524
2007-09-21 12:24:55 +00:00
jlin16
e27dccb781 Fix APRIORI file missing FILE statement.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@3903 6f19259b-4bc3-4df7-8a09-765794883524
2007-09-21 03:43:19 +00:00
jlin16
dfa235c55b Add feature of Apriori file generation for FV.
Fix single FV generation error on Nt32.
Print error message when FV size is larger than region size.
Print error message when GUIDed section specify a wrong tool GUID.

git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@3898 6f19259b-4bc3-4df7-8a09-765794883524
2007-09-20 08:07:33 +00:00
jlin16
f9d52626ad Fix single FV/FD generation error.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@3893 6f19259b-4bc3-4df7-8a09-765794883524
2007-09-19 07:04:09 +00:00
lgao4
0bd93d7166 Add PAD file guid table for GenFv reproducibility.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@3886 6f19259b-4bc3-4df7-8a09-765794883524
2007-09-18 09:38:54 +00:00
jwang36
79acd598ac Changed the revision of source code from which build.exe comes
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@3885 6f19259b-4bc3-4df7-8a09-765794883524
2007-09-18 09:22:42 +00:00
jwang36
4d062cead8 Enabled "fds" build target for build.exe and added "-r" and "-i" options to support individual FD or FV build
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@3884 6f19259b-4bc3-4df7-8a09-765794883524
2007-09-18 09:17:04 +00:00
lhauch
bd1fc2092e Removed PcdFeatureFlag Attribute - use in the FeatureFlag instead PcdTokenSpaceGuidCName.PcdCName
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@3879 6f19259b-4bc3-4df7-8a09-765794883524
2007-09-17 21:39:09 +00:00
lhauch
c46ce56dd6 Added PcdFeatureFlag Attribute - use PcdTokenSpaceGuidCName.PcdCName
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@3878 6f19259b-4bc3-4df7-8a09-765794883524
2007-09-17 20:28:23 +00:00
lgao4
5effb24a42 Correct GenFv tool to generate capsule image, Correct GenFw tool to override the input files.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@3877 6f19259b-4bc3-4df7-8a09-765794883524
2007-09-17 10:13:47 +00:00
qwang12
a81a35fe2a update IPF ICC's tool chain root path.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@3843 6f19259b-4bc3-4df7-8a09-765794883524
2007-09-14 06:59:37 +00:00
jwang36
8a0151cb4c Fixed the wrong usage of ENV()
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@3842 6f19259b-4bc3-4df7-8a09-765794883524
2007-09-14 05:50:54 +00:00
jwang36
315324a2fa Sync-ed the revision number of GenFds.exe
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@3841 6f19259b-4bc3-4df7-8a09-765794883524
2007-09-14 05:31:23 +00:00
jwang36
7354fd2362 Re-generated since some common code has been changed
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@3840 6f19259b-4bc3-4df7-8a09-765794883524
2007-09-14 05:29:20 +00:00
jwang36
ae0145cb90 1) Fixed the issue which macro in the form of ENV() can't be replaced.
2) Changed the class-less library instance format


git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@3839 6f19259b-4bc3-4df7-8a09-765794883524
2007-09-14 05:13:35 +00:00
lgao4
8fb31ab7f5 Add more details for my non-compatible change check in.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@3838 6f19259b-4bc3-4df7-8a09-765794883524
2007-09-14 03:58:37 +00:00
jwang36
38f2ab2989 Added change histories since r3766
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@3835 6f19259b-4bc3-4df7-8a09-765794883524
2007-09-14 01:55:23 +00:00
jwang36
46d665d690 1) Implemented MACRO in tools_def.txt
2) Added library without library class support
3) Fixed the issue in Trim tool which zero file will be generated if the trimmed file has not line directive

git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@3832 6f19259b-4bc3-4df7-8a09-765794883524
2007-09-13 09:33:05 +00:00
jwang36
dc66cae164 Added directory for "Makefile" in "Dynamic-Library-File" rule in case the working directory is changed.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@3831 6f19259b-4bc3-4df7-8a09-765794883524
2007-09-13 08:24:20 +00:00
zliu3
1b7f7985bd Add the "ChangeLog.txt" to record packages' all non-compatible changes and important compatible changes.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@3830 6f19259b-4bc3-4df7-8a09-765794883524
2007-09-13 06:38:20 +00:00
jjin9
59565b2e40 fix a bug which blocks the build process.change os.path.isfile to os.path.isabs
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@3809 6f19259b-4bc3-4df7-8a09-765794883524
2007-09-13 01:26:40 +00:00
qhuang8
cd7e9a3342 Re-fix the issue in r2304.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@3808 6f19259b-4bc3-4df7-8a09-765794883524
2007-09-12 13:29:06 +00:00
qhuang8
b6adf2c1fb Fix a typo so that platforms without FDF file can pass build.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@3807 6f19259b-4bc3-4df7-8a09-765794883524
2007-09-12 12:26:45 +00:00
qhuang8
ccde0b6680 Fix typos
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@3806 6f19259b-4bc3-4df7-8a09-765794883524
2007-09-12 11:20:51 +00:00
qhuang8
97582b3182 Fix several typos in build.py and regenerate exe.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@3805 6f19259b-4bc3-4df7-8a09-765794883524
2007-09-12 11:12:30 +00:00
klu2
5aae0aa7d8 PI Enable:
1) The entry point of PeiCore has been changed to EFI_PEI_CORE_ENTRY_POINT defined in PI. 
2) Nt32, Tiger and lakeport platform's SecCore has been updated.
3) Autogen tools also has been updated.

git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@3804 6f19259b-4bc3-4df7-8a09-765794883524
2007-09-12 09:52:37 +00:00
jlin16
2303536ca1 Fix typo in build.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@3803 6f19259b-4bc3-4df7-8a09-765794883524
2007-09-12 09:13:50 +00:00
jlin16
a17e189b89 update source code revision number.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@3802 6f19259b-4bc3-4df7-8a09-765794883524
2007-09-12 07:45:20 +00:00
jwang36
ef2b52786f Added makefile as dependency for "Dynamic-Library-File" to solve the incremental build issue occurred when there's library changes.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@3801 6f19259b-4bc3-4df7-8a09-765794883524
2007-09-12 06:59:05 +00:00
lgao4
8b9a49a446 Update EfiRom tool to fix checksum and PCI3.0 data structure.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@3800 6f19259b-4bc3-4df7-8a09-765794883524
2007-09-12 06:39:53 +00:00
qhuang8
c6ab060415 Add full path for Cygwin tool chain.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@3799 6f19259b-4bc3-4df7-8a09-765794883524
2007-09-12 06:02:38 +00:00
jwang36
585411e19d a) Added GCC preprocessor support
b) Enforced the the correct line number in the trimmed file, according to the line directive (or linemarker).

git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@3796 6f19259b-4bc3-4df7-8a09-765794883524
2007-09-12 03:24:26 +00:00
htao
999e19b210 GenVtf tool open/write file with "r+b"/"w+b" attribute, but this cause the RO attribute of the file changed. Fix this issue by changing "r+b"/"w+b" to "rb"/"wb".
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@3795 6f19259b-4bc3-4df7-8a09-765794883524
2007-09-12 02:06:19 +00:00
jlin16
8156f2db7d Fix variable not initialize bug for the following check-in.
if rule section specify a file, use that file to generate section instead of searching for all files with ruel section specified file type to generate section.

git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@3794 6f19259b-4bc3-4df7-8a09-765794883524
2007-09-11 08:58:07 +00:00
jlin16
9c5e6f8304 if rule section specify a file, use that file to generate section instead of searching for all files with ruel section specified file type to generate section.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@3792 6f19259b-4bc3-4df7-8a09-765794883524
2007-09-11 05:58:22 +00:00
jlin16
af56ef1397 use '#' to indicate flash generation progress.
use -v to switch on detail output messages.

git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@3791 6f19259b-4bc3-4df7-8a09-765794883524
2007-09-10 09:51:04 +00:00
lgao4
641ff7aa8d Commit build.exe and GenFds.exe tool to support new Rules format and PCD format defined in FDF file.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@3789 6f19259b-4bc3-4df7-8a09-765794883524
2007-09-10 05:44:04 +00:00
vanjeff
b798ba454c 1. Redirect ICC_IA32_*_PATH from C:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\bin to C:\Program Files\Intel\Compiler\C++\9.1\IA32\Bin.
2. Add ICC X64 definition to enable ICC X64 build.

git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@3786 6f19259b-4bc3-4df7-8a09-765794883524
2007-09-10 01:55:34 +00:00
klu2
c2f2fde67e Upgrade the format of EFI_PEIM_ENTRY_POINT to EFI_PEIM_ENTRY_POINT2 according to PI specification.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@3785 6f19259b-4bc3-4df7-8a09-765794883524
2007-09-07 05:41:07 +00:00
qhuang8
cf688318ec Update the syntax of PCD section.
Update the syntax of binary INF file
The generated Extended INF file should follow Extended INF spec 0.44

git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@3780 6f19259b-4bc3-4df7-8a09-765794883524
2007-09-06 02:01:49 +00:00
jwang36
ccdeb61742 Fixed an issue which will remove the first line if there's no "#line" directive in the input file.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@3767 6f19259b-4bc3-4df7-8a09-765794883524
2007-09-03 13:22:28 +00:00
lgao4
3a09b62ac8 Update Acpi Asl file Build rule to remove trim step.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@3766 6f19259b-4bc3-4df7-8a09-765794883524
2007-09-03 07:55:32 +00:00
jwang36
4070a6c6ec Updated the revision of source files build.exe was generated from
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@3754 6f19259b-4bc3-4df7-8a09-765794883524
2007-08-31 05:11:01 +00:00
jwang36
89d96039a2 1. Added support of included file with macro
2. Removed package a module belongs to from dependent package list if it's not declared in module's INF

git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@3753 6f19259b-4bc3-4df7-8a09-765794883524
2007-08-31 05:05:44 +00:00
qhuang8
cbbda8f1b7 Add execute attribute for exe file.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@3745 6f19259b-4bc3-4df7-8a09-765794883524
2007-08-30 09:53:14 +00:00
qhuang8
b3af5df67b Update all INF, DEC and DSC file to confirm to newest INF spec 0.44, DEC spec 0.41, DSC spec 0.40.
Mainly PCD syntax update.
Check in new build.exe and GenFds.exe
Check in PcdSyntaxUpdate.exe tool. 

git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@3744 6f19259b-4bc3-4df7-8a09-765794883524
2007-08-30 09:11:54 +00:00
lhauch
5359495341 Cleaned up the tools_def.template file
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@3734 6f19259b-4bc3-4df7-8a09-765794883524
2007-08-29 22:48:17 +00:00
zliu3
107bb017a5 Update the build_rule.template to enable the PCD usage in IPF assembly code
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@3732 6f19259b-4bc3-4df7-8a09-765794883524
2007-08-29 08:57:24 +00:00
qhuang8
8ea6977890 Fix a critical bug that the Migration Tool mistakenly creates exit-boot-services event in case of <VirtualAddressChange> externs.
This only happens when the extra option "-e" is on (by default it is off).
Update the readme.txt in BaseTools package to specify the python source for MigrationMsa2Inf.

git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@3730 6f19259b-4bc3-4df7-8a09-765794883524
2007-08-29 02:28:01 +00:00
lgao4
0fdbee900e Fix one bug in GenFv tool to generate the correct capsule header.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@3726 6f19259b-4bc3-4df7-8a09-765794883524
2007-08-28 09:31:03 +00:00
lgao4
c7cecacbe8 Update the following tools with usage information, and update GenFv tool to support dump capsule image.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@3725 6f19259b-4bc3-4df7-8a09-765794883524
2007-08-28 09:18:41 +00:00
xli24
d03c56df27 Update compiler switches for ICC build.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@3724 6f19259b-4bc3-4df7-8a09-765794883524
2007-08-28 09:14:07 +00:00
mdkinney
5d0e8a3144 Update MSFT IPF flags to us /Ox /Zx /GF
Max Optimizations
  Debuggable Optimizations
  Read-only data pooling


git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@3719 6f19259b-4bc3-4df7-8a09-765794883524
2007-08-28 02:16:34 +00:00
htao
98376cc51d TianoCompress tool code cleanup to delete parameters number check and hard code buffer size.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@3716 6f19259b-4bc3-4df7-8a09-765794883524
2007-08-27 08:11:50 +00:00
htao
aff09100b7 Fix a bug in TianoCompress tool to handle encoded file size larger than original file size.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@3715 6f19259b-4bc3-4df7-8a09-765794883524
2007-08-27 07:43:15 +00:00
jwang36
65010787e1 Added missed GenFds version and fixed the path error
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@3709 6f19259b-4bc3-4df7-8a09-765794883524
2007-08-27 02:05:10 +00:00
xli24
5da4862d96 Update ASL definition for ICC tool chain.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@3706 6f19259b-4bc3-4df7-8a09-765794883524
2007-08-24 08:26:27 +00:00
lgao4
48988f855b Update build rules to cover ICC build for aslc file.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@3700 6f19259b-4bc3-4df7-8a09-765794883524
2007-08-24 02:20:50 +00:00
htao
d11935f9f9 Sync GenVtf.exe and TianoCompress.exe tool to the binary in BaseTools project.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@3696 6f19259b-4bc3-4df7-8a09-765794883524
2007-08-23 12:56:35 +00:00
jwang36
4a8f7ccecc Changed the revision number of AutoGen source code since build.exe was regenerated for it.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@3691 6f19259b-4bc3-4df7-8a09-765794883524
2007-08-22 09:40:48 +00:00
jwang36
d60db64055 Fixed incremental link issue, which dependent libraries were not taken into account.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@3689 6f19259b-4bc3-4df7-8a09-765794883524
2007-08-22 09:29:30 +00:00
jwang36
5157f1d73a 1. Added revision information of source code from which build.exe came from.
2. Removed some information out of date

git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@3682 6f19259b-4bc3-4df7-8a09-765794883524
2007-08-20 10:37:40 +00:00
qhuang8
6f5554bd58 Rename the Msa2Inf.exe to MigrationMsa2Inf to indicate the real usage.
Add extra option when using FreezePython.exe to make it works fine in Non-Us locale.


git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@3679 6f19259b-4bc3-4df7-8a09-765794883524
2007-08-19 01:58:45 +00:00
jwang36
8083432c1b Changed the order of SLINK option
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@3678 6f19259b-4bc3-4df7-8a09-765794883524
2007-08-18 04:15:31 +00:00
jwang36
dce323a67c Re-designed build_rule.template and updated build.exe to support the new format
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@3677 6f19259b-4bc3-4df7-8a09-765794883524
2007-08-18 03:54:24 +00:00
qhuang8
46d9097615 Check in the proto-Msa2Inf tool. This is the really migration tool.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@3676 6f19259b-4bc3-4df7-8a09-765794883524
2007-08-18 01:42:01 +00:00
jwang36
49dd059fe5 Added back removed files for Python tools, and re-generated Msa2Inf.exe since it cannot run on non-English locale environment.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@3675 6f19259b-4bc3-4df7-8a09-765794883524
2007-08-18 00:47:55 +00:00
jwang36
d8bcc8121b Removed files not generated by freezer any longer
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@3669 6f19259b-4bc3-4df7-8a09-765794883524
2007-08-17 03:11:05 +00:00
mdkinney
9843f06732 Rebuild GenFds.exe based on tag 554 with the one fix for the build break for FFS files without CHESKSUM sections
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@3665 6f19259b-4bc3-4df7-8a09-765794883524
2007-08-16 22:22:28 +00:00
mdkinney
271d81202e Rebuild GenFds.exe based on tag 551 with the one fix for the build break for FFS files without CHESKSUM sections
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@3659 6f19259b-4bc3-4df7-8a09-765794883524
2007-08-16 21:23:11 +00:00
mdkinney
6dee5d312b Fix bug in GenFds that would break the build if the FFS rule does not include a Checksum section
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@3658 6f19259b-4bc3-4df7-8a09-765794883524
2007-08-16 19:29:29 +00:00
mdkinney
00666ce6ce Fix two bugs in GenVtf.c
1) There is a check for a specific number of command line arguments.  This does not work when there are optional arguments like -v for verbose.
2) The check for the verbose flag checked for 'v' and '-'.  I should check for 'v' and 'V'.


git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@3644 6f19259b-4bc3-4df7-8a09-765794883524
2007-08-15 20:57:16 +00:00
jwang36
8edf7e980a Incorporated Mike's fix on gEfiCallerGuidId definition
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@3640 6f19259b-4bc3-4df7-8a09-765794883524
2007-08-15 02:26:05 +00:00
qouyang
07c01787e3 Fix bug.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@3639 6f19259b-4bc3-4df7-8a09-765794883524
2007-08-14 10:26:52 +00:00
htao
ed72357a70 Correct usage help information and error information format for GenVtf, EfiRom, and TianoCompress tool.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@3635 6f19259b-4bc3-4df7-8a09-765794883524
2007-08-14 07:57:36 +00:00
qhuang8
dfb780e3c2 Fix several Unicode typo.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@3633 6f19259b-4bc3-4df7-8a09-765794883524
2007-08-14 02:40:53 +00:00
qhuang8
2b3b50f96e Add the brief usage guide for Msa2Inf.exe.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@3632 6f19259b-4bc3-4df7-8a09-765794883524
2007-08-14 02:35:43 +00:00
qhuang8
13b2f60d84 Add Msa2Inf.exe: Port an EDKII module to EDKII' module:
1. Generate Extended INF based on MSA file
2. Add public header file inclusion
3. Generate [Depex] section based on module DXS file.

git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@3628 6f19259b-4bc3-4df7-8a09-765794883524
2007-08-13 13:08:26 +00:00
jwang36
45655bacc9 Fixed an issue of PCD under [Components] in DSC file
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@3627 6f19259b-4bc3-4df7-8a09-765794883524
2007-08-13 10:18:49 +00:00
jlin16
f3c9803809 git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@3625 6f19259b-4bc3-4df7-8a09-765794883524 2007-08-13 09:19:08 +00:00
jwang36
569f0fe6b8 Fixed a bug in parsing <PcdsDynamic> of <Components> in DSC file
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@3623 6f19259b-4bc3-4df7-8a09-765794883524
2007-08-13 07:27:02 +00:00
jwang36
62271ed6b8 1. Incorporated FDF parser fix
2. Fixed library instance search issue
3. Fixed value format issue of UINT64 type of PCD


git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@3621 6f19259b-4bc3-4df7-8a09-765794883524
2007-08-13 06:07:25 +00:00
qouyang
7336ebe872 GenFds Tool: Fix the bug that the GUID section can't content more than one leaf section.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@3620 6f19259b-4bc3-4df7-8a09-765794883524
2007-08-13 05:53:38 +00:00
jwang36
c4400818d2 Fixed an issue in referencing DatumType in AutoGen
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@3619 6f19259b-4bc3-4df7-8a09-765794883524
2007-08-13 03:51:20 +00:00
lgao4
c22b604273 Correct help usage format and error message format for the GenFw, GenSec, GenFfs and GenFv tool.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@3616 6f19259b-4bc3-4df7-8a09-765794883524
2007-08-13 03:05:25 +00:00
jwang36
2b6e9b34bc Added missing "-" for "convert-hex" option of Trim.exe
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@3615 6f19259b-4bc3-4df7-8a09-765794883524
2007-08-13 01:14:01 +00:00
jwang36
9393402a2c 1. Changed the trim algorithm to be more general according to the Line Control directive
2. Changed the command line options to be standard and changed its uses in build_rule.template accordingly.


git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@3614 6f19259b-4bc3-4df7-8a09-765794883524
2007-08-13 01:06:44 +00:00
jjin9
64d3b0e13c fix a issue for TARGET_ARCH
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@3613 6f19259b-4bc3-4df7-8a09-765794883524
2007-08-12 05:32:20 +00:00
lgao4
85496a3a00 Correct acpi table c file build rule.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@3598 6f19259b-4bc3-4df7-8a09-765794883524
2007-08-10 04:04:27 +00:00
jwang36
d17bb5c332 1. Added architecture override option for GenFds command in top level makefile
2. Added new log method

git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@3597 6f19259b-4bc3-4df7-8a09-765794883524
2007-08-09 16:00:39 +00:00
jlin16
a1c3eb6866 BootSectImage binary to modify MBR or boot sector.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@3596 6f19259b-4bc3-4df7-8a09-765794883524
2007-08-09 09:16:06 +00:00
jwang36
5d57e86caa Fixed library instance selection issue
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@3595 6f19259b-4bc3-4df7-8a09-765794883524
2007-08-09 09:11:21 +00:00
jwang36
9f6bb5f693 Changed the output format
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@3571 6f19259b-4bc3-4df7-8a09-765794883524
2007-08-08 09:54:52 +00:00
jwang36
f3f152e824 Fixed BDS display issue caused by unicode file parse
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@3568 6f19259b-4bc3-4df7-8a09-765794883524
2007-08-08 07:21:35 +00:00
jwang36
65ddc26edc 1. Fixed STRING_TOKEN() matching issue during unicode file parsing
2. Added "#include" support in unicode file
3. Removed an non-existing unicode file included in MiscSubclassDriver.uni


git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@3566 6f19259b-4bc3-4df7-8a09-765794883524
2007-08-07 10:03:39 +00:00
jlin16
f50f181dec GenPage binary to generate EfiLoaderImage with page table.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@3564 6f19259b-4bc3-4df7-8a09-765794883524
2007-08-07 08:58:45 +00:00
jlin16
632a3a6c0b GenBootSector binary to modify boot sector.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@3560 6f19259b-4bc3-4df7-8a09-765794883524
2007-08-07 02:14:32 +00:00
jwang36
8559bf272b Fixed an issue which all lines will be removed if no "#line" or "#" is found
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@3559 6f19259b-4bc3-4df7-8a09-765794883524
2007-08-07 01:45:27 +00:00
jwang36
896a3f9efe Added Trim command for ASL file process
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@3558 6f19259b-4bc3-4df7-8a09-765794883524
2007-08-07 01:37:52 +00:00
lhauch
2118457ba5 Set the executable property on Split.exe
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@3556 6f19259b-4bc3-4df7-8a09-765794883524
2007-08-06 21:22:38 +00:00
qouyang
3e042dbcc7 GenFds Tool:Sync with Fdf Spec update. Add the supporting of more than one file, data or Fv in one region.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@3550 6f19259b-4bc3-4df7-8a09-765794883524
2007-08-06 05:13:53 +00:00
jwang36
c8db3056ec Fixed derived DEPEX issue
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@3543 6f19259b-4bc3-4df7-8a09-765794883524
2007-08-03 06:31:37 +00:00
jlin16
184b892bbf Add mult-level directory creation feature for specified output files.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@3541 6f19259b-4bc3-4df7-8a09-765794883524
2007-08-03 06:02:11 +00:00
jlin16
6f9fdc5fef Split binary to split one file into two files.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@3537 6f19259b-4bc3-4df7-8a09-765794883524
2007-08-03 03:57:40 +00:00
jwang36
2115deb3ce Roll back to r3528
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@3535 6f19259b-4bc3-4df7-8a09-765794883524
2007-08-03 02:36:06 +00:00
lgao4
52de52ae10 Update MicroCode build rules
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@3534 6f19259b-4bc3-4df7-8a09-765794883524
2007-08-02 10:11:43 +00:00
jwang36
84600c365d Fixed issue in Dynamic PCD in dependent library instances.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@3532 6f19259b-4bc3-4df7-8a09-765794883524
2007-08-02 09:14:54 +00:00
qouyang
5e6c7c184e GenFds tool: Sync with Fdf Spec update. Add the supporting of more than one file, data or Fv in one region.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@3530 6f19259b-4bc3-4df7-8a09-765794883524
2007-08-02 08:13:30 +00:00
lgao4
7b2b99a342 Update GenFw and Genfv tool to support Microcode and FvMap. And Update build rules for micro code file type.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@3529 6f19259b-4bc3-4df7-8a09-765794883524
2007-08-02 05:26:55 +00:00
jwang36
2127f4dff2 Fixed PCD Sku VariableGuid error
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@3528 6f19259b-4bc3-4df7-8a09-765794883524
2007-08-02 04:53:50 +00:00
jwang36
6b4fe92ad9 1. Generated new build.exe from new tools code
2. Removed some duplicated includes in source files
3. Changed the source file format in INF files
4. Removed duplicated PCDs in MdePkg.dec


git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@3520 6f19259b-4bc3-4df7-8a09-765794883524
2007-08-01 08:45:32 +00:00
jjin9
bf3473e916 a tool to edit target.txt in CLI mode
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@3519 6f19259b-4bc3-4df7-8a09-765794883524
2007-08-01 07:53:03 +00:00
jjin9
57b82a9cfa remove the format of file. make it clearly
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@3517 6f19259b-4bc3-4df7-8a09-765794883524
2007-08-01 06:44:24 +00:00
qouyang
33b7cf8cb0 GenFdsTool: 1.Fix the bug of 'get wrong PCD value'.
2. Add new future of "copy *.map file to   
               FFS output directory".

git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@3516 6f19259b-4bc3-4df7-8a09-765794883524
2007-08-01 05:14:03 +00:00
jwang36
d58f90fb9f Per the requirement of GenFv tool, added command to copy *.map file to $(OUTPUT_DIR)
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@3513 6f19259b-4bc3-4df7-8a09-765794883524
2007-07-31 08:37:59 +00:00
jwang36
f48e6ea393 Changed the .lib file directory from public LIB_DIR to private OUTPUT_DIR
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@3512 6f19259b-4bc3-4df7-8a09-765794883524
2007-07-31 07:46:16 +00:00
jwang36
6e8d441d44 There's still bug in library summarization code. Fixed now.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@3511 6f19259b-4bc3-4df7-8a09-765794883524
2007-07-31 03:46:28 +00:00
jwang36
a5370b7415 Fixed the library instance filter issue
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@3509 6f19259b-4bc3-4df7-8a09-765794883524
2007-07-31 02:08:37 +00:00
jwang36
517655ccea Fixed issue in filtering supported module type for library instance
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@3508 6f19259b-4bc3-4df7-8a09-765794883524
2007-07-31 02:00:55 +00:00
lhauch
e1f0fa98c7 Added the svn:executable property to the batch file, toolsetup.bat.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@3507 6f19259b-4bc3-4df7-8a09-765794883524
2007-07-30 23:16:53 +00:00
lhauch
a4e891f4c6 Set the svn:executable property on all *.exe files
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@3506 6f19259b-4bc3-4df7-8a09-765794883524
2007-07-30 23:08:38 +00:00
lhauch
cee779eaad Set SVN Property: svn:executable on VfrCompile.exe - may resolve an issue where the SVN update is changing execute permissions on these files.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@3505 6f19259b-4bc3-4df7-8a09-765794883524
2007-07-30 23:03:53 +00:00
qouyang
e988537eac GenFds: Sync with EdkIIWorkspaceBuild update.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@3504 6f19259b-4bc3-4df7-8a09-765794883524
2007-07-30 10:10:45 +00:00
jwang36
840d59b645 Fixed dynamic PCD autogen issue for LakeportX64
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@3503 6f19259b-4bc3-4df7-8a09-765794883524
2007-07-30 10:05:42 +00:00
jwang36
c55eb6ed1f Fixed the missed parameter of GetGuidValue()
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@3501 6f19259b-4bc3-4df7-8a09-765794883524
2007-07-30 09:11:13 +00:00
jwang36
c0b30ab849 Removed "self." from GetGuidValue() method since it's global
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@3500 6f19259b-4bc3-4df7-8a09-765794883524
2007-07-30 09:03:54 +00:00
qouyang
514d1d2e31 GenFds: Sync with EdkIIWorkspaceBuild update.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@3499 6f19259b-4bc3-4df7-8a09-765794883524
2007-07-30 08:55:11 +00:00
jwang36
434c69b7cc Fixed a typo in PCD type
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@3498 6f19259b-4bc3-4df7-8a09-765794883524
2007-07-30 08:25:46 +00:00
jwang36
eca7eaf49b Fixed TokenNumber issue for DynamicEx type of PCD
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@3491 6f19259b-4bc3-4df7-8a09-765794883524
2007-07-30 02:34:47 +00:00
qouyang
411ed01bb8 Update GenFds Tool.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@3485 6f19259b-4bc3-4df7-8a09-765794883524
2007-07-27 10:24:18 +00:00
qouyang
17e1222d0e GenFds Tool: Replace print with EdkLogger.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@3484 6f19259b-4bc3-4df7-8a09-765794883524
2007-07-27 08:59:23 +00:00
jwang36
8b105003d7 Fixed library instance incomplete issue
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@3483 6f19259b-4bc3-4df7-8a09-765794883524
2007-07-27 07:08:58 +00:00
jwang36
8fca1f0545 Fixed library instance issue
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@3480 6f19259b-4bc3-4df7-8a09-765794883524
2007-07-27 06:22:54 +00:00
qouyang
b73fca8544 GenFds Tool: Add section No. information in section output file name.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@3478 6f19259b-4bc3-4df7-8a09-765794883524
2007-07-27 05:21:34 +00:00
jwang36
8a0c307cd3 Added 0 before HEX number after converted in case it's started by [abcdef]
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@3467 6f19259b-4bc3-4df7-8a09-765794883524
2007-07-27 02:58:39 +00:00
jwang36
0efc9c02d1 Fixed an issue which will cause removing necessary structure definition
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@3466 6f19259b-4bc3-4df7-8a09-765794883524
2007-07-27 02:19:35 +00:00
jwang36
892f21378b Fixed tool chain error when building single module for platform with more than one arch
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@3463 6f19259b-4bc3-4df7-8a09-765794883524
2007-07-27 01:28:37 +00:00
jwang36
56919d25a6 Changed Trim tool to use standard command line options and changed its usage in build_rule.template correspondingly
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@3462 6f19259b-4bc3-4df7-8a09-765794883524
2007-07-27 00:20:44 +00:00
jwang36
7329b0c500 Fixed an issue in building single module for platform with more than one arch
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@3460 6f19259b-4bc3-4df7-8a09-765794883524
2007-07-27 00:17:41 +00:00
lgao4
0963b13df5 Add build rules for asl file, asm16 file.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@3457 6f19259b-4bc3-4df7-8a09-765794883524
2007-07-26 10:26:36 +00:00
qouyang
fafdafb99c GenFds Tool:Support both absolutely path and relative path for input file.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@3456 6f19259b-4bc3-4df7-8a09-765794883524
2007-07-26 10:08:25 +00:00
jwang36
035028de3c 1. Added more check on module ARCH
2. Changed relative directory to absolute directory of dsc file passed to GenFds in top level makefile

git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@3455 6f19259b-4bc3-4df7-8a09-765794883524
2007-07-26 09:58:00 +00:00
qouyang
2cfae61ec7 Add FdfObjectClass.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@3452 6f19259b-4bc3-4df7-8a09-765794883524
2007-07-26 08:06:47 +00:00
qouyang
6fe7ee7e22 update GenFds tool
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@3447 6f19259b-4bc3-4df7-8a09-765794883524
2007-07-26 03:00:21 +00:00
jwang36
344e92420f 1. Fixed PCD MaxDatumSize issue
2. Fixed WORKSPACE build directory creation issue

git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@3441 6f19259b-4bc3-4df7-8a09-765794883524
2007-07-25 07:57:57 +00:00
qouyang
216519bb4d Update GenFds Tool
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@3438 6f19259b-4bc3-4df7-8a09-765794883524
2007-07-25 07:19:14 +00:00
lgao4
628818c927 Update Vtf tool to create vtf file with raw ffs type.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@3436 6f19259b-4bc3-4df7-8a09-765794883524
2007-07-25 06:16:10 +00:00
jwang36
804c081d69 1. Fixed PCD SizeTable issue in AutoGen.c
2. Added ACPI table module support
3. Added USER_DEFINED support for SEC module


git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@3434 6f19259b-4bc3-4df7-8a09-765794883524
2007-07-25 06:13:03 +00:00
qouyang
2aa0458082 Update GenFds tool.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@3433 6f19259b-4bc3-4df7-8a09-765794883524
2007-07-25 05:51:10 +00:00
lgao4
20a1e92436 Set default guid tool path for Lzma and Tiano compress tool.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@3424 6f19259b-4bc3-4df7-8a09-765794883524
2007-07-24 10:22:30 +00:00
lgao4
5820e20e13 Correct guid value format to define guid tool Lzma and Tiano compress tool.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@3417 6f19259b-4bc3-4df7-8a09-765794883524
2007-07-24 08:32:15 +00:00
lgao4
9801c29cb3 Update GenFw tool to create TeImage.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@3413 6f19259b-4bc3-4df7-8a09-765794883524
2007-07-24 06:54:05 +00:00
jwang36
effbb3a79e 1. Added more error check
2. Removed the generation of ASM_PFX macro in AutoGen.h
3. Changed gCallerIdGuid to the type of GUID in AutoGen.c
4. Added "extern gCallerIdGuid" and EFI_CALLER_ID_GUIDin AutoGen.h
5. Changed output directory of EFI file to DEBUG_DIR
6. Added "if exist"/"test -e" before creating/removing directory command


git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@3412 6f19259b-4bc3-4df7-8a09-765794883524
2007-07-24 06:07:25 +00:00
vanjeff
4260a38f80 remove EFI32, EFI64 and EFIX64 from compile line.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@3411 6f19259b-4bc3-4df7-8a09-765794883524
2007-07-24 05:57:51 +00:00
htao
5b0f196c66 add "-p" interface for EfiRom tool.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@3402 6f19259b-4bc3-4df7-8a09-765794883524
2007-07-23 08:24:41 +00:00
jwang36
2cabdfc6a1 Put a copy of efi file in OUPUT directory also
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@3398 6f19259b-4bc3-4df7-8a09-765794883524
2007-07-23 03:31:15 +00:00
jwang36
9462d55086 - Changed output directory of .efi file;
- Added more error check

git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@3397 6f19259b-4bc3-4df7-8a09-765794883524
2007-07-23 03:02:24 +00:00
htao
993eed8966 git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@3395 6f19259b-4bc3-4df7-8a09-765794883524 2007-07-20 14:18:13 +00:00
htao
6746ddf90c To remove debug point and some debug info and rebuild the binary.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@3392 6f19259b-4bc3-4df7-8a09-765794883524
2007-07-20 09:58:04 +00:00
jwang36
5d65088081 Removed more struct typedef for IPF
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@3391 6f19259b-4bc3-4df7-8a09-765794883524
2007-07-20 09:49:04 +00:00
qouyang
2688c00451 Fix the bug of "can't gen VTF file"
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@3390 6f19259b-4bc3-4df7-8a09-765794883524
2007-07-20 09:45:08 +00:00
jwang36
470bbb2942 Fixed GCC link issue and vfr build issue
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@3385 6f19259b-4bc3-4df7-8a09-765794883524
2007-07-20 05:30:43 +00:00
jwang36
c417dbcf5e Fixed EBC build error
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@3367 6f19259b-4bc3-4df7-8a09-765794883524
2007-07-19 09:42:37 +00:00
jwang36
88e555233a Fixed EBC link issue
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@3365 6f19259b-4bc3-4df7-8a09-765794883524
2007-07-19 08:50:49 +00:00
jwang36
aced30c670 Fixed another typo in PCD autogen template string
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@3360 6f19259b-4bc3-4df7-8a09-765794883524
2007-07-19 07:59:09 +00:00
jwang36
fcc7efa0d8 Fixed a typo in PCD autogen template string
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@3358 6f19259b-4bc3-4df7-8a09-765794883524
2007-07-19 07:37:34 +00:00
jwang36
07fdd22d9d Removed unnecessary debug message
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@3357 6f19259b-4bc3-4df7-8a09-765794883524
2007-07-19 06:41:45 +00:00
jwang36
1487000144 Temporary fix for bug in building platform for more than one arch
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@3356 6f19259b-4bc3-4df7-8a09-765794883524
2007-07-19 06:35:58 +00:00
qouyang
91933306a1 Update GenFds tool.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@3355 6f19259b-4bc3-4df7-8a09-765794883524
2007-07-19 06:16:16 +00:00
jwang36
d8dab3904b Added build command for INTEL tool chain family
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@3352 6f19259b-4bc3-4df7-8a09-765794883524
2007-07-19 05:45:47 +00:00
jwang36
a82cae466b Added more error check
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@3350 6f19259b-4bc3-4df7-8a09-765794883524
2007-07-19 04:57:55 +00:00
qouyang
8a3fbe786e Update GenFds tool.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@3347 6f19259b-4bc3-4df7-8a09-765794883524
2007-07-19 03:34:59 +00:00
lgao4
edc369f462 Fix one bug to create pad raw section.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@3338 6f19259b-4bc3-4df7-8a09-765794883524
2007-07-19 01:46:03 +00:00
jwang36
ca451dba10 Added GCC (CYGWIN only) tool chain family support
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@3332 6f19259b-4bc3-4df7-8a09-765794883524
2007-07-18 15:23:51 +00:00
lgao4
b8c535a7d2 Update these four tools linked with single threaded C run time library.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@3318 6f19259b-4bc3-4df7-8a09-765794883524
2007-07-18 07:22:05 +00:00
jwang36
9f8f4f8733 Fixed Unicode-Text file type issue
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@3317 6f19259b-4bc3-4df7-8a09-765794883524
2007-07-18 07:14:24 +00:00
jwang36
071ae32b28 Changed the comment for MULTI_THREAD setting
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@3316 6f19259b-4bc3-4df7-8a09-765794883524
2007-07-18 07:01:22 +00:00
htao
497127ac4d change Assert to normal error exit.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@3314 6f19259b-4bc3-4df7-8a09-765794883524
2007-07-18 06:53:29 +00:00
jwang36
b1f7ad6671 Improved the file type filter
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@3313 6f19259b-4bc3-4df7-8a09-765794883524
2007-07-18 06:50:31 +00:00
htao
523bc716fb tool binary update to add binary size parameter check.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@3312 6f19259b-4bc3-4df7-8a09-765794883524
2007-07-18 06:37:01 +00:00
htao
7b6c742066 Check in EfiRom and TianoCompress tool binary.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@3309 6f19259b-4bc3-4df7-8a09-765794883524
2007-07-18 03:08:09 +00:00
htao
f62edf33aa check in GenVtf tool binary
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@3307 6f19259b-4bc3-4df7-8a09-765794883524
2007-07-18 03:03:05 +00:00
jwang36
1972a51c6c Added $(INC) for MASM
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@3306 6f19259b-4bc3-4df7-8a09-765794883524
2007-07-18 02:58:49 +00:00
jwang36
b2a462ae54 Merged with new build tool changes.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@3303 6f19259b-4bc3-4df7-8a09-765794883524
2007-07-18 01:55:40 +00:00
jwang36
893e6ccf3b Added more error message when PCD is not found
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@3299 6f19259b-4bc3-4df7-8a09-765794883524
2007-07-17 09:31:27 +00:00
lgao4
77ee706ba5 Fix one bug to create pad raw section.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@3296 6f19259b-4bc3-4df7-8a09-765794883524
2007-07-17 08:06:51 +00:00
qouyang
92b0a02995 Updated GenFds Tool.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@3295 6f19259b-4bc3-4df7-8a09-765794883524
2007-07-17 07:26:35 +00:00
qouyang
4334b98670 Update GenFds tool.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@3294 6f19259b-4bc3-4df7-8a09-765794883524
2007-07-17 07:23:11 +00:00
lgao4
f9f5af433a Change C source tool from dynamic link to static link.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@3292 6f19259b-4bc3-4df7-8a09-765794883524
2007-07-17 06:41:40 +00:00
jwang36
c543d28bc2 1. Changed VFRPP to PP in build_rule.template for VFR file preprocessing
2. Removed all precompiled header option and /DSTRING_ARRAY_NAME=$(BASE_NAME)Strings for all tool chains in tools_def.template

git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@3291 6f19259b-4bc3-4df7-8a09-765794883524
2007-07-17 06:21:49 +00:00
jwang36
f875148084 1. added force include file AutoGen.h for VFRPP flag because we have moved string definitions in AutoGen.h
2. removed VFRC tool definition
3. changed $(VFRC) to VfrCompile in build_rule.template

git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@3286 6f19259b-4bc3-4df7-8a09-765794883524
2007-07-17 05:33:01 +00:00
jwang36
f74e8581ea 1. Fixed generated token number issue for dynamic PCD
2. Fixed EBC system library link issue

git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@3281 6f19259b-4bc3-4df7-8a09-765794883524
2007-07-17 03:43:56 +00:00
vanjeff
c52fa98ca9 1. Fixed tools_def.template to meet ICC build for IA32
2. Modified some source files to meet ICC build for IA32 and IPF.

git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@3271 6f19259b-4bc3-4df7-8a09-765794883524
2007-07-17 01:48:09 +00:00
lhauch
e8f5c5c02d Added a Reconfig option
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@3264 6f19259b-4bc3-4df7-8a09-765794883524
2007-07-16 23:41:59 +00:00
qouyang
fdaf1f92c1 Modify GenFds tools, which add one check for the return value of calling external tool.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@3250 6f19259b-4bc3-4df7-8a09-765794883524
2007-07-16 07:30:35 +00:00
qouyang
f344beff2a Modify GenFds tools, which add one check for the return value of calling external tool.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@3249 6f19259b-4bc3-4df7-8a09-765794883524
2007-07-16 07:16:15 +00:00
lgao4
e9508cd216 Add more debug information into these tools.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@3240 6f19259b-4bc3-4df7-8a09-765794883524
2007-07-13 16:04:29 +00:00
vanjeff
1e5e792546 Change the default active platform from MdeModulePkg to Nt32Pkg
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@3215 6f19259b-4bc3-4df7-8a09-765794883524
2007-07-12 14:42:23 +00:00
jwang36
326e346966 Fixed missed exception message
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@3214 6f19259b-4bc3-4df7-8a09-765794883524
2007-07-12 10:27:07 +00:00
jwang36
e10faeabb4 Fixed unicode file parse issue
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@3202 6f19259b-4bc3-4df7-8a09-765794883524
2007-07-12 01:20:23 +00:00
lgao4
c22621b89c Add more debug info into GenSec tool
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@3198 6f19259b-4bc3-4df7-8a09-765794883524
2007-07-11 16:00:43 +00:00
jwang36
375da20d98 Fixed "#line" line embedded in a "struct" definition
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@3197 6f19259b-4bc3-4df7-8a09-765794883524
2007-07-11 09:49:33 +00:00
jwang36
deeaf00312 Added string variable declarations in AutoGen.h
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@3189 6f19259b-4bc3-4df7-8a09-765794883524
2007-07-11 03:27:19 +00:00
jwang36
97eb619e31 1. Fixed library instance override issue
2. Fixed empty file issue when searching dependency file

git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@3188 6f19259b-4bc3-4df7-8a09-765794883524
2007-07-11 03:13:08 +00:00
qhuang8
a7e089430e Add VFR compiler Path for x64 & IPF arch.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@3179 6f19259b-4bc3-4df7-8a09-765794883524
2007-07-10 14:57:03 +00:00
jwang36
0a30ba0f56 - Fixed Dynamic PCD for PEI module issue
- Added more information output in GenFds 


git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@3177 6f19259b-4bc3-4df7-8a09-765794883524
2007-07-10 10:57:45 +00:00
jwang36
c257af0caa 1. Refined the generated makefile
2. Added run target for NT32 platform
3. Added more error check


git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@3164 6f19259b-4bc3-4df7-8a09-765794883524
2007-07-10 05:31:51 +00:00
jwang36
b51e4ee433 1. Added USER_DEFINED support;
2. Added more error check for PCD autogen


git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@3161 6f19259b-4bc3-4df7-8a09-765794883524
2007-07-09 10:23:24 +00:00
jwang36
1d12eae9de Refined the build* targets
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@3159 6f19259b-4bc3-4df7-8a09-765794883524
2007-07-09 08:35:33 +00:00
klu2
228132cecd Restore the compiler options for saving size when building debug tip.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@3140 6f19259b-4bc3-4df7-8a09-765794883524
2007-07-09 02:13:58 +00:00
jjin9
98da41e86a Don't call genc and genmake again for target(CleanALL)
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@3134 6f19259b-4bc3-4df7-8a09-765794883524
2007-07-07 02:15:50 +00:00
jwang36
16687e11bf Added more functionalities
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@3119 6f19259b-4bc3-4df7-8a09-765794883524
2007-07-06 09:39:43 +00:00
jwang36
2cb630b10e Enabled PCD DXE/PEI module build.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@3104 6f19259b-4bc3-4df7-8a09-765794883524
2007-07-06 07:41:51 +00:00
jwang36
a01c2c801d Fixed exit() issue.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@3099 6f19259b-4bc3-4df7-8a09-765794883524
2007-07-06 05:22:21 +00:00
jwang36
5391f20b5b Fixed a string format typo when raising exception
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@3097 6f19259b-4bc3-4df7-8a09-765794883524
2007-07-06 05:01:13 +00:00
jwang36
502eed2493 Added new [BuildOptions] format support
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@3086 6f19259b-4bc3-4df7-8a09-765794883524
2007-07-06 02:12:34 +00:00
klu2
05629d528e Open the debug options for easy debug NT32Pkg.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@3075 6f19259b-4bc3-4df7-8a09-765794883524
2007-07-05 10:03:31 +00:00
klu2
2ede38c8d8 for debug need InitializeDriver export function.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@3074 6f19259b-4bc3-4df7-8a09-765794883524
2007-07-05 09:55:40 +00:00
jwang36
38d3324732 1. Incorporated dll generation and active platform support in GenFds;
2. Added error checks and messages in AutoGen

git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@3060 6f19259b-4bc3-4df7-8a09-765794883524
2007-07-05 06:13:38 +00:00
klu2
c45c41cc6a Add PDB for IA32 DLINK flag for MYTOOLS chain
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@3057 6f19259b-4bc3-4df7-8a09-765794883524
2007-07-05 05:37:56 +00:00
jwang36
cb842d3ae6 Not to generate GenFds when no FDF is found
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@3027 6f19259b-4bc3-4df7-8a09-765794883524
2007-07-04 06:46:08 +00:00
jwang36
258e731a0f Use build.exe instead
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@3026 6f19259b-4bc3-4df7-8a09-765794883524
2007-07-04 06:01:46 +00:00
jwang36
3a3ed4a96a Incorporated GenFds in platform Makefile
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@3025 6f19259b-4bc3-4df7-8a09-765794883524
2007-07-04 06:00:27 +00:00
jjin9
34f9235e10 upload bld.exe
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@3006 6f19259b-4bc3-4df7-8a09-765794883524
2007-07-03 10:07:23 +00:00
jwang36
fc26ff846e Fixed a merge issue
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@3003 6f19259b-4bc3-4df7-8a09-765794883524
2007-07-03 09:54:37 +00:00
jwang36
bc154f914a Incorporated PCD database support and a PCD parse bug
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@3000 6f19259b-4bc3-4df7-8a09-765794883524
2007-07-03 09:37:13 +00:00
lgao4
53f320dc75 Add GenFds tool to parse FDF file and create Fv, FD image.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@2997 6f19259b-4bc3-4df7-8a09-765794883524
2007-07-03 09:11:49 +00:00
jwang36
5e51d10e2c Added code to remove "GUID" structure type definition in preprocessed VFR files
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@2993 6f19259b-4bc3-4df7-8a09-765794883524
2007-07-03 08:18:53 +00:00
jwang36
4a2e617cd6 Renamed the GUID'ed compressor/decompressor definitions
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@2983 6f19259b-4bc3-4df7-8a09-765794883524
2007-07-03 05:16:37 +00:00
jwang36
2a3e0cce69 Fixed unicode parse issue and vfr file build issue
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@2982 6f19259b-4bc3-4df7-8a09-765794883524
2007-07-03 03:41:33 +00:00
jwang36
e0557ab78b Added compressor tools
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@2979 6f19259b-4bc3-4df7-8a09-765794883524
2007-07-03 02:51:08 +00:00
jwang36
3f94b8e89a Fixed option issues in IPF assembler and EBC linker
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@2953 6f19259b-4bc3-4df7-8a09-765794883524
2007-07-02 09:31:51 +00:00
vanjeff
e2436f6614 update tools_def.template to enable X64 and IPF build
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@2952 6f19259b-4bc3-4df7-8a09-765794883524
2007-07-02 09:27:48 +00:00
jwang36
230ed88385 Added CUSTOM_MAKEFILE support in INF file
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@2946 6f19259b-4bc3-4df7-8a09-765794883524
2007-07-02 08:43:22 +00:00
lgao4
2a21647059 Update GenFv tool to correct FileState of FFS header.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@2939 6f19259b-4bc3-4df7-8a09-765794883524
2007-07-02 07:41:24 +00:00
jwang36
536abed6ca 1. Fixed the lookup issue for GUID/Protocol/Ppi in dependent library
2. Fixed dependency file search dead-loop


git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@2937 6f19259b-4bc3-4df7-8a09-765794883524
2007-07-02 07:04:36 +00:00
jwang36
6d2f1f24c3 Incorporated the bug fix in unicode file parse
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@2926 6f19259b-4bc3-4df7-8a09-765794883524
2007-07-02 02:28:10 +00:00
jwang36
f0d6ea5436 Added VFRC tool for VFR file processing
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@2925 6f19259b-4bc3-4df7-8a09-765794883524
2007-07-02 02:10:40 +00:00
jwang36
8cc724084d Updated VFR file build command
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@2924 6f19259b-4bc3-4df7-8a09-765794883524
2007-07-02 02:06:30 +00:00
jwang36
3c84a28243 Added for VFR file processing
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@2923 6f19259b-4bc3-4df7-8a09-765794883524
2007-07-02 02:00:18 +00:00
jwang36
2ef654709f Fixed path issue in unicode file search
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@2892 6f19259b-4bc3-4df7-8a09-765794883524
2007-06-29 06:26:39 +00:00
lgao4
8aaff939b7 Add binary GenSec, GenFfs, GenFv tool for build fv and fd image.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@2890 6f19259b-4bc3-4df7-8a09-765794883524
2007-06-29 05:59:10 +00:00
jwang36
95b63a24be Fixed unicode file search path issue
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@2889 6f19259b-4bc3-4df7-8a09-765794883524
2007-06-29 05:44:14 +00:00
jwang36
c5fad87e0d Fixed issue caused by the empty line with spaces in dsc file
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@2884 6f19259b-4bc3-4df7-8a09-765794883524
2007-06-29 05:01:11 +00:00
jwang36
e44edae021 Re-generated by adding encodings.utf_16 and encodings.utf_8, which is needed by unicode file parser
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@2869 6f19259b-4bc3-4df7-8a09-765794883524
2007-06-29 02:51:59 +00:00
jwang36
e0dbc306dd Incorporated unicode file support. Now the AutoGen.h/AutoGen.c contain content of unicode string ID and variable definitions. The old <module_name>StrDefs.h and <module_name>Strings.c should not be used and references to these file name should be removed from module's source code.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@2868 6f19259b-4bc3-4df7-8a09-765794883524
2007-06-29 02:21:06 +00:00
jwang36
54c9a35775 Incorporated Andrew's change
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@2865 6f19259b-4bc3-4df7-8a09-765794883524
2007-06-29 01:25:53 +00:00
qhuang8
348e267899 Add FatBinPkg
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@2864 6f19259b-4bc3-4df7-8a09-765794883524
2007-06-29 00:33:20 +00:00
AJFISH
3f9c2429c9 Updated the tools based on GenC.py fix for include file paths in AutoGen.c
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@2862 6f19259b-4bc3-4df7-8a09-765794883524
2007-06-28 20:23:35 +00:00
jwang36
32f148f8a3 1. Added depex file generation
2. Added file type filter per the toolcode/toolchain/toolchain family/etc., and fixed the BaseLib.inf
3. Added unicode file parse support but commented out temporarily because of bugs
4. Fixed the unicode file format in Nt32Pkg/MiscSubClassPlatformDxe
5. Removed duplicated [Ppis.common] in MdePkg.dec
6. Added declaration of gEfiPeiMemoryDiscoveredPpiGuid in Nt32Pkg.dec

git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@2858 6f19259b-4bc3-4df7-8a09-765794883524
2007-06-28 15:08:08 +00:00
klu2
de4c8a3080 1) Add MdeModulePkg\Universal\WatchDogTimerDxe driver. Because this driver use ReportStatus so this module is dependent on IntelFrameworkPkg now.
2) Write ReportStatusCodeLib.inf for  IntelFrameworkPkg\Library\ReportStatusCodeLibFramework and add it into IntelFrameworkPkg.dec

git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@2837 6f19259b-4bc3-4df7-8a09-765794883524
2007-06-28 08:36:46 +00:00
klu2
a6b55afa9a Add Nt32Pkg into FrameworkDatabase.db file.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@2803 6f19259b-4bc3-4df7-8a09-765794883524
2007-06-27 09:08:59 +00:00
jwang36
ee9aad0e90 Fixed the spaces issue.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@2789 6f19259b-4bc3-4df7-8a09-765794883524
2007-06-27 07:29:23 +00:00
qhuang8
149ae2f5fd Add Intel Framework Module Package
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@2751 6f19259b-4bc3-4df7-8a09-765794883524
2007-06-26 08:41:18 +00:00
vanjeff
00b41832d5 update spd to nspd
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@2748 6f19259b-4bc3-4df7-8a09-765794883524
2007-06-26 08:17:53 +00:00
jwang36
a9c9a31de8 Removed the AutoGen-Code type of file build; added new macro for replacement.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@2745 6f19259b-4bc3-4df7-8a09-765794883524
2007-06-26 08:07:10 +00:00