|
From: <lg...@us...> - 2012-03-13 05:26:04
|
Revision: 2500
http://edk2-buildtools.svn.sourceforge.net/edk2-buildtools/?rev=2500&view=rev
Author: lgao4
Date: 2012-03-13 05:25:56 +0000 (Tue, 13 Mar 2012)
Log Message:
-----------
LzmaCompress tool: Add support for X86 (IA32/X86) optimized compression. It can provide the improved
compression for IA32 and X64 architecture code. New option --f86 is added for it.
Signed-off-by: lgao4
Reviewed-by: jljusten
Modified Paths:
--------------
trunk/BaseTools/Conf/tools_def.template
trunk/BaseTools/Source/C/LzmaCompress/GNUmakefile
trunk/BaseTools/Source/C/LzmaCompress/LzmaCompress.c
trunk/BaseTools/Source/C/LzmaCompress/Makefile
trunk/BaseTools/UserManuals/LzmaCompress_Utility_Man_Page.rtf
Added Paths:
-----------
trunk/BaseTools/Source/C/LzmaCompress/Sdk/C/Bra.h
trunk/BaseTools/Source/C/LzmaCompress/Sdk/C/Bra86.c
Modified: trunk/BaseTools/Conf/tools_def.template
===================================================================
--- trunk/BaseTools/Conf/tools_def.template 2012-03-13 00:47:58 UTC (rev 2499)
+++ trunk/BaseTools/Conf/tools_def.template 2012-03-13 05:25:56 UTC (rev 2500)
@@ -1,5 +1,5 @@
#
-# Copyright (c) 2006 - 2011, Intel Corporation. All rights reserved.<BR>
+# Copyright (c) 2006 - 2012, Intel Corporation. All rights reserved.<BR>
# Portions copyright (c) 2008 - 2009, Apple Inc. All rights reserved.<BR>
#
# This program and the accompanying materials
@@ -4370,6 +4370,15 @@
*_*_*_LZMA_GUID = EE4E5898-3914-4259-9D6E-DC7BD79403CF
##################
+# LzmaCompress tool definitions with converter for x86 code.
+# It can improve the compression ratio if the input file is IA32 or X64 PE image.
+# Notes: If X64 PE image is built based on GCC44, it may not get the better compression.
+##################
+*_*_*_LZMAF86_PATH = LzmaCompress
+*_*_*_LZMAF86_GUID = D42AE6BD-1352-4bfb-909A-CA72A6EAE889
+*_*_*_LZMAF86_FLAGS = --f86
+
+##################
# TianoCompress tool definitions
##################
*_*_*_TIANO_PATH = TianoCompress
Modified: trunk/BaseTools/Source/C/LzmaCompress/GNUmakefile
===================================================================
--- trunk/BaseTools/Source/C/LzmaCompress/GNUmakefile 2012-03-13 00:47:58 UTC (rev 2499)
+++ trunk/BaseTools/Source/C/LzmaCompress/GNUmakefile 2012-03-13 05:25:56 UTC (rev 2500)
@@ -1,7 +1,7 @@
## @file
# Windows makefile for 'LzmaCompress' module build.
#
-# Copyright (c) 2009 - 2010, Intel Corporation. All rights reserved.<BR>
+# Copyright (c) 2009 - 2012, Intel Corporation. All rights reserved.<BR>
# This program and the accompanying materials
# are licensed and made available under the terms and conditions of the BSD License
# which accompanies this distribution. The full text of the license may be found at
@@ -24,7 +24,8 @@
$(SDK_C)/LzmaDec.o \
$(SDK_C)/LzmaEnc.o \
$(SDK_C)/7zFile.o \
- $(SDK_C)/7zStream.o
+ $(SDK_C)/7zStream.o \
+ $(SDK_C)/Bra86.o
include $(MAKEROOT)/Makefiles/app.makefile
Modified: trunk/BaseTools/Source/C/LzmaCompress/LzmaCompress.c
===================================================================
--- trunk/BaseTools/Source/C/LzmaCompress/LzmaCompress.c 2012-03-13 00:47:58 UTC (rev 2499)
+++ trunk/BaseTools/Source/C/LzmaCompress/LzmaCompress.c 2012-03-13 05:25:56 UTC (rev 2500)
@@ -5,7 +5,7 @@
LzmaUtil.c -- Test application for LZMA compression
2008-11-23 : Igor Pavlov : Public domain
- Copyright (c) 2006 - 2009, Intel Corporation. All rights reserved.<BR>
+ Copyright (c) 2006 - 2012, Intel Corporation. All rights reserved.<BR>
This program and the accompanying materials
are licensed and made available under the terms and conditions of the BSD License
which accompanies this distribution. The full text of the license may be found at
@@ -27,8 +27,17 @@
#include "Sdk/C/7zVersion.h"
#include "Sdk/C/LzmaDec.h"
#include "Sdk/C/LzmaEnc.h"
+#include "Sdk/C/Bra.h"
#include "CommonLib.h"
+#define LZMA_HEADER_SIZE (LZMA_PROPS_SIZE + 8)
+
+typedef enum {
+ NoConverter,
+ X86Converter,
+ MaxConverter
+} CONVERTER_TYPE;
+
const char *kCantReadMessage = "Can not read input file";
const char *kCantWriteMessage = "Can not write output file";
const char *kCantAllocateMessage = "Can not allocate memory";
@@ -39,12 +48,13 @@
static ISzAlloc g_Alloc = { SzAlloc, SzFree };
static Bool mQuietMode = False;
+static CONVERTER_TYPE mConType = NoConverter;
#define UTILITY_NAME "LzmaCompress"
#define UTILITY_MAJOR_VERSION 0
-#define UTILITY_MINOR_VERSION 1
+#define UTILITY_MINOR_VERSION 2
#define INTEL_COPYRIGHT \
- "Copyright (c) 2009, Intel Corporation. All rights reserved."
+ "Copyright (c) 2009-2012, Intel Corporation. All rights reserved."
void PrintHelp(char *buffer)
{
strcat(buffer,
@@ -54,6 +64,7 @@
" -e: encode file\n"
" -d: decode file\n"
" -o FileName, --output FileName: specify the output filename\n"
+ " --f86: enable converter for x86 code\n"
" -v, --verbose: increase output messages\n"
" -q, --quiet: reduce output messages\n"
" --debug [0-9]: set debug level\n"
@@ -86,121 +97,149 @@
sprintf (buffer, "%s Version %d.%d %s ", UTILITY_NAME, UTILITY_MAJOR_VERSION, UTILITY_MINOR_VERSION, __BUILD_VERSION);
}
-#define IN_BUF_SIZE (1 << 16)
-#define OUT_BUF_SIZE (1 << 16)
-
-static SRes Decode2(CLzmaDec *state, ISeqOutStream *outStream, ISeqInStream *inStream,
- UInt64 unpackSize)
+static SRes Encode(ISeqOutStream *outStream, ISeqInStream *inStream, UInt64 fileSize)
{
- int thereIsSize = (unpackSize != (UInt64)(Int64)-1);
- Byte inBuf[IN_BUF_SIZE];
- Byte outBuf[OUT_BUF_SIZE];
- size_t inPos = 0, inSize = 0, outPos = 0;
- LzmaDec_Init(state);
- for (;;)
- {
- if (inPos == inSize)
- {
- inSize = IN_BUF_SIZE;
- RINOK(inStream->Read(inStream, inBuf, &inSize));
- inPos = 0;
- }
- {
- SRes res;
- SizeT inProcessed = inSize - inPos;
- SizeT outProcessed = OUT_BUF_SIZE - outPos;
- ELzmaFinishMode finishMode = LZMA_FINISH_ANY;
- ELzmaStatus status;
- if (thereIsSize && outProcessed > unpackSize)
- {
- outProcessed = (SizeT)unpackSize;
- finishMode = LZMA_FINISH_END;
- }
+ SRes res;
+ size_t inSize = (size_t)fileSize;
+ Byte *inBuffer = 0;
+ Byte *outBuffer = 0;
+ Byte *filteredStream = 0;
+ size_t outSize;
+ CLzmaEncProps props;
- res = LzmaDec_DecodeToBuf(state, outBuf + outPos, &outProcessed,
- inBuf + inPos, &inProcessed, finishMode, &status);
- inPos += inProcessed;
- outPos += outProcessed;
- unpackSize -= outProcessed;
+ LzmaEncProps_Init(&props);
+ LzmaEncProps_Normalize(&props);
- if (outStream)
- if (outStream->Write(outStream, outBuf, outPos) != outPos)
- return SZ_ERROR_WRITE;
+ if (inSize != 0) {
+ inBuffer = (Byte *)MyAlloc(inSize);
+ if (inBuffer == 0)
+ return SZ_ERROR_MEM;
+ } else {
+ return SZ_ERROR_INPUT_EOF;
+ }
+
+ if (SeqInStream_Read(inStream, inBuffer, inSize) != SZ_OK) {
+ res = SZ_ERROR_READ;
+ goto Done;
+ }
- outPos = 0;
+ // we allocate 105% of original size + 64KB for output buffer
+ outSize = (size_t)fileSize / 20 * 21 + (1 << 16);
+ outBuffer = (Byte *)MyAlloc(outSize);
+ if (outBuffer == 0) {
+ res = SZ_ERROR_MEM;
+ goto Done;
+ }
+
+ {
+ int i;
+ for (i = 0; i < 8; i++)
+ outBuffer[i + LZMA_PROPS_SIZE] = (Byte)(fileSize >> (8 * i));
+ }
- if (res != SZ_OK || (thereIsSize && unpackSize == 0))
- return res;
-
- if (inProcessed == 0 && outProcessed == 0)
+ if (mConType != NoConverter)
+ {
+ filteredStream = (Byte *)MyAlloc(inSize);
+ if (filteredStream == 0) {
+ res = SZ_ERROR_MEM;
+ goto Done;
+ }
+ memcpy(filteredStream, inBuffer, inSize);
+
+ if (mConType == X86Converter) {
{
- if (thereIsSize || status != LZMA_STATUS_FINISHED_WITH_MARK)
- return SZ_ERROR_DATA;
- return res;
+ UInt32 x86State;
+ x86_Convert_Init(x86State);
+ x86_Convert(filteredStream, (SizeT) inSize, 0, &x86State, 1);
}
}
}
-}
-static SRes Decode(ISeqOutStream *outStream, ISeqInStream *inStream)
-{
- UInt64 unpackSize;
- int i;
- SRes res = 0;
+ {
+ size_t outSizeProcessed = outSize - LZMA_HEADER_SIZE;
+ size_t outPropsSize = LZMA_PROPS_SIZE;
+
+ res = LzmaEncode(outBuffer + LZMA_HEADER_SIZE, &outSizeProcessed,
+ mConType != NoConverter ? filteredStream : inBuffer, inSize,
+ &props, outBuffer, &outPropsSize, 0,
+ NULL, &g_Alloc, &g_Alloc);
+
+ if (res != SZ_OK)
+ goto Done;
- CLzmaDec state;
+ outSize = LZMA_HEADER_SIZE + outSizeProcessed;
+ }
- /* header: 5 bytes of LZMA properties and 8 bytes of uncompressed size */
- unsigned char header[LZMA_PROPS_SIZE + 8];
+ if (outStream->Write(outStream, outBuffer, outSize) != outSize)
+ res = SZ_ERROR_WRITE;
- /* Read and parse header */
+Done:
+ MyFree(outBuffer);
+ MyFree(inBuffer);
+ MyFree(filteredStream);
- RINOK(SeqInStream_Read(inStream, header, sizeof(header)));
-
- unpackSize = 0;
- for (i = 0; i < 8; i++)
- unpackSize += (UInt64)header[LZMA_PROPS_SIZE + i] << (i * 8);
-
- LzmaDec_Construct(&state);
- RINOK(LzmaDec_Allocate(&state, header, LZMA_PROPS_SIZE, &g_Alloc));
- res = Decode2(&state, outStream, inStream, unpackSize);
- LzmaDec_Free(&state, &g_Alloc);
return res;
}
-static SRes Encode(ISeqOutStream *outStream, ISeqInStream *inStream, UInt64 fileSize, char *rs)
+static SRes Decode(ISeqOutStream *outStream, ISeqInStream *inStream, UInt64 fileSize)
{
- CLzmaEncHandle enc;
SRes res;
- CLzmaEncProps props;
+ size_t inSize = (size_t)fileSize;
+ Byte *inBuffer = 0;
+ Byte *outBuffer = 0;
+ size_t outSize = 0;
+ size_t inSizePure;
+ ELzmaStatus status;
- rs = rs;
+ int i;
- enc = LzmaEnc_Create(&g_Alloc);
- if (enc == 0)
+ if (inSize < LZMA_HEADER_SIZE)
+ return SZ_ERROR_INPUT_EOF;
+
+ inBuffer = (Byte *)MyAlloc(inSize);
+ if (inBuffer == 0)
return SZ_ERROR_MEM;
+
+ if (SeqInStream_Read(inStream, inBuffer, inSize) != SZ_OK) {
+ res = SZ_ERROR_READ;
+ goto Done;
+ }
- LzmaEncProps_Init(&props);
- res = LzmaEnc_SetProps(enc, &props);
+ for (i = 0; i < 8; i++)
+ outSize += (UInt64)inBuffer[LZMA_PROPS_SIZE + i] << (i * 8);
- if (res == SZ_OK)
+ if (outSize != 0) {
+ outBuffer = (Byte *)MyAlloc(outSize);
+ if (outBuffer == 0) {
+ res = SZ_ERROR_MEM;
+ goto Done;
+ }
+ } else {
+ res = SZ_OK;
+ goto Done;
+ }
+
+ inSizePure = inSize - LZMA_HEADER_SIZE;
+ res = LzmaDecode(outBuffer, &outSize, inBuffer + LZMA_HEADER_SIZE, &inSizePure,
+ inBuffer, LZMA_PROPS_SIZE, LZMA_FINISH_END, &status, &g_Alloc);
+
+ if (res != SZ_OK)
+ goto Done;
+
+ if (mConType == X86Converter)
{
- Byte header[LZMA_PROPS_SIZE + 8];
- size_t headerSize = LZMA_PROPS_SIZE;
- int i;
+ UInt32 x86State;
+ x86_Convert_Init(x86State);
+ x86_Convert(outBuffer, (SizeT) outSize, 0, &x86State, 0);
+ }
- res = LzmaEnc_WriteProperties(enc, header, &headerSize);
- for (i = 0; i < 8; i++)
- header[headerSize++] = (Byte)(fileSize >> (8 * i));
- if (outStream->Write(outStream, header, headerSize) != headerSize)
- res = SZ_ERROR_WRITE;
- else
- {
- if (res == SZ_OK)
- res = LzmaEnc_Encode(enc, outStream, inStream, NULL, &g_Alloc, &g_Alloc);
- }
- }
- LzmaEnc_Destroy(enc, &g_Alloc, &g_Alloc);
+ if (outStream->Write(outStream, outBuffer, outSize) != outSize)
+ res = SZ_ERROR_WRITE;
+
+Done:
+ MyFree(outBuffer);
+ MyFree(inBuffer);
+
return res;
}
@@ -214,6 +253,7 @@
const char *inputFile = NULL;
const char *outputFile = "file.tmp";
int param;
+ UInt64 fileSize;
FileSeqInStream_CreateVTable(&inStream);
File_Construct(&inStream.file);
@@ -231,6 +271,8 @@
if (strcmp(args[param], "-e") == 0 || strcmp(args[param], "-d") == 0) {
encodeMode = (args[param][1] == 'e');
modeWasSet = True;
+ } else if (strcmp(args[param], "--f86") == 0) {
+ mConType = X86Converter;
} else if (strcmp(args[param], "-o") == 0 ||
strcmp(args[param], "--output") == 0) {
if (numArgs < (param + 2)) {
@@ -292,21 +334,21 @@
if (OutFile_Open(&outStream.file, outputFile) != 0)
return PrintError(rs, "Can not open output file");
+ File_GetLength(&inStream.file, &fileSize);
+
if (encodeMode)
{
- UInt64 fileSize;
- File_GetLength(&inStream.file, &fileSize);
if (!mQuietMode) {
printf("Encoding\n");
}
- res = Encode(&outStream.s, &inStream.s, fileSize, rs);
+ res = Encode(&outStream.s, &inStream.s, fileSize);
}
else
{
if (!mQuietMode) {
printf("Decoding\n");
}
- res = Decode(&outStream.s, &inStream.s);
+ res = Decode(&outStream.s, &inStream.s, fileSize);
}
File_Close(&outStream.file);
Modified: trunk/BaseTools/Source/C/LzmaCompress/Makefile
===================================================================
--- trunk/BaseTools/Source/C/LzmaCompress/Makefile 2012-03-13 00:47:58 UTC (rev 2499)
+++ trunk/BaseTools/Source/C/LzmaCompress/Makefile 2012-03-13 05:25:56 UTC (rev 2500)
@@ -1,7 +1,7 @@
## @file
# Windows makefile for 'LzmaCompress' module build.
#
-# Copyright (c) 2009 - 2010, Intel Corporation. All rights reserved.<BR>
+# Copyright (c) 2009 - 2012, Intel Corporation. All rights reserved.<BR>
# This program and the accompanying materials
# are licensed and made available under the terms and conditions of the BSD License
# which accompanies this distribution. The full text of the license may be found at
@@ -25,7 +25,8 @@
$(SDK_C)\LzmaDec.obj \
$(SDK_C)\LzmaEnc.obj \
$(SDK_C)\7zFile.obj \
- $(SDK_C)\7zStream.obj
+ $(SDK_C)\7zStream.obj \
+ $(SDK_C)\Bra86.obj
!INCLUDE ..\Makefiles\ms.app
Added: trunk/BaseTools/Source/C/LzmaCompress/Sdk/C/Bra.h
===================================================================
--- trunk/BaseTools/Source/C/LzmaCompress/Sdk/C/Bra.h (rev 0)
+++ trunk/BaseTools/Source/C/LzmaCompress/Sdk/C/Bra.h 2012-03-13 05:25:56 UTC (rev 2500)
@@ -0,0 +1,60 @@
+/* Bra.h -- Branch converters for executables
+2008-10-04 : Igor Pavlov : Public domain */
+
+#ifndef __BRA_H
+#define __BRA_H
+
+#include "Types.h"
+
+/*
+These functions convert relative addresses to absolute addresses
+in CALL instructions to increase the compression ratio.
+
+ In:
+ data - data buffer
+ size - size of data
+ ip - current virtual Instruction Pinter (IP) value
+ state - state variable for x86 converter
+ encoding - 0 (for decoding), 1 (for encoding)
+
+ Out:
+ state - state variable for x86 converter
+
+ Returns:
+ The number of processed bytes. If you call these functions with multiple calls,
+ you must start next call with first byte after block of processed bytes.
+
+ Type Endian Alignment LookAhead
+
+ x86 little 1 4
+ ARMT little 2 2
+ ARM little 4 0
+ PPC big 4 0
+ SPARC big 4 0
+ IA64 little 16 0
+
+ size must be >= Alignment + LookAhead, if it's not last block.
+ If (size < Alignment + LookAhead), converter returns 0.
+
+ Example:
+
+ UInt32 ip = 0;
+ for ()
+ {
+ ; size must be >= Alignment + LookAhead, if it's not last block
+ SizeT processed = Convert(data, size, ip, 1);
+ data += processed;
+ size -= processed;
+ ip += processed;
+ }
+*/
+
+#define x86_Convert_Init(state) { state = 0; }
+SizeT x86_Convert(Byte *data, SizeT size, UInt32 ip, UInt32 *state, int encoding);
+SizeT ARM_Convert(Byte *data, SizeT size, UInt32 ip, int encoding);
+SizeT ARMT_Convert(Byte *data, SizeT size, UInt32 ip, int encoding);
+SizeT PPC_Convert(Byte *data, SizeT size, UInt32 ip, int encoding);
+SizeT SPARC_Convert(Byte *data, SizeT size, UInt32 ip, int encoding);
+SizeT IA64_Convert(Byte *data, SizeT size, UInt32 ip, int encoding);
+
+#endif
Added: trunk/BaseTools/Source/C/LzmaCompress/Sdk/C/Bra86.c
===================================================================
--- trunk/BaseTools/Source/C/LzmaCompress/Sdk/C/Bra86.c (rev 0)
+++ trunk/BaseTools/Source/C/LzmaCompress/Sdk/C/Bra86.c 2012-03-13 05:25:56 UTC (rev 2500)
@@ -0,0 +1,85 @@
+/* Bra86.c -- Converter for x86 code (BCJ)
+2008-10-04 : Igor Pavlov : Public domain */
+
+#include "Bra.h"
+
+#define Test86MSByte(b) ((b) == 0 || (b) == 0xFF)
+
+const Byte kMaskToAllowedStatus[8] = {1, 1, 1, 0, 1, 0, 0, 0};
+const Byte kMaskToBitNumber[8] = {0, 1, 2, 2, 3, 3, 3, 3};
+
+SizeT x86_Convert(Byte *data, SizeT size, UInt32 ip, UInt32 *state, int encoding)
+{
+ SizeT bufferPos = 0, prevPosT;
+ UInt32 prevMask = *state & 0x7;
+ if (size < 5)
+ return 0;
+ ip += 5;
+ prevPosT = (SizeT)0 - 1;
+
+ for (;;)
+ {
+ Byte *p = data + bufferPos;
+ Byte *limit = data + size - 4;
+ for (; p < limit; p++)
+ if ((*p & 0xFE) == 0xE8)
+ break;
+ bufferPos = (SizeT)(p - data);
+ if (p >= limit)
+ break;
+ prevPosT = bufferPos - prevPosT;
+ if (prevPosT > 3)
+ prevMask = 0;
+ else
+ {
+ prevMask = (prevMask << ((int)prevPosT - 1)) & 0x7;
+ if (prevMask != 0)
+ {
+ Byte b = p[4 - kMaskToBitNumber[prevMask]];
+ if (!kMaskToAllowedStatus[prevMask] || Test86MSByte(b))
+ {
+ prevPosT = bufferPos;
+ prevMask = ((prevMask << 1) & 0x7) | 1;
+ bufferPos++;
+ continue;
+ }
+ }
+ }
+ prevPosT = bufferPos;
+
+ if (Test86MSByte(p[4]))
+ {
+ UInt32 src = ((UInt32)p[4] << 24) | ((UInt32)p[3] << 16) | ((UInt32)p[2] << 8) | ((UInt32)p[1]);
+ UInt32 dest;
+ for (;;)
+ {
+ Byte b;
+ int index;
+ if (encoding)
+ dest = (ip + (UInt32)bufferPos) + src;
+ else
+ dest = src - (ip + (UInt32)bufferPos);
+ if (prevMask == 0)
+ break;
+ index = kMaskToBitNumber[prevMask] * 8;
+ b = (Byte)(dest >> (24 - index));
+ if (!Test86MSByte(b))
+ break;
+ src = dest ^ ((1 << (32 - index)) - 1);
+ }
+ p[4] = (Byte)(~(((dest >> 24) & 1) - 1));
+ p[3] = (Byte)(dest >> 16);
+ p[2] = (Byte)(dest >> 8);
+ p[1] = (Byte)dest;
+ bufferPos += 5;
+ }
+ else
+ {
+ prevMask = ((prevMask << 1) & 0x7) | 1;
+ bufferPos++;
+ }
+ }
+ prevPosT = bufferPos - prevPosT;
+ *state = ((prevPosT > 3) ? 0 : ((prevMask << ((int)prevPosT - 1)) & 0x7));
+ return bufferPos;
+}
Modified: trunk/BaseTools/UserManuals/LzmaCompress_Utility_Man_Page.rtf
===================================================================
--- trunk/BaseTools/UserManuals/LzmaCompress_Utility_Man_Page.rtf 2012-03-13 00:47:58 UTC (rev 2499)
+++ trunk/BaseTools/UserManuals/LzmaCompress_Utility_Man_Page.rtf 2012-03-13 05:25:56 UTC (rev 2500)
@@ -1,27 +1,27 @@
{\rtf1\adeflang1025\ansi\ansicpg936\uc2\adeff0\deff0\stshfdbch31505\stshfloch31506\stshfhich31506\stshfbi0\deflang1033\deflangfe2052\themelang1033\themelangfe2052\themelangcs0{\fonttbl{\f0\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}{\f1\fbidi \fswiss\fcharset0\fprq2{\*\panose 020b0604020202020204}Arial;}
{\f2\fbidi \fmodern\fcharset0\fprq1{\*\panose 02070309020205020404}Courier New;}{\f13\fbidi \fnil\fcharset134\fprq2{\*\panose 02010600030101010101}\'cb\'ce\'cc\'e5{\*\falt SimSun};}
{\f34\fbidi \froman\fcharset0\fprq2{\*\panose 02040503050406030204}Cambria Math;}{\f37\fbidi \fswiss\fcharset0\fprq2{\*\panose 020f0502020204030204}Calibri;}{\f38\fbidi \fswiss\fcharset0\fprq2{\*\panose 020b0604030504040204}Tahoma;}
-{\f39\fbidi \fswiss\fcharset0\fprq2{\*\panose 00000000000000000000}Verdana{\*\falt Verdana};}{\f40\fbidi \fnil\fcharset134\fprq2{\*\panose 02010600030101010101}@\'cb\'ce\'cc\'e5;}
-{\f42\fbidi \fmodern\fcharset0\fprq1{\*\panose 020b0609020204030204}Consolas;}{\flomajor\f31500\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}
+{\f39\fbidi \fswiss\fcharset0\fprq2{\*\panose 020b0604030504040204}Verdana{\*\falt Verdana};}{\f40\fbidi \fnil\fcharset134\fprq2{\*\panose 02010600030101010101}@\'cb\'ce\'cc\'e5;}
+{\f41\fbidi \fmodern\fcharset0\fprq1{\*\panose 020b0609020204030204}Consolas;}{\flomajor\f31500\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}
{\fdbmajor\f31501\fbidi \fnil\fcharset134\fprq2{\*\panose 02010600030101010101}\'cb\'ce\'cc\'e5{\*\falt SimSun};}{\fhimajor\f31502\fbidi \froman\fcharset0\fprq2{\*\panose 02040503050406030204}Cambria;}
{\fbimajor\f31503\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}{\flominor\f31504\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}
{\fdbminor\f31505\fbidi \fnil\fcharset134\fprq2{\*\panose 02010600030101010101}\'cb\'ce\'cc\'e5{\*\falt SimSun};}{\fhiminor\f31506\fbidi \fswiss\fcharset0\fprq2{\*\panose 020f0502020204030204}Calibri;}
-{\fbiminor\f31507\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}{\f45\fbidi \froman\fcharset238\fprq2 Times New Roman CE;}{\f46\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;}
-{\f48\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;}{\f49\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;}{\f50\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);}{\f51\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);}
-{\f52\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;}{\f53\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);}{\f55\fbidi \fswiss\fcharset238\fprq2 Arial CE;}{\f56\fbidi \fswiss\fcharset204\fprq2 Arial Cyr;}
-{\f58\fbidi \fswiss\fcharset161\fprq2 Arial Greek;}{\f59\fbidi \fswiss\fcharset162\fprq2 Arial Tur;}{\f60\fbidi \fswiss\fcharset177\fprq2 Arial (Hebrew);}{\f61\fbidi \fswiss\fcharset178\fprq2 Arial (Arabic);}
-{\f62\fbidi \fswiss\fcharset186\fprq2 Arial Baltic;}{\f63\fbidi \fswiss\fcharset163\fprq2 Arial (Vietnamese);}{\f65\fbidi \fmodern\fcharset238\fprq1 Courier New CE;}{\f66\fbidi \fmodern\fcharset204\fprq1 Courier New Cyr;}
-{\f68\fbidi \fmodern\fcharset161\fprq1 Courier New Greek;}{\f69\fbidi \fmodern\fcharset162\fprq1 Courier New Tur;}{\f70\fbidi \fmodern\fcharset177\fprq1 Courier New (Hebrew);}{\f71\fbidi \fmodern\fcharset178\fprq1 Courier New (Arabic);}
-{\f72\fbidi \fmodern\fcharset186\fprq1 Courier New Baltic;}{\f73\fbidi \fmodern\fcharset163\fprq1 Courier New (Vietnamese);}{\f177\fbidi \fnil\fcharset0\fprq2 SimSun Western{\*\falt SimSun};}{\f385\fbidi \froman\fcharset238\fprq2 Cambria Math CE;}
-{\f386\fbidi \froman\fcharset204\fprq2 Cambria Math Cyr;}{\f388\fbidi \froman\fcharset161\fprq2 Cambria Math Greek;}{\f389\fbidi \froman\fcharset162\fprq2 Cambria Math Tur;}{\f392\fbidi \froman\fcharset186\fprq2 Cambria Math Baltic;}
-{\f393\fbidi \froman\fcharset163\fprq2 Cambria Math (Vietnamese);}{\f415\fbidi \fswiss\fcharset238\fprq2 Calibri CE;}{\f416\fbidi \fswiss\fcharset204\fprq2 Calibri Cyr;}{\f418\fbidi \fswiss\fcharset161\fprq2 Calibri Greek;}
-{\f419\fbidi \fswiss\fcharset162\fprq2 Calibri Tur;}{\f422\fbidi \fswiss\fcharset186\fprq2 Calibri Baltic;}{\f423\fbidi \fswiss\fcharset163\fprq2 Calibri (Vietnamese);}{\f425\fbidi \fswiss\fcharset238\fprq2 Tahoma CE;}
-{\f426\fbidi \fswiss\fcharset204\fprq2 Tahoma Cyr;}{\f428\fbidi \fswiss\fcharset161\fprq2 Tahoma Greek;}{\f429\fbidi \fswiss\fcharset162\fprq2 Tahoma Tur;}{\f430\fbidi \fswiss\fcharset177\fprq2 Tahoma (Hebrew);}
-{\f431\fbidi \fswiss\fcharset178\fprq2 Tahoma (Arabic);}{\f432\fbidi \fswiss\fcharset186\fprq2 Tahoma Baltic;}{\f433\fbidi \fswiss\fcharset163\fprq2 Tahoma (Vietnamese);}{\f434\fbidi \fswiss\fcharset222\fprq2 Tahoma (Thai);}
-{\f435\fbidi \fswiss\fcharset238\fprq2 Verdana CE{\*\falt Verdana};}{\f436\fbidi \fswiss\fcharset204\fprq2 Verdana Cyr{\*\falt Verdana};}{\f438\fbidi \fswiss\fcharset161\fprq2 Verdana Greek{\*\falt Verdana};}
-{\f439\fbidi \fswiss\fcharset162\fprq2 Verdana Tur{\*\falt Verdana};}{\f442\fbidi \fswiss\fcharset186\fprq2 Verdana Baltic{\*\falt Verdana};}{\f443\fbidi \fswiss\fcharset163\fprq2 Verdana (Vietnamese){\*\falt Verdana};}
-{\f447\fbidi \fnil\fcharset0\fprq2 @\'cb\'ce\'cc\'e5 Western;}{\f465\fbidi \fmodern\fcharset238\fprq1 Consolas CE;}{\f466\fbidi \fmodern\fcharset204\fprq1 Consolas Cyr;}{\f468\fbidi \fmodern\fcharset161\fprq1 Consolas Greek;}
-{\f469\fbidi \fmodern\fcharset162\fprq1 Consolas Tur;}{\f472\fbidi \fmodern\fcharset186\fprq1 Consolas Baltic;}{\f473\fbidi \fmodern\fcharset163\fprq1 Consolas (Vietnamese);}{\flomajor\f31508\fbidi \froman\fcharset238\fprq2 Times New Roman CE;}
+{\fbiminor\f31507\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}{\f245\fbidi \froman\fcharset238\fprq2 Times New Roman CE;}{\f246\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;}
+{\f248\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;}{\f249\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;}{\f250\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);}{\f251\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);}
+{\f252\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;}{\f253\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);}{\f255\fbidi \fswiss\fcharset238\fprq2 Arial CE;}{\f256\fbidi \fswiss\fcharset204\fprq2 Arial Cyr;}
+{\f258\fbidi \fswiss\fcharset161\fprq2 Arial Greek;}{\f259\fbidi \fswiss\fcharset162\fprq2 Arial Tur;}{\f260\fbidi \fswiss\fcharset177\fprq2 Arial (Hebrew);}{\f261\fbidi \fswiss\fcharset178\fprq2 Arial (Arabic);}
+{\f262\fbidi \fswiss\fcharset186\fprq2 Arial Baltic;}{\f263\fbidi \fswiss\fcharset163\fprq2 Arial (Vietnamese);}{\f265\fbidi \fmodern\fcharset238\fprq1 Courier New CE;}{\f266\fbidi \fmodern\fcharset204\fprq1 Courier New Cyr;}
+{\f268\fbidi \fmodern\fcharset161\fprq1 Courier New Greek;}{\f269\fbidi \fmodern\fcharset162\fprq1 Courier New Tur;}{\f270\fbidi \fmodern\fcharset177\fprq1 Courier New (Hebrew);}{\f271\fbidi \fmodern\fcharset178\fprq1 Courier New (Arabic);}
+{\f272\fbidi \fmodern\fcharset186\fprq1 Courier New Baltic;}{\f273\fbidi \fmodern\fcharset163\fprq1 Courier New (Vietnamese);}{\f377\fbidi \fnil\fcharset0\fprq2 SimSun Western{\*\falt SimSun};}{\f585\fbidi \froman\fcharset238\fprq2 Cambria Math CE;}
+{\f586\fbidi \froman\fcharset204\fprq2 Cambria Math Cyr;}{\f588\fbidi \froman\fcharset161\fprq2 Cambria Math Greek;}{\f589\fbidi \froman\fcharset162\fprq2 Cambria Math Tur;}{\f592\fbidi \froman\fcharset186\fprq2 Cambria Math Baltic;}
+{\f593\fbidi \froman\fcharset163\fprq2 Cambria Math (Vietnamese);}{\f615\fbidi \fswiss\fcharset238\fprq2 Calibri CE;}{\f616\fbidi \fswiss\fcharset204\fprq2 Calibri Cyr;}{\f618\fbidi \fswiss\fcharset161\fprq2 Calibri Greek;}
+{\f619\fbidi \fswiss\fcharset162\fprq2 Calibri Tur;}{\f622\fbidi \fswiss\fcharset186\fprq2 Calibri Baltic;}{\f623\fbidi \fswiss\fcharset163\fprq2 Calibri (Vietnamese);}{\f625\fbidi \fswiss\fcharset238\fprq2 Tahoma CE;}
+{\f626\fbidi \fswiss\fcharset204\fprq2 Tahoma Cyr;}{\f628\fbidi \fswiss\fcharset161\fprq2 Tahoma Greek;}{\f629\fbidi \fswiss\fcharset162\fprq2 Tahoma Tur;}{\f630\fbidi \fswiss\fcharset177\fprq2 Tahoma (Hebrew);}
+{\f631\fbidi \fswiss\fcharset178\fprq2 Tahoma (Arabic);}{\f632\fbidi \fswiss\fcharset186\fprq2 Tahoma Baltic;}{\f633\fbidi \fswiss\fcharset163\fprq2 Tahoma (Vietnamese);}{\f634\fbidi \fswiss\fcharset222\fprq2 Tahoma (Thai);}
+{\f635\fbidi \fswiss\fcharset238\fprq2 Verdana CE{\*\falt Verdana};}{\f636\fbidi \fswiss\fcharset204\fprq2 Verdana Cyr{\*\falt Verdana};}{\f638\fbidi \fswiss\fcharset161\fprq2 Verdana Greek{\*\falt Verdana};}
+{\f639\fbidi \fswiss\fcharset162\fprq2 Verdana Tur{\*\falt Verdana};}{\f642\fbidi \fswiss\fcharset186\fprq2 Verdana Baltic{\*\falt Verdana};}{\f643\fbidi \fswiss\fcharset163\fprq2 Verdana (Vietnamese){\*\falt Verdana};}
+{\f647\fbidi \fnil\fcharset0\fprq2 @\'cb\'ce\'cc\'e5 Western;}{\f655\fbidi \fmodern\fcharset238\fprq1 Consolas CE;}{\f656\fbidi \fmodern\fcharset204\fprq1 Consolas Cyr;}{\f658\fbidi \fmodern\fcharset161\fprq1 Consolas Greek;}
+{\f659\fbidi \fmodern\fcharset162\fprq1 Consolas Tur;}{\f662\fbidi \fmodern\fcharset186\fprq1 Consolas Baltic;}{\f663\fbidi \fmodern\fcharset163\fprq1 Consolas (Vietnamese);}{\flomajor\f31508\fbidi \froman\fcharset238\fprq2 Times New Roman CE;}
{\flomajor\f31509\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;}{\flomajor\f31511\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;}{\flomajor\f31512\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;}
{\flomajor\f31513\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);}{\flomajor\f31514\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);}{\flomajor\f31515\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;}
{\flomajor\f31516\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);}{\fdbmajor\f31520\fbidi \fnil\fcharset0\fprq2 SimSun Western{\*\falt SimSun};}{\fhimajor\f31528\fbidi \froman\fcharset238\fprq2 Cambria CE;}
@@ -43,21 +43,22 @@
\fs24\lang1033\langfe1033\loch\f39\hich\af39\dbch\af31505\cgrid\langnp1033\langfenp1033 \snext0 \sqformat \spriority0 Normal;}{\s1\ql \li0\ri0\nowidctlpar\wrapdefault\faauto\outlinelevel0\rin0\lin0\itap0 \rtlch\fcs1 \af0\afs24\alang1025 \ltrch\fcs0
\fs24\lang1033\langfe1033\loch\f39\hich\af39\dbch\af31505\cgrid\langnp1033\langfenp1033 \sbasedon0 \snext0 \slink15 \sqformat heading 1;}{\s2\ql \li0\ri0\nowidctlpar\wrapdefault\faauto\outlinelevel1\rin0\lin0\itap0 \rtlch\fcs1 \af0\afs24\alang1025
\ltrch\fcs0 \fs24\lang1033\langfe1033\loch\f39\hich\af39\dbch\af31505\cgrid\langnp1033\langfenp1033 \sbasedon0 \snext0 \slink16 \sqformat heading 2;}{\*\cs10 \additive \ssemihidden \sunhideused \spriority1 Default Paragraph Font;}{\*
-\ts11\tsrowd\trftsWidthB3\trpaddl108\trpaddr108\trpaddfl3\trpaddft3\trpaddfb3\trpaddfr3\tblind0\tblindtype3\tsvertalt\tsbrdrt\tsbrdrl\tsbrdrb\tsbrdrr\tsbrdrdgl\tsbrdrdgr\tsbrdrh\tsbrdrv \ql \li0\ri0\sa200\sl276\slmult1
-\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \rtlch\fcs1 \af0\afs22\alang1025 \ltrch\fcs0 \fs22\lang1033\langfe2052\loch\f31506\hich\af31506\dbch\af31...
[truncated message content] |
|
From: <xf...@us...> - 2012-03-16 02:56:10
|
Revision: 2503
http://edk2-buildtools.svn.sourceforge.net/edk2-buildtools/?rev=2503&view=rev
Author: xfzyr
Date: 2012-03-16 02:56:03 +0000 (Fri, 16 Mar 2012)
Log Message:
-----------
Add the version information check for build_rule.template.
Signed-off-by: yzeng15
Reviewed-by: lhauch
Modified Paths:
--------------
trunk/BaseTools/Conf/build_rule.template
trunk/BaseTools/Source/Python/AutoGen/AutoGen.py
trunk/BaseTools/Source/Python/AutoGen/BuildEngine.py
trunk/BaseTools/Source/Python/Common/DataType.py
Modified: trunk/BaseTools/Conf/build_rule.template
===================================================================
--- trunk/BaseTools/Conf/build_rule.template 2012-03-14 01:11:51 UTC (rev 2502)
+++ trunk/BaseTools/Conf/build_rule.template 2012-03-16 02:56:03 UTC (rev 2503)
@@ -105,6 +105,10 @@
# Unicode-Text-File
#
+## Build Rule Version Number
+# build_rule_version=0.1
+#
+
[C-Code-File]
<InputFile>
?.c
Modified: trunk/BaseTools/Source/Python/AutoGen/AutoGen.py
===================================================================
--- trunk/BaseTools/Source/Python/AutoGen/AutoGen.py 2012-03-14 01:11:51 UTC (rev 2502)
+++ trunk/BaseTools/Source/Python/AutoGen/AutoGen.py 2012-03-16 02:56:03 UTC (rev 2503)
@@ -46,6 +46,9 @@
## Build rule configuration file
gBuildRuleFile = 'Conf/build_rule.txt'
+## Build rule default version
+AutoGenReqBuildRuleVerNum = "0.1"
+
## default file name for AutoGen
gAutoGenCodeFileName = "AutoGen.c"
gAutoGenHeaderFileName = "AutoGen.h"
@@ -1233,6 +1236,15 @@
if BuildRuleFile in [None, '']:
BuildRuleFile = gBuildRuleFile
self._BuildRule = BuildRule(BuildRuleFile)
+ if self._BuildRule._FileVersion == "":
+ self._BuildRule._FileVersion = AutoGenReqBuildRuleVerNum
+ else:
+ if self._BuildRule._FileVersion < AutoGenReqBuildRuleVerNum :
+ # If Build Rule's version is less than the version number required by the tools, halting the build.
+ EdkLogger.error("build", AUTOGEN_ERROR,
+ ExtraData="The version number [%s] of build_rule.txt is less than the version number required by the AutoGen.(the minimum required version number is [%s])"\
+ % (self._BuildRule._FileVersion, AutoGenReqBuildRuleVerNum))
+
return self._BuildRule
## Summarize the packages used by modules in this platform
Modified: trunk/BaseTools/Source/Python/AutoGen/BuildEngine.py
===================================================================
--- trunk/BaseTools/Source/Python/AutoGen/BuildEngine.py 2012-03-14 01:11:51 UTC (rev 2502)
+++ trunk/BaseTools/Source/Python/AutoGen/BuildEngine.py 2012-03-16 02:56:03 UTC (rev 2503)
@@ -354,6 +354,7 @@
self._FamilyList = []
self._TotalToolChainFamilySet = set()
self._RuleObjectList = [] # FileBuildRule object list
+ self._FileVersion = ""
self.Parse()
@@ -368,7 +369,11 @@
# Clean up the line and replace path separator with native one
Line = self.RuleContent[Index].strip().replace(self._PATH_SEP, os.path.sep)
self.RuleContent[Index] = Line
-
+
+ # find the build_rule_version
+ if Line and Line[0] == "#" and Line.find(TAB_BUILD_RULE_VERSION) <> -1:
+ if Line.find("=") <> -1 and Line.find("=") < (len(Line)-1) and (Line[(Line.find("=") + 1):]).split():
+ self._FileVersion = (Line[(Line.find("=") + 1):]).split()[0]
# skip empty or comment line
if Line == "" or Line[0] == "#":
continue
Modified: trunk/BaseTools/Source/Python/Common/DataType.py
===================================================================
--- trunk/BaseTools/Source/Python/Common/DataType.py 2012-03-14 01:11:51 UTC (rev 2502)
+++ trunk/BaseTools/Source/Python/Common/DataType.py 2012-03-16 02:56:03 UTC (rev 2503)
@@ -422,3 +422,7 @@
TAB_UNKNOWN_FILE = "UNKNOWN-TYPE-FILE"
TAB_DEFAULT_BINARY_FILE = "_BINARY_FILE_"
+#
+# Build Rule File Version Definition
+#
+TAB_BUILD_RULE_VERSION = "build_rule_version"
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <lg...@us...> - 2012-03-27 05:56:21
|
Revision: 2507
http://edk2-buildtools.svn.sourceforge.net/edk2-buildtools/?rev=2507&view=rev
Author: lgao4
Date: 2012-03-27 05:56:14 +0000 (Tue, 27 Mar 2012)
Log Message:
-----------
Add LzmaF86Compress tool to only use the standard options.
Signed-off-by: Liming Gao <lim...@in...>
Reviewed-by: Larry Hauch <lar...@in...>
Modified Paths:
--------------
trunk/BaseTools/Conf/tools_def.template
trunk/BaseTools/Source/Python/GenFds/GenFdsGlobalVariable.py
Added Paths:
-----------
trunk/BaseTools/Bin/CYGWIN_NT-5.1-i686/LzmaF86Compress
trunk/BaseTools/BinWrappers/PosixLike/LzmaF86Compress
Added: trunk/BaseTools/Bin/CYGWIN_NT-5.1-i686/LzmaF86Compress
===================================================================
--- trunk/BaseTools/Bin/CYGWIN_NT-5.1-i686/LzmaF86Compress (rev 0)
+++ trunk/BaseTools/Bin/CYGWIN_NT-5.1-i686/LzmaF86Compress 2012-03-27 05:56:14 UTC (rev 2507)
@@ -0,0 +1,22 @@
+#!/usr/bin/env bash
+#
+# This script will exec LzmaCompress tool with --f86 option that enables converter for x86 code.
+#
+# Copyright (c) 2012, Intel Corporation. All rights reserved.<BR>
+# This program and the accompanying materials
+# are licensed and made available under the terms and conditions of the BSD License
+# which accompanies this distribution. The full text of the license may be found at
+# http://opensource.org/licenses/bsd-license.php
+#
+# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
+# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
+#
+
+for arg in $*; do
+ if [ "arg" = "-e" -o "arg" = "-d" ]; then
+ FLAG=--f86
+ break;
+ fi
+done
+
+LzmaCompress $* $FLAG
Property changes on: trunk/BaseTools/Bin/CYGWIN_NT-5.1-i686/LzmaF86Compress
___________________________________________________________________
Added: svn:executable
+ *
Added: trunk/BaseTools/BinWrappers/PosixLike/LzmaF86Compress
===================================================================
--- trunk/BaseTools/BinWrappers/PosixLike/LzmaF86Compress (rev 0)
+++ trunk/BaseTools/BinWrappers/PosixLike/LzmaF86Compress 2012-03-27 05:56:14 UTC (rev 2507)
@@ -0,0 +1,22 @@
+#!/usr/bin/env bash
+#
+# This script will exec LzmaCompress tool with --f86 option that enables converter for x86 code.
+#
+# Copyright (c) 2012, Intel Corporation. All rights reserved.<BR>
+# This program and the accompanying materials
+# are licensed and made available under the terms and conditions of the BSD License
+# which accompanies this distribution. The full text of the license may be found at
+# http://opensource.org/licenses/bsd-license.php
+#
+# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
+# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
+#
+
+for arg in $*; do
+ if [ "arg" = "-e" -o "arg" = "-d" ]; then
+ FLAG=--f86
+ break;
+ fi
+done
+
+LzmaCompress $* $FLAG
Property changes on: trunk/BaseTools/BinWrappers/PosixLike/LzmaF86Compress
___________________________________________________________________
Added: svn:executable
+ *
Modified: trunk/BaseTools/Conf/tools_def.template
===================================================================
--- trunk/BaseTools/Conf/tools_def.template 2012-03-23 07:00:57 UTC (rev 2506)
+++ trunk/BaseTools/Conf/tools_def.template 2012-03-27 05:56:14 UTC (rev 2507)
@@ -4370,13 +4370,12 @@
*_*_*_LZMA_GUID = EE4E5898-3914-4259-9D6E-DC7BD79403CF
##################
-# LzmaCompress tool definitions with converter for x86 code.
+# LzmaF86Compress tool definitions with converter for x86 code.
# It can improve the compression ratio if the input file is IA32 or X64 PE image.
# Notes: If X64 PE image is built based on GCC44, it may not get the better compression.
##################
-*_*_*_LZMAF86_PATH = LzmaCompress
+*_*_*_LZMAF86_PATH = LzmaF86Compress
*_*_*_LZMAF86_GUID = D42AE6BD-1352-4bfb-909A-CA72A6EAE889
-*_*_*_LZMAF86_FLAGS = --f86
##################
# TianoCompress tool definitions
Modified: trunk/BaseTools/Source/Python/GenFds/GenFdsGlobalVariable.py
===================================================================
--- trunk/BaseTools/Source/Python/GenFds/GenFdsGlobalVariable.py 2012-03-23 07:00:57 UTC (rev 2506)
+++ trunk/BaseTools/Source/Python/GenFds/GenFdsGlobalVariable.py 2012-03-27 05:56:14 UTC (rev 2507)
@@ -1,7 +1,7 @@
## @file
# Global variables for GenFds
#
-# Copyright (c) 2007 - 2010, Intel Corporation. All rights reserved.<BR>
+# Copyright (c) 2007 - 2012, Intel Corporation. All rights reserved.<BR>
#
# This program and the accompanying materials
# are licensed and made available under the terms and conditions of the BSD License
@@ -581,7 +581,7 @@
sys.stdout.write('\n')
try:
- PopenObject = subprocess.Popen(cmd, stdout=subprocess.PIPE, stderr= subprocess.PIPE)
+ PopenObject = subprocess.Popen(' '.join(cmd), stdout=subprocess.PIPE, stderr= subprocess.PIPE, shell=True)
except Exception, X:
EdkLogger.error("GenFds", COMMAND_FAILURE, ExtraData="%s: %s" % (str(X), cmd[0]))
(out, error) = PopenObject.communicate()
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <js...@us...> - 2012-04-05 08:22:10
|
Revision: 2517
http://edk2-buildtools.svn.sourceforge.net/edk2-buildtools/?rev=2517&view=rev
Author: jsu1
Date: 2012-04-05 08:22:02 +0000 (Thu, 05 Apr 2012)
Log Message:
-----------
Added VS2010 support.
Reviewed-by: Liming Gao <lim...@in...>
Signed-off-by: Jikui Su <jik...@in...>
Modified Paths:
--------------
trunk/BaseTools/Conf/tools_def.template
trunk/BaseTools/toolsetup.bat
Modified: trunk/BaseTools/Conf/tools_def.template
===================================================================
--- trunk/BaseTools/Conf/tools_def.template 2012-04-05 06:57:23 UTC (rev 2516)
+++ trunk/BaseTools/Conf/tools_def.template 2012-04-05 08:22:02 UTC (rev 2517)
@@ -37,6 +37,16 @@
DEFINE VS2008x86_BINX64 = DEF(VS2008x86_BIN)\x86_amd64
DEFINE VS2008x86_BIN64 = DEF(VS2008x86_BIN)\x86_ia64
+DEFINE VS2010_BIN = C:\Program Files\Microsoft Visual Studio 10.0\Vc\bin
+DEFINE VS2010_DLL = C:\Program Files\Microsoft Visual Studio 10.0\Common7\IDE;DEF(VS2010_BIN)
+DEFINE VS2010_BINX64 = DEF(VS2010_BIN)\x86_amd64
+DEFINE VS2010_BIN64 = DEF(VS2010_BIN)\x86_ia64
+
+DEFINE VS2010x86_BIN = C:\Program Files (x86)\Microsoft Visual Studio 10.0\Vc\bin
+DEFINE VS2010x86_DLL = C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE;DEF(VS2010x86_BIN)
+DEFINE VS2010x86_BINX64 = DEF(VS2010x86_BIN)\x86_amd64
+DEFINE VS2010x86_BIN64 = DEF(VS2010x86_BIN)\x86_ia64
+
DEFINE WINSDK_VERSION = v6.0A
DEFINE WINSDK_BIN = c:\Program Files\Microsoft SDKs\Windows\DEF(WINSDK_VERSION)\bin
DEFINE WINSDKx86_BIN = c:\Program Files (x86)\Microsoft SDKs\Windows\DEF(WINSDK_VERSION)\bin
@@ -225,6 +235,15 @@
# Required to build platforms or ACPI tables:
# Intel(r) ACPI Compiler (iasl.exe) v20101013 from
# http://www.acpica.org/downloads/previous_releases.php
+# VS2010 -win32- Requires:
+# Microsoft Visual Studio 2010 Premium Edition
+# Microsoft Windows Server 2003 Driver Development Kit (Microsoft WINDDK) version 3790.1830
+# Optional:
+# Required to build EBC drivers:
+# Intel(r) Compiler for Efi Byte Code (Intel(r) EBC Compiler)
+# Required to build platforms or ACPI tables:
+# Intel(r) ACPI Compiler (iasl.exe) v20101013 from
+# http://www.acpica.org/downloads/previous_releases.php
# DDK3790 -win32- Requires:
# Microsoft Windows Server 2003 Driver Development Kit (Microsoft WINDDK) version 3790.1830
# Optional:
@@ -333,6 +352,15 @@
# Required to build platforms or ACPI tables:
# Microsoft ASL ACPI Compiler (asl.exe) v4.0.0 from
# http://download.microsoft.com/download/2/c/1/2c16c7e0-96c1-40f5-81fc-3e4bf7b65496/microsoft_asl_compiler-v4-0-0.msi
+# VS2010xASL -win32- Requires:
+# Microsoft Visual Studio 2010 Premium Edition
+# Microsoft Windows Server 2003 Driver Development Kit (Microsoft WINDDK) version 3790.1830
+# Optional:
+# Required to build EBC drivers:
+# Intel(r) Compiler for Efi Byte Code (Intel(r) EBC Compiler)
+# Required to build platforms or ACPI tables:
+# Microsoft ASL ACPI Compiler (asl.exe) v4.0.0 from
+# http://download.microsoft.com/download/2/c/1/2c16c7e0-96c1-40f5-81fc-3e4bf7b65496/microsoft_asl_compiler-v4-0-0.msi
# DDK3790xASL -win32- Requires:
# Microsoft Windows Server 2003 Driver Development Kit (Microsoft WINDDK) version 3790.1830
# Optional:
@@ -390,6 +418,13 @@
# Required to build platforms or ACPI tables:
# Intel(r) ACPI Compiler (iasl.exe) v20101013 from
# http://www.acpica.org/downloads/previous_releases.php
+# VS2010x86 -win64- Requires:
+# Microsoft Visual Studio 2010 (x86) Premium Edition
+# Microsoft Windows Server 2003 Driver Development Kit (Microsoft WINDDK) version 3790.1830
+# Optional:
+# Required to build platforms or ACPI tables:
+# Intel(r) ACPI Compiler (iasl.exe) v20101013 from
+# http://www.acpica.org/downloads/previous_releases.php
# ICCx86 -win64- Requires:
# Intel C Compiler V9.1(x86)
# Dependencies:
@@ -430,6 +465,13 @@
# Required to build platforms or ACPI tables:
# Microsoft ASL ACPI Compiler (asl.exe) v4.0.0 from
# http://download.microsoft.com/download/2/c/1/2c16c7e0-96c1-40f5-81fc-3e4bf7b65496/microsoft_asl_compiler-v4-0-0.msi
+# VS2010x86xASL -win64- Requires:
+# Microsoft Visual Studio 2010 (x86) Premium Edition
+# Microsoft Windows Server 2003 Driver Development Kit(Microsoft WINDDK) version 3790.1830
+# Optional:
+# Required to build platforms or ACPI tables:
+# Microsoft ASL ACPI Compiler (asl.exe) v4.0.0 from
+# http://download.microsoft.com/download/2/c/1/2c16c7e0-96c1-40f5-81fc-3e4bf7b65496/microsoft_asl_compiler-v4-0-0.msi
# ICCx86xASL -win64- Requires:
# Intel C Compiler V9.1 (x86)
# Dependencies:
@@ -1728,6 +1770,513 @@
####################################################################################
#
+# Microsoft Visual Studio 2010
+#
+# VS2010 - Microsoft Visual Studio 2010 Premium Edition
+# ASL - Intel ACPI Source Language Compiler
+####################################################################################
+# VS2010 - Microsoft Visual Studio 2010 Premium Edition
+*_VS2010_*_*_FAMILY = MSFT
+
+*_VS2010_*_MAKE_PATH = DEF(VS2010_BIN)\nmake.exe
+*_VS2010_*_MAKE_FLAGS = /nologo
+*_VS2010_*_RC_PATH = DEF(WINSDK_BIN)\rc.exe
+
+*_VS2010_*_SLINK_FLAGS = /NOLOGO /LTCG
+*_VS2010_*_APP_FLAGS = /nologo /E /TC
+*_VS2010_*_PP_FLAGS = /nologo /E /TC /FIAutoGen.h
+*_VS2010_*_VFRPP_FLAGS = /nologo /E /TC /DVFRCOMPILE /FI$(MODULE_NAME)StrDefs.h
+
+*_VS2010_*_ASM16_PATH = DEF(VS2010_BIN)\ml.exe
+
+##################
+# ASL definitions
+##################
+*_VS2010_*_ASL_PATH = DEF(DEFAULT_WIN_ASL_BIN)
+*_VS2010_*_ASL_FLAGS = DEF(DEFAULT_WIN_ASL_FLAGS)
+*_VS2010_*_ASL_OUTFLAGS = DEF(DEFAULT_WIN_ASL_OUTFLAGS)
+*_VS2010_*_ASLCC_FLAGS = DEF(MSFT_ASLCC_FLAGS)
+*_VS2010_*_ASLPP_FLAGS = DEF(MSFT_ASLPP_FLAGS)
+*_VS2010_*_ASLDLINK_FLAGS = DEF(MSFT_ASLDLINK_FLAGS)
+
+##################
+# IA32 definitions
+##################
+*_VS2010_IA32_*_DLL = DEF(VS2010_DLL)
+
+*_VS2010_IA32_MAKE_PATH = DEF(VS2010_BIN)\nmake.exe
+*_VS2010_IA32_CC_PATH = DEF(VS2010_BIN)\cl.exe
+*_VS2010_IA32_VFRPP_PATH = DEF(VS2010_BIN)\cl.exe
+*_VS2010_IA32_SLINK_PATH = DEF(VS2010_BIN)\lib.exe
+*_VS2010_IA32_DLINK_PATH = DEF(VS2010_BIN)\link.exe
+*_VS2010_IA32_APP_PATH = DEF(VS2010_BIN)\cl.exe
+*_VS2010_IA32_PP_PATH = DEF(VS2010_BIN)\cl.exe
+*_VS2010_IA32_ASM_PATH = DEF(VS2010_BIN)\ml.exe
+*_VS2010_IA32_ASLCC_PATH = DEF(VS2010_BIN)\cl.exe
+*_VS2010_IA32_ASLPP_PATH = DEF(VS2010_BIN)\cl.exe
+*_VS2010_IA32_ASLDLINK_PATH = DEF(VS2010_BIN)\link.exe
+
+ *_VS2010_IA32_MAKE_FLAGS = /nologo
+ DEBUG_VS2010_IA32_CC_FLAGS = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1ib2 /GL /FIAutoGen.h /EHs-c- /GR- /GF /Gy /Zi /Gm
+RELEASE_VS2010_IA32_CC_FLAGS = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1ib2 /GL /FIAutoGen.h /EHs-c- /GR- /GF
+NOOPT_VS2010_IA32_CC_FLAGS = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /FIAutoGen.h /EHs-c- /GR- /GF /Gy /Zi /Gm /Od
+
+ DEBUG_VS2010_IA32_ASM_FLAGS = /nologo /c /WX /W3 /Cx /coff /Zd /Zi
+RELEASE_VS2010_IA32_ASM_FLAGS = /nologo /c /WX /W3 /Cx /coff /Zd
+NOOPT_VS2010_IA32_ASM_FLAGS = /nologo /c /WX /W3 /Cx /coff /Zd /Zi
+
+ DEBUG_VS2010_IA32_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:X86 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /DEBUG
+RELEASE_VS2010_IA32_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /IGNORE:4254 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:X86 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MERGE:.data=.text /MERGE:.rdata=.text
+NOOPT_VS2010_IA32_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:X86 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /DEBUG
+
+##################
+# X64 definitions
+##################
+*_VS2010_X64_*_DLL = DEF(VS2010_DLL)
+
+*_VS2010_X64_CC_PATH = DEF(VS2010_BINX64)\cl.exe
+*_VS2010_X64_PP_PATH = DEF(VS2010_BINX64)\cl.exe
+*_VS2010_X64_APP_PATH = DEF(VS2010_BINX64)\cl.exe
+*_VS2010_X64_VFRPP_PATH = DEF(VS2010_BINX64)\cl.exe
+*_VS2010_X64_ASM_PATH = DEF(VS2010_BINX64)\ml64.exe
+*_VS2010_X64_SLINK_PATH = DEF(VS2010_BINX64)\lib.exe
+*_VS2010_X64_DLINK_PATH = DEF(VS2010_BINX64)\link.exe
+*_VS2010_X64_ASLCC_PATH = DEF(VS2010_BINX64)\cl.exe
+*_VS2010_X64_ASLPP_PATH = DEF(VS2010_BINX64)\cl.exe
+*_VS2010_X64_ASLDLINK_PATH = DEF(VS2010_BINX64)\link.exe
+
+
+ DEBUG_VS2010_X64_CC_FLAGS = /nologo /c /WX /GS- /X /W4 /Gs32768 /D UNICODE /O1ib2s /GL /Gy /FIAutoGen.h /EHs-c- /GR- /GF /Zi /Gm
+RELEASE_VS2010_X64_CC_FLAGS = /nologo /c /WX /GS- /X /W4 /Gs32768 /D UNICODE /O1ib2s /GL /Gy /FIAutoGen.h /EHs-c- /GR- /GF
+NOOPT_VS2010_X64_CC_FLAGS = /nologo /c /WX /GS- /X /W4 /Gs32768 /D UNICODE /Gy /FIAutoGen.h /EHs-c- /GR- /GF /Zi /Gm /Od
+
+ DEBUG_VS2010_X64_ASM_FLAGS = /nologo /c /WX /W3 /Cx /Zd /Zi
+RELEASE_VS2010_X64_ASM_FLAGS = /nologo /c /WX /W3 /Cx /Zd
+NOOPT_VS2010_X64_ASM_FLAGS = /nologo /c /WX /W3 /Cx /Zd /Zi
+
+ DEBUG_VS2010_X64_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /Machine:X64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /DEBUG
+RELEASE_VS2010_X64_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /IGNORE:4254 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /Machine:X64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MERGE:.data=.text /MERGE:.rdata=.text
+NOOPT_VS2010_X64_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /Machine:X64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /DEBUG
+
+##################
+# IPF definitions
+##################
+*_VS2010_IPF_*_DLL = DEF(VS2010_DLL)
+
+*_VS2010_IPF_PP_PATH = DEF(VS2010_BIN64)\cl.exe
+*_VS2010_IPF_APP_PATH = DEF(VS2010_BIN64)\cl.exe
+*_VS2010_IPF_VFRPP_PATH = DEF(VS2010_BIN64)\cl.exe
+*_VS2010_IPF_CC_PATH = DEF(VS2010_BIN64)\cl.exe
+*_VS2010_IPF_ASM_PATH = DEF(VS2010_BIN64)\ias.exe
+*_VS2010_IPF_SLINK_PATH = DEF(VS2010_BIN64)\lib.exe
+*_VS2010_IPF_DLINK_PATH = DEF(VS2010_BIN64)\link.exe
+*_VS2010_IPF_ASLCC_PATH = DEF(VS2010_BIN64)\cl.exe
+*_VS2010_IPF_ASLPP_PATH = DEF(VS2010_BIN64)\cl.exe
+*_VS2010_IPF_ASLDLINK_PATH = DEF(VS2010_BIN64)\link.exe
+
+ DEBUG_VS2010_IPF_CC_FLAGS = /nologo /c /WX /GS- /X /W4 /EHs-c- /GR- /Gy /Os /GL /FIAutoGen.h /QIPF_fr32 /Zi
+RELEASE_VS2010_IPF_CC_FLAGS = /nologo /c /WX /GS- /X /W4 /EHs-c- /GR- /Gy /Os /GL /FIAutoGen.h /QIPF_fr32
+NOOPT_VS2010_IPF_CC_FLAGS = /nologo /c /WX /GS- /X /W4 /EHs-c- /GR- /Gy /FIAutoGen.h /QIPF_fr32 /Zi /Od
+
+ DEBUG_VS2010_IPF_ASM_FLAGS = -N us -X explicit -M ilp64 -N so -W4 -d debug
+RELEASE_VS2010_IPF_ASM_FLAGS = -N us -X explicit -M ilp64 -N so -W4
+NOOPT_VS2010_IPF_ASM_FLAGS = -N us -X explicit -M ilp64 -N so -W4 -d debug
+
+ DEBUG_VS2010_IPF_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /LTCG /DLL /OPT:REF,ICF /IGNORE:4001 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:IA64 /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MAP:$(DEBUG_DIR)/$(BASE_NAME).map /PDB:$(DEBUG_DIR)/$(BASE_NAME).pdb /DEBUG
+RELEASE_VS2010_IPF_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /LTCG /DLL /OPT:REF,ICF /IGNORE:4001 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:IA64 /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MAP:$(DEBUG_DIR)/$(BASE_NAME).map /PDB:$(DEBUG_DIR)/$(BASE_NAME).pdb
+NOOPT_VS2010_IPF_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /LTCG /DLL /OPT:REF,ICF /IGNORE:4001 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:IA64 /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MAP:$(DEBUG_DIR)/$(BASE_NAME).map /PDB:$(DEBUG_DIR)/$(BASE_NAME).pdb /DEBUG
+
+##################
+# EBC definitions
+##################
+*_VS2010_EBC_*_FAMILY = INTEL
+
+*_VS2010_EBC_MAKE_PATH = DEF(VS2010_BIN)\nmake.exe
+*_VS2010_EBC_PP_PATH = DEF(EBC_BIN)\iec.exe
+*_VS2010_EBC_VFRPP_PATH = DEF(EBC_BIN)\iec.exe
+*_VS2010_EBC_CC_PATH = DEF(EBC_BIN)\iec.exe
+*_VS2010_EBC_SLINK_PATH = DEF(EBC_BIN)\link.exe
+*_VS2010_EBC_DLINK_PATH = DEF(EBC_BIN)\link.exe
+
+*_VS2010_EBC_MAKE_FLAGS = /nologo
+*_VS2010_EBC_PP_FLAGS = /nologo /E /TC /FIAutoGen.h
+*_VS2010_EBC_CC_FLAGS = /nologo /c /WX /W3 /FIAutoGen.h /D$(MODULE_ENTRY_POINT)=$(ARCH_ENTRY_POINT)
+*_VS2010_EBC_VFRPP_FLAGS = /nologo /E /TC /DVFRCOMPILE /FI$(MODULE_NAME)StrDefs.h
+*_VS2010_EBC_SLINK_FLAGS = /lib /NOLOGO /MACHINE:EBC
+*_VS2010_EBC_DLINK_FLAGS = "C:\Program Files\Intel\EBC\Lib\EbcLib.lib" /NOLOGO /NODEFAULTLIB /MACHINE:EBC /OPT:REF /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /MAP /ALIGN:32 /DRIVER
+
+####################################################################################
+#
+# Microsoft Visual Studio 2010
+#
+# VS2010 - Microsoft Visual Studio 2010 Premium Edition
+# ASL - Microsoft ACPI Source Language Compiler (asl.exe)
+####################################################################################
+# VS2010xASL - Microsoft Visual Studio 2010 Premium Edition
+*_VS2010xASL_*_*_FAMILY = MSFT
+
+*_VS2010xASL_*_MAKE_PATH = DEF(VS2010_BIN)\nmake.exe
+*_VS2010xASL_*_MAKE_FLAG = /nologo
+*_VS2010xASL_*_RC_PATH = DEF(WINSDK_BIN)\rc.exe
+
+*_VS2010xASL_*_SLINK_FLAGS = /NOLOGO /LTCG
+*_VS2010xASL_*_APP_FLAGS = /nologo /E /TC
+*_VS2010xASL_*_PP_FLAGS = /nologo /E /TC /FIAutoGen.h
+*_VS2010xASL_*_VFRPP_FLAGS = /nologo /E /TC /DVFRCOMPILE /FI$(MODULE_NAME)StrDefs.h
+
+*_VS2010xASL_*_ASM16_PATH = DEF(VS2010_BIN)\ml.exe
+
+##################
+# ASL definitions
+##################
+*_VS2010xASL_*_ASL_PATH = DEF(WIN_ASL_BIN)
+*_VS2010xASL_*_ASL_FLAGS =
+*_VS2010xASL_*_ASL_OUTFLAGS = DEF(MS_ASL_OUTFLAGS)
+*_VS2010xASL_*_ASLCC_FLAGS = DEF(MSFT_ASLCC_FLAGS)
+*_VS2010xASL_*_ASLPP_FLAGS = DEF(MSFT_ASLPP_FLAGS)
+*_VS2010xASL_*_ASLDLINK_FLAGS = DEF(MSFT_ASLDLINK_FLAGS)
+
+##################
+# IA32 definitions
+##################
+*_VS2010xASL_IA32_*_DLL = DEF(VS2010_DLL)
+
+*_VS2010xASL_IA32_MAKE_PATH = DEF(VS2010_BIN)\nmake.exe
+*_VS2010xASL_IA32_CC_PATH = DEF(VS2010_BIN)\cl.exe
+*_VS2010xASL_IA32_VFRPP_PATH = DEF(VS2010_BIN)\cl.exe
+*_VS2010xASL_IA32_SLINK_PATH = DEF(VS2010_BIN)\lib.exe
+*_VS2010xASL_IA32_DLINK_PATH = DEF(VS2010_BIN)\link.exe
+*_VS2010xASL_IA32_APP_PATH = DEF(VS2010_BIN)\cl.exe
+*_VS2010xASL_IA32_PP_PATH = DEF(VS2010_BIN)\cl.exe
+*_VS2010xASL_IA32_ASM_PATH = DEF(VS2010_BIN)\ml.exe
+*_VS2010xASL_IA32_ASLCC_PATH = DEF(VS2010_BIN)\cl.exe
+*_VS2010xASL_IA32_ASLPP_PATH = DEF(VS2010_BIN)\cl.exe
+*_VS2010xASL_IA32_ASLDLINK_PATH = DEF(VS2010_BIN)\link.exe
+
+ *_VS2010xASL_IA32_MAKE_FLAGS = /nologo
+ DEBUG_VS2010xASL_IA32_CC_FLAGS = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1ib2 /GL /FIAutoGen.h /EHs-c- /GR- /GF /Gy /Zi /Gm
+RELEASE_VS2010xASL_IA32_CC_FLAGS = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1ib2 /GL /FIAutoGen.h /EHs-c- /GR- /GF
+NOOPT_VS2010xASL_IA32_CC_FLAGS = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /FIAutoGen.h /EHs-c- /GR- /GF /Gy /Zi /Gm /Od
+
+ DEBUG_VS2010xASL_IA32_ASM_FLAGS = /nologo /c /WX /W3 /Cx /coff /Zd /Zi
+RELEASE_VS2010xASL_IA32_ASM_FLAGS = /nologo /c /WX /W3 /Cx /coff /Zd
+NOOPT_VS2010xASL_IA32_ASM_FLAGS = /nologo /c /WX /W3 /Cx /coff /Zd /Zi
+
+ DEBUG_VS2010xASL_IA32_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:X86 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /DEBUG
+RELEASE_VS2010xASL_IA32_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /IGNORE:4254 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:X86 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MERGE:.data=.text /MERGE:.rdata=.text
+NOOPT_VS2010xASL_IA32_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:X86 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /DEBUG
+
+##################
+# X64 definitions
+##################
+*_VS2010xASL_X64_*_DLL = DEF(VS2010_DLL)
+
+*_VS2010xASL_X64_CC_PATH = DEF(VS2010_BINX64)\cl.exe
+*_VS2010xASL_X64_PP_PATH = DEF(VS2010_BINX64)\cl.exe
+*_VS2010xASL_X64_APP_PATH = DEF(VS2010_BINX64)\cl.exe
+*_VS2010xASL_X64_VFRPP_PATH = DEF(VS2010_BINX64)\cl.exe
+*_VS2010xASL_X64_ASM_PATH = DEF(VS2010_BINX64)\ml64.exe
+*_VS2010xASL_X64_SLINK_PATH = DEF(VS2010_BINX64)\lib.exe
+*_VS2010xASL_X64_DLINK_PATH = DEF(VS2010_BINX64)\link.exe
+*_VS2010xASL_X64_ASLCC_PATH = DEF(VS2010_BINX64)\cl.exe
+*_VS2010xASL_X64_ASLPP_PATH = DEF(VS2010_BINX64)\cl.exe
+*_VS2010xASL_X64_ASLDLINK_PATH = DEF(VS2010_BINX64)\link.exe
+
+
+ DEBUG_VS2010xASL_X64_CC_FLAGS = /nologo /c /WX /GS- /X /W4 /Gs32768 /D UNICODE /O1ib2s /GL /Gy /FIAutoGen.h /EHs-c- /GR- /GF /Zi /Gm
+RELEASE_VS2010xASL_X64_CC_FLAGS = /nologo /c /WX /GS- /X /W4 /Gs32768 /D UNICODE /O1ib2s /GL /Gy /FIAutoGen.h /EHs-c- /GR- /GF
+NOOPT_VS2010xASL_X64_CC_FLAGS = /nologo /c /WX /GS- /X /W4 /Gs32768 /D UNICODE /Gy /FIAutoGen.h /EHs-c- /GR- /GF /Zi /Gm /Od
+
+ DEBUG_VS2010xASL_X64_ASM_FLAGS = /nologo /c /WX /W3 /Cx /Zd /Zi
+RELEASE_VS2010xASL_X64_ASM_FLAGS = /nologo /c /WX /W3 /Cx /Zd
+NOOPT_VS2010xASL_X64_ASM_FLAGS = /nologo /c /WX /W3 /Cx /Zd /Zi
+
+ DEBUG_VS2010xASL_X64_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /Machine:X64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /DEBUG
+RELEASE_VS2010xASL_X64_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /IGNORE:4254 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /Machine:X64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MERGE:.data=.text /MERGE:.rdata=.text
+NOOPT_VS2010xASL_X64_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /Machine:X64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /DEBUG
+
+##################
+# IPF definitions
+##################
+*_VS2010xASL_IPF_*_DLL = DEF(VS2010_DLL)
+
+*_VS2010xASL_IPF_PP_PATH = DEF(VS2010_BIN64)\cl.exe
+*_VS2010xASL_IPF_APP_PATH = DEF(VS2010_BIN64)\cl.exe
+*_VS2010xASL_IPF_VFRPP_PATH = DEF(VS2010_BIN64)\cl.exe
+*_VS2010xASL_IPF_CC_PATH = DEF(VS2010_BIN64)\cl.exe
+*_VS2010xASL_IPF_ASM_PATH = DEF(VS2010_BIN64)\ias.exe
+*_VS2010xASL_IPF_SLINK_PATH = DEF(VS2010_BIN64)\lib.exe
+*_VS2010xASL_IPF_DLINK_PATH = DEF(VS2010_BIN64)\link.exe
+*_VS2010xASL_IPF_ASLCC_PATH = DEF(VS2010_BIN64)\cl.exe
+*_VS2010xASL_IPF_ASLPP_PATH = DEF(VS2010_BIN64)\cl.exe
+*_VS2010xASL_IPF_ASLDLINK_PATH = DEF(VS2010_BIN64)\link.exe
+
+ DEBUG_VS2010xASL_IPF_CC_FLAGS = /nologo /c /WX /GS- /X /W4 /EHs-c- /GR- /Gy /Os /GL /FIAutoGen.h /QIPF_fr32 /Zi
+RELEASE_VS2010xASL_IPF_CC_FLAGS = /nologo /c /WX /GS- /X /W4 /EHs-c- /GR- /Gy /Os /GL /FIAutoGen.h /QIPF_fr32
+NOOPT_VS2010xASL_IPF_CC_FLAGS = /nologo /c /WX /GS- /X /W4 /EHs-c- /GR- /Gy /FIAutoGen.h /QIPF_fr32 /Zi /Od
+
+ DEBUG_VS2010xASL_IPF_ASM_FLAGS = -N us -X explicit -M ilp64 -N so -W4 -d debug
+RELEASE_VS2010xASL_IPF_ASM_FLAGS = -N us -X explicit -M ilp64 -N so -W4
+NOOPT_VS2010xASL_IPF_ASM_FLAGS = -N us -X explicit -M ilp64 -N so -W4 -d debug
+
+ DEBUG_VS2010xASL_IPF_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /LTCG /DLL /OPT:REF,ICF /IGNORE:4001 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:IA64 /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MAP:$(DEBUG_DIR)/$(BASE_NAME).map /PDB:$(DEBUG_DIR)/$(BASE_NAME).pdb /DEBUG
+RELEASE_VS2010xASL_IPF_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /LTCG /DLL /OPT:REF,ICF /IGNORE:4001 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:IA64 /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MAP:$(DEBUG_DIR)/$(BASE_NAME).map /PDB:$(DEBUG_DIR)/$(BASE_NAME).pdb
+NOOPT_VS2010xASL_IPF_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /LTCG /DLL /OPT:REF,ICF /IGNORE:4001 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:IA64 /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MAP:$(DEBUG_DIR)/$(BASE_NAME).map /PDB:$(DEBUG_DIR)/$(BASE_NAME).pdb /DEBUG
+
+##################
+# EBC definitions
+##################
+*_VS2010xASL_EBC_*_FAMILY = INTEL
+
+*_VS2010xASL_EBC_MAKE_PATH = DEF(VS2010_BIN)\nmake.exe
+*_VS2010xASL_EBC_PP_PATH = DEF(EBC_BIN)\iec.exe
+*_VS2010xASL_EBC_VFRPP_PATH = DEF(EBC_BIN)\iec.exe
+*_VS2010xASL_EBC_CC_PATH = DEF(EBC_BIN)\iec.exe
+*_VS2010xASL_EBC_SLINK_PATH = DEF(EBC_BIN)\link.exe
+*_VS2010xASL_EBC_DLINK_PATH = DEF(EBC_BIN)\link.exe
+
+*_VS2010xASL_EBC_MAKE_FLAGS = /nologo
+*_VS2010xASL_EBC_PP_FLAGS = /nologo /E /TC /FIAutoGen.h
+*_VS2010xASL_EBC_CC_FLAGS = /nologo /c /WX /W3 /FIAutoGen.h /D$(MODULE_ENTRY_POINT)=$(ARCH_ENTRY_POINT)
+*_VS2010xASL_EBC_VFRPP_FLAGS = /nologo /E /TC /DVFRCOMPILE /FI$(MODULE_NAME)StrDefs.h
+*_VS2010xASL_EBC_SLINK_FLAGS = /lib /NOLOGO /MACHINE:EBC
+*_VS2010xASL_EBC_DLINK_FLAGS = "C:\Program Files\Intel\EBC\Lib\EbcLib.lib" /NOLOGO /NODEFAULTLIB /MACHINE:EBC /OPT:REF /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /MAP /ALIGN:32 /DRIVER
+
+
+####################################################################################
+# VS2010x86 - Microsoft Visual Studio 2010 (x86) with Intel ASL
+# ASL - Intel ACPI Source Language Compiler (iasl.exe)
+####################################################################################
+# VS2010x86 - Microsoft Visual Studio 2010 (x86) ALL Edition with Intel ASL
+*_VS2010x86_*_*_FAMILY = MSFT
+
+*_VS2010x86_*_MAKE_PATH = DEF(VS2010x86_BIN)\nmake.exe
+*_VS2010x86_*_MAKE_FLAG = /nologo
+*_VS2010x86_*_RC_PATH = DEF(WINSDK_BIN)\rc.exe
+
+*_VS2010x86_*_MAKE_FLAGS = /nologo
+*_VS2010x86_*_SLINK_FLAGS = /NOLOGO /LTCG
+*_VS2010x86_*_APP_FLAGS = /nologo /E /TC
+*_VS2010x86_*_PP_FLAGS = /nologo /E /TC /FIAutoGen.h
+*_VS2010x86_*_VFRPP_FLAGS = /nologo /E /TC /DVFRCOMPILE /FI$(MODULE_NAME)StrDefs.h
+
+*_VS2010x86_*_ASM16_PATH = DEF(VS2010x86_BIN)\ml.exe
+
+##################
+# ASL definitions
+##################
+*_VS2010x86_*_ASL_PATH = DEF(WIN_IASL_BIN)
+*_VS2010x86_*_ASL_FLAGS = DEF(DEFAULT_WIN_ASL_FLAGS)
+*_VS2010x86_*_ASL_OUTFLAGS = DEF(DEFAULT_WIN_ASL_OUTFLAGS)
+*_VS2010x86_*_ASLCC_FLAGS = DEF(MSFT_ASLCC_FLAGS)
+*_VS2010x86_*_ASLPP_FLAGS = DEF(MSFT_ASLPP_FLAGS)
+*_VS2010x86_*_ASLDLINK_FLAGS = DEF(MSFT_ASLDLINK_FLAGS)
+
+##################
+# IA32 definitions
+##################
+*_VS2010x86_IA32_*_DLL = DEF(VS2010x86_DLL)
+
+*_VS2010x86_IA32_MAKE_PATH = DEF(VS2010x86_BIN)\nmake.exe
+*_VS2010x86_IA32_CC_PATH = DEF(VS2010x86_BIN)\cl.exe
+*_VS2010x86_IA32_VFRPP_PATH = DEF(VS2010x86_BIN)\cl.exe
+*_VS2010x86_IA32_ASLCC_PATH = DEF(VS2010x86_BIN)\cl.exe
+*_VS2010x86_IA32_ASLPP_PATH = DEF(VS2010x86_BIN)\cl.exe
+*_VS2010x86_IA32_SLINK_PATH = DEF(VS2010x86_BIN)\lib.exe
+*_VS2010x86_IA32_DLINK_PATH = DEF(VS2010x86_BIN)\link.exe
+*_VS2010x86_IA32_ASLDLINK_PATH= DEF(VS2010x86_BIN)\link.exe
+*_VS2010x86_IA32_APP_PATH = DEF(VS2010x86_BIN)\cl.exe
+*_VS2010x86_IA32_PP_PATH = DEF(VS2010x86_BIN)\cl.exe
+*_VS2010x86_IA32_ASM_PATH = DEF(VS2010x86_BIN)\ml.exe
+
+ *_VS2010x86_IA32_MAKE_FLAGS = /nologo
+ DEBUG_VS2010x86_IA32_CC_FLAGS = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1ib2 /GL /FIAutoGen.h /EHs-c- /GR- /GF /Gy /Zi /Gm
+RELEASE_VS2010x86_IA32_CC_FLAGS = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1ib2 /GL /FIAutoGen.h /EHs-c- /GR- /GF
+NOOPT_VS2010x86_IA32_CC_FLAGS = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /FIAutoGen.h /EHs-c- /GR- /GF /Gy /Zi /Gm /Od
+
+ DEBUG_VS2010x86_IA32_ASM_FLAGS = /nologo /c /WX /W3 /Cx /coff /Zd /Zi
+RELEASE_VS2010x86_IA32_ASM_FLAGS = /nologo /c /WX /W3 /Cx /coff /Zd
+NOOPT_VS2010x86_IA32_ASM_FLAGS = /nologo /c /WX /W3 /Cx /coff /Zd /Zi
+
+ DEBUG_VS2010x86_IA32_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:X86 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /DEBUG
+RELEASE_VS2010x86_IA32_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /IGNORE:4254 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:X86 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MERGE:.data=.text /MERGE:.rdata=.text
+NOOPT_VS2010x86_IA32_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:X86 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /DEBUG
+
+##################
+# X64 definitions
+##################
+*_VS2010x86_X64_*_DLL = DEF(VS2010x86_DLL)
+
+*_VS2010x86_X64_CC_PATH = DEF(VS2010x86_BINX64)\cl.exe
+*_VS2010x86_X64_PP_PATH = DEF(VS2010x86_BINX64)\cl.exe
+*_VS2010x86_X64_APP_PATH = DEF(VS2010x86_BINX64)\cl.exe
+*_VS2010x86_X64_VFRPP_PATH = DEF(VS2010x86_BINX64)\cl.exe
+*_VS2010x86_X64_ASLCC_PATH = DEF(VS2010x86_BINX64)\cl.exe
+*_VS2010x86_X64_ASLPP_PATH = DEF(VS2010x86_BINX64)\cl.exe
+*_VS2010x86_X64_ASM_PATH = DEF(VS2010x86_BINX64)\ml64.exe
+*_VS2010x86_X64_SLINK_PATH = DEF(VS2010x86_BINX64)\lib.exe
+*_VS2010x86_X64_DLINK_PATH = DEF(VS2010x86_BINX64)\link.exe
+*_VS2010x86_X64_ASLDLINK_PATH = DEF(VS2010x86_BINX64)\link.exe
+
+ DEBUG_VS2010x86_X64_CC_FLAGS = /nologo /c /WX /GS- /X /W4 /Gs32768 /D UNICODE /O1ib2s /GL /Gy /FIAutoGen.h /EHs-c- /GR- /GF /Zi /Gm
+RELEASE_VS2010x86_X64_CC_FLAGS = /nologo /c /WX /GS- /X /W4 /Gs32768 /D UNICODE /O1ib2s /GL /Gy /FIAutoGen.h /EHs-c- /GR- /GF
+NOOPT_VS2010x86_X64_CC_FLAGS = /nologo /c /WX /GS- /X /W4 /Gs32768 /D UNICODE /Gy /FIAutoGen.h /EHs-c- /GR- /GF /Zi /Gm /Od
+
+ DEBUG_VS2010x86_X64_ASM_FLAGS = /nologo /c /WX /W3 /Cx /Zd /Zi
+RELEASE_VS2010x86_X64_ASM_FLAGS = /nologo /c /WX /W3 /Cx /Zd
+NOOPT_VS2010x86_X64_ASM_FLAGS = /nologo /c /WX /W3 /Cx /Zd /Zi
+
+ DEBUG_VS2010x86_X64_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /Machine:X64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /DEBUG
+RELEASE_VS2010x86_X64_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /IGNORE:4254 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /Machine:X64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MERGE:.data=.text /MERGE:.rdata=.text
+NOOPT_VS2010x86_X64_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /Machine:X64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /DEBUG
+
+
+##################
+# IPF definitions
+##################
+*_VS2010x86_IPF_*_DLL = DEF(VS2010x86_DLL)
+
+*_VS2010x86_IPF_PP_PATH = DEF(VS2010x86_BIN64)\cl.exe
+*_VS2010x86_IPF_APP_PATH = DEF(VS2010x86_BIN64)\cl.exe
+*_VS2010x86_IPF_VFRPP_PATH = DEF(VS2010x86_BIN64)\cl.exe
+*_VS2010x86_IPF_ASLCC_PATH = DEF(VS2010x86_BIN64)\cl.exe
+*_VS2010x86_IPF_ASLPP_PATH ...
[truncated message content] |
|
From: <xf...@us...> - 2012-05-28 02:56:20
|
Revision: 2527
http://edk2-buildtools.svn.sourceforge.net/edk2-buildtools/?rev=2527&view=rev
Author: xfzyr
Date: 2012-05-28 02:56:13 +0000 (Mon, 28 May 2012)
Log Message:
-----------
Corrected the error message when encounterd invalid PCD type and ReadMe file.
Signed-off-by: Yurui Zeng <yur...@in...>
Reviewed-by: Jikui, Su <jik...@in...>
Modified Paths:
--------------
trunk/BaseTools/ReadMe.txt
trunk/BaseTools/Source/Python/Common/DataType.py
trunk/BaseTools/Source/Python/Common/Misc.py
Modified: trunk/BaseTools/ReadMe.txt
===================================================================
--- trunk/BaseTools/ReadMe.txt 2012-05-28 02:36:13 UTC (rev 2526)
+++ trunk/BaseTools/ReadMe.txt 2012-05-28 02:56:13 UTC (rev 2527)
@@ -33,7 +33,7 @@
On Ubuntu, the following command should install all the necessary build
packages to build all the C BaseTools:
- sudo apt-get install build-essentials uuid-dev
+ sudo apt-get install build-essential uuid-dev
=== Python sqlite3 module ===
On Windows, the cx_freeze will not copy the sqlite3.dll to the frozen
Modified: trunk/BaseTools/Source/Python/Common/DataType.py
===================================================================
--- trunk/BaseTools/Source/Python/Common/DataType.py 2012-05-28 02:36:13 UTC (rev 2526)
+++ trunk/BaseTools/Source/Python/Common/DataType.py 2012-05-28 02:56:13 UTC (rev 2527)
@@ -18,6 +18,7 @@
TAB_COMMENT_EDK_END = '*/'
TAB_COMMENT_EDK_SPLIT = '//'
TAB_COMMENT_SPLIT = '#'
+TAB_SPECIAL_COMMENT = '##'
TAB_EQUAL_SPLIT = '='
TAB_VALUE_SPLIT = '|'
TAB_COMMA_SPLIT = ','
@@ -30,6 +31,10 @@
TAB_SLASH = '\\'
TAB_BACK_SLASH = '/'
TAB_LINE_BREAK = '\n'
+TAB_UINT8 = 'UINT8'
+TAB_UINT16 = 'UINT16'
+TAB_UINT32 = 'UINT32'
+TAB_UINT64 = 'UINT64'
TAB_EDK_SOURCE = '$(EDK_SOURCE)'
TAB_EFI_SOURCE = '$(EFI_SOURCE)'
@@ -328,6 +333,25 @@
TAB_INF_PATCH_PCD = 'PatchPcd'
TAB_INF_PCD = 'Pcd'
TAB_INF_PCD_EX = 'PcdEx'
+TAB_INF_USAGE_PRO = 'PRODUCES'
+TAB_INF_USAGE_SOME_PRO = 'SOMETIMES_PRODUCES'
+TAB_INF_USAGE_CON = 'CONSUMES'
+TAB_INF_USAGE_SOME_CON = 'SOMETIMES_CONSUMES'
+TAB_INF_USAGE_NOTIFY = 'NOTIFY'
+TAB_INF_USAGE_TO_START = 'TO_START'
+TAB_INF_USAGE_BY_START = 'BY_START'
+TAB_INF_GUIDTYPE_EVENT = 'Event'
+TAB_INF_GUIDTYPE_FILE = 'File'
+TAB_INF_GUIDTYPE_FV = 'FV'
+TAB_INF_GUIDTYPE_GUID = 'GUID'
+TAB_INF_GUIDTYPE_HII = 'HII'
+TAB_INF_GUIDTYPE_HOB = 'HOB'
+TAB_INF_GUIDTYPE_ST = 'SystemTable'
+TAB_INF_GUIDTYPE_TSG = 'TokenSpaceGuid'
+TAB_INF_GUIDTYPE_VAR = 'Variable'
+TAB_INF_GUIDTYPE_PROTOCOL = 'PROTOCOL'
+TAB_INF_GUIDTYPE_PPI = 'PPI'
+TAB_INF_GUIDTYPE_UNDEFINED = 'UNDEFINED'
#
# Dec Definitions
Modified: trunk/BaseTools/Source/Python/Common/Misc.py
===================================================================
--- trunk/BaseTools/Source/Python/Common/Misc.py 2012-05-28 02:36:13 UTC (rev 2526)
+++ trunk/BaseTools/Source/Python/Common/Misc.py 2012-05-28 02:56:13 UTC (rev 2527)
@@ -1278,13 +1278,14 @@
if Value not in ['TRUE', 'True', 'true', '0x1', '0x01', '1', 'FALSE', 'False', 'false', '0x0', '0x00', '0']:
return False, "Invalid value [%s] of type [%s]; must be one of TRUE, True, true, 0x1, 0x01, 1"\
", FALSE, False, false, 0x0, 0x00, 0" % (Value, Type)
- elif type(Value) == type(""):
+ elif Type in [TAB_UINT8, TAB_UINT16, TAB_UINT32, TAB_UINT64]:
try:
Value = long(Value, 0)
except:
return False, "Invalid value [%s] of type [%s];"\
- " must be a hexadecimal, decimal or octal in C language format."\
- % (Value, Type)
+ " must be a hexadecimal, decimal or octal in C language format." % (Value, Type)
+ else:
+ return False, "Invalid type [%s]; must be one of VOID*, BOOLEAN, UINT8, UINT16, UINT32, UINT64." % (Type)
return True, ""
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <ni...@us...> - 2012-08-02 10:05:42
|
Revision: 2549
http://edk2-buildtools.svn.sourceforge.net/edk2-buildtools/?rev=2549&view=rev
Author: niruiyu
Date: 2012-08-02 10:05:32 +0000 (Thu, 02 Aug 2012)
Log Message:
-----------
Keep the .eh_frame section in ELF and use the full ELF as the debug symbol.
Signed-off-by: Ruiyu Ni<rui...@in...>
Reviewed-by: Erik Bjorge<eri...@in...>
Modified Paths:
--------------
trunk/BaseTools/Conf/build_rule.template
trunk/BaseTools/Scripts/gcc4.4-ld-script
Modified: trunk/BaseTools/Conf/build_rule.template
===================================================================
--- trunk/BaseTools/Conf/build_rule.template 2012-07-26 07:04:18 UTC (rev 2548)
+++ trunk/BaseTools/Conf/build_rule.template 2012-08-02 10:05:32 UTC (rev 2549)
@@ -301,8 +301,8 @@
-$(CP) $(DEBUG_DIR)(+)*.map $(OUTPUT_DIR)
<Command.GCC>
- $(OBJCOPY) --only-keep-debug ${src} $(DEBUG_DIR)(+)$(MODULE_NAME).debug
- $(OBJCOPY) --strip-unneeded ${src}
+ $(CP) ${src} $(DEBUG_DIR)(+)$(MODULE_NAME).debug
+ $(OBJCOPY) --strip-unneeded -R .eh_frame ${src}
#
#The below 2 lines are only needed for UNIXGCC tool chain, which genereates PE image directly
Modified: trunk/BaseTools/Scripts/gcc4.4-ld-script
===================================================================
--- trunk/BaseTools/Scripts/gcc4.4-ld-script 2012-07-26 07:04:18 UTC (rev 2548)
+++ trunk/BaseTools/Scripts/gcc4.4-ld-script 2012-08-02 10:05:32 UTC (rev 2549)
@@ -18,6 +18,10 @@
)
. = ALIGN(0x20);
}
+ .eh_frame ALIGN(0x20) :
+ {
+ KEEP (*(.eh_frame))
+ }
.got ALIGN(0x20) :
{
*(.got .got.*)
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <jlj...@us...> - 2013-02-14 23:47:10
|
Revision: 2572
http://edk2-buildtools.svn.sourceforge.net/edk2-buildtools/?rev=2572&view=rev
Author: jljusten
Date: 2013-02-14 23:46:59 +0000 (Thu, 14 Feb 2013)
Log Message:
-----------
BaseTools: Add Contributions.txt and License.txt files
Contributions.txt documents the contribution process for all
tianocore projects. The conents of Contributions.txt should
match in all cases.
License.txt is a per-project document showing the license terms
used by that project.
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Jordan Justen <jor...@in...>
Added Paths:
-----------
trunk/BaseTools/Contributions.txt
trunk/BaseTools/License.txt
Added: trunk/BaseTools/Contributions.txt
===================================================================
--- trunk/BaseTools/Contributions.txt (rev 0)
+++ trunk/BaseTools/Contributions.txt 2013-02-14 23:46:59 UTC (rev 2572)
@@ -0,0 +1,188 @@
+
+======================
+= Code Contributions =
+======================
+
+To make a contribution to a TianoCore project, follow these steps.
+1. Create a change description in the format specified below to
+ use in the source control commit log.
+2. Your commit message must include your "Signed-off-by" signature,
+ and "Contributed-under" message.
+3. Your "Contributed-under" message explicitly states that the
+ contribution is made under the terms of the specified
+ contribution agreement. Your "Contributed-under" message
+ must include the name of contribution agreement and version.
+ For example: Contributed-under: TianoCore Contribution Agreement 1.0
+ The "TianoCore Contribution Agreement" is included below in
+ this document.
+4. Submit your code to the TianoCore project using the process
+ that the project documents on its web page. If the process is
+ not documented, then submit the code on development email list
+ for the project.
+
+=======================================
+= Change Description / Commit Message =
+=======================================
+
+Your change description should use the standard format for a
+commit message, and must include your "Signed-off-by" signature
+and the "Contributed-under" message.
+
+== Sample Change Description / Commit Message =
+
+=== Definitions for sample change description ===
+
+* "CodeModule" is a short idenfier for the affected code. For
+ example MdePkg, or MdeModulePkg UsbBusDxe.
+* "Brief-single-line-summary" is a short summary of the change.
+* The entire first line should be less than ~70 characters.
+* "Full-commit-message" a verbose multiple line comment describing
+ the change. Each line should be less than ~70 characters.
+* "Contributed-under" explicitely states that the contribution is
+ made under the terms of the contribtion agreement. This
+ agreement is included below in this document.
+* "Signed-off-by" is the contributor's signature identifying them
+ by their real/legal name and their email address.
+
+=== Start of sample change description / commit message ===
+CodeModule: Brief-single-line-summary
+
+Full-commit-message
+
+Contributed-under: TianoCore Contribution Agreement 1.0
+Signed-off-by: Contributor Name <con...@em...>
+=== End of sample change description / commit message ===
+
+========================================
+= TianoCore Contribution Agreement 1.0 =
+========================================
+
+INTEL CORPORATION ("INTEL") MAKES AVAILABLE SOFTWARE, DOCUMENTATION,
+INFORMATION AND/OR OTHER MATERIALS FOR USE IN THE TIANOCORE OPEN SOURCE
+PROJECT (COLLECTIVELY "CONTENT"). USE OF THE CONTENT IS GOVERNED BY THE
+TERMS AND CONDITIONS OF THIS AGREEMENT BETWEEN YOU AND INTEL AND/OR THE
+TERMS AND CONDITIONS OF LICENSE AGREEMENTS OR NOTICES INDICATED OR
+REFERENCED BELOW. BY USING THE CONTENT, YOU AGREE THAT YOUR USE OF THE
+CONTENT IS GOVERNED BY THIS AGREEMENT AND/OR THE TERMS AND CONDITIONS
+OF ANY APPLICABLE LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED
+BELOW. IF YOU DO NOT AGREE TO THE TERMS AND CONDITIONS OF THIS
+AGREEMENT AND THE TERMS AND CONDITIONS OF ANY APPLICABLE LICENSE
+AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW, THEN YOU MAY NOT
+USE THE CONTENT.
+
+Unless otherwise indicated, all Content made available on the TianoCore
+site is provided to you under the terms and conditions of the BSD
+License ("BSD"). A copy of the BSD License is available at
+http://opensource.org/licenses/bsd-license.php
+or when applicable, in the associated License.txt file.
+
+Certain other content may be made available under other licenses as
+indicated in or with such Content. (For example, in a License.txt file.)
+
+You accept and agree to the following terms and conditions for Your
+present and future Contributions submitted to TianoCore site. Except
+for the license granted to Intel hereunder, You reserve all right,
+title, and interest in and to Your Contributions.
+
+== SECTION 1: Definitions ==
+* "You" or "Contributor" shall mean the copyright owner or legal
+ entity authorized by the copyright owner that is making a
+ Contribution hereunder. All other entities that control, are
+ controlled by, or are under common control with that entity are
+ considered to be a single Contributor. For the purposes of this
+ definition, "control" means (i) the power, direct or indirect, to
+ cause the direction or management of such entity, whether by
+ contract or otherwise, or (ii) ownership of fifty percent (50%)
+ or more of the outstanding shares, or (iii) beneficial ownership
+ of such entity.
+* "Contribution" shall mean any original work of authorship,
+ including any modifications or additions to an existing work,
+ that is intentionally submitted by You to the TinaoCore site for
+ inclusion in, or documentation of, any of the Content. For the
+ purposes of this definition, "submitted" means any form of
+ electronic, verbal, or written communication sent to the
+ TianoCore site or its representatives, including but not limited
+ to communication on electronic mailing lists, source code
+ control systems, and issue tracking systems that are managed by,
+ or on behalf of, the TianoCore site for the purpose of
+ discussing and improving the Content, but excluding
+ communication that is conspicuously marked or otherwise
+ designated in writing by You as "Not a Contribution."
+
+== SECTION 2: License for Contributions ==
+* Contributor hereby agrees that redistribution and use of the
+ Contribution in source and binary forms, with or without
+ modification, are permitted provided that the following
+ conditions are met:
+** Redistributions of source code must retain the Contributor's
+ copyright notice, this list of conditions and the following
+ disclaimer.
+** Redistributions in binary form must reproduce the Contributor's
+ copyright notice, this list of conditions and the following
+ disclaimer in the documentation and/or other materials provided
+ with the distribution.
+* Disclaimer. None of the names of Contributor, Intel, or the names
+ of their respective contributors may be used to endorse or
+ promote products derived from this software without specific
+ prior written permission.
+* Contributor grants a license (with the right to sublicense) under
+ claims of Contributor's patents that Contributor can license that
+ are infringed by the Contribution (as delivered by Contributor) to
+ make, use, distribute, sell, offer for sale, and import the
+ Contribution and derivative works thereof solely to the minimum
+ extent necessary for licensee to exercise the granted copyright
+ license; this patent license applies solely to those portions of
+ the Contribution that are unmodified. No hardware per se is
+ licensed.
+* EXCEPT AS EXPRESSLY SET FORTH IN SECTION 3 BELOW, THE
+ CONTRIBUTION IS PROVIDED BY THE CONTRIBUTOR "AS IS" AND ANY
+ EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
+ PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+ CONTRIBUTOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+ OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THE
+ CONTRIBUTION, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
+ DAMAGE.
+
+== SECTION 3: Representations ==
+* You represent that You are legally entitled to grant the above
+ license. If your employer(s) has rights to intellectual property
+ that You create that includes Your Contributions, You represent
+ that You have received permission to make Contributions on behalf
+ of that employer, that Your employer has waived such rights for
+ Your Contributions.
+* You represent that each of Your Contributions is Your original
+ creation (see Section 4 for submissions on behalf of others).
+ You represent that Your Contribution submissions include complete
+ details of any third-party license or other restriction
+ (including, but not limited to, related patents and trademarks)
+ of which You are personally aware and which are associated with
+ any part of Your Contributions.
+
+== SECTION 4: Third Party Contributions ==
+* Should You wish to submit work that is not Your original creation,
+ You may submit it to TianoCore site separately from any
+ Contribution, identifying the complete details of its source
+ and of any license or other restriction (including, but not
+ limited to, related patents, trademarks, and license agreements)
+ of which You are personally aware, and conspicuously marking the
+ work as "Submitted on behalf of a third-party: [named here]".
+
+== SECTION 5: Miscellaneous ==
+* Applicable Laws. Any claims arising under or relating to this
+ Agreement shall be governed by the internal substantive laws of
+ the State of Delaware or federal courts located in Delaware,
+ without regard to principles of conflict of laws.
+* Language. This Agreement is in the English language only, which
+ language shall be controlling in all respects, and all versions
+ of this Agreement in any other language shall be for accommodation
+ only and shall not be binding. All communications and notices made
+ or given pursuant to this Agreement, and all documentation and
+ support to be provided, unless otherwise noted, shall be in the
+ English language.
+
Added: trunk/BaseTools/License.txt
===================================================================
--- trunk/BaseTools/License.txt (rev 0)
+++ trunk/BaseTools/License.txt 2013-02-14 23:46:59 UTC (rev 2572)
@@ -0,0 +1,25 @@
+Copyright (c) 2013, Intel Corporation. All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions
+are met:
+
+* Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+* Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in
+ the documentation and/or other materials provided with the
+ distribution.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
+ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGE.
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <lg...@us...> - 2013-07-19 06:39:16
|
Revision: 2589
http://sourceforge.net/p/edk2-buildtools/code/2589
Author: lgao4
Date: 2013-07-19 06:39:08 +0000 (Fri, 19 Jul 2013)
Log Message:
-----------
Removing Windows from comment and adding GNU/Linux
in GNUMakefile which is only used for Linux.
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Parmeshwr Prasad <par...@de...>
Reviewed-by: Liming Gao <lim...@in...>
Modified Paths:
--------------
trunk/BaseTools/Source/C/BootSectImage/GNUmakefile
trunk/BaseTools/Source/C/Common/GNUmakefile
trunk/BaseTools/Source/C/EfiLdrImage/GNUmakefile
trunk/BaseTools/Source/C/EfiRom/GNUmakefile
trunk/BaseTools/Source/C/GNUmakefile
trunk/BaseTools/Source/C/GenCrc32/GNUmakefile
trunk/BaseTools/Source/C/GenFfs/GNUmakefile
trunk/BaseTools/Source/C/GenFv/GNUmakefile
trunk/BaseTools/Source/C/GenFw/GNUmakefile
trunk/BaseTools/Source/C/GenPage/GNUmakefile
trunk/BaseTools/Source/C/GenSec/GNUmakefile
trunk/BaseTools/Source/C/GenVtf/GNUmakefile
trunk/BaseTools/Source/C/GnuGenBootSector/GNUmakefile
trunk/BaseTools/Source/C/LzmaCompress/GNUmakefile
trunk/BaseTools/Source/C/Split/GNUmakefile
trunk/BaseTools/Source/C/TianoCompress/GNUmakefile
trunk/BaseTools/Source/C/VfrCompile/GNUmakefile
trunk/BaseTools/Source/C/VolInfo/GNUmakefile
trunk/BaseTools/Source/Python/GNUmakefile
trunk/BaseTools/Tests/GNUmakefile
Modified: trunk/BaseTools/Source/C/BootSectImage/GNUmakefile
===================================================================
--- trunk/BaseTools/Source/C/BootSectImage/GNUmakefile 2013-07-18 02:17:01 UTC (rev 2588)
+++ trunk/BaseTools/Source/C/BootSectImage/GNUmakefile 2013-07-19 06:39:08 UTC (rev 2589)
@@ -1,5 +1,5 @@
## @file
-# Windows makefile for 'BootSectImage' module build.
+# GNU/Linux makefile for 'BootSectImage' module build.
#
# Copyright (c) 2009 - 2010, Intel Corporation. All rights reserved.<BR>
# This program and the accompanying materials
Modified: trunk/BaseTools/Source/C/Common/GNUmakefile
===================================================================
--- trunk/BaseTools/Source/C/Common/GNUmakefile 2013-07-18 02:17:01 UTC (rev 2588)
+++ trunk/BaseTools/Source/C/Common/GNUmakefile 2013-07-19 06:39:08 UTC (rev 2589)
@@ -1,5 +1,5 @@
## @file
-# Windows makefile for 'Common' module build.
+# GNU/Linux makefile for 'Common' module build.
#
# Copyright (c) 2007 - 2010, Intel Corporation. All rights reserved.<BR>
# This program and the accompanying materials
Modified: trunk/BaseTools/Source/C/EfiLdrImage/GNUmakefile
===================================================================
--- trunk/BaseTools/Source/C/EfiLdrImage/GNUmakefile 2013-07-18 02:17:01 UTC (rev 2588)
+++ trunk/BaseTools/Source/C/EfiLdrImage/GNUmakefile 2013-07-19 06:39:08 UTC (rev 2589)
@@ -1,5 +1,5 @@
## @file
-# Windows makefile for 'EfiLdrImage' module build.
+# GNU/Linux makefile for 'EfiLdrImage' module build.
#
# Copyright (c) 2007 - 2010, Intel Corporation. All rights reserved.<BR>
# This program and the accompanying materials
Modified: trunk/BaseTools/Source/C/EfiRom/GNUmakefile
===================================================================
--- trunk/BaseTools/Source/C/EfiRom/GNUmakefile 2013-07-18 02:17:01 UTC (rev 2588)
+++ trunk/BaseTools/Source/C/EfiRom/GNUmakefile 2013-07-19 06:39:08 UTC (rev 2589)
@@ -1,5 +1,5 @@
## @file
-# Windows makefile for 'EfiRom' module build.
+# GNU/Linux makefile for 'EfiRom' module build.
#
# Copyright (c) 2007 - 2010, Intel Corporation. All rights reserved.<BR>
# This program and the accompanying materials
Modified: trunk/BaseTools/Source/C/GNUmakefile
===================================================================
--- trunk/BaseTools/Source/C/GNUmakefile 2013-07-18 02:17:01 UTC (rev 2588)
+++ trunk/BaseTools/Source/C/GNUmakefile 2013-07-19 06:39:08 UTC (rev 2589)
@@ -1,5 +1,5 @@
## @file
-# GNU Make makefile for C tools build.
+# GNU/Linux makefile for C tools build.
#
# Copyright (c) 2007 - 2012, Intel Corporation. All rights reserved.<BR>
#
Modified: trunk/BaseTools/Source/C/GenCrc32/GNUmakefile
===================================================================
--- trunk/BaseTools/Source/C/GenCrc32/GNUmakefile 2013-07-18 02:17:01 UTC (rev 2588)
+++ trunk/BaseTools/Source/C/GenCrc32/GNUmakefile 2013-07-19 06:39:08 UTC (rev 2589)
@@ -1,5 +1,5 @@
## @file
-# Windows makefile for 'GenCrc32' module build.
+# GNU/Linux makefile for 'GenCrc32' module build.
#
# Copyright (c) 2007 - 2010, Intel Corporation. All rights reserved.<BR>
# This program and the accompanying materials
Modified: trunk/BaseTools/Source/C/GenFfs/GNUmakefile
===================================================================
--- trunk/BaseTools/Source/C/GenFfs/GNUmakefile 2013-07-18 02:17:01 UTC (rev 2588)
+++ trunk/BaseTools/Source/C/GenFfs/GNUmakefile 2013-07-19 06:39:08 UTC (rev 2589)
@@ -1,5 +1,5 @@
## @file
-# Windows makefile for 'GenFfs' module build.
+# GNU/Linux makefile for 'GenFfs' module build.
#
# Copyright (c) 2007 - 2010, Intel Corporation. All rights reserved.<BR>
# This program and the accompanying materials
Modified: trunk/BaseTools/Source/C/GenFv/GNUmakefile
===================================================================
--- trunk/BaseTools/Source/C/GenFv/GNUmakefile 2013-07-18 02:17:01 UTC (rev 2588)
+++ trunk/BaseTools/Source/C/GenFv/GNUmakefile 2013-07-19 06:39:08 UTC (rev 2589)
@@ -1,5 +1,5 @@
## @file
-# Windows makefile for 'GenFv' module build.
+# GNU/Linux makefile for 'GenFv' module build.
#
# Copyright (c) 2007 - 2010, Intel Corporation. All rights reserved.<BR>
# This program and the accompanying materials
Modified: trunk/BaseTools/Source/C/GenFw/GNUmakefile
===================================================================
--- trunk/BaseTools/Source/C/GenFw/GNUmakefile 2013-07-18 02:17:01 UTC (rev 2588)
+++ trunk/BaseTools/Source/C/GenFw/GNUmakefile 2013-07-19 06:39:08 UTC (rev 2589)
@@ -1,5 +1,5 @@
## @file
-# Windows makefile for 'GenFw' module build.
+# GNU/Linux makefile for 'GenFw' module build.
#
# Copyright (c) 2009 - 2010, Intel Corporation. All rights reserved.<BR>
# This program and the accompanying materials
Modified: trunk/BaseTools/Source/C/GenPage/GNUmakefile
===================================================================
--- trunk/BaseTools/Source/C/GenPage/GNUmakefile 2013-07-18 02:17:01 UTC (rev 2588)
+++ trunk/BaseTools/Source/C/GenPage/GNUmakefile 2013-07-19 06:39:08 UTC (rev 2589)
@@ -1,5 +1,5 @@
## @file
-# Windows makefile for 'GenPage' module build.
+# GNU/Linux makefile for 'GenPage' module build.
#
# Copyright (c) 2007 - 2010, Intel Corporation. All rights reserved.<BR>
# This program and the accompanying materials
Modified: trunk/BaseTools/Source/C/GenSec/GNUmakefile
===================================================================
--- trunk/BaseTools/Source/C/GenSec/GNUmakefile 2013-07-18 02:17:01 UTC (rev 2588)
+++ trunk/BaseTools/Source/C/GenSec/GNUmakefile 2013-07-19 06:39:08 UTC (rev 2589)
@@ -1,5 +1,5 @@
## @file
-# Windows makefile for 'GenSec' module build.
+# GNU/Linux makefile for 'GenSec' module build.
#
# Copyright (c) 2007 - 2010, Intel Corporation. All rights reserved.<BR>
# This program and the accompanying materials
Modified: trunk/BaseTools/Source/C/GenVtf/GNUmakefile
===================================================================
--- trunk/BaseTools/Source/C/GenVtf/GNUmakefile 2013-07-18 02:17:01 UTC (rev 2588)
+++ trunk/BaseTools/Source/C/GenVtf/GNUmakefile 2013-07-19 06:39:08 UTC (rev 2589)
@@ -1,5 +1,5 @@
## @file
-# Windows makefile for 'GenVtf' module build.
+# GNU/Linux makefile for 'GenVtf' module build.
#
# Copyright (c) 2007 - 2010, Intel Corporation. All rights reserved.<BR>
# This program and the accompanying materials
Modified: trunk/BaseTools/Source/C/GnuGenBootSector/GNUmakefile
===================================================================
--- trunk/BaseTools/Source/C/GnuGenBootSector/GNUmakefile 2013-07-18 02:17:01 UTC (rev 2588)
+++ trunk/BaseTools/Source/C/GnuGenBootSector/GNUmakefile 2013-07-19 06:39:08 UTC (rev 2589)
@@ -1,5 +1,5 @@
## @file
-# Windows makefile for 'GnuGenBootSector' module build.
+# GNU/Linux makefile for 'GnuGenBootSector' module build.
#
# Copyright (c) 2009 - 2010, Intel Corporation. All rights reserved.<BR>
# This program and the accompanying materials
Modified: trunk/BaseTools/Source/C/LzmaCompress/GNUmakefile
===================================================================
--- trunk/BaseTools/Source/C/LzmaCompress/GNUmakefile 2013-07-18 02:17:01 UTC (rev 2588)
+++ trunk/BaseTools/Source/C/LzmaCompress/GNUmakefile 2013-07-19 06:39:08 UTC (rev 2589)
@@ -1,5 +1,5 @@
## @file
-# Windows makefile for 'LzmaCompress' module build.
+# GNU/Linux makefile for 'LzmaCompress' module build.
#
# Copyright (c) 2009 - 2012, Intel Corporation. All rights reserved.<BR>
# This program and the accompanying materials
Modified: trunk/BaseTools/Source/C/Split/GNUmakefile
===================================================================
--- trunk/BaseTools/Source/C/Split/GNUmakefile 2013-07-18 02:17:01 UTC (rev 2588)
+++ trunk/BaseTools/Source/C/Split/GNUmakefile 2013-07-19 06:39:08 UTC (rev 2589)
@@ -1,5 +1,5 @@
## @file
-# Windows makefile for 'Split' module build.
+# GNU/Linux makefile for 'Split' module build.
#
# Copyright (c) 2007 - 2010, Intel Corporation. All rights reserved.<BR>
# This program and the accompanying materials
Modified: trunk/BaseTools/Source/C/TianoCompress/GNUmakefile
===================================================================
--- trunk/BaseTools/Source/C/TianoCompress/GNUmakefile 2013-07-18 02:17:01 UTC (rev 2588)
+++ trunk/BaseTools/Source/C/TianoCompress/GNUmakefile 2013-07-19 06:39:08 UTC (rev 2589)
@@ -1,5 +1,5 @@
## @file
-# Windows makefile for 'TianoCompress' module build.
+# GNU/Linux makefile for 'TianoCompress' module build.
#
# Copyright (c) 2007 - 2010, Intel Corporation. All rights reserved.<BR>
# This program and the accompanying materials
Modified: trunk/BaseTools/Source/C/VfrCompile/GNUmakefile
===================================================================
--- trunk/BaseTools/Source/C/VfrCompile/GNUmakefile 2013-07-18 02:17:01 UTC (rev 2588)
+++ trunk/BaseTools/Source/C/VfrCompile/GNUmakefile 2013-07-19 06:39:08 UTC (rev 2589)
@@ -1,5 +1,5 @@
## @file
-# Windows makefile for 'VfrCompile' module build.
+# GNU/Linux makefile for 'VfrCompile' module build.
#
# Copyright (c) 2008 - 2010, Intel Corporation. All rights reserved.<BR>
# This program and the accompanying materials
Modified: trunk/BaseTools/Source/C/VolInfo/GNUmakefile
===================================================================
--- trunk/BaseTools/Source/C/VolInfo/GNUmakefile 2013-07-18 02:17:01 UTC (rev 2588)
+++ trunk/BaseTools/Source/C/VolInfo/GNUmakefile 2013-07-19 06:39:08 UTC (rev 2589)
@@ -1,5 +1,5 @@
## @file
-# Windows makefile for 'VolInfo' module build.
+# GNU/Linux makefile for 'VolInfo' module build.
#
# Copyright (c) 2007 - 2010, Intel Corporation. All rights reserved.<BR>
# This program and the accompanying materials
Modified: trunk/BaseTools/Source/Python/GNUmakefile
===================================================================
--- trunk/BaseTools/Source/Python/GNUmakefile 2013-07-18 02:17:01 UTC (rev 2588)
+++ trunk/BaseTools/Source/Python/GNUmakefile 2013-07-19 06:39:08 UTC (rev 2589)
@@ -1,5 +1,5 @@
## @file
-# Linux makefile for Python tools build.
+# GNU/Linux makefile for Python tools build.
#
# Copyright (c) 2007 - 2010, Intel Corporation. All rights reserved.<BR>
# This program and the accompanying materials
Modified: trunk/BaseTools/Tests/GNUmakefile
===================================================================
--- trunk/BaseTools/Tests/GNUmakefile 2013-07-18 02:17:01 UTC (rev 2588)
+++ trunk/BaseTools/Tests/GNUmakefile 2013-07-19 06:39:08 UTC (rev 2589)
@@ -1,5 +1,5 @@
## @file
-# Windows makefile for 'Tests' module build.
+# GNU/Linux makefile for 'Tests' module build.
#
# Copyright (c) 2009 - 2010, Intel Corporation. All rights reserved.<BR>
# This program and the accompanying materials
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <oli...@us...> - 2013-07-31 10:44:02
|
Revision: 2590
http://sourceforge.net/p/edk2-buildtools/code/2590
Author: oliviermartin
Date: 2013-07-31 10:43:59 +0000 (Wed, 31 Jul 2013)
Log Message:
-----------
BaseTools: Added support for Aarch64 ARM architecture
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Harry Liebel <Har...@ar...>
Signed-off-by: Olivier Martin <oli...@ar...>
Reviewed-by: Yingke Liu <yin...@in...>
Modified Paths:
--------------
trunk/BaseTools/Conf/target.template
trunk/BaseTools/Conf/tools_def.template
trunk/BaseTools/Source/C/Common/BasePeCoff.c
trunk/BaseTools/Source/C/Common/PeCoffLoaderEx.c
trunk/BaseTools/Source/C/GenFv/GenFvInternalLib.c
trunk/BaseTools/Source/C/GenFw/Elf64Convert.c
trunk/BaseTools/Source/C/GenFw/elf_common.h
trunk/BaseTools/Source/C/Include/IndustryStandard/PeImage.h
trunk/BaseTools/Source/Python/Common/DataType.py
trunk/BaseTools/Source/Python/Common/EdkIIWorkspaceBuild.py
trunk/BaseTools/Source/Python/Common/FdfParserLite.py
trunk/BaseTools/Source/Python/Common/MigrationUtilities.py
trunk/BaseTools/Source/Python/CommonDataClass/CommonClass.py
trunk/BaseTools/Source/Python/CommonDataClass/ModuleClass.py
trunk/BaseTools/Source/Python/CommonDataClass/PlatformClass.py
trunk/BaseTools/Source/Python/Ecc/Check.py
trunk/BaseTools/Source/Python/GenFds/FdfParser.py
trunk/BaseTools/Source/Python/GenFds/FfsInfStatement.py
trunk/BaseTools/Source/Python/GenFds/GenFds.py
trunk/BaseTools/Source/Python/TargetTool/TargetTool.py
trunk/BaseTools/Source/Python/UPT/Library/DataType.py
trunk/BaseTools/Source/Python/build/build.py
Added Paths:
-----------
trunk/BaseTools/Source/C/Include/AArch64/
trunk/BaseTools/Source/C/Include/AArch64/ProcessorBind.h
Modified: trunk/BaseTools/Conf/target.template
===================================================================
--- trunk/BaseTools/Conf/target.template 2013-07-19 06:39:08 UTC (rev 2589)
+++ trunk/BaseTools/Conf/target.template 2013-07-31 10:43:59 UTC (rev 2590)
@@ -34,7 +34,8 @@
TARGET = DEBUG
# TARGET_ARCH List Optional What kind of architecture is the binary being target for.
-# One, or more, of the following, IA32, IPF, X64, EBC or ARM.
+# One, or more, of the following, IA32, IPF, X64, EBC, ARM
+# or AArch64.
# Multiple values can be specified on a single line, using
# space charaters to separate the values. These are used
# during the parsing of a platform description file,
Modified: trunk/BaseTools/Conf/tools_def.template
===================================================================
--- trunk/BaseTools/Conf/tools_def.template 2013-07-19 06:39:08 UTC (rev 2589)
+++ trunk/BaseTools/Conf/tools_def.template 2013-07-31 10:43:59 UTC (rev 2590)
@@ -2577,6 +2577,7 @@
DEFINE GCC_X64_CC_FLAGS = DEF(GCC_ALL_CC_FLAGS) -mno-red-zone -Wno-address -mno-stack-arg-probe
DEFINE GCC_IPF_CC_FLAGS = DEF(GCC_ALL_CC_FLAGS) -minline-int-divide-min-latency
DEFINE GCC_ARMGCC_CC_FLAGS = DEF(GCC_ALL_CC_FLAGS) -mword-relocations -mlittle-endian -mabi=aapcs -mapcs -fno-short-enums -save-temps -fsigned-char -ffunction-sections -fdata-sections -fomit-frame-pointer -Wno-address
+DEFINE GCC_AARCH64_CC_FLAGS = DEF(GCC_ALL_CC_FLAGS) -mcmodel=large -mlittle-endian -fno-short-enums -save-temps -fverbose-asm -fsigned-char -ffunction-sections -fdata-sections -fomit-frame-pointer -fno-builtin -Wno-address
DEFINE GCC_DLINK_FLAGS_COMMON = -nostdlib --pie
DEFINE GCC_IA32_X64_DLINK_COMMON = DEF(GCC_DLINK_FLAGS_COMMON) --gc-sections
DEFINE GCC_IA32_X64_ASLDLINK_FLAGS = DEF(GCC_IA32_X64_DLINK_COMMON) --entry _ReferenceAcpiTable -u $(IMAGE_ENTRY_POINT)
@@ -4789,6 +4790,8 @@
*_RVCTLINUX_*_*_FAMILY = RVCT
*_RVCTLINUX_*_*_BUILDRULEFAMILY = RVCTLINUX
+*_RVCTLINUX_*_MAKE_PATH = make
+
#
# Use default values, or override in DSC file
#
@@ -4803,7 +4806,6 @@
*_RVCTLINUX_ARM_ASM_FLAGS = $(ARCHASM_FLAGS) $(PLATFORM_FLAGS) DEF(RVCT_ALL_ASM_FLAGS)
*_RVCTLINUX_ARM_PP_FLAGS = $(ARCHCC_FLAGS) $(PLATFORM_FLAGS) -E
*_RVCTLINUX_ARM_VFRPP_FLAGS = $(ARCHCC_FLAGS) $(PLATFORM_FLAGS) -E -DVFRCOMPILE --preinclude $(DEST_DIR_DEBUG)/$(MODULE_NAME)StrDefs.h
-*_RVCTLINUX_ARM_MAKE_PATH = make
*_RVCTLINUX_ARM_SLINK_FLAGS = --partial -o
DEBUG_RVCTLINUX_ARM_CC_FLAGS = $(ARCHCC_FLAGS) $(PLATFORM_FLAGS) DEF(RVCT_ALL_CC_FLAGS) -O1 -g
RELEASE_RVCTLINUX_ARM_CC_FLAGS = $(ARCHCC_FLAGS) $(PLATFORM_FLAGS) --diag_suppress=550 DEF(RVCT_ALL_CC_FLAGS) -O2
@@ -4925,6 +4927,42 @@
DEBUG_ARMGCC_ARM_CC_FLAGS = $(ARCHCC_FLAGS) $(PLATFORM_FLAGS) DEF(GCC_ARMGCC_CC_FLAGS) -O0
RELEASE_ARMGCC_ARM_CC_FLAGS = $(ARCHCC_FLAGS) $(PLATFORM_FLAGS) DEF(GCC_ARMGCC_CC_FLAGS) -Wno-unused
+######################
+# AArch64 definitions
+######################
+# AARCH64 64bit ARM Bare-metal GCC (ARM Architecture 64)
+
+*_ARMGCC_AARCH64_ASLCC_PATH = ENV(CROSS_COMPILE)gcc
+*_ARMGCC_AARCH64_ASLDLINK_PATH = ENV(CROSS_COMPILE)ld
+*_ARMGCC_AARCH64_ASLPP_PATH = ENV(CROSS_COMPILE)gcc
+
+*_ARMGCC_AARCH64_CC_PATH = ENV(CROSS_COMPILE)gcc
+*_ARMGCC_AARCH64_SLINK_PATH = ENV(CROSS_COMPILE)ar
+*_ARMGCC_AARCH64_DLINK_PATH = ENV(CROSS_COMPILE)ld
+*_ARMGCC_AARCH64_ASM_PATH = ENV(CROSS_COMPILE)as
+*_ARMGCC_AARCH64_PP_PATH = ENV(CROSS_COMPILE)gcc
+*_ARMGCC_AARCH64_VFRPP_PATH = ENV(CROSS_COMPILE)gcc
+
+#
+# Use default values, or override in DSC file
+#
+*_ARMGCC_AARCH64_ARCHCC_FLAGS =
+*_ARMGCC_AARCH64_ARCHASM_FLAGS =
+*_ARMGCC_AARCH64_ARCHDLINK_FLAGS =
+*_ARMGCC_AARCH64_PLATFORM_FLAGS =
+
+ DEBUG_ARMGCC_AARCH64_ASM_FLAGS = $(ARCHASM_FLAGS) $(PLATFORM_FLAGS) -g
+RELEASE_ARMGCC_AARCH64_ASM_FLAGS = $(ARCHASM_FLAGS) $(PLATFORM_FLAGS)
+
+*_ARMGCC_AARCH64_PP_FLAGS = $(ARCHCC_FLAGS) $(PLATFORM_FLAGS) -E -x assembler-with-cpp -include $(DEST_DIR_DEBUG)/AutoGen.h
+*_ARMGCC_AARCH64_VFRPP_FLAGS = $(ARCHCC_FLAGS) $(PLATFORM_FLAGS) -x c -E -P -DVFRCOMPILE --include $(DEST_DIR_DEBUG)/$(MODULE_NAME)StrDefs.h
+
+*_ARMGCC_AARCH64_SLINK_FLAGS = -rc
+*_ARMGCC_AARCH64_DLINK_FLAGS = $(ARCHDLINK_FLAGS) -Ttext=0x0 --emit-relocs -nostdlib -u $(IMAGE_ENTRY_POINT) -e $(IMAGE_ENTRY_POINT) -Map $(DEST_DIR_DEBUG)/$(BASE_NAME).map
+
+ DEBUG_ARMGCC_AARCH64_CC_FLAGS = $(ARCHCC_FLAGS) $(PLATFORM_FLAGS) DEF(GCC_AARCH64_CC_FLAGS) -Wno-address -O0
+RELEASE_ARMGCC_AARCH64_CC_FLAGS = $(ARCHCC_FLAGS) $(PLATFORM_FLAGS) DEF(GCC_AARCH64_CC_FLAGS) -Wno-address -Wno-unused-but-set-variable
+
####################################################################################
#
# ARM GNU/Linux GCC
@@ -4983,6 +5021,42 @@
DEBUG_ARMLINUXGCC_ARM_CC_FLAGS = $(ARCHCC_FLAGS) $(PLATFORM_FLAGS) DEF(GCC_ARMGCC_CC_FLAGS) -fno-stack-protector -mno-unaligned-access -O0
RELEASE_ARMLINUXGCC_ARM_CC_FLAGS = $(ARCHCC_FLAGS) $(PLATFORM_FLAGS) DEF(GCC_ARMGCC_CC_FLAGS) -fno-stack-protector -mno-unaligned-access -Wno-unused-but-set-variable
+######################
+# AArch64 definitions
+######################
+# AARCH64 64bit ARM GNU/Linux GCC (ARM Architecture 64)
+
+*_ARMLINUXGCC_AARCH64_ASLCC_PATH = ENV(AARCH64LINUXGCC_TOOLS_PATH)aarch64-linux-gnu-gcc
+*_ARMLINUXGCC_AARCH64_ASLDLINK_PATH = ENV(AARCH64LINUXGCC_TOOLS_PATH)aarch64-linux-gnu-ld
+*_ARMLINUXGCC_AARCH64_ASLPP_PATH = ENV(AARCH64LINUXGCC_TOOLS_PATH)aarch64-linux-gnu-gcc
+
+*_ARMLINUXGCC_AARCH64_CC_PATH = ENV(AARCH64LINUXGCC_TOOLS_PATH)aarch64-linux-gnu-gcc
+*_ARMLINUXGCC_AARCH64_SLINK_PATH = ENV(AARCH64LINUXGCC_TOOLS_PATH)aarch64-linux-gnu-ar
+*_ARMLINUXGCC_AARCH64_DLINK_PATH = ENV(AARCH64LINUXGCC_TOOLS_PATH)aarch64-linux-gnu-ld
+*_ARMLINUXGCC_AARCH64_ASM_PATH = ENV(AARCH64LINUXGCC_TOOLS_PATH)aarch64-linux-gnu-as
+*_ARMLINUXGCC_AARCH64_PP_PATH = ENV(AARCH64LINUXGCC_TOOLS_PATH)aarch64-linux-gnu-gcc
+*_ARMLINUXGCC_AARCH64_VFRPP_PATH = ENV(AARCH64LINUXGCC_TOOLS_PATH)aarch64-linux-gnu-gcc
+
+#
+# Use default values, or override in DSC file
+#
+*_ARMLINUXGCC_AARCH64_ARCHCC_FLAGS =
+*_ARMLINUXGCC_AARCH64_ARCHASM_FLAGS =
+*_ARMLINUXGCC_AARCH64_ARCHDLINK_FLAGS =
+*_ARMLINUXGCC_AARCH64_PLATFORM_FLAGS =
+
+ DEBUG_ARMLINUXGCC_AARCH64_ASM_FLAGS = $(ARCHASM_FLAGS) $(PLATFORM_FLAGS) -g
+RELEASE_ARMLINUXGCC_AARCH64_ASM_FLAGS = $(ARCHASM_FLAGS) $(PLATFORM_FLAGS)
+
+*_ARMLINUXGCC_AARCH64_PP_FLAGS = $(ARCHCC_FLAGS) $(PLATFORM_FLAGS) -E -x assembler-with-cpp -include $(DEST_DIR_DEBUG)/AutoGen.h
+*_ARMLINUXGCC_AARCH64_VFRPP_FLAGS = $(ARCHCC_FLAGS) $(PLATFORM_FLAGS) -x c -E -P -DVFRCOMPILE --include $(DEST_DIR_DEBUG)/$(MODULE_NAME)StrDefs.h
+
+*_ARMLINUXGCC_AARCH64_SLINK_FLAGS = -rc
+*_ARMLINUXGCC_AARCH64_DLINK_FLAGS = $(ARCHDLINK_FLAGS) -Ttext=0x0 --emit-relocs -nostdlib -u $(IMAGE_ENTRY_POINT) -e $(IMAGE_ENTRY_POINT) -Map $(DEST_DIR_DEBUG)/$(BASE_NAME).map
+
+ DEBUG_ARMLINUXGCC_AARCH64_CC_FLAGS = $(ARCHCC_FLAGS) $(PLATFORM_FLAGS) DEF(GCC_AARCH64_CC_FLAGS) -Wno-address -O0
+RELEASE_ARMLINUXGCC_AARCH64_CC_FLAGS = $(ARCHCC_FLAGS) $(PLATFORM_FLAGS) DEF(GCC_AARCH64_CC_FLAGS) -Wno-address -Wno-unused-but-set-variable
+
#################
# ASM 16 linker defintions
#################
Modified: trunk/BaseTools/Source/C/Common/BasePeCoff.c
===================================================================
--- trunk/BaseTools/Source/C/Common/BasePeCoff.c 2013-07-19 06:39:08 UTC (rev 2589)
+++ trunk/BaseTools/Source/C/Common/BasePeCoff.c 2013-07-31 10:43:59 UTC (rev 2590)
@@ -3,6 +3,7 @@
Functions to get info and load PE/COFF image.
Copyright (c) 2004 - 2010, Intel Corporation. All rights reserved.<BR>
+Portions Copyright (c) 2011 - 2013, ARM Ltd. All rights reserved.<BR>
This program and the accompanying materials
are licensed and made available under the terms and conditions of the BSD License
which accompanies this distribution. The full text of the license may be found at
@@ -79,6 +80,14 @@
IN UINT64 Adjust
);
+RETURN_STATUS
+PeCoffLoaderRelocateAArch64Image (
+ IN UINT16 *Reloc,
+ IN OUT CHAR8 *Fixup,
+ IN OUT CHAR8 **FixupData,
+ IN UINT64 Adjust
+ );
+
STATIC
RETURN_STATUS
PeCoffLoaderGetPeHeader (
@@ -194,7 +203,8 @@
ImageContext->Machine != EFI_IMAGE_MACHINE_IA64 && \
ImageContext->Machine != EFI_IMAGE_MACHINE_X64 && \
ImageContext->Machine != EFI_IMAGE_MACHINE_ARMT && \
- ImageContext->Machine != EFI_IMAGE_MACHINE_EBC) {
+ ImageContext->Machine != EFI_IMAGE_MACHINE_EBC && \
+ ImageContext->Machine != EFI_IMAGE_MACHINE_AARCH64) {
if (ImageContext->Machine == IMAGE_FILE_MACHINE_ARM) {
//
// There are two types of ARM images. Pure ARM and ARM/Thumb.
@@ -791,6 +801,9 @@
case EFI_IMAGE_MACHINE_IA64:
Status = PeCoffLoaderRelocateIpfImage (Reloc, Fixup, &FixupData, Adjust);
break;
+ case EFI_IMAGE_MACHINE_AARCH64:
+ Status = PeCoffLoaderRelocateAArch64Image (Reloc, Fixup, &FixupData, Adjust);
+ break;
default:
Status = RETURN_UNSUPPORTED;
break;
Modified: trunk/BaseTools/Source/C/Common/PeCoffLoaderEx.c
===================================================================
--- trunk/BaseTools/Source/C/Common/PeCoffLoaderEx.c 2013-07-19 06:39:08 UTC (rev 2589)
+++ trunk/BaseTools/Source/C/Common/PeCoffLoaderEx.c 2013-07-31 10:43:59 UTC (rev 2590)
@@ -1,6 +1,7 @@
/** @file
Copyright (c) 2004 - 2008, Intel Corporation. All rights reserved.<BR>
+Portions Copyright (c) 2011 - 2013, ARM Ltd. All rights reserved.<BR>
This program and the accompanying materials
are licensed and made available under the terms and conditions of the BSD License
which accompanies this distribution. The full text of the license may be found at
@@ -15,7 +16,7 @@
Abstract:
- IA32, X64 and IPF Specific relocation fixups
+ IA32, X64, IPF, ARM and AArch64 Specific relocation fixups
Revision History
@@ -25,6 +26,7 @@
#include <IndustryStandard/PeImage.h>
#include "PeCoffLib.h"
#include "CommonLib.h"
+#include "EfiUtilityMsgs.h"
#define EXT_IMM64(Value, Address, Size, InstPos, ValPos) \
@@ -472,3 +474,43 @@
return RETURN_SUCCESS;
}
+
+RETURN_STATUS
+PeCoffLoaderRelocateAArch64Image (
+ IN UINT16 *Reloc,
+ IN OUT CHAR8 *Fixup,
+ IN OUT CHAR8 **FixupData,
+ IN UINT64 Adjust
+ )
+/**
+ Performs an AArch64 specific relocation fixup
+
+ @param Reloc Pointer to the relocation record
+ @param Fixup Pointer to the address to fix up
+ @param FixupData Pointer to a buffer to log the fixups
+ @param Adjust The offset to adjust the fixup
+
+ @retval RETURN_SUCCESS Success to perform relocation
+ @retval RETURN_UNSUPPORTED Unsupported.
+**/
+{
+ UINT64 *F64;
+
+ switch ((*Reloc) >> 12) {
+
+ case EFI_IMAGE_REL_BASED_DIR64:
+ F64 = (UINT64 *) Fixup;
+ *F64 = *F64 + (UINT64) Adjust;
+ if (*FixupData != NULL) {
+ *FixupData = ALIGN_POINTER(*FixupData, sizeof(UINT64));
+ *(UINT64 *)(*FixupData) = *F64;
+ *FixupData = *FixupData + sizeof(UINT64);
+ }
+ break;
+
+ default:
+ return RETURN_UNSUPPORTED;
+ }
+
+ return RETURN_SUCCESS;
+}
Modified: trunk/BaseTools/Source/C/GenFv/GenFvInternalLib.c
===================================================================
--- trunk/BaseTools/Source/C/GenFv/GenFvInternalLib.c 2013-07-19 06:39:08 UTC (rev 2589)
+++ trunk/BaseTools/Source/C/GenFv/GenFvInternalLib.c 2013-07-31 10:43:59 UTC (rev 2590)
@@ -1,6 +1,7 @@
/** @file
Copyright (c) 2004 - 2011, Intel Corporation. All rights reserved.<BR>
+Portions Copyright (c) 2011 - 2013, ARM Ltd. All rights reserved.<BR>
This program and the accompanying materials
are licensed and made available under the terms and conditions of the BSD License
which accompanies this distribution. The full text of the license may be found at
@@ -1580,6 +1581,11 @@
// Since the ARM reset vector is in the FV Header you really don't need a
// Volume Top File, but if you have one for some reason don't crash...
//
+ } else if (MachineType == EFI_IMAGE_MACHINE_AARCH64) {
+ //
+ // Since the AArch64 reset vector is in the FV Header you really don't need a
+ // Volume Top File, but if you have one for some reason don't crash...
+ //
} else {
Error (NULL, 0, 3000, "Invalid", "machine type=0x%X in PEI core.", MachineType);
return EFI_ABORTED;
@@ -1617,9 +1623,11 @@
This parses the FV looking for SEC and patches that address into the
beginning of the FV header.
- For ARM the reset vector is at 0x00000000 or 0xFFFF0000.
+ For ARM32 the reset vector is at 0x00000000 or 0xFFFF0000.
+ For AArch64 the reset vector is at 0x00000000.
+
This would commonly map to the first entry in the ROM.
- ARM Exceptions:
+ ARM32 Exceptions:
Reset +0
Undefined +4
SWI +8
@@ -1633,11 +1641,10 @@
2) Reset vector is data bytes FDF file and that code branches to reset vector
in the beginning of the FV (fixed size offset).
-
Need to have the jump for the reset vector at location zero.
We also need to store the address or PEI (if it exists).
We stub out a return from interrupt in case the debugger
- is using SWI.
+ is using SWI (not done for AArch64, not enough space in struct).
The optional entry to the common exception handler is
to support full featured exception handling from ROM and is currently
not support by this tool.
@@ -1664,10 +1671,14 @@
UINT16 MachineType;
EFI_PHYSICAL_ADDRESS PeiCorePhysicalAddress;
EFI_PHYSICAL_ADDRESS SecCorePhysicalAddress;
- INT32 ResetVector[4]; // 0 - is branch relative to SEC entry point
+ INT32 ResetVector[4]; // ARM32:
+ // 0 - is branch relative to SEC entry point
// 1 - PEI Entry Point
// 2 - movs pc,lr for a SWI handler
// 3 - Place holder for Common Exception Handler
+ // AArch64: Used as UINT64 ResetVector[2]
+ // 0 - is branch relative to SEC entry point
+ // 1 - PEI Entry Point
//
// Verify input parameters
@@ -1727,7 +1738,7 @@
PeiCorePhysicalAddress += EntryPoint;
DebugMsg (NULL, 0, 9, "PeiCore physical entry point address", "Address = 0x%llX", (unsigned long long) PeiCorePhysicalAddress);
- if (MachineType == EFI_IMAGE_MACHINE_ARMT) {
+ if (MachineType == EFI_IMAGE_MACHINE_ARMT || MachineType == EFI_IMAGE_MACHINE_AARCH64) {
memset (ResetVector, 0, sizeof (ResetVector));
// Address of PEI Core, if we have one
ResetVector[1] = (UINT32)PeiCorePhysicalAddress;
@@ -1767,7 +1778,7 @@
return EFI_ABORTED;
}
- if (MachineType != EFI_IMAGE_MACHINE_ARMT) {
+ if ((MachineType != EFI_IMAGE_MACHINE_ARMT) && (MachineType != EFI_IMAGE_MACHINE_AARCH64)) {
//
// If SEC is not ARM we have nothing to do
//
@@ -1821,32 +1832,61 @@
DebugMsg (NULL, 0, 9, "PeiCore physical entry point address", "Address = 0x%llX", (unsigned long long) PeiCorePhysicalAddress);
}
+ if (MachineType == EFI_IMAGE_MACHINE_ARMT) {
+ // B SecEntryPoint - signed_immed_24 part +/-32MB offset
+ // on ARM, the PC is always 8 ahead, so we're not really jumping from the base address, but from base address + 8
+ ResetVector[0] = (INT32)(SecCorePhysicalAddress - FvInfo->BaseAddress - 8) >> 2;
+
+ if (ResetVector[0] > 0x00FFFFFF) {
+ Error (NULL, 0, 3000, "Invalid", "SEC Entry point must be within 32MB of the start of the FV");
+ return EFI_ABORTED;
+ }
- // B SecEntryPoint - signed_immed_24 part +/-32MB offset
- // on ARM, the PC is always 8 ahead, so we're not really jumping from the base address, but from base address + 8
- ResetVector[0] = (INT32)(SecCorePhysicalAddress - FvInfo->BaseAddress - 8) >> 2;
+ // Add opcode for an uncondional branch with no link. AKA B SecEntryPoint
+ ResetVector[0] |= 0xEB000000;
- if (ResetVector[0] > 0x00FFFFFF) {
- Error (NULL, 0, 3000, "Invalid", "SEC Entry point must be within 32MB of the start of the FV");
- return EFI_ABORTED;
- }
- // Add opcode for an uncondional branch with no link. AKA B SecEntryPoint
- ResetVector[0] |= 0xEB000000;
+ // Address of PEI Core, if we have one
+ ResetVector[1] = (UINT32)PeiCorePhysicalAddress;
+ // SWI handler movs pc,lr. Just in case a debugger uses SWI
+ ResetVector[2] = 0xE1B0F07E;
- // Address of PEI Core, if we have one
- ResetVector[1] = (UINT32)PeiCorePhysicalAddress;
-
- // SWI handler movs pc,lr. Just in case a debugger uses SWI
- ResetVector[2] = 0xE1B0F07E;
-
- // Place holder to support a common interrupt handler from ROM.
- // Currently not suppprted. For this to be used the reset vector would not be in this FV
- // and the exception vectors would be hard coded in the ROM and just through this address
- // to find a common handler in the a module in the FV.
- ResetVector[3] = 0;
+ // Place holder to support a common interrupt handler from ROM.
+ // Currently not suppprted. For this to be used the reset vector would not be in this FV
+ // and the exception vectors would be hard coded in the ROM and just through this address
+ // to find a common handler in the a module in the FV.
+ ResetVector[3] = 0;
+ } else if (MachineType == EFI_IMAGE_MACHINE_AARCH64) {
+ /* NOTE:
+ ARMT above has an entry in ResetVector[2] for SWI. The way we are using the ResetVector
+ array at the moment, for AArch64, does not allow us space for this as the header only
+ allows for a fixed amount of bytes at the start. If we are sure that UEFI will live
+ within the first 4GB of addressable RAM we could potensioally adopt the same ResetVector
+ layout as above. But for the moment we replace the four 32bit vectors with two 64bit
+ vectors in the same area of the Image heasder. This allows UEFI to start from a 64bit
+ base.
+ */
+
+ ((UINT64*)ResetVector)[0] = (UINT64)(SecCorePhysicalAddress - FvInfo->BaseAddress) >> 2;
+
+ // B SecEntryPoint - signed_immed_26 part +/-128MB offset
+ if ( ((UINT64*)ResetVector)[0] > 0x03FFFFFF) {
+ Error (NULL, 0, 3000, "Invalid", "SEC Entry point must be within 128MB of the start of the FV");
+ return EFI_ABORTED;
+ }
+ // Add opcode for an uncondional branch with no link. AKA B SecEntryPoint
+ ((UINT64*)ResetVector)[0] |= 0x14000000;
+
+ // Address of PEI Core, if we have one
+ ((UINT64*)ResetVector)[1] = (UINT64)PeiCorePhysicalAddress;
+
+ } else {
+ Error (NULL, 0, 3000, "Invalid", "Unknown ARM machine type");
+ return EFI_ABORTED;
+ }
+
//
// Copy to the beginning of the FV
//
@@ -1948,8 +1988,8 @@
//
// Verify machine type is supported
//
- if (*MachineType != EFI_IMAGE_MACHINE_IA32 && *MachineType != EFI_IMAGE_MACHINE_IA64 && *MachineType != EFI_IMAGE_MACHINE_X64 && *MachineType != EFI_IMAGE_MACHINE_EBC &&
- *MachineType != EFI_IMAGE_MACHINE_ARMT) {
+ if ((*MachineType != EFI_IMAGE_MACHINE_IA32) && (*MachineType != EFI_IMAGE_MACHINE_IA64) && (*MachineType != EFI_IMAGE_MACHINE_X64) && (*MachineType != EFI_IMAGE_MACHINE_EBC) &&
+ (*MachineType != EFI_IMAGE_MACHINE_ARMT) && (*MachineType != EFI_IMAGE_MACHINE_AARCH64)) {
Error (NULL, 0, 3000, "Invalid", "Unrecognized machine type in the PE32 file.");
return EFI_UNSUPPORTED;
}
@@ -2895,7 +2935,8 @@
return Status;
}
- if (ImageContext.Machine == EFI_IMAGE_MACHINE_ARMT) {
+ if ( (ImageContext.Machine == EFI_IMAGE_MACHINE_ARMT) ||
+ (ImageContext.Machine == EFI_IMAGE_MACHINE_AARCH64) ) {
mArm = TRUE;
}
@@ -3163,7 +3204,8 @@
return Status;
}
- if (ImageContext.Machine == EFI_IMAGE_MACHINE_ARMT) {
+ if ( (ImageContext.Machine == EFI_IMAGE_MACHINE_ARMT) ||
+ (ImageContext.Machine == EFI_IMAGE_MACHINE_AARCH64) ) {
mArm = TRUE;
}
Modified: trunk/BaseTools/Source/C/GenFw/Elf64Convert.c
===================================================================
--- trunk/BaseTools/Source/C/GenFw/Elf64Convert.c 2013-07-19 06:39:08 UTC (rev 2589)
+++ trunk/BaseTools/Source/C/GenFw/Elf64Convert.c 2013-07-31 10:43:59 UTC (rev 2590)
@@ -1,6 +1,7 @@
/** @file
Copyright (c) 2010 - 2011, Intel Corporation. All rights reserved.<BR>
+Portions copyright (c) 2013, ARM Ltd. All rights reserved.<BR>
This program and the accompanying materials are licensed and made available
under the terms and conditions of the BSD License which accompanies this
@@ -146,8 +147,8 @@
Error (NULL, 0, 3000, "Unsupported", "ELF e_type not ET_EXEC or ET_DYN");
return FALSE;
}
- if (!((mEhdr->e_machine == EM_X86_64))) {
- Error (NULL, 0, 3000, "Unsupported", "ELF e_machine not EM_X86_64");
+ if (!((mEhdr->e_machine == EM_X86_64) || (mEhdr->e_machine == EM_AARCH64))) {
+ Error (NULL, 0, 3000, "Unsupported", "ELF e_machine not EM_X86_64 or EM_AARCH64");
return FALSE;
}
if (mEhdr->e_version != EV_CURRENT) {
@@ -269,6 +270,7 @@
switch (mEhdr->e_machine) {
case EM_X86_64:
case EM_IA_64:
+ case EM_AARCH64:
mCoffOffset += sizeof (EFI_IMAGE_NT_HEADERS64);
break;
default:
@@ -412,6 +414,10 @@
NtHdr->Pe32Plus.FileHeader.Machine = EFI_IMAGE_MACHINE_IPF;
NtHdr->Pe32Plus.OptionalHeader.Magic = EFI_IMAGE_NT_OPTIONAL_HDR64_MAGIC;
break;
+ case EM_AARCH64:
+ NtHdr->Pe32Plus.FileHeader.Machine = EFI_IMAGE_MACHINE_AARCH64;
+ NtHdr->Pe32Plus.OptionalHeader.Magic = EFI_IMAGE_NT_OPTIONAL_HDR64_MAGIC;
+ break;
default:
VerboseMsg ("%s unknown e_machine type. Assume X64", (UINTN)mEhdr->e_machine);
NtHdr->Pe32Plus.FileHeader.Machine = EFI_IMAGE_MACHINE_X64;
@@ -542,22 +548,55 @@
//
VerboseMsg ("Applying Relocations...");
for (Idx = 0; Idx < mEhdr->e_shnum; Idx++) {
+ //
+ // Determine if this is a relocation section.
+ //
Elf_Shdr *RelShdr = GetShdrByIndex(Idx);
if ((RelShdr->sh_type != SHT_REL) && (RelShdr->sh_type != SHT_RELA)) {
continue;
}
+
+ //
+ // Relocation section found. Now extract section information that the relocations
+ // apply to in the ELF data and the new COFF data.
+ //
SecShdr = GetShdrByIndex(RelShdr->sh_info);
SecOffset = mCoffSectionsOffset[RelShdr->sh_info];
+
+ //
+ // Only process relocations for the current filter type.
+ //
if (RelShdr->sh_type == SHT_RELA && (*Filter)(SecShdr)) {
UINT64 RelIdx;
+
+ //
+ // Determine the symbol table referenced by the relocation data.
+ //
Elf_Shdr *SymtabShdr = GetShdrByIndex(RelShdr->sh_link);
UINT8 *Symtab = (UINT8*)mEhdr + SymtabShdr->sh_offset;
+
+ //
+ // Process all relocation entries for this section.
+ //
for (RelIdx = 0; RelIdx < RelShdr->sh_size; RelIdx += (UINT32) RelShdr->sh_entsize) {
+
+ //
+ // Set pointer to relocation entry
+ //
Elf_Rela *Rel = (Elf_Rela *)((UINT8*)mEhdr + RelShdr->sh_offset + RelIdx);
+
+ //
+ // Set pointer to symbol table entry associated with the relocation entry.
+ //
Elf_Sym *Sym = (Elf_Sym *)(Symtab + ELF_R_SYM(Rel->r_info) * SymtabShdr->sh_entsize);
+
Elf_Shdr *SymShdr;
UINT8 *Targ;
+ //
+ // Check section header index found in symbol table and get the section
+ // header location.
+ //
if (Sym->st_shndx == SHN_UNDEF
|| Sym->st_shndx == SHN_ABS
|| Sym->st_shndx > mEhdr->e_shnum) {
@@ -566,11 +605,20 @@
SymShdr = GetShdrByIndex(Sym->st_shndx);
//
- // Note: r_offset in a memory address.
- // Convert it to a pointer in the coff file.
+ // Convert the relocation data to a pointer into the coff file.
//
+ // Note:
+ // r_offset is the virtual address of the storage unit to be relocated.
+ // sh_addr is the virtual address for the base of the section.
+ //
+ // r_offset in a memory address.
+ // Convert it to a pointer in the coff file.
+ //
Targ = mCoffFile + SecOffset + (Rel->r_offset - SecShdr->sh_addr);
+ //
+ // Determine how to handle each relocation type based on the machine type.
+ //
if (mEhdr->e_machine == EM_X86_64) {
switch (ELF_R_TYPE(Rel->r_info)) {
case R_X86_64_NONE:
@@ -618,8 +666,51 @@
default:
Error (NULL, 0, 3000, "Invalid", "%s unsupported ELF EM_X86_64 relocation 0x%x.", mInImageName, (unsigned) ELF_R_TYPE(Rel->r_info));
}
+ } else if (mEhdr->e_machine == EM_AARCH64) {
+
+ // AARCH64 GCC uses RELA relocation, so all relocations have to be fixed up.
+ // As opposed to ARM32 using REL.
+
+ switch (ELF_R_TYPE(Rel->r_info)) {
+
+ case R_AARCH64_LD_PREL_LO19:
+ if (Rel->r_addend != 0 ) { /* TODO */
+ Error (NULL, 0, 3000, "Invalid", "AArch64: R_AARCH64_LD_PREL_LO19 Need to fixup with addend!.");
+ }
+ break;
+
+ case R_AARCH64_CALL26:
+ if (Rel->r_addend != 0 ) { /* TODO */
+ Error (NULL, 0, 3000, "Invalid", "AArch64: R_AARCH64_CALL26 Need to fixup with addend!.");
+ }
+ break;
+
+ case R_AARCH64_JUMP26:
+ if (Rel->r_addend != 0 ) { /* TODO : AArch64 '-O2' optimisation. */
+ Error (NULL, 0, 3000, "Invalid", "AArch64: R_AARCH64_JUMP26 Need to fixup with addend!.");
+ }
+ break;
+
+ case R_AARCH64_ADR_PREL_PG_HI21:
+ // TODO : AArch64 'small' memory model.
+ Error (NULL, 0, 3000, "Invalid", "WriteSections64(): %s unsupported ELF EM_AARCH64 relocation R_AARCH64_ADR_PREL_PG_HI21.", mInImageName);
+ break;
+
+ case R_AARCH64_ADD_ABS_LO12_NC:
+ // TODO : AArch64 'small' memory model.
+ Error (NULL, 0, 3000, "Invalid", "WriteSections64(): %s unsupported ELF EM_AARCH64 relocation R_AARCH64_ADD_ABS_LO12_NC.", mInImageName);
+ break;
+
+ // Absolute relocations.
+ case R_AARCH64_ABS64:
+ *(UINT64 *)Targ = *(UINT64 *)Targ - SymShdr->sh_addr + mCoffSectionsOffset[Sym->st_shndx];
+ break;
+
+ default:
+ Error (NULL, 0, 3000, "Invalid", "WriteSections64(): %s unsupported ELF EM_AARCH64 relocation 0x%x.", mInImageName, (unsigned) ELF_R_TYPE(Rel->r_info));
+ }
} else {
- Error (NULL, 0, 3000, "Invalid", "Not EM_X86_X64");
+ Error (NULL, 0, 3000, "Invalid", "Not a supported machine type");
}
}
}
@@ -673,6 +764,45 @@
default:
Error (NULL, 0, 3000, "Invalid", "%s unsupported ELF EM_X86_64 relocation 0x%x.", mInImageName, (unsigned) ELF_R_TYPE(Rel->r_info));
}
+ } else if (mEhdr->e_machine == EM_AARCH64) {
+ // AArch64 GCC uses RELA relocation, so all relocations has to be fixed up. ARM32 uses REL.
+ switch (ELF_R_TYPE(Rel->r_info)) {
+ case R_AARCH64_LD_PREL_LO19:
+ break;
+
+ case R_AARCH64_CALL26:
+ break;
+
+ case R_AARCH64_JUMP26:
+ break;
+
+ case R_AARCH64_ADR_PREL_PG_HI21:
+ // TODO : AArch64 'small' memory model.
+ Error (NULL, 0, 3000, "Invalid", "WriteRelocations64(): %s unsupported ELF EM_AARCH64 relocation R_AARCH64_ADR_PREL_PG_HI21.", mIn...
[truncated message content] |
|
From: <hh...@us...> - 2014-01-23 05:00:30
|
Revision: 2648
http://sourceforge.net/p/edk2-buildtools/code/2648
Author: hhtian
Date: 2014-01-23 05:00:23 +0000 (Thu, 23 Jan 2014)
Log Message:
-----------
Fix CRLF format
Signed-off-by: Tian, Hot <hot...@in...>
Modified Paths:
--------------
trunk/BaseTools/Conf/XMLSchema/DistributionPackage.xsd
trunk/BaseTools/Source/C/GNUmakefile
trunk/BaseTools/Source/C/GenFw/Elf32Convert.c
trunk/BaseTools/Source/C/GenFw/Elf32Convert.h
trunk/BaseTools/Source/C/GenFw/Elf64Convert.c
trunk/BaseTools/Source/C/GenFw/Elf64Convert.h
trunk/BaseTools/Source/C/GenFw/ElfConvert.c
trunk/BaseTools/Source/C/GenFw/ElfConvert.h
trunk/BaseTools/Source/C/GenFw/GenFw.h
trunk/BaseTools/Source/C/GenFw/elf32.h
trunk/BaseTools/Source/C/GenFw/elf64.h
trunk/BaseTools/Source/C/GenFw/elf_common.h
trunk/BaseTools/Source/C/Include/Arm/ProcessorBind.h
trunk/BaseTools/Source/C/Makefiles/NmakeSubdirs.bat
trunk/BaseTools/Source/C/Makefiles/app.makefile
trunk/BaseTools/Source/C/Makefiles/footer.makefile
trunk/BaseTools/Source/C/Makefiles/ms.app
trunk/BaseTools/Source/C/Makefiles/ms.common
trunk/BaseTools/Source/C/Makefiles/ms.lib
trunk/BaseTools/Source/C/Makefiles/ms.rule
trunk/BaseTools/Source/C/PyEfiCompressor/Makefile
trunk/BaseTools/Source/C/PyUtility/Makefile
trunk/BaseTools/Source/C/VolInfo/VolInfo.c
trunk/BaseTools/Source/C/VolInfo/VolInfo.h
trunk/BaseTools/Source/Python/AutoGen/BuildEngine.py
trunk/BaseTools/Source/Python/AutoGen/GenC.py
trunk/BaseTools/Source/Python/AutoGen/GenMake.py
trunk/BaseTools/Source/Python/Common/BuildToolError.py
trunk/BaseTools/Source/Python/Common/EdkLogger.py
trunk/BaseTools/Source/Python/Common/GlobalData.py
trunk/BaseTools/Source/Python/Common/Misc.py
trunk/BaseTools/Source/Python/Ecc/CLexer.py
trunk/BaseTools/Source/Python/Ecc/CParser.py
trunk/BaseTools/Source/Python/Ecc/MetaFileWorkspace/MetaFileParser.py
trunk/BaseTools/Source/Python/Ecc/Xml/__init__.py
trunk/BaseTools/Source/Python/Eot/CLexer.py
trunk/BaseTools/Source/Python/Eot/CParser.py
trunk/BaseTools/Source/Python/Eot/FvImage.py
trunk/BaseTools/Source/Python/GenFds/EfiSection.py
trunk/BaseTools/Source/Python/GenFds/Fv.py
trunk/BaseTools/Source/Python/GenFds/GenFds.py
trunk/BaseTools/Source/Python/GenFds/GenFdsGlobalVariable.py
trunk/BaseTools/Source/Python/GenPatchPcdTable/GenPatchPcdTable.py
trunk/BaseTools/Source/Python/PatchPcdValue/PatchPcdValue.py
trunk/BaseTools/Source/Python/Trim/Trim.py
trunk/BaseTools/Source/Python/UPT/Core/__init__.py
trunk/BaseTools/Source/Python/UPT/GenMetaFile/__init__.py
trunk/BaseTools/Source/Python/UPT/Library/ExpressionValidate.py
trunk/BaseTools/Source/Python/UPT/Library/GlobalData.py
trunk/BaseTools/Source/Python/UPT/Library/Misc.py
trunk/BaseTools/Source/Python/UPT/Library/Xml/__init__.py
trunk/BaseTools/Source/Python/UPT/Library/__init__.py
trunk/BaseTools/Source/Python/UPT/Logger/Log.py
trunk/BaseTools/Source/Python/UPT/Logger/ToolError.py
trunk/BaseTools/Source/Python/UPT/Xml/__init__.py
trunk/BaseTools/Source/Python/Workspace/MetaFileParser.py
trunk/BaseTools/Source/Python/sitecustomize.py
trunk/BaseTools/Tests/CToolsTests.py
trunk/BaseTools/Tests/CheckPythonSyntax.py
trunk/BaseTools/Tests/PythonToolsTests.py
trunk/BaseTools/Tests/RunTests.py
trunk/BaseTools/Tests/TestTools.py
trunk/BaseTools/Tests/TianoCompress.py
trunk/BaseTools/building-gcc.txt
trunk/BaseTools/gcc/mingw-gcc-build.py
Modified: trunk/BaseTools/Conf/XMLSchema/DistributionPackage.xsd
===================================================================
--- trunk/BaseTools/Conf/XMLSchema/DistributionPackage.xsd 2014-01-23 01:02:47 UTC (rev 2647)
+++ trunk/BaseTools/Conf/XMLSchema/DistributionPackage.xsd 2014-01-23 05:00:23 UTC (rev 2648)
@@ -1,2767 +1,2767 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-Filename: DistributionPackage.xsd
-
-Copyright (c) 2008 - 2012, Intel Corporation. All rights reserved.
-
-This program and the accompanying materials are licensed and made available
-under the terms and conditions of the BSD License which may be found at
- http://opensource.org/licenses/bsd-license.php
-
-THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
-WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
-
--->
-<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified"
- targetNamespace="http://www.uefi.org/2012/1.0" xmlns="http://www.uefi.org/2012/1.0">
- <xs:element name="DistributionPackage">
- <xs:annotation>
- <xs:documentation xml:lang="en-us"> This schema defines the UEFI/PI Distribution Package description (PKG)
- file. It describes the content of:</xs:documentation>
- <xs:documentation xml:lang="en-us"> 1) Package descriptions with definitions and headers.</xs:documentation>
- <xs:documentation xml:lang="en-us"> 2) Modules in either source or binary format. (Note that Binary format
- is for FFS leaf section file types only, complete FFS files cannot be distributed using this
- distribution format.) </xs:documentation>
- <xs:documentation xml:lang="en-us"> 3) The distribution of custom tools used to modify the binary images to
- create UEFI/PI compliant images. </xs:documentation>
- <xs:documentation xml:lang="en-us"> 4) Finally, it can be used to distribute other miscellaneous content
- that is not specific to UEFI/PI images. </xs:documentation>
- <xs:documentation xml:lang="en-us"> The Package Surface Area describes the content of packages, while the
- Module Surface Area provides information relevant to source and/or binary distributions.
- </xs:documentation>
- </xs:annotation>
- <xs:complexType>
- <xs:sequence>
- <xs:element ref="DistributionHeader" minOccurs="1" maxOccurs="1">
- <xs:annotation>
- <xs:documentation xml:lang="en-us"> This header contains (legal) information usually required
- for distributing both binary and/or source code. </xs:documentation>
- </xs:annotation>
- </xs:element>
- <xs:element ref="PackageSurfaceArea" minOccurs="0" maxOccurs="unbounded">
- <xs:annotation>
- <xs:documentation xml:lang="en-us"> The list of packages in this distribution. </xs:documentation>
- <xs:documentation xml:lang="en-us"> Packages are groups of files and/or modules that are similar
- in nature.</xs:documentation>
- <xs:documentation xml:lang="en-us"> Packages are uniquely identified by a package GUID and a
- package version. </xs:documentation>
- <xs:documentation xml:lang="en-us"> A package can declare public mappings of C names to GUID
- values. </xs:documentation>
- <xs:documentation xml:lang="en-us"> A package can provide header files for library classes
- and/or other industry standard definitions. </xs:documentation>
- <xs:documentation xml:lang="en-us"> A package can also declare public mappings of platform
- configuration database (PCD) "knobs" to control features and operation of modules
- within a platform. </xs:documentation>
- <xs:documentation xml:lang="en-us"> Finally, a package lists the library instances and/or
- modules that are provided in a distribution package. </xs:documentation>
- </xs:annotation>
- </xs:element>
- <xs:element ref="ModuleSurfaceArea" minOccurs="0" maxOccurs="unbounded">
- <xs:annotation>
- <xs:documentation xml:lang="en-us"> The listing of UEFI/PI compliant modules in this
- distribution that are NOT part of a Package. Every module that is provided as part of a
- package needs to be described in a PackageSurfaceArea.Modules section. </xs:documentation>
- <xs:documentation xml:lang="en-us"> The ModuleSurfaceArea section describes how each module in a
- distribution is coded, or, in the case of a binary module distribution, how it was built. </xs:documentation>
- <xs:documentation xml:lang="en-us"> UEFI/PI compliant libraries and modules are uniquely
- identified by the Module's GUID and version number. </xs:documentation>
- <xs:documentation xml:lang="en-us"> This section will typically be used for modules that don't
- require any additional files that would be included in a package. For example, the Enhanced
- FAT driver binary does not need to have a package description, as no additional files are
- provided. </xs:documentation>
- </xs:annotation>
- </xs:element>
- <xs:element ref="Tools" minOccurs="0" maxOccurs="unbounded">
- <xs:annotation>
- <xs:documentation xml:lang="en-us"> This section is for distributing vendor specific executable
- tools, tool source code and/or configuration files. These tools are primarily for
- manipulating code and/or binary images. </xs:documentation>
- <xs:documentation xml:lang="en-us"> Tools in this section can:</xs:documentation>
- <xs:documentation xml:lang="en-us"> 1) Parse build meta-data files to create source code files
- and build scripts. </xs:documentation>
- <xs:documentation xml:lang="en-us"> 2) Modify image files to conform to UEFI/PI specifications. </xs:documentation>
- <xs:documentation xml:lang="en-us"> 3) Generate binary files from certain types of text/unicode
- files. </xs:documentation>
- <xs:documentation xml:lang="en-us"> 4) Generate PCI Option Roms or Firmware Device images. </xs:documentation>
- <xs:documentation xml:lang="en-us"> 5) Implement external encoding/decoding/signature/GUIDed
- tools. </xs:documentation>
- <xs:documentation xml:lang="en-us"> 6) Distribution Package create/install/remove tools.
- </xs:documentation>
- </xs:annotation>
- </xs:element>
- <xs:element ref="MiscellaneousFiles" minOccurs="0" maxOccurs="unbounded">
- <xs:annotation>
- <xs:documentation xml:lang="en-us"> The list of miscellaneous files in this distribution. Any
- files that are not listed in either the Package, Module or Tools sections can be listed
- here. This section can be used to distribute specifications for packages and modules that
- are not "industry standards" such as a specification for a chipset or a video
- device. </xs:documentation>
- </xs:annotation>
- </xs:element>
- <xs:element ref="UserExtensions" minOccurs="0" maxOccurs="unbounded">
- <xs:annotation>
- <xs:documentation xml:lang="en-us"> The UserExtensions section is used to disseminate processing
- instructions that may be custom to the content provided by the distribution. This section
- contains information that is common to all aspects of this disribution. </xs:documentation>
- </xs:annotation>
- </xs:element>
- </xs:sequence>
-
- </xs:complexType>
- </xs:element>
- <!-- End of the DistributionPackage Description -->
-
- <xs:element name="DistributionHeader">
- <xs:annotation>
- <xs:documentation xml:lang="en-us"> This section defines the content of the UEIF/PI compliant Distribution
- Package Header. This is the only required element of a UEFI/PI compliant distribution package.
- </xs:documentation>
- </xs:annotation>
- <xs:complexType>
- <xs:sequence>
- <xs:element minOccurs="1" maxOccurs="1" name="Name">
- <xs:annotation>
- <xs:documentation xml:lang="en-us"> This is the User Interface Name for this Distribution
- Package. </xs:documentation>
- <xs:documentation xml:lang="en-us"> Each Distribution Package is uniquely identified by it's
- GUID and Version number. </xs:documentation>
- </xs:annotation>
- <xs:complexType>
- <xs:simpleContent>
- <xs:extension base="xs:normalizedString">
- <xs:attribute name="BaseName" type="xs:NMTOKEN" use="optional">
- <xs:annotation>
- <xs:documentation xml:lang="en-us"> The reference name of the Distribution
- Package file. This single word name can be used by tools as a keyword or for
- directory and/or file creation. </xs:documentation>
- <xs:documentation xml:lang="en-us"> White space and special characters (dash and
- underscore characters may be used) are not permitted in this name.
- </xs:documentation>
- </xs:annotation>
- </xs:attribute>
- </xs:extension>
- </xs:simpleContent>
- </xs:complexType>
- </xs:element>
- <xs:element minOccurs="1" maxOccurs="1" name="GUID">
- <xs:annotation>
- <xs:documentation xml:lang="en-us"> This 128-bit GUID and the Version attribute uniquely
- identify this Distribution Package. </xs:documentation>
- <xs:documentation xml:lang="en-us"> Backward compatible releases of a distribution package need
- only change the version number, while non-backward compatible changes require the GUID to
- change (resetting the version number to 1.0 is optional.) </xs:documentation>
- </xs:annotation>
- <xs:complexType>
- <xs:simpleContent>
- <xs:extension base="RegistryFormatGuid">
- <xs:attribute name="Version" type="xs:decimal" use="required">
- <xs:annotation>
- <xs:documentation xml:lang="en-us"> This value, along with the GUID, is used to
- uniquely identify this object. The higher the number, the more recent the
- content. </xs:documentation>
- </xs:annotation>
- </xs:attribute>
- </xs:extension>
- </xs:simpleContent>
- </xs:complexType>
- </xs:element>
- <xs:element minOccurs="1" maxOccurs="1" name="Vendor" type="xs:normalizedString">
- <xs:annotation>
- <xs:documentation xml:lang="en-us"> A string identifying who created this distribution package.
- </xs:documentation>
- </xs:annotation>
- </xs:element>
- <xs:element minOccurs="1" maxOccurs="1" name="Date" type="xs:dateTime">
- <xs:annotation>
- <xs:documentation xml:lang="en-us"> The date and time this distribution was created. The format
- is: YYYY-MM-DDThh:mm:ss, for example: 2001-01-31T13:30:00 (note the T character separator
- between the calendar date and the time. </xs:documentation>
- </xs:annotation>
- </xs:element>
- <xs:element minOccurs="1" maxOccurs="unbounded" name="Copyright">
- <xs:annotation>
- <xs:documentation xml:lang="en-us"> The copyright for this file that is generated by the creator
- of the distribution. If a derivative work is generated from an existing distribution, then
- the existing copyright must be maintained, and additional copyrights may be appended to the
- end of this element. It may also be the primary copyright for all code provided in the
- Distribution Package. </xs:documentation>
- </xs:annotation>
- <xs:complexType>
- <xs:simpleContent>
- <xs:extension base="xs:string">
- <xs:attribute name="Lang" type="xs:language" default="en-us" use="optional"/>
- </xs:extension>
- </xs:simpleContent>
- </xs:complexType>
-
- </xs:element>
- <xs:element minOccurs="1" maxOccurs="unbounded" name="License">
- <xs:annotation>
- <xs:documentation xml:lang="en-us"> A license that describes any restrictions on the use of this
- distribution. If a derivative work is allowed by the original license and a derivative work
- is generated from an existing distribution, then the existing license must be maintained,
- and additional licenses may be appended to the end of this element. It may also be the
- primary license for all code provided in the distribution file. Alternatively, this may
- point to a filename that contains the License. The file (included in the content zip file)
- will be stored in the same location as the distribution package's .pkg file.
- </xs:documentation>
- </xs:annotation>
- <xs:complexType>
- <xs:simpleContent>
- <xs:extension base="xs:string">
- <xs:attribute name="Lang" type="xs:language" default="en-us" use="optional"/>
- </xs:extension>
- </xs:simpleContent>
- </xs:complexType>
- </xs:element>
- <xs:element minOccurs="1" maxOccurs="unbounded" name="Abstract">
- <xs:annotation>
- <xs:documentation xml:lang="en-us"> A one line description of the Distribution Package.
- </xs:documentation>
- </xs:annotation>
- <xs:complexType>
- <xs:simpleContent>
- <xs:extension base="xs:normalizedString">
- <xs:attribute name="Lang" type="xs:language" default="en-us" use="optional"/>
- </xs:extension>
- </xs:simpleContent>
- </xs:complexType>
- </xs:element>
- <xs:element minOccurs="0" maxOccurs="unbounded" name="Description">
- <xs:annotation>
- <xs:documentation xml:lang="en-us"> A complete description of the Distribution Package. This
- description may include the release name of the file, the version of the file, and a
- complete description of the file contents and/or features including a description of the
- updates since the previous file release. </xs:documentation>
- </xs:annotation>
- <xs:complexType>
- <xs:simpleContent>
- <xs:extension base="xs:string">
- <xs:attribute name="Lang" type="xs:language" default="en-us" use="optional"/>
- </xs:extension>
- </xs:simpleContent>
- </xs:complexType>
- </xs:element>
- <xs:element minOccurs="0" maxOccurs="1" name="Signature" type="Md5Sum">
- <xs:annotation>
- <xs:documentation xml:lang="en-us"> The packaging utilities will use this MD5 sum value of the
- included ZIP file containing files and/or code. If this element is not present, then
- installation tools should assume that the content is correct, or that other methods may be
- needed to verify content. </xs:documentation>
- </xs:annotation>
- </xs:element>
- <xs:element minOccurs="1" maxOccurs="1" name="XmlSpecification" type="xs:decimal" default="1.1">
- <xs:annotation>
- <xs:documentation xml:lang="en-us"> This version of this XML Schema is 1.1 </xs:documentation>
- <xs:documentation xml:lang="en-us"> Changes to 1.1 from 1.0 </xs:documentation>
- <xs:documentation xml:lang="en-us"> #1 Updated to present date and new version which is
- important to reflect the present state of the matter</xs:documentation>
- <xs:documentation xml:lang="en-us"> #2 Added definition/enumeration of UNDEFIND type 2 is
- important since there is a large body of legacy code for which the GUID’s and other
- code/data objects were not decorated with their usage. This document will allow for
- importing today’s source artifacts and producing decorations using the ‘Undefined’ versus
- having an error</xs:documentation>
- <xs:documentation xml:lang="en-us">#3 Allow for inclusion of ARM and future architecture
- types</xs:documentation>
- </xs:annotation>
- </xs:element>
- </xs:sequence>
- <xs:attribute name="ReadOnly" type="xs:boolean" default="false" use="optional">
- <xs:annotation>
- <xs:documentation xml:lang="en-us"> If set to true, all content within this Distribution Package
- should NOT be modified. The default permits modification of all content. </xs:documentation>
- </xs:annotation>
- </xs:attribute>
- <xs:attribute name="RePackage" type="xs:boolean" default="false" use="optional">
- <xs:annotation>
- <xs:documentation xml:lang="en-us"> If set to true, then the content can be repackaged into another
- distribution package. The default prohibits repackaging the Distribution content.
- </xs:documentation>
- </xs:annotation>
- </xs:attribute>
- </xs:complexType>
- </xs:element>
- <!-- End of the DistributionHeader element. -->
-
- <xs:element name="PackageSurfaceArea">
- <xs:annotation>
- <xs:documentation xml:lang="en-us"> A package is a collection of related objects - Includes, Libraries and
- Modules. </xs:documentation>
- <xs:documentation xml:lang="en-us"> Each package is uniquely identified by it's GUID and Version number.
- Backward compatible releases of a package need only change the version number, while non-backward
- compatible changes require the GUID to change (resetting the version number to 1.0 is optional.)
- </xs:documentation>
- </xs:annotation>
- <xs:complexType>
- <xs:sequence>
-
- <xs:element minOccurs="1" maxOccurs="1" name="Header">
- <xs:complexType>
- <xs:sequence>
- <xs:element minOccurs="1" maxOccurs="1" name="Name">
- <xs:annotation>
- <xs:documentation xml:lang="en-us"> This is the User Interface Name for this
- package. </xs:documentation>
- </xs:annotation>
- <xs:complexType>
- <xs:simpleContent>
- <xs:extension base="xs:normalizedString">
- <xs:attribute name="BaseName" type="xs:NMTOKEN" use="required">
- <xs:annotation>
- <xs:documentation xml:lang="en-us"> This is a single word BaseName
- of the package. This BaseName can be used by tools as a keyword
- and for directory/file creation. </xs:documentation>
- </xs:annotation>
- </xs:attribute>
- </xs:extension>
- </xs:simpleContent>
- </xs:complexType>
- </xs:element>
- <xs:element minOccurs="1" maxOccurs="1" name="GUID">
- <xs:annotation>
- <xs:documentation xml:lang="en-us"> This GUID and the Version attribute uniquely
- identify a given package. </xs:documentation>
- </xs:annotation>
- <xs:complexType>
- <xs:simpleContent>
- <xs:extension base="RegistryFormatGuid">
- <xs:attribute name="Version" type="xs:decimal" use="required">
- <xs:annotation>
- <xs:documentation xml:lang="en-us"> This value, along with the GUID,
- is used to uniquely identify this object. </xs:documentation>
- <xs:documentation xml:lang="en-us"> Backward compatible changes must
- make sure this number is incremented from the most recent
- version. Non-backward compatible changes require a new GUID, and
- the version can be reset. </xs:documentation>
- </xs:annotation>
- </xs:attribute>
- </xs:extension>
- </xs:simpleContent>
- </xs:complexType>
- </xs:element>
- <xs:element minOccurs="0" maxOccurs="unbounded" name="Copyright">
- <xs:annotation>
- <xs:documentation xml:lang="en-us"> If the package requires a different copyright
- than the distribution package, this element can list one or more copyright
- lines. </xs:documentation>
- </xs:annotation>
- <xs:complexType>
- <xs:simpleContent>
- <xs:extension base="xs:string">
- <xs:attribute name="Lang" type="xs:language" default="en-us" use="optional"
- />
- </xs:extension>
- </xs:simpleContent>
- </xs:complexType>
-
- </xs:element>
- <xs:element minOccurs="0" maxOccurs="unbounded" name="License">
- <xs:annotation>
- <xs:documentation xml:lang="en-us"> If the package requires licenses that are
- different from the distribution package license, this element can contain one or
- more license text paragraphs (or license filenames.) </xs:documentation>
- </xs:annotation>
- <xs:complexType>
- <xs:simpleContent>
- <xs:extension base="xs:string">
- <xs:attribute name="Lang" type="xs:language" default="en-us" use="optional"
- ...
[truncated message content] |
|
From: <oli...@us...> - 2014-02-24 14:18:41
|
Revision: 2654
http://sourceforge.net/p/edk2-buildtools/code/2654
Author: oliviermartin
Date: 2014-02-24 14:18:37 +0000 (Mon, 24 Feb 2014)
Log Message:
-----------
BaseTools: Add the latests versions of Visual Studio to build
Both edksetup.bat and BaseTools/toolsetup.bat had chunks of code to
identify the version of Visual Studio from the environment.
They both needed updating to allow for more recent versions.
To simplify future maintenance a common .bat file is added and
used by both.
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Olivier Martin <oli...@ar...>
Reviewed-by Yingke Liu <yin...@in...>
Modified Paths:
--------------
trunk/BaseTools/toolsetup.bat
Added Paths:
-----------
trunk/BaseTools/get_vsvars.bat
Added: trunk/BaseTools/get_vsvars.bat
===================================================================
--- trunk/BaseTools/get_vsvars.bat (rev 0)
+++ trunk/BaseTools/get_vsvars.bat 2014-02-24 14:18:37 UTC (rev 2654)
@@ -0,0 +1,46 @@
+@REM @file
+@REM Windows batch file to find the Visual Studio set up script
+@REM
+@REM Copyright (c) 2013-2014, ARM Limited. All rights reserved.
+
+@REM This program and the accompanying materials
+@REM are licensed and made available under the terms and conditions of the BSD License
+@REM which accompanies this distribution. The full text of the license may be found at
+@REM http://opensource.org/licenses/bsd-license.php
+@REM
+@REM THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
+@REM WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
+@REM
+
+
+@echo off
+goto :main
+
+:read_vsvars
+@rem Do nothing if already found, otherwise call vsvars32.bat if there
+if defined VCINSTALLDIR goto :EOF
+ set GET_VSVARS_BAT_CHECK_DIR=%*
+ set GET_VSVARS_BAT_CHECK_DIR=%GET_VSVARS_BAT_CHECK_DIR:"=%
+ if exist "%GET_VSVARS_BAT_CHECK_DIR%\vsvars32.bat" call "%GET_VSVARS_BAT_CHECK_DIR%\vsvars32.bat"
+:vsvars_done
+goto :EOF
+
+
+REM NOTE: This file will find the most recent Visual Studio installation
+REM apparent from the environment.
+REM To use an older version, modify your environment set up.
+REM (Or invoke the relevant vsvars32 file beforehand).
+
+:main
+if defined VCINSTALLDIR goto :done
+ if defined VS140COMNTOOLS call :read_vsvars "%VS140COMNTOOLS%"
+ if defined VS130COMNTOOLS call :read_vsvars "%VS130COMNTOOLS%"
+ if defined VS120COMNTOOLS call :read_vsvars "%VS120COMNTOOLS%"
+ if defined VS110COMNTOOLS call :read_vsvars "%VS110COMNTOOLS%"
+ if defined VS100COMNTOOLS call :read_vsvars "%VS100COMNTOOLS%"
+ if defined VS90COMNTOOLS call :read_vsvars "%VS90COMNTOOLS%"
+ if defined VS80COMNTOOLS call :read_vsvars "%VS80COMNTOOLS%"
+ if defined VS71COMNTOOLS call :read_vsvars "%VS71COMNTOOLS%"
+
+:done
+set GET_VSVARS_BAT_CHECK_DIR=
Modified: trunk/BaseTools/toolsetup.bat
===================================================================
--- trunk/BaseTools/toolsetup.bat 2014-02-24 14:16:30 UTC (rev 2653)
+++ trunk/BaseTools/toolsetup.bat 2014-02-24 14:18:37 UTC (rev 2654)
@@ -292,31 +292,16 @@
echo PYTHON_FREEZER_PATH = %PYTHON_FREEZER_PATH%
echo.
- if defined VCINSTALLDIR goto VisualStudioAvailable
- if defined VS100COMNTOOLS (
- call "%VS100COMNTOOLS%\vsvars32.bat"
- ) else (
- if defined VS90COMNTOOLS (
- call "%VS90COMNTOOLS%\vsvars32.bat"
- ) else (
- if defined VS80COMNTOOLS (
- call "%VS80COMNTOOLS%\vsvars32.bat"
- ) else (
- if defined VS71COMNTOOLS (
- call "%VS71COMNTOOLS%\vsvars32.bat"
- ) else (
- echo.
- echo !!! ERROR !!!! Cannot find Visual Studio, required to build C tools !!!
- echo.
- goto end
- )
- )
- )
+ call "%EDK_TOOLS_PATH%\get_vsvars.bat"
+ if not defined VCINSTALLDIR (
+ @echo.
+ @echo !!! ERROR !!!! Cannot find Visual Studio, required to build C tools !!!
+ @echo.
+ goto end
)
:VisualStudioAvailable
- if defined FORCE_REBUILD goto CleanAndBuild
- goto IncrementalBuild
+ if not defined FORCE_REBUILD goto IncrementalBuild
:CleanAndBuild
pushd .
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|