Revision: 15809
          http://sourceforge.net/p/edk2/code/15809
Author:   hchen30
Date:     2014-08-15 03:06:48 +0000 (Fri, 15 Aug 2014)
Log Message:
-----------
There is a limitation on WINDOWS OS for the length of entire file path 
can?\226?\128?\153t be larger than 255. There is an OS API provided by 
Microsoft to add ?\226?\128?\156\\?\?\226?\128?\157 before the path header to 
support the long file path. Enable this feature on basetools.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Hess Chen <[email protected]>
Reviewed-by: Yingke Liu <[email protected]>

Modified Paths:
--------------
    trunk/edk2/BaseTools/Source/C/BootSectImage/bootsectimage.c
    trunk/edk2/BaseTools/Source/C/Common/CommonLib.c
    trunk/edk2/BaseTools/Source/C/Common/CommonLib.h
    trunk/edk2/BaseTools/Source/C/Common/MemoryFile.h
    trunk/edk2/BaseTools/Source/C/Common/OsPath.c
    trunk/edk2/BaseTools/Source/C/Common/ParseInf.c
    trunk/edk2/BaseTools/Source/C/Common/ParseInf.h
    trunk/edk2/BaseTools/Source/C/Common/SimpleFileParsing.c
    trunk/edk2/BaseTools/Source/C/EfiLdrImage/EfiLdrImage.c
    trunk/edk2/BaseTools/Source/C/EfiRom/EfiRom.c
    trunk/edk2/BaseTools/Source/C/GenBootSector/GenBootSector.c
    trunk/edk2/BaseTools/Source/C/GenCrc32/GenCrc32.c
    trunk/edk2/BaseTools/Source/C/GenFfs/GenFfs.c
    trunk/edk2/BaseTools/Source/C/GenFv/GenFv.c
    trunk/edk2/BaseTools/Source/C/GenFv/GenFvInternalLib.c
    trunk/edk2/BaseTools/Source/C/GenFv/GenFvInternalLib.h
    trunk/edk2/BaseTools/Source/C/GenFw/GenFw.c
    trunk/edk2/BaseTools/Source/C/GenPage/GenPage.c
    trunk/edk2/BaseTools/Source/C/GenSec/GenSec.c
    trunk/edk2/BaseTools/Source/C/GenVtf/GenVtf.c
    trunk/edk2/BaseTools/Source/C/GnuGenBootSector/GnuGenBootSector.c
    trunk/edk2/BaseTools/Source/C/Split/Split.c
    trunk/edk2/BaseTools/Source/C/VfrCompile/VfrCompiler.cpp
    trunk/edk2/BaseTools/Source/C/VfrCompile/VfrUtilityLib.cpp
    trunk/edk2/BaseTools/Source/C/VolInfo/VolInfo.c
    trunk/edk2/BaseTools/Source/Python/AutoGen/AutoGen.py
    trunk/edk2/BaseTools/Source/Python/AutoGen/BuildEngine.py
    trunk/edk2/BaseTools/Source/Python/AutoGen/GenDepex.py
    trunk/edk2/BaseTools/Source/Python/AutoGen/GenMake.py
    trunk/edk2/BaseTools/Source/Python/AutoGen/StrGather.py
    trunk/edk2/BaseTools/Source/Python/AutoGen/UniClassObject.py
    trunk/edk2/BaseTools/Source/Python/BPDG/BPDG.py
    trunk/edk2/BaseTools/Source/Python/BPDG/GenVpd.py
    trunk/edk2/BaseTools/Source/Python/Common/Database.py
    trunk/edk2/BaseTools/Source/Python/Common/DecClassObject.py
    trunk/edk2/BaseTools/Source/Python/Common/Dictionary.py
    trunk/edk2/BaseTools/Source/Python/Common/DscClassObject.py
    trunk/edk2/BaseTools/Source/Python/Common/EdkIIWorkspace.py
    trunk/edk2/BaseTools/Source/Python/Common/EdkIIWorkspaceBuild.py
    trunk/edk2/BaseTools/Source/Python/Common/EdkLogger.py
    trunk/edk2/BaseTools/Source/Python/Common/FdfParserLite.py
    trunk/edk2/BaseTools/Source/Python/Common/InfClassObject.py
    trunk/edk2/BaseTools/Source/Python/Common/MigrationUtilities.py
    trunk/edk2/BaseTools/Source/Python/Common/Misc.py
    trunk/edk2/BaseTools/Source/Python/Common/String.py
    trunk/edk2/BaseTools/Source/Python/Common/TargetTxtClassObject.py
    trunk/edk2/BaseTools/Source/Python/Common/ToolDefClassObject.py
    trunk/edk2/BaseTools/Source/Python/Common/VpdInfoFile.py
    trunk/edk2/BaseTools/Source/Python/Ecc/Check.py
    trunk/edk2/BaseTools/Source/Python/Ecc/CodeFragmentCollector.py
    trunk/edk2/BaseTools/Source/Python/Ecc/Configuration.py
    trunk/edk2/BaseTools/Source/Python/Ecc/Database.py
    trunk/edk2/BaseTools/Source/Python/Ecc/Ecc.py
    trunk/edk2/BaseTools/Source/Python/Ecc/EccGlobalData.py
    trunk/edk2/BaseTools/Source/Python/Ecc/Exception.py
    trunk/edk2/BaseTools/Source/Python/Ecc/FileProfile.py
    trunk/edk2/BaseTools/Source/Python/Ecc/MetaDataParser.py
    trunk/edk2/BaseTools/Source/Python/Ecc/MetaFileWorkspace/MetaDataTable.py
    trunk/edk2/BaseTools/Source/Python/Ecc/MetaFileWorkspace/MetaFileParser.py
    trunk/edk2/BaseTools/Source/Python/Ecc/Xml/XmlRoutines.py
    trunk/edk2/BaseTools/Source/Python/Ecc/c.py
    trunk/edk2/BaseTools/Source/Python/Eot/CodeFragmentCollector.py
    trunk/edk2/BaseTools/Source/Python/Eot/Database.py
    trunk/edk2/BaseTools/Source/Python/Eot/Eot.py
    trunk/edk2/BaseTools/Source/Python/Eot/EotGlobalData.py
    trunk/edk2/BaseTools/Source/Python/Eot/FileProfile.py
    trunk/edk2/BaseTools/Source/Python/Eot/FvImage.py
    trunk/edk2/BaseTools/Source/Python/Eot/InfParserLite.py
    trunk/edk2/BaseTools/Source/Python/Eot/Parser.py
    trunk/edk2/BaseTools/Source/Python/Eot/Report.py
    trunk/edk2/BaseTools/Source/Python/Eot/c.py
    trunk/edk2/BaseTools/Source/Python/GenFds/AprioriSection.py
    trunk/edk2/BaseTools/Source/Python/GenFds/Capsule.py
    trunk/edk2/BaseTools/Source/Python/GenFds/CompressSection.py
    trunk/edk2/BaseTools/Source/Python/GenFds/DataSection.py
    trunk/edk2/BaseTools/Source/Python/GenFds/DepexSection.py
    trunk/edk2/BaseTools/Source/Python/GenFds/EfiSection.py
    trunk/edk2/BaseTools/Source/Python/GenFds/Fd.py
    trunk/edk2/BaseTools/Source/Python/GenFds/FdfParser.py
    trunk/edk2/BaseTools/Source/Python/GenFds/FfsFileStatement.py
    trunk/edk2/BaseTools/Source/Python/GenFds/FfsInfStatement.py
    trunk/edk2/BaseTools/Source/Python/GenFds/Fv.py
    trunk/edk2/BaseTools/Source/Python/GenFds/FvImageSection.py
    trunk/edk2/BaseTools/Source/Python/GenFds/GenFds.py
    trunk/edk2/BaseTools/Source/Python/GenFds/GenFdsGlobalVariable.py
    trunk/edk2/BaseTools/Source/Python/GenFds/GuidSection.py
    trunk/edk2/BaseTools/Source/Python/GenFds/OptRomFileStatement.py
    trunk/edk2/BaseTools/Source/Python/GenFds/OptionRom.py
    trunk/edk2/BaseTools/Source/Python/GenFds/Region.py
    trunk/edk2/BaseTools/Source/Python/GenFds/Section.py
    trunk/edk2/BaseTools/Source/Python/GenFds/UiSection.py
    trunk/edk2/BaseTools/Source/Python/GenFds/VerSection.py
    trunk/edk2/BaseTools/Source/Python/GenFds/Vtf.py
    trunk/edk2/BaseTools/Source/Python/GenPatchPcdTable/GenPatchPcdTable.py
    trunk/edk2/BaseTools/Source/Python/PatchPcdValue/PatchPcdValue.py
    trunk/edk2/BaseTools/Source/Python/Table/TableEotReport.py
    trunk/edk2/BaseTools/Source/Python/Table/TableFile.py
    trunk/edk2/BaseTools/Source/Python/Table/TableReport.py
    trunk/edk2/BaseTools/Source/Python/TargetTool/TargetTool.py
    trunk/edk2/BaseTools/Source/Python/Trim/Trim.py
    trunk/edk2/BaseTools/Source/Python/Workspace/BuildClassObject.py
    trunk/edk2/BaseTools/Source/Python/Workspace/MetaDataTable.py
    trunk/edk2/BaseTools/Source/Python/Workspace/MetaFileParser.py
    trunk/edk2/BaseTools/Source/Python/Workspace/WorkspaceDatabase.py
    trunk/edk2/BaseTools/Source/Python/build/BuildReport.py
    trunk/edk2/BaseTools/Source/Python/build/build.py

Added Paths:
-----------
    trunk/edk2/BaseTools/Source/Python/Common/LongFilePathOs.py
    trunk/edk2/BaseTools/Source/Python/Common/LongFilePathOsPath.py
    trunk/edk2/BaseTools/Source/Python/Common/LongFilePathSupport.py

Modified: trunk/edk2/BaseTools/Source/C/BootSectImage/bootsectimage.c
===================================================================
--- trunk/edk2/BaseTools/Source/C/BootSectImage/bootsectimage.c 2014-08-14 
20:42:40 UTC (rev 15808)
+++ trunk/edk2/BaseTools/Source/C/BootSectImage/bootsectimage.c 2014-08-15 
03:06:48 UTC (rev 15809)
@@ -4,7 +4,7 @@
   Patch the BPB information in boot sector image file.
   Patch the MBR code in MBR image file.
 
-Copyright (c) 2006 - 2010, Intel Corporation. All rights reserved.<BR>
+Copyright (c) 2006 - 2014, 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        
@@ -116,7 +116,7 @@
   FILE *FileHandle;
   int  result;
 
-  FileHandle = fopen (FileName, "r+b");
+  FileHandle = fopen (LongFilePath (FileName), "r+b");
   if (FileHandle == NULL) {
     DebugMsg (NULL, 0, DEBUG_ERROR, NULL, "Open file: %s", FileName);
     return 0;
@@ -154,7 +154,7 @@
   FILE *FileHandle;
   int  result;
 
-  FileHandle = fopen (FileName, "rb");
+  FileHandle = fopen (LongFilePath (FileName), "rb");
   if (FileHandle == NULL) {
     DebugMsg (NULL, 0, DEBUG_ERROR, NULL, "ERROR: E0001: Error opening file: 
%s", FileName);
     return 0;

Modified: trunk/edk2/BaseTools/Source/C/Common/CommonLib.c
===================================================================
--- trunk/edk2/BaseTools/Source/C/Common/CommonLib.c    2014-08-14 20:42:40 UTC 
(rev 15808)
+++ trunk/edk2/BaseTools/Source/C/Common/CommonLib.c    2014-08-15 03:06:48 UTC 
(rev 15809)
@@ -1,6 +1,6 @@
 /** @file
 
-Copyright (c) 2004 - 2008, Intel Corporation. All rights reserved.<BR>
+Copyright (c) 2004 - 2014, 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        
@@ -23,6 +23,11 @@
 #include <string.h>
 #include <stdlib.h>
 #include <ctype.h>
+#ifdef __GNUC__
+#include <unistd.h>
+#else
+#include <direct.h>
+#endif
 #include "CommonLib.h"
 #include "EfiUtilityMsgs.h"
 
@@ -196,7 +201,7 @@
   //
   // Open the file
   //
-  InputFile = fopen (InputFileName, "rb");
+  InputFile = fopen (LongFilePath (InputFileName), "rb");
   if (InputFile == NULL) {
     Error (NULL, 0, 0001, "Error opening the input file", InputFileName);
     return EFI_ABORTED;
@@ -297,7 +302,7 @@
   //
   // Open the file
   //
-  OutputFile = fopen (OutputFileName, "wb");
+  OutputFile = fopen (LongFilePath (OutputFileName), "wb");
   if (OutputFile == NULL) {
     Error (NULL, 0, 0001, "Error opening the output file", OutputFileName);
     return EFI_ABORTED;
@@ -582,3 +587,124 @@
 }
 #endif
 #endif
+
+#define WINDOWS_EXTENSION_PATH "\\\\?\\"
+#define WINDOWS_UNC_EXTENSION_PATH "\\\\?\\UNC"
+
+//
+// Global data to store full file path. It is not required to be free. 
+//
+CHAR8 mCommonLibFullPath[MAX_LONG_FILE_PATH];
+
+CHAR8 *
+LongFilePath (
+ IN CHAR8 *FileName
+ )
+/*++
+
+Routine Description:
+  Convert FileName to the long file path, which can support larger than 260 
length. 
+
+Arguments:
+  FileName         - FileName. 
+
+Returns:
+  LongFilePath      A pointer to the converted long file path.
+  
+--*/
+{
+#ifdef __GNUC__
+  //
+  // __GNUC__ may not be good way to differentiate unix and windows. Need more 
investigation here. 
+  // unix has no limitation on file path. Just return FileName. 
+  //
+  return FileName;
+#else
+  CHAR8 *RootPath;
+  CHAR8 *PathPointer;
+  CHAR8 *NextPointer;
+  
+  PathPointer = (CHAR8 *) FileName;
+  
+  if (FileName != NULL) {
+    //
+    // Add the extension string first to support long file path. 
+    //
+    mCommonLibFullPath[0] = 0;
+    strcpy (mCommonLibFullPath, WINDOWS_EXTENSION_PATH);
+
+    if (strlen (FileName) > 1 && FileName[0] == '\\' && FileName[1] == '\\') {
+      //
+      // network path like \\server\share to \\?\UNC\server\share
+      //
+      strcpy (mCommonLibFullPath, WINDOWS_UNC_EXTENSION_PATH);
+      FileName ++;
+    } else if (strlen (FileName) < 3 || FileName[1] != ':' || (FileName[2] != 
'\\' && FileName[2] != '/')) {
+      //
+      // Relative file path. Convert it to absolute path. 
+      //
+      RootPath = getcwd (NULL, 0);
+      if (RootPath != NULL) {
+        strcat (mCommonLibFullPath, RootPath);
+        if (FileName[0] != '\\' && FileName[0] != '/') {
+          //
+          // Attach directory separator
+          //
+          strcat (mCommonLibFullPath, "\\");
+        }
+        free (RootPath);
+      }
+    }
+
+    //
+    // Construct the full file path
+    //
+    strcat (mCommonLibFullPath, FileName);
+    
+    //
+    // Convert directory separator '/' to '\\'
+    //
+    PathPointer = (CHAR8 *) mCommonLibFullPath;
+    do {
+      if (*PathPointer == '/') {
+        *PathPointer = '\\';
+      }
+    } while (*PathPointer ++ != '\0');
+    
+    //
+    // Convert "\\.\\" to "\\", because it doesn't work with 
WINDOWS_EXTENSION_PATH.
+    //
+    while ((PathPointer = strstr (mCommonLibFullPath, "\\.\\")) != NULL) {
+      *PathPointer = '\0';
+      strcat (mCommonLibFullPath, PathPointer + 2);
+    }
+    
+    //
+    // Convert "\\..\\" to last directory, because it doesn't work with 
WINDOWS_EXTENSION_PATH.
+    //
+    while ((PathPointer = strstr (mCommonLibFullPath, "\\..\\")) != NULL) {
+      NextPointer = PathPointer + 3;
+      do {
+        PathPointer --;
+      } while (PathPointer > mCommonLibFullPath && *PathPointer != ':' && 
*PathPointer != '\\');
+
+      if (*PathPointer == '\\') {
+        //
+        // Skip one directory
+        //
+        *PathPointer = '\0';
+        strcat (mCommonLibFullPath, NextPointer);
+      } else {
+        //
+        // No directory is found. Just break.
+        //
+        break;
+      }
+    }
+    
+    PathPointer = mCommonLibFullPath;
+  }
+  
+  return PathPointer;
+#endif
+}

Modified: trunk/edk2/BaseTools/Source/C/Common/CommonLib.h
===================================================================
--- trunk/edk2/BaseTools/Source/C/Common/CommonLib.h    2014-08-14 20:42:40 UTC 
(rev 15808)
+++ trunk/edk2/BaseTools/Source/C/Common/CommonLib.h    2014-08-15 03:06:48 UTC 
(rev 15809)
@@ -1,6 +1,6 @@
 /** @file
 
-Copyright (c) 2004 - 2008, Intel Corporation. All rights reserved.<BR>
+Copyright (c) 2004 - 2014, 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,6 +25,12 @@
 #include <Common/UefiBaseTypes.h>
 #include <Common/BuildVersion.h>
 #define PRINTED_GUID_BUFFER_SIZE  37  // including null-termination
+
+#define MAX_LONG_FILE_PATH 500
+
+#ifdef __cplusplus
+extern "C" {
+#endif
 //
 // Function declarations
 //
@@ -145,6 +151,27 @@
   )
 ;
 
+CHAR8 *
+LongFilePath (
+ IN CHAR8 *FileName
+);
+/*++
+
+Routine Description:
+  Convert FileName to the long file path, which can support larger than 260 
length. 
+
+Arguments:
+  FileName         - FileName. 
+
+Returns:
+  LongFilePath      A pointer to the converted long file path.
+  
+--*/
+
+#ifdef __cplusplus
+}
+#endif
+
 #define ASSERT(x) assert(x)
 
 #ifdef __GNUC__

Modified: trunk/edk2/BaseTools/Source/C/Common/MemoryFile.h
===================================================================
--- trunk/edk2/BaseTools/Source/C/Common/MemoryFile.h   2014-08-14 20:42:40 UTC 
(rev 15808)
+++ trunk/edk2/BaseTools/Source/C/Common/MemoryFile.h   2014-08-15 03:06:48 UTC 
(rev 15809)
@@ -1,6 +1,6 @@
 /** @file
 
-Copyright (c) 2004 - 2008, Intel Corporation. All rights reserved.<BR>
+Copyright (c) 2004 - 2014, 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        
@@ -26,10 +26,6 @@
 #include <stdlib.h>
 #include <Common/UefiBaseTypes.h>
 
-#ifndef _MAX_PATH
-#define _MAX_PATH 500
-#endif
-
 //
 // Common data structures
 //

Modified: trunk/edk2/BaseTools/Source/C/Common/OsPath.c
===================================================================
--- trunk/edk2/BaseTools/Source/C/Common/OsPath.c       2014-08-14 20:42:40 UTC 
(rev 15808)
+++ trunk/edk2/BaseTools/Source/C/Common/OsPath.c       2014-08-15 03:06:48 UTC 
(rev 15809)
@@ -1,6 +1,6 @@
 /** @file
 
-Copyright (c) 2007 - 2008, Intel Corporation. All rights reserved.<BR>
+Copyright (c) 2007 - 2014, 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        
@@ -22,6 +22,7 @@
 #include <stdio.h>
 #include <stdlib.h>
 #include <string.h>
+#include "CommonLib.h"
 #include "OsPath.h"
 
 //
@@ -294,7 +295,7 @@
 --*/
 {
   FILE    *InputFile;
-  InputFile = fopen (InputFileName, "rb");
+  InputFile = fopen (LongFilePath (InputFileName), "rb");
   if (InputFile == NULL) {
     return FALSE;
   } else {

Modified: trunk/edk2/BaseTools/Source/C/Common/ParseInf.c
===================================================================
--- trunk/edk2/BaseTools/Source/C/Common/ParseInf.c     2014-08-14 20:42:40 UTC 
(rev 15808)
+++ trunk/edk2/BaseTools/Source/C/Common/ParseInf.c     2014-08-15 03:06:48 UTC 
(rev 15809)
@@ -1,6 +1,6 @@
 /** @file
 
-Copyright (c) 2004 - 2010, Intel Corporation. All rights reserved.<BR>
+Copyright (c) 2004 - 2014, 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,6 +25,7 @@
 #include <stdlib.h>
 #include "EfiUtilityMsgs.h"
 #include "ParseInf.h"
+#include "CommonLib.h"
 
 CHAR8 *
 ReadLine (
@@ -46,7 +47,7 @@
 Arguments:
 
   InputFile     Memory file image.
-  InputBuffer   Buffer to read into, must be _MAX_PATH size.
+  InputBuffer   Buffer to read into, must be MaxLength size.
   MaxLength     The maximum size of the input buffer.
 
 Returns:
@@ -165,7 +166,7 @@
 
 --*/
 {
-  CHAR8 InputBuffer[_MAX_PATH];
+  CHAR8 InputBuffer[MAX_LONG_FILE_PATH];
   CHAR8 *CurrentToken;
 
   //
@@ -188,7 +189,7 @@
     //
     // Read a line
     //
-    ReadLine (InputFile, InputBuffer, _MAX_PATH);
+    ReadLine (InputFile, InputBuffer, MAX_LONG_FILE_PATH);
 
     //
     // Check if the section is found
@@ -222,7 +223,7 @@
   Section   The section to search for, a string within [].
   Token     The token to search for, e.g. EFI_PEIM_RECOVERY, followed by an = 
in the INF file.
   Instance  The instance of the token to search for.  Zero is the first 
instance.
-  Value     The string that holds the value following the =.  Must be 
_MAX_PATH in size.
+  Value     The string that holds the value following the =.  Must be 
MAX_LONG_FILE_PATH in size.
 
 Returns:
 
@@ -234,7 +235,7 @@
 
 --*/
 {
-  CHAR8   InputBuffer[_MAX_PATH];
+  CHAR8   InputBuffer[MAX_LONG_FILE_PATH];
   CHAR8   *CurrentToken;
   CHAR8   *Delimiter;
   BOOLEAN ParseError;
@@ -274,7 +275,7 @@
       //
       // Read a line from the file
       //
-      if (ReadLine (InputFile, InputBuffer, _MAX_PATH) == NULL) {
+      if (ReadLine (InputFile, InputBuffer, MAX_LONG_FILE_PATH) == NULL) {
         //
         // Error reading from input file
         //
@@ -604,7 +605,7 @@
 Arguments:
 
   InputFile     Stream pointer.
-  InputBuffer   Buffer to read into, must be _MAX_PATH size.
+  InputBuffer   Buffer to read into, must be MAX_LONG_FILE_PATH size.
 
 Returns:
 
@@ -624,7 +625,7 @@
   //
   // Read a line
   //
-  if (fgets (InputBuffer, _MAX_PATH, InputFile) == NULL) {
+  if (fgets (InputBuffer, MAX_LONG_FILE_PATH, InputFile) == NULL) {
     return NULL;
   }
   //
@@ -670,7 +671,7 @@
 
 --*/
 {
-  CHAR8 InputBuffer[_MAX_PATH];
+  CHAR8 InputBuffer[MAX_LONG_FILE_PATH];
   CHAR8 *CurrentToken;
 
   //

Modified: trunk/edk2/BaseTools/Source/C/Common/ParseInf.h
===================================================================
--- trunk/edk2/BaseTools/Source/C/Common/ParseInf.h     2014-08-14 20:42:40 UTC 
(rev 15808)
+++ trunk/edk2/BaseTools/Source/C/Common/ParseInf.h     2014-08-15 03:06:48 UTC 
(rev 15809)
@@ -1,6 +1,6 @@
 /** @file
 
-Copyright (c) 2004 - 2008, Intel Corporation. All rights reserved.<BR>
+Copyright (c) 2004 - 2014, 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,10 +27,6 @@
 #include <Common/UefiBaseTypes.h>
 #include <MemoryFile.h>
 
-#ifndef _MAX_PATH
-#define _MAX_PATH 500
-#endif
-
 #ifdef __cplusplus
 extern "C" {
 #endif
@@ -59,7 +55,7 @@
 Arguments:
 
   InputFile     Memory file image.
-  InputBuffer   Buffer to read into, must be _MAX_PATH size.
+  InputBuffer   Buffer to read into, must be MaxLength size.
   MaxLength     The maximum size of the input buffer.
 
 Returns:
@@ -115,7 +111,7 @@
   Section   The section to search for, a string within [].
   Token     The token to search for, e.g. EFI_PEIM_RECOVERY, followed by an = 
in the INF file.
   Instance  The instance of the token to search for.  Zero is the first 
instance.
-  Value     The string that holds the value following the =.  Must be 
_MAX_PATH in size.
+  Value     The string that holds the value following the =.  Must be 
MAX_LONG_FILE_PATH in size.
 
 Returns:
 
@@ -196,7 +192,7 @@
 Arguments:
 
   InputFile     Stream pointer.
-  InputBuffer   Buffer to read into, must be _MAX_PATH size.
+  InputBuffer   Buffer to read into, must be MAX_LONG_FILE_PATH size.
 
 Returns:
 

Modified: trunk/edk2/BaseTools/Source/C/Common/SimpleFileParsing.c
===================================================================
--- trunk/edk2/BaseTools/Source/C/Common/SimpleFileParsing.c    2014-08-14 
20:42:40 UTC (rev 15808)
+++ trunk/edk2/BaseTools/Source/C/Common/SimpleFileParsing.c    2014-08-15 
03:06:48 UTC (rev 15809)
@@ -1,6 +1,6 @@
 /** @file
 
-Copyright (c) 2004 - 2008, Intel Corporation. All rights reserved.<BR>
+Copyright (c) 2004 - 2014, 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,6 +24,7 @@
 #include <stdlib.h>
 #include <ctype.h>
 
+#include "CommonLib.h"
 #include "EfiUtilityMsgs.h"
 #include "SimpleFileParsing.h"
 
@@ -650,7 +651,7 @@
   // Try to open the file locally, and if that fails try along our include 
paths.
   //
   strcpy (FoundFileName, SourceFile->FileName);
-  if ((SourceFile->Fptr = fopen (FoundFileName, "rb")) == NULL) {
+  if ((SourceFile->Fptr = fopen (LongFilePath (FoundFileName), "rb")) == NULL) 
{
     return STATUS_ERROR;
   }
   //

Modified: trunk/edk2/BaseTools/Source/C/EfiLdrImage/EfiLdrImage.c
===================================================================
--- trunk/edk2/BaseTools/Source/C/EfiLdrImage/EfiLdrImage.c     2014-08-14 
20:42:40 UTC (rev 15808)
+++ trunk/edk2/BaseTools/Source/C/EfiLdrImage/EfiLdrImage.c     2014-08-15 
03:06:48 UTC (rev 15809)
@@ -1,6 +1,6 @@
 /** @file
 
-Copyright (c) 2006 - 2011, Intel Corporation. All rights reserved.<BR>
+Copyright (c) 2006 - 2014, 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        
@@ -84,7 +84,7 @@
 --*/
 {
   printf ("%s v%d.%d %s -Utility to break a file into two pieces at the 
request offset.\n", UTILITY_NAME, UTILITY_MAJOR_VERSION, UTILITY_MINOR_VERSION, 
__BUILD_VERSION);
-  printf ("Copyright (c) 1999-2010 Intel Corporation. All rights reserved.\n");
+  printf ("Copyright (c) 1999-2014 Intel Corporation. All rights reserved.\n");
 }
 
 VOID
@@ -270,7 +270,7 @@
     return STATUS_ERROR;
   }
 
-  fpOut = fopen(OutputFileName, "w+b");
+  fpOut = fopen (LongFilePath (OutputFileName), "w+b");
   if (!fpOut) {
     Error (NULL, 0, 0001, "Could not open output file", OutputFileName);
     return STATUS_ERROR;
@@ -294,7 +294,7 @@
     //
     // Copy the content of PeImage file to output file
     //
-    fpIn = fopen (InputFileNames[i], "rb");
+    fpIn = fopen (LongFilePath (InputFileNames[i]), "rb");
     if (!fpIn) {
       Error (NULL, 0, 0001, "Could not open input file", InputFileNames[i]);
       fclose (fpOut);

Modified: trunk/edk2/BaseTools/Source/C/EfiRom/EfiRom.c
===================================================================
--- trunk/edk2/BaseTools/Source/C/EfiRom/EfiRom.c       2014-08-14 20:42:40 UTC 
(rev 15808)
+++ trunk/edk2/BaseTools/Source/C/EfiRom/EfiRom.c       2014-08-15 03:06:48 UTC 
(rev 15809)
@@ -1,6 +1,6 @@
 /** @file
 
-Copyright (c) 1999 - 2013, Intel Corporation. All rights reserved.<BR>
+Copyright (c) 1999 - 2014, 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
@@ -135,7 +135,7 @@
   //
   // Now open our output file
   //
-  if ((FptrOut = fopen (mOptions.OutFileName, "wb")) == NULL) {
+  if ((FptrOut = fopen (LongFilePath (mOptions.OutFileName), "wb")) == NULL) {
     Error (NULL, 0, 0001, "Error opening file", "Error opening file %s", 
mOptions.OutFileName);
     goto BailOut;
   }
@@ -246,7 +246,7 @@
   //
   // Try to open the input file
   //
-  if ((InFptr = fopen (InFile->FileName, "rb")) == NULL) {
+  if ((InFptr = fopen (LongFilePath (InFile->FileName), "rb")) == NULL) {
     Error (NULL, 0, 0001, "Error opening file", InFile->FileName);
     return STATUS_ERROR;
   }
@@ -460,7 +460,7 @@
   //
   // Try to open the input file
   //
-  if ((InFptr = fopen (InFile->FileName, "rb")) == NULL) {
+  if ((InFptr = fopen (LongFilePath (InFile->FileName), "rb")) == NULL) {
     Error (NULL, 0, 0001, "Open file error", "Error opening file: %s", 
InFile->FileName);
     return STATUS_ERROR;
   }
@@ -1230,7 +1230,7 @@
   //
   // Copyright declaration
   // 
-  fprintf (stdout, "Copyright (c) 2007 - 2013, Intel Corporation. All rights 
reserved.\n\n");
+  fprintf (stdout, "Copyright (c) 2007 - 2014, Intel Corporation. All rights 
reserved.\n\n");
 
   //
   // Details Option
@@ -1300,7 +1300,7 @@
   //
   // Open the input file
   //
-  if ((InFptr = fopen (InFile->FileName, "rb")) == NULL) {
+  if ((InFptr = fopen (LongFilePath (InFile->FileName), "rb")) == NULL) {
     Error (NULL, 0, 0001, "Error opening file", InFile->FileName);
     return ;
   }

Modified: trunk/edk2/BaseTools/Source/C/GenBootSector/GenBootSector.c
===================================================================
--- trunk/edk2/BaseTools/Source/C/GenBootSector/GenBootSector.c 2014-08-14 
20:42:40 UTC (rev 15808)
+++ trunk/edk2/BaseTools/Source/C/GenBootSector/GenBootSector.c 2014-08-15 
03:06:48 UTC (rev 15809)
@@ -1,6 +1,6 @@
 /** @file
 
-Copyright (c) 2006 - 2013, Intel Corporation. All rights reserved.<BR>
+Copyright (c) 2006 - 2014, 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        
@@ -632,7 +632,7 @@
     //
     // If path is file path, check whether file is valid.
     //
-    f = fopen (PathInfo->Path, "r");
+    f = fopen (LongFilePath (PathInfo->Path), "r");
     if (f == NULL) {
       fprintf (stderr, "error E2003: File was not provided!\n");
       return ErrorPath;

Modified: trunk/edk2/BaseTools/Source/C/GenCrc32/GenCrc32.c
===================================================================
--- trunk/edk2/BaseTools/Source/C/GenCrc32/GenCrc32.c   2014-08-14 20:42:40 UTC 
(rev 15808)
+++ trunk/edk2/BaseTools/Source/C/GenCrc32/GenCrc32.c   2014-08-15 03:06:48 UTC 
(rev 15809)
@@ -1,6 +1,6 @@
 /** @file
 
-Copyright (c) 2007 - 2013, Intel Corporation. All rights reserved.<BR>
+Copyright (c) 2007 - 2014, 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        
@@ -282,7 +282,7 @@
   //
   // Open Input file and read file data.
   //
-  InFile = fopen (InputFileName, "rb");
+  InFile = fopen (LongFilePath (InputFileName), "rb");
   if (InFile == NULL) {
     Error (NULL, 0, 0001, "Error opening file", InputFileName);
     return STATUS_ERROR;
@@ -305,7 +305,7 @@
   //
   // Open output file
   //
-  OutFile = fopen (OutputFileName, "wb");
+  OutFile = fopen (LongFilePath (OutputFileName), "wb");
   if (OutFile == NULL) {
     Error (NULL, 0, 0001, "Error opening file", OutputFileName);
     goto Finish;

Modified: trunk/edk2/BaseTools/Source/C/GenFfs/GenFfs.c
===================================================================
--- trunk/edk2/BaseTools/Source/C/GenFfs/GenFfs.c       2014-08-14 20:42:40 UTC 
(rev 15808)
+++ trunk/edk2/BaseTools/Source/C/GenFfs/GenFfs.c       2014-08-15 03:06:48 UTC 
(rev 15809)
@@ -1,6 +1,6 @@
 /**
 
-Copyright (c) 2004 - 2013, Intel Corporation. All rights reserved.<BR>
+Copyright (c) 2004 - 2014, 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        
@@ -119,7 +119,7 @@
   //
   // Copyright declaration
   // 
-  fprintf (stdout, "Copyright (c) 2007 - 2013, Intel Corporation. All rights 
reserved.\n\n");
+  fprintf (stdout, "Copyright (c) 2007 - 2014, Intel Corporation. All rights 
reserved.\n\n");
 
   //
   // Details Option
@@ -317,7 +317,7 @@
     // 
     // Open file and read contents
     //
-    InFile = fopen (InputFileName[Index], "rb");
+    InFile = fopen (LongFilePath (InputFileName[Index]), "rb");
     if (InFile == NULL) {
       Error (NULL, 0, 0001, "Error opening file", InputFileName[Index]);
       return EFI_ABORTED;

Modified: trunk/edk2/BaseTools/Source/C/GenFv/GenFv.c
===================================================================
--- trunk/edk2/BaseTools/Source/C/GenFv/GenFv.c 2014-08-14 20:42:40 UTC (rev 
15808)
+++ trunk/edk2/BaseTools/Source/C/GenFv/GenFv.c 2014-08-15 03:06:48 UTC (rev 
15809)
@@ -1,6 +1,6 @@
 /** @file
 
-Copyright (c) 2007 - 2013, Intel Corporation. All rights reserved.<BR>
+Copyright (c) 2007 - 2014, 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        
@@ -97,7 +97,7 @@
   //
   // Copyright declaration
   // 
-  fprintf (stdout, "Copyright (c) 2007 - 2013, Intel Corporation. All rights 
reserved.\n\n");
+  fprintf (stdout, "Copyright (c) 2007 - 2014, Intel Corporation. All rights 
reserved.\n\n");
 
   //
   // Details Option
@@ -603,7 +603,7 @@
     if (OutFileName == NULL) {
       FpFile = stdout;
     } else {
-      FpFile = fopen (OutFileName, "w");
+      FpFile = fopen (LongFilePath (OutFileName), "w");
       if (FpFile == NULL) {
         Error (NULL, 0, 0001, "Error opening file", OutFileName);
         return STATUS_ERROR;
@@ -672,7 +672,7 @@
   //  update boot driver address and runtime driver address in address file
   //
   if (Status == EFI_SUCCESS && AddrFileName != NULL && mFvBaseAddressNumber > 
0) {
-    FpFile = fopen (AddrFileName, "w");
+    FpFile = fopen (LongFilePath (AddrFileName), "w");
     if (FpFile == NULL) {
       Error (NULL, 0, 0001, "Error opening file", AddrFileName);
       return STATUS_ERROR;

Modified: trunk/edk2/BaseTools/Source/C/GenFv/GenFvInternalLib.c
===================================================================
--- trunk/edk2/BaseTools/Source/C/GenFv/GenFvInternalLib.c      2014-08-14 
20:42:40 UTC (rev 15808)
+++ trunk/edk2/BaseTools/Source/C/GenFv/GenFvInternalLib.c      2014-08-15 
03:06:48 UTC (rev 15809)
@@ -1,6 +1,6 @@
 /** @file
 
-Copyright (c) 2004 - 2013, Intel Corporation. All rights reserved.<BR>
+Copyright (c) 2004 - 2014, 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         
@@ -187,7 +187,7 @@
   EFI_NOT_FOUND     A required string was not found in the INF file.
 --*/
 {
-  CHAR8       Value[_MAX_PATH];
+  CHAR8       Value[MAX_LONG_FILE_PATH];
   UINT64      Value64;
   UINTN       Index;
   UINTN       Number;
@@ -730,7 +730,7 @@
 
 --*/
 {
-  CHAR8                               PeMapFileName [_MAX_PATH];
+  CHAR8                               PeMapFileName [MAX_LONG_FILE_PATH];
   CHAR8                               *Cptr, *Cptr2;
   CHAR8                               FileGuidName [MAX_LINE_LEN];
   FILE                                *PeMapFile;
@@ -866,7 +866,7 @@
   //
   // Open PeMapFile
   //
-  PeMapFile = fopen (PeMapFileName, "r");
+  PeMapFile = fopen (LongFilePath (PeMapFileName), "r");
   if (PeMapFile == NULL) {
     // fprintf (stdout, "can't open %s file to reading\n", PeMapFileName);
     return EFI_ABORTED;
@@ -992,7 +992,7 @@
   //
   // Read the file to add
   //
-  NewFile = fopen (FvInfo->FvFiles[Index], "rb");
+  NewFile = fopen (LongFilePath (FvInfo->FvFiles[Index]), "rb");
 
   if (NewFile == NULL) {
     Error (NULL, 0, 0001, "Error opening file", FvInfo->FvFiles[Index]);
@@ -2077,12 +2077,12 @@
   UINT8                           *FvImage;
   UINTN                           FvImageSize;
   FILE                            *FvFile;
-  CHAR8                           FvMapName [_MAX_PATH];
+  CHAR8                           FvMapName [MAX_LONG_FILE_PATH];
   FILE                            *FvMapFile;
   EFI_FIRMWARE_VOLUME_EXT_HEADER  *FvExtHeader;
   FILE                            *FvExtHeaderFile;
   UINTN                           FileSize;
-  CHAR8                           FvReportName[_MAX_PATH];
+  CHAR8                           FvReportName[MAX_LONG_FILE_PATH];
   FILE                            *FvReportFile;
 
   FvBufferHeader = NULL;
@@ -2152,7 +2152,7 @@
     //
     // Open the FV Extension Header file
     //
-    FvExtHeaderFile = fopen (mFvDataInfo.FvExtHeaderFile, "rb");
+    FvExtHeaderFile = fopen (LongFilePath (mFvDataInfo.FvExtHeaderFile), "rb");
 
     //
     // Get the file size
@@ -2343,7 +2343,7 @@
   //
   // Open FvMap file
   //
-  FvMapFile = fopen (FvMapName, "w");
+  FvMapFile = fopen (LongFilePath (FvMapName), "w");
   if (FvMapFile == NULL) {
     Error (NULL, 0, 0001, "Error opening file", FvMapName);
     return EFI_ABORTED;
@@ -2352,7 +2352,7 @@
   //
   // Open FvReport file
   //
-  FvReportFile = fopen(FvReportName, "w");
+  FvReportFile = fopen (LongFilePath (FvReportName), "w");
   if (FvReportFile == NULL) {
     Error (NULL, 0, 0001, "Error opening file", FvReportName);
     return EFI_ABORTED;
@@ -2484,7 +2484,7 @@
   //
   // Write fv file
   //
-  FvFile = fopen (FvFileName, "wb");
+  FvFile = fopen (LongFilePath (FvFileName), "wb");
   if (FvFile == NULL) {
     Error (NULL, 0, 0001, "Error opening file", FvFileName);
     Status = EFI_ABORTED;
@@ -2651,7 +2651,7 @@
   // Calculate PI extension header
   //
   if (mFvDataInfo.FvExtHeaderFile[0] != '\0') {
-    fpin = fopen (mFvDataInfo.FvExtHeaderFile, "rb");
+    fpin = fopen (LongFilePath (mFvDataInfo.FvExtHeaderFile), "rb");
     if (fpin == NULL) {
       Error (NULL, 0, 0001, "Error opening file", mFvDataInfo.FvExtHeaderFile);
       return EFI_ABORTED;
@@ -2678,7 +2678,7 @@
     // Open FFS file
     //
     fpin = NULL;
-    fpin = fopen (FvInfoPtr->FvFiles[Index], "rb");
+    fpin = fopen (LongFilePath (FvInfoPtr->FvFiles[Index]), "rb");
     if (fpin == NULL) {
       Error (NULL, 0, 0001, "Error opening file", FvInfoPtr->FvFiles[Index]);
       return EFI_ABORTED;
@@ -2915,7 +2915,7 @@
   EFI_TE_IMAGE_HEADER                   *TEImageHeader;
   UINT8                                 *MemoryImagePointer;
   EFI_IMAGE_SECTION_HEADER              *SectionHeader;
-  CHAR8                                 PeFileName [_MAX_PATH];
+  CHAR8                                 PeFileName [MAX_LONG_FILE_PATH];
   CHAR8                                 *Cptr;
   FILE                                  *PeFile;
   UINT8                                 *PeFileBuffer;
@@ -3066,7 +3066,7 @@
             *(Cptr + 3) = 'i';
             *(Cptr + 4) = '\0';
           }
-          PeFile = fopen (PeFileName, "rb");
+          PeFile = fopen (LongFilePath (PeFileName), "rb");
           if (PeFile == NULL) {
             Warning (NULL, 0, 0, "Invalid", "The file %s has no .reloc 
section.", FileName);
             //Error (NULL, 0, 3000, "Invalid", "The file %s has no .reloc 
section.", FileName);
@@ -3322,7 +3322,7 @@
         *(Cptr + 4) = '\0';
       }
 
-      PeFile = fopen (PeFileName, "rb");
+      PeFile = fopen (LongFilePath (PeFileName), "rb");
       if (PeFile == NULL) {
         Warning (NULL, 0, 0, "Invalid", "The file %s has no .reloc section.", 
FileName);
         //Error (NULL, 0, 3000, "Invalid", "The file %s has no .reloc 
section.", FileName);
@@ -3567,7 +3567,7 @@
   EFI_NOT_FOUND     A required string was not found in the INF file.
 --*/
 {
-  CHAR8       Value[_MAX_PATH];
+  CHAR8       Value[MAX_LONG_FILE_PATH];
   UINT64      Value64;
   UINTN       Index, Number;
   EFI_STATUS  Status;
@@ -3773,7 +3773,7 @@
   FileSize = 0;
   CapSize  = mCapDataInfo.HeaderSize;
   while (mCapDataInfo.CapFiles [Index][0] != '\0') {
-    fpin = fopen (mCapDataInfo.CapFiles[Index], "rb");
+    fpin = fopen (LongFilePath (mCapDataInfo.CapFiles[Index]), "rb");
     if (fpin == NULL) {
       Error (NULL, 0, 0001, "Error opening file", 
mCapDataInfo.CapFiles[Index]);
       return EFI_ABORTED;
@@ -3811,7 +3811,7 @@
   FileSize = 0;
   CapSize  = CapsuleHeader->HeaderSize;
   while (mCapDataInfo.CapFiles [Index][0] != '\0') {
-    fpin = fopen (mCapDataInfo.CapFiles[Index], "rb");
+    fpin = fopen (LongFilePath (mCapDataInfo.CapFiles[Index]), "rb");
     if (fpin == NULL) {
       Error (NULL, 0, 0001, "Error opening file", 
mCapDataInfo.CapFiles[Index]);
       free (CapBuffer);
@@ -3827,7 +3827,7 @@
   //
   // write capsule data into the output file
   //
-  fpout = fopen (CapFileName, "wb");
+  fpout = fopen (LongFilePath (CapFileName), "wb");
   if (fpout == NULL) {
     Error (NULL, 0, 0001, "Error opening file", CapFileName);
     free (CapBuffer);

Modified: trunk/edk2/BaseTools/Source/C/GenFv/GenFvInternalLib.h
===================================================================
--- trunk/edk2/BaseTools/Source/C/GenFv/GenFvInternalLib.h      2014-08-14 
20:42:40 UTC (rev 15808)
+++ trunk/edk2/BaseTools/Source/C/GenFv/GenFvInternalLib.h      2014-08-15 
03:06:48 UTC (rev 15809)
@@ -1,6 +1,6 @@
 /** @file
 
-Copyright (c) 2004 - 2013, Intel Corporation. All rights reserved.<BR>
+Copyright (c) 2004 - 2014, 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        
@@ -214,7 +214,7 @@
 //
 typedef struct {
   UINTN Size;
-  CHAR8 ComponentName[_MAX_PATH];
+  CHAR8 ComponentName[MAX_LONG_FILE_PATH];
 } COMPONENT_INFO;
 
 //
@@ -227,12 +227,12 @@
   BOOLEAN                 FvFileSystemGuidSet;
   EFI_GUID                FvNameGuid;
   BOOLEAN                 FvNameGuidSet;
-  CHAR8                   FvExtHeaderFile[_MAX_PATH];
+  CHAR8                   FvExtHeaderFile[MAX_LONG_FILE_PATH];
   UINTN                   Size;
   EFI_FVB_ATTRIBUTES_2    FvAttributes;
-  CHAR8                   FvName[_MAX_PATH];
+  CHAR8                   FvName[MAX_LONG_FILE_PATH];
   EFI_FV_BLOCK_MAP_ENTRY  FvBlocks[MAX_NUMBER_OF_FV_BLOCKS];
-  CHAR8                   FvFiles[MAX_NUMBER_OF_FILES_IN_FV][_MAX_PATH];
+  CHAR8                   
FvFiles[MAX_NUMBER_OF_FILES_IN_FV][MAX_LONG_FILE_PATH];
   UINT32                  SizeofFvFiles[MAX_NUMBER_OF_FILES_IN_FV];
   BOOLEAN                 IsPiFvImage;
   INT8                    ForceRebase;
@@ -242,8 +242,8 @@
   EFI_GUID                CapGuid;
   UINT32                  HeaderSize;
   UINT32                  Flags;
-  CHAR8                   CapName[_MAX_PATH];
-  CHAR8                   CapFiles[MAX_NUMBER_OF_FILES_IN_CAP][_MAX_PATH];
+  CHAR8                   CapName[MAX_LONG_FILE_PATH];
+  CHAR8                   
CapFiles[MAX_NUMBER_OF_FILES_IN_CAP][MAX_LONG_FILE_PATH];
 } CAP_INFO;
 
 #pragma pack(1)

Modified: trunk/edk2/BaseTools/Source/C/GenFw/GenFw.c
===================================================================
--- trunk/edk2/BaseTools/Source/C/GenFw/GenFw.c 2014-08-14 20:42:40 UTC (rev 
15808)
+++ trunk/edk2/BaseTools/Source/C/GenFw/GenFw.c 2014-08-15 03:06:48 UTC (rev 
15809)
@@ -1,6 +1,6 @@
 /** @file
 
-Copyright (c) 2004 - 2011, Intel Corporation. All rights reserved.<BR>
+Copyright (c) 2004 - 2014, 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
@@ -66,10 +66,6 @@
 #define DEFAULT_MC_PAD_BYTE_VALUE  0xFF
 #define DEFAULT_MC_ALIGNMENT       16
 
-#ifndef _MAX_PATH
-#define _MAX_PATH 500
-#endif
-
 #define STATUS_IGNORE 0xA
 //
 // Structure definition for a microcode header
@@ -179,7 +175,7 @@
   //
   // Copyright declaration
   //
-  fprintf (stdout, "Copyright (c) 2007 - 2010, Intel Corporation. All rights 
reserved.\n\n");
+  fprintf (stdout, "Copyright (c) 2007 - 2014, Intel Corporation. All rights 
reserved.\n\n");
 
   //
   // Details Option
@@ -1559,7 +1555,7 @@
   // Open output file and Write image into the output file.
   //
   if (OutImageName != NULL) {
-    fpOut = fopen (OutImageName, "rb");
+    fpOut = fopen (LongFilePath (OutImageName), "rb");
     if (fpOut != NULL) {
       //
       // Get Output file time stamp
@@ -1590,7 +1586,7 @@
   //
   // Open input file and read file data into file buffer.
   //
-  fpIn = fopen (mInImageName, "rb");
+  fpIn = fopen (LongFilePath (mInImageName), "rb");
   if (fpIn == NULL) {
     Error (NULL, 0, 0001, "Error opening file", mInImageName);
     goto Finish;
@@ -1621,7 +1617,7 @@
     //
     // Open output file handle.
     //
-    fpOut = fopen (OutImageName, "wb");
+    fpOut = fopen (LongFilePath (OutImageName), "wb");
     if (!fpOut) {
       Error (NULL, 0, 0001, "Error opening output file", OutImageName);
       goto Finish;
@@ -1631,7 +1627,7 @@
     //
     HiiPackageListHeader.PackageLength = sizeof (EFI_HII_PACKAGE_LIST_HEADER);
     for (Index = 0; Index < InputFileNum; Index ++) {
-      fpIn = fopen (InputFileName [Index], "rb");
+      fpIn = fopen (LongFilePath (InputFileName [Index]), "rb");
       if (fpIn == NULL) {
         Error (NULL, 0, 0001, "Error opening file", InputFileName [Index]);
         goto Finish;
@@ -1677,7 +1673,7 @@
     memcpy (HiiPackageListBuffer, &HiiPackageListHeader, sizeof 
(HiiPackageListHeader));
     HiiPackageDataPointer = HiiPackageListBuffer + sizeof 
(HiiPackageListHeader);
     for (Index = 0; Index < InputFileNum; Index ++) {
-      fpIn = fopen (InputFileName [Index], "rb");
+      fpIn = fopen (LongFilePath (InputFileName [Index]), "rb");
       if (fpIn == NULL) {
         Error (NULL, 0, 0001, "Error opening file", InputFileName [Index]);
         free (HiiPackageListBuffer);
@@ -1757,13 +1753,13 @@
     //
     // Open output file handle.
     //
-    fpOut = fopen (OutImageName, "wb");
+    fpOut = fopen (LongFilePath (OutImageName), "wb");
     if (!fpOut) {
       Error (NULL, 0, 0001, "Error opening output file", OutImageName);
       goto Finish;
     }
     for (Index = 0; Index < InputFileNum; Index ++) {
-      fpIn = fopen (InputFileName [Index], "rb");
+      fpIn = fopen (LongFilePath (InputFileName [Index]), "rb");
       if (!fpIn) {
         Error (NULL, 0, 0001, "Error opening file", InputFileName [Index]);
         goto Finish;
@@ -1805,7 +1801,7 @@
   // Convert MicroCode.txt file to MicroCode.bin file
   //
   if (mOutImageType == FW_MCI_IMAGE) {
-    fpIn = fopen (mInImageName, "r");
+    fpIn = fopen (LongFilePath (mInImageName), "r");
     if (fpIn == NULL) {
       Error (NULL, 0, 0001, "Error opening file", mInImageName);
       goto Finish;
@@ -1928,14 +1924,14 @@
     // Open the output file handle.
     //
     if (ReplaceFlag) {
-      fpInOut = fopen (mInImageName, "wb");
+      fpInOut = fopen (LongFilePath (mInImageName), "wb");
       if (fpInOut == NULL) {
         Error (NULL, 0, 0001, "Error opening file", mInImageName);
         goto Finish;
       }
     } else {
       if (OutImageName != NULL) {
-        fpOut = fopen (OutImageName, "wb");
+        fpOut = fopen (LongFilePath (OutImageName), "wb");
       } else {
         fpOut = stdout;
       }
@@ -2641,7 +2637,7 @@
       //
       // Update File when File is changed.
       //
-      fpInOut = fopen (mInImageName, "wb");
+      fpInOut = fopen (LongFilePath (mInImageName), "wb");
       if (fpInOut == NULL) {
         Error (NULL, 0, 0001, "Error opening file", mInImageName);
         goto Finish;
@@ -2654,7 +2650,7 @@
       //
       // Update File when File is changed or File is old.
       //
-      fpOut = fopen (OutImageName, "wb");
+      fpOut = fopen (LongFilePath (OutImageName), "wb");
       if (fpOut == NULL) {
         Error (NULL, 0, 0001, "Error opening output file", OutImageName);
         goto Finish;
@@ -2696,7 +2692,7 @@
       if (OutputFileBuffer == NULL) {
         remove (OutImageName);
       } else {
-        fpOut = fopen (OutImageName, "wb");
+        fpOut = fopen (LongFilePath (OutImageName), "wb");
         fwrite (OutputFileBuffer, 1, OutputFileLength, fpOut);
         fclose (fpOut);
       }
@@ -2722,7 +2718,7 @@
     if (ReportFileName != NULL) {
       strcpy (ReportFileName, OutImageName);
       strcpy (ReportFileName + (FileLen - 4), ".txt"); 
-      ReportFile = fopen (ReportFileName, "w+");
+      ReportFile = fopen (LongFilePath (ReportFileName), "w+");
       if (ReportFile != NULL) {
         fprintf (ReportFile, "MODULE_SIZE = %u\n", (unsigned) mImageSize);
         fprintf (ReportFile, "TIME_STAMP = %u\n", (unsigned) mImageTimeStamp);

Modified: trunk/edk2/BaseTools/Source/C/GenPage/GenPage.c
===================================================================
--- trunk/edk2/BaseTools/Source/C/GenPage/GenPage.c     2014-08-14 20:42:40 UTC 
(rev 15808)
+++ trunk/edk2/BaseTools/Source/C/GenPage/GenPage.c     2014-08-15 03:06:48 UTC 
(rev 15809)
@@ -1,6 +1,6 @@
 /** @file
 
-Copyright (c) 2006 - 2013, Intel Corporation. All rights reserved.<BR>
+Copyright (c) 2006 - 2014, 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        
@@ -243,13 +243,13 @@
   //
   // Open files
   //
-  PageFile = fopen (PageFileName, "w+b");
+  PageFile = fopen (LongFilePath (PageFileName), "w+b");
   if (PageFile == NULL) {
     Error (NoPageFileName, 0, 0x4002, "Invalid parameter option", "Output File 
%s open failure", PageFileName);
     return -1;
   }
 
-  NoPageFile = fopen (NoPageFileName, "r+b");
+  NoPageFile = fopen (LongFilePath (NoPageFileName), "r+b");
   if (NoPageFile == NULL) {
     Error (NoPageFileName, 0, 0x4002, "Invalid parameter option", "Input File 
%s open failure", NoPageFileName);
     fclose (PageFile);

Modified: trunk/edk2/BaseTools/Source/C/GenSec/GenSec.c
===================================================================
--- trunk/edk2/BaseTools/Source/C/GenSec/GenSec.c       2014-08-14 20:42:40 UTC 
(rev 15808)
+++ trunk/edk2/BaseTools/Source/C/GenSec/GenSec.c       2014-08-15 03:06:48 UTC 
(rev 15809)
@@ -1,6 +1,6 @@
 /** @file
 
-Copyright (c) 2004 - 2013, Intel Corporation. All rights reserved.<BR>
+Copyright (c) 2004 - 2014, 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        
@@ -153,7 +153,7 @@
   //
   // Copyright declaration
   // 
-  fprintf (stdout, "Copyright (c) 2007 - 2013, Intel Corporation. All rights 
reserved.\n\n");
+  fprintf (stdout, "Copyright (c) 2007 - 2014, Intel Corporation. All rights 
reserved.\n\n");
 
   //
   // Details Option
@@ -283,7 +283,7 @@
   //
   // Open the input file
   //
-  InFile = fopen (InputFileName[0], "rb");
+  InFile = fopen (LongFilePath (InputFileName[0]), "rb");
   if (InFile == NULL) {
     Error (NULL, 0, 0001, "Error opening file", InputFileName[0]);
     return STATUS_ERROR;
@@ -473,7 +473,7 @@
     // 
     // Open file and read contents
     //
-    InFile = fopen (InputFileName[Index], "rb");
+    InFile = fopen (LongFilePath (InputFileName[Index]), "rb");
     if (InFile == NULL) {
       Error (NULL, 0, 0001, "Error opening file", InputFileName[Index]);
       return EFI_ABORTED;
@@ -1553,7 +1553,7 @@
   //
   // Write the output file
   //
-  OutFile = fopen (OutputFileName, "wb");
+  OutFile = fopen (LongFilePath (OutputFileName), "wb");
   if (OutFile == NULL) {
     Error (NULL, 0, 0001, "Error opening file for writing", OutputFileName);
     goto Finish;

Modified: trunk/edk2/BaseTools/Source/C/GenVtf/GenVtf.c
===================================================================
--- trunk/edk2/BaseTools/Source/C/GenVtf/GenVtf.c       2014-08-14 20:42:40 UTC 
(rev 15808)
+++ trunk/edk2/BaseTools/Source/C/GenVtf/GenVtf.c       2014-08-15 03:06:48 UTC 
(rev 15809)
@@ -1,6 +1,6 @@
 /**
 
-Copyright (c) 1999 - 2011, Intel Corporation. All rights reserved.<BR>
+Copyright (c) 1999 - 2014, 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
@@ -1070,7 +1070,7 @@
   CHAR8   Buff5[10];
   CHAR8   Token[50];
 
-  Fp = fopen (VtfInfo->CompSymName, "rb");
+  Fp = fopen (LongFilePath (VtfInfo->CompSymName), "rb");
 
   if (Fp == NULL) {
     Error (NULL, 0, 0001, "Error opening file", VtfInfo->CompSymName);
@@ -1152,7 +1152,7 @@
     return EFI_SUCCESS;
   }
 
-  Fp = fopen (VtfInfo->CompBinName, "rb");
+  Fp = fopen (LongFilePath (VtfInfo->CompBinName), "rb");
 
   if (Fp == NULL) {
     Error (NULL, 0, 0001, "Error opening file", VtfInfo->CompBinName);
@@ -1332,7 +1332,7 @@
   FILE        *Fp;
   FIT_TABLE   *PalFitPtr;
 
-  Fp = fopen (VtfInfo->CompBinName, "rb");
+  Fp = fopen (LongFilePath (VtfInfo->CompBinName), "rb");
 
   if (Fp == NULL) {
     Error (NULL, 0, 0001, "Error opening file", VtfInfo->CompBinName);
@@ -1551,7 +1551,7 @@
     VtfBuffer = (VOID *) RelativeAddress;
   }
 
-  Fp = fopen (FileName, "wb");
+  Fp = fopen (LongFilePath (FileName), "wb");
   if (Fp == NULL) {
     Error (NULL, 0, 0001, "Error opening file", FileName);
     return EFI_ABORTED;
@@ -1763,7 +1763,7 @@
     return EFI_INVALID_PARAMETER;
   }
 
-  Fp = fopen (FileName, "rb");
+  Fp = fopen (LongFilePath (FileName), "rb");
 
   if (Fp == NULL) {
     Error (NULL, 0, 0001, "Error opening file", FileName);
@@ -2125,7 +2125,7 @@
   }
   *StartAddressPtr = StartAddress;
 
-  Fp = fopen (OutFileName1, "rb");
+  Fp = fopen (LongFilePath (OutFileName1), "rb");
 
   if (Fp == NULL) {
     Error (NULL, 0, 0001, "Error opening file", OutFileName1);
@@ -2183,12 +2183,12 @@
 {
   FILE    *SourceFile;
   FILE    *DestFile;
-  CHAR8   Buffer[_MAX_PATH];
-  CHAR8   Type[_MAX_PATH];
-  CHAR8   Address[_MAX_PATH];
-  CHAR8   Section[_MAX_PATH];
-  CHAR8   Token[_MAX_PATH];
-  CHAR8   BaseToken[_MAX_PATH];
+  CHAR8   Buffer[MAX_LONG_FILE_PATH];
+  CHAR8   Type[MAX_LONG_FILE_PATH];
+  CHAR8   Address[MAX_LONG_FILE_PATH];
+  CHAR8   Section[MAX_LONG_FILE_PATH];
+  CHAR8   Token[MAX_LONG_FILE_PATH];
+  CHAR8   BaseToken[MAX_LONG_FILE_PATH];
   UINT64  TokenAddress;
   long    StartLocation;
 
@@ -2202,7 +2202,7 @@
   //
   // Open the source file
   //
-  SourceFile = fopen (SourceFileName, "r");
+  SourceFile = fopen (LongFilePath (SourceFileName), "r");
   if (SourceFile == NULL) {
 
     //
@@ -2221,7 +2221,7 @@
   //
   // Open the destination file
   //
-  DestFile = fopen (DestFileName, "a+");
+  DestFile = fopen (LongFilePath (DestFileName), "a+");
   if (DestFile == NULL) {
     fclose (SourceFile);
     Error (NULL, 0, 0001, "Error opening file", DestFileName);
@@ -2252,7 +2252,7 @@
   //
   // Read the first line
   //
-  if (fgets (Buffer, _MAX_PATH, SourceFile) == NULL) {
+  if (fgets (Buffer, MAX_LONG_FILE_PATH, SourceFile) == NULL) {
     Buffer[0] = 0;
   }
 
@@ -2410,7 +2410,7 @@
   //
   // Copyright declaration
   //
-  fprintf (stdout, "Copyright (c) 2007 - 2010, Intel Corporation. All rights 
reserved.\n\n");
+  fprintf (stdout, "Copyright (c) 2007 - 2014, Intel Corporation. All rights 
reserved.\n\n");
   //
   // Details Option
   //
@@ -2546,7 +2546,7 @@
       // Get the input VTF file name
       //
       VtfFileName = argv[Index+1];
-      VtfFP = fopen(VtfFileName, "rb");
+      VtfFP = fopen (LongFilePath (VtfFileName), "rb");
       if (VtfFP == NULL) {
         Error (NULL, 0, 0001, "Error opening file", VtfFileName);
         goto ERROR;

Modified: trunk/edk2/BaseTools/Source/C/GnuGenBootSector/GnuGenBootSector.c
===================================================================
--- trunk/edk2/BaseTools/Source/C/GnuGenBootSector/GnuGenBootSector.c   
2014-08-14 20:42:40 UTC (rev 15808)
+++ trunk/edk2/BaseTools/Source/C/GnuGenBootSector/GnuGenBootSector.c   
2014-08-15 03:06:48 UTC (rev 15809)
@@ -1,6 +1,6 @@
 /** @file
 
-Copyright (c) 2006 - 2011, Intel Corporation. All rights reserved.<BR>
+Copyright (c) 2006 - 2014, 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        
@@ -153,7 +153,7 @@
     }  
      
     // Try to open the device.   
-    f = fopen(PathInfo->Path,"r");
+    f = fopen (LongFilePath (PathInfo->Path),"r");
     if (f == NULL) {
       printf ("error :open device failed!\n");
       return ErrorPath;
@@ -167,7 +167,7 @@
   if (PathInfo->Input) {
     // If path is file path, check whether file is valid.
     printf("Path = %s\n",PathInfo->Path);
-    f = fopen (PathInfo->Path, "r");
+    f = fopen (LongFilePath (PathInfo->Path), "r");
     if (f == NULL) {
       fprintf (stderr, "Test error E2003: File was not provided!\n");
       return ErrorPath;
@@ -211,7 +211,7 @@
   FILE *OutputFile;
   
   
-  InputFile = fopen(InputInfo->PhysicalPath, "r");
+  InputFile = fopen (LongFilePath (InputInfo->PhysicalPath), "r");
   if (InputFile == NULL) {
     return ErrorFileReadWrite;
   }
@@ -235,9 +235,9 @@
   } 
   
   //Process Floppy Disk
-  OutputFile = fopen(OutputInfo->PhysicalPath, "r+");
+  OutputFile = fopen (LongFilePath (OutputInfo->PhysicalPath), "r+");
   if (OutputFile == NULL) {
-    OutputFile = fopen(OutputInfo->PhysicalPath, "w");
+    OutputFile = fopen (LongFilePath (OutputInfo->PhysicalPath), "w");
     if (OutputFile == NULL) {
       return ErrorFileReadWrite;
     }
@@ -276,7 +276,7 @@
   )
 {
   printf ("%s v%d.%d %s-Utility to retrieve and update the boot sector or 
MBR.\n", UTILITY_NAME, UTILITY_MAJOR_VERSION, UTILITY_MINOR_VERSION, 
__BUILD_VERSION);
-  printf ("Copyright (c) 2007-2010 Intel Corporation. All rights reserved.\n");
+  printf ("Copyright (c) 2007-2014 Intel Corporation. All rights reserved.\n");
 }
 
 

Modified: trunk/edk2/BaseTools/Source/C/Split/Split.c
===================================================================
--- trunk/edk2/BaseTools/Source/C/Split/Split.c 2014-08-14 20:42:40 UTC (rev 
15808)
+++ trunk/edk2/BaseTools/Source/C/Split/Split.c 2014-08-15 03:06:48 UTC (rev 
15809)
@@ -2,7 +2,7 @@
 
   Split a file into two pieces at the request offset.
 
-Copyright (c) 1999 - 2011, Intel Corporation. All rights reserved.<BR>
+Copyright (c) 1999 - 2014, 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
@@ -58,7 +58,7 @@
 --*/
 {
   printf ("%s v%d.%d %s -Utility to break a file into two pieces at the 
request offset.\n", UTILITY_NAME, UTILITY_MAJOR_VERSION, UTILITY_MINOR_VERSION, 
__BUILD_VERSION);
-  printf ("Copyright (c) 1999-2010 Intel Corporation. All rights reserved.\n");
+  printf ("Copyright (c) 1999-2014 Intel Corporation. All rights reserved.\n");
 }
 
 void
@@ -348,7 +348,7 @@
     return STATUS_ERROR;
   }
 
-  In = fopen (InputFileName, "rb");
+  In = fopen (LongFilePath (InputFileName), "rb");
   if (In == NULL) {
     // ("Unable to open file \"%s\"\n", InputFileName);
     Error (InputFileName, 0, 1, "File open failure", NULL);
@@ -400,14 +400,14 @@
   chdir(CurrentDir);
   free(CurrentDir);
 
-  Out1 = fopen (OutFileName1, "wb");
+  Out1 = fopen (LongFilePath (OutFileName1), "wb");
   if (Out1 == NULL) {
     // ("Unable to open file \"%s\"\n", OutFileName1);
     Error (OutFileName1, 0, 1, "File open failure", NULL);
     return STATUS_ERROR;
   }
 
-  Out2 = fopen (OutFileName2, "wb");
+  Out2 = fopen (LongFilePath (OutFileName2), "wb");
   if (Out2 == NULL) {
     // ("Unable to open file \"%s\"\n", OutFileName2);
     Error (OutFileName2, 0, 1, "File open failure", NULL);

Modified: trunk/edk2/BaseTools/Source/C/VfrCompile/VfrCompiler.cpp
===================================================================
--- trunk/edk2/BaseTools/Source/C/VfrCompile/VfrCompiler.cpp    2014-08-14 
20:42:40 UTC (rev 15808)
+++ trunk/edk2/BaseTools/Source/C/VfrCompile/VfrCompiler.cpp    2014-08-15 
03:06:48 UTC (rev 15809)
@@ -2,7 +2,7 @@
   
   VfrCompiler main class and main function.
 
-Copyright (c) 2004 - 2013, Intel Corporation. All rights reserved.<BR>
+Copyright (c) 2004 - 2014, 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        
@@ -413,7 +413,7 @@
   CONST  CHAR8 *Help[] = {
     " ", 
     "VfrCompile version " VFR_COMPILER_VERSION __BUILD_VERSION,
-    "Copyright (c) 2004-2013 Intel Corporation. All rights reserved.",
+    "Copyright (c) 2004-2014 Intel Corporation. All rights reserved.",
     " ",
     "Usage: VfrCompile [options] VfrFile",
     " ",
@@ -476,7 +476,7 @@
     goto Out;
   }
 
-  if ((pVfrFile = fopen (mOptions.VfrFileName, "r")) == NULL) {
+  if ((pVfrFile = fopen (LongFilePath (mOptions.VfrFileName), "r")) == NULL) {
     DebugError (NULL, 0, 0001, "Error opening the input VFR file", 
mOptions.VfrFileName);
     goto Fail;
   }
@@ -545,7 +545,7 @@
   gCVfrErrorHandle.SetInputFile (InFileName);
   gCVfrErrorHandle.SetWarningAsError(mOptions.WarningAsError);
 
-  if ((pInFile = fopen (InFileName, "r")) == NULL) {
+  if ((pInFile = fopen (LongFilePath (InFileName), "r")) == NULL) {
     DebugError (NULL, 0, 0001, "Error opening the input file", InFileName);
     goto Fail;
   }
@@ -699,7 +699,7 @@
   }
 
   if (mOptions.CreateIfrPkgFile == TRUE) {
-    if ((pFile = fopen (mOptions.PkgOutputFileName, "wb")) == NULL) {
+    if ((pFile = fopen (LongFilePath (mOptions.PkgOutputFileName), "wb")) == 
NULL) {
       DebugError (NULL, 0, 0001, "Error opening file", 
mOptions.PkgOutputFileName);
       goto Fail;
     }
@@ -742,7 +742,7 @@
   }
   
   if (!mOptions.CreateIfrPkgFile || mOptions.CompatibleMode) {
-    if ((pFile = fopen (mOptions.COutputFileName, "w")) == NULL) {
+    if ((pFile = fopen (LongFilePath (mOptions.COutputFileName), "w")) == 
NULL) {
       DebugError (NULL, 0, 0001, "Error opening output C file", 
mOptions.COutputFileName);
       goto Fail;
     }
@@ -789,12 +789,12 @@
       return;
     }
 
-    if ((pInFile = fopen (InFileName, "r")) == NULL) {
+    if ((pInFile = fopen (LongFilePath (InFileName), "r")) == NULL) {
       DebugError (NULL, 0, 0001, "Error opening the input VFR preprocessor 
output file", InFileName);
       return;
     }
 
-    if ((pOutFile = fopen (mOptions.RecordListFile, "w")) == NULL) {
+    if ((pOutFile = fopen (LongFilePath (mOptions.RecordListFile), "w")) == 
NULL) {
       DebugError (NULL, 0, 0001, "Error opening the record list file", 
mOptions.RecordListFile);
       goto Err1;
     }

Modified: trunk/edk2/BaseTools/Source/C/VfrCompile/VfrUtilityLib.cpp
===================================================================
--- trunk/edk2/BaseTools/Source/C/VfrCompile/VfrUtilityLib.cpp  2014-08-14 
20:42:40 UTC (rev 15808)
+++ trunk/edk2/BaseTools/Source/C/VfrCompile/VfrUtilityLib.cpp  2014-08-15 
03:06:48 UTC (rev 15809)
@@ -2,7 +2,7 @@
   
   Vfr common library functions.
 
-Copyright (c) 2004 - 2013, Intel Corporation. All rights reserved.<BR>
+Copyright (c) 2004 - 2014, 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        
@@ -15,6 +15,7 @@
 
 #include "stdio.h"
 #include "stdlib.h"
+#include "CommonLib.h"
 #include "VfrUtilityLib.h"
 #include "VfrFormPkg.h"
 
@@ -3283,7 +3284,7 @@
     return NULL;
   }
 
-  if ((pInFile = fopen (mStringFileName, "rb")) == NULL) {
+  if ((pInFile = fopen (LongFilePath (mStringFileName), "rb")) == NULL) {
     return NULL;
   }
 

Modified: trunk/edk2/BaseTools/Source/C/VolInfo/VolInfo.c
===================================================================
--- trunk/edk2/BaseTools/Source/C/VolInfo/VolInfo.c     2014-08-14 20:42:40 UTC 
(rev 15808)
+++ trunk/edk2/BaseTools/Source/C/VolInfo/VolInfo.c     2014-08-15 03:06:48 UTC 
(rev 15809)
@@ -249,7 +249,7 @@
   //
   // Open the file containing the FV
   //
-  InputFile = fopen (argv[0], "rb");
+  InputFile = fopen (LongFilePath (argv[0]), "rb");
   if (InputFile == NULL) {
     Error (NULL, 0, 0001, "Error opening the input file", argv[0]);
     return GetUtilityStatus ();

Modified: trunk/edk2/BaseTools/Source/Python/AutoGen/AutoGen.py
===================================================================
--- trunk/edk2/BaseTools/Source/Python/AutoGen/AutoGen.py       2014-08-14 
20:42:40 UTC (rev 15808)
+++ trunk/edk2/BaseTools/Source/Python/AutoGen/AutoGen.py       2014-08-15 
03:06:48 UTC (rev 15809)
@@ -13,7 +13,7 @@
 
 ## Import Modules
 #
-import os
+import Common.LongFilePathOs as os
 import re
 import os.path as path
 import copy
@@ -26,6 +26,7 @@
 from StrGather import *
 from BuildEngine import BuildRule
 
+from Common.LongFilePathSupport import CopyLongFilePath
 from Common.BuildToolError import *
 from Common.DataType import *
 from Common.Misc import *

Modified: trunk/edk2/BaseTools/Source/Python/AutoGen/BuildEngine.py
===================================================================
--- trunk/edk2/BaseTools/Source/Python/AutoGen/BuildEngine.py   2014-08-14 
20:42:40 UTC (rev 15808)
+++ trunk/edk2/BaseTools/Source/Python/AutoGen/BuildEngine.py   2014-08-15 
03:06:48 UTC (rev 15809)
@@ -1,7 +1,7 @@
 ## @file
 # The engine for building files
 #
-# Copyright (c) 2007, Intel Corporation. All rights reserved.<BR>
+# Copyright (c) 2007 - 2014, 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
@@ -14,10 +14,11 @@
 ##
 # Import Modules
 #
-import os
+import Common.LongFilePathOs as os
 import re
 import copy
 import string
+from Common.LongFilePathSupport import OpenLongFilePath as open
 
 from Common.GlobalData import *
 from Common.BuildToolError import *

Modified: trunk/edk2/BaseTools/Source/Python/AutoGen/GenDepex.py
===================================================================
--- trunk/edk2/BaseTools/Source/Python/AutoGen/GenDepex.py      2014-08-14 
20:42:40 UTC (rev 15808)
+++ trunk/edk2/BaseTools/Source/Python/AutoGen/GenDepex.py      2014-08-15 
03:06:48 UTC (rev 15809)
@@ -1,7 +1,7 @@
 ## @file
 # This file is used to generate DEPEX file for module's dependency expression
 #
-# Copyright (c) 2007 - 2010, Intel Corporation. All rights reserved.<BR>
+# Copyright (c) 2007 - 2014, 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
@@ -13,10 +13,10 @@
 ## Import Modules
 #
 import sys
-import os
+import Common.LongFilePathOs as os
 import re
 import traceback
-
+from Common.LongFilePathSupport import OpenLongFilePath as open
 from StringIO import StringIO
 from struct import pack
 from Common.BuildToolError import *

Modified: trunk/edk2/BaseTools/Source/Python/AutoGen/GenMake.py
===================================================================
--- trunk/edk2/BaseTools/Source/Python/AutoGen/GenMake.py       2014-08-14 
20:42:40 UTC (rev 15808)
+++ trunk/edk2/BaseTools/Source/Python/AutoGen/GenMake.py       2014-08-15 
03:06:48 UTC (rev 15809)
@@ -1,7 +1,7 @@
 ## @file
 # Create makefile for MS nmake and GNU make
 #
-# Copyright (c) 2007 - 2010, Intel Corporation. All rights reserved.<BR>
+# Copyright (c) 2007 - 2014, 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
@@ -13,11 +13,12 @@
 
 ## Import Modules
 #
-import os
+import Common.LongFilePathOs as os
 import sys
 import string
 import re
 import os.path as path
+from Common.LongFilePathSupport import OpenLongFilePath as open
 
 from Common.BuildToolError import *
 from Common.Misc import *

Modified: trunk/edk2/BaseTools/Source/Python/AutoGen/StrGather.py
===================================================================
--- trunk/edk2/BaseTools/Source/Python/AutoGen/StrGather.py     2014-08-14 
20:42:40 UTC (rev 15808)
+++ trunk/edk2/BaseTools/Source/Python/AutoGen/StrGather.py     2014-08-15 
03:06:48 UTC (rev 15809)
@@ -1,4 +1,4 @@
-# Copyright (c) 2007 - 2010, Intel Corporation. All rights reserved.<BR>
+# Copyright (c) 2007 - 2014, 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
@@ -20,6 +20,7 @@
 from UniClassObject import *
 from StringIO import StringIO
 from struct import pack
+from Common.LongFilePathSupport import OpenLongFilePath as open
 
 ##
 # Static definitions

Modified: trunk/edk2/BaseTools/Source/Python/AutoGen/UniClassObject.py
===================================================================
--- trunk/edk2/BaseTools/Source/Python/AutoGen/UniClassObject.py        
2014-08-14 20:42:40 UTC (rev 15808)
+++ trunk/edk2/BaseTools/Source/Python/AutoGen/UniClassObject.py        
2014-08-15 03:06:48 UTC (rev 15809)
@@ -1,4 +1,4 @@
-# Copyright (c) 2007 - 2012, Intel Corporation. All rights reserved.<BR>
+# Copyright (c) 2007 - 2014, 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
@@ -14,13 +14,13 @@
 ##
 # Import Modules
 #
-import os, codecs, re
+import Common.LongFilePathOs as os, codecs, re
 import distutils.util
 import Common.EdkLogger as EdkLogger
 from Common.BuildToolError import *
 from Common.String import GetLineNo
 from Common.Misc import PathClass
-
+from Common.LongFilePathSupport import LongFilePath
 ##
 # Static definitions
 #
@@ -210,7 +210,7 @@
         Lang = distutils.util.split_quoted((Line.split(u"//")[0]))
         if len(Lang) != 3:
             try:
-                FileIn = codecs.open(File.Path, mode='rb', 
encoding='utf-16').read()
+                FileIn = codecs.open(LongFilePath(File.Path), mode='rb', 
encoding='utf-16').read()
             except UnicodeError, X:
                 EdkLogger.error("build", FILE_READ_FAILURE, "File read 
failure: %s" % str(X), ExtraData=File);
             except:
@@ -292,7 +292,7 @@
             EdkLogger.error("Unicode File Parser", FILE_NOT_FOUND, 
ExtraData=File.Path)
 
         try:
-            FileIn = codecs.open(File.Path, mode='rb', 
encoding='utf-16').readlines()
+            FileIn = codecs.open(LongFilePath(File.Path), mode='rb', 
encoding='utf-16').readlines()
         except UnicodeError, X:
             EdkLogger.error("build", FILE_READ_FAILURE, "File read failure: 
%s" % str(X), ExtraData=File.Path);
         except:

Modified: trunk/edk2/BaseTools/Source/Python/BPDG/BPDG.py
===================================================================
--- trunk/edk2/BaseTools/Source/Python/BPDG/BPDG.py     2014-08-14 20:42:40 UTC 
(rev 15808)
+++ trunk/edk2/BaseTools/Source/Python/BPDG/BPDG.py     2014-08-15 03:06:48 UTC 
(rev 15809)
@@ -6,7 +6,7 @@
 #  file of PCD layout for use during the build when the platform integrator 
selects to use 
 #  automatic offset calculation.
 #
-#  Copyright (c) 2010, Intel Corporation. All rights reserved.<BR>
+#  Copyright (c) 2010 - 2014, 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
@@ -20,7 +20,7 @@
 ##
 # Import Modules
 #
-import os
+import Common.LongFilePathOs as os
 import sys
 import encodings.ascii
 

Modified: trunk/edk2/BaseTools/Source/Python/BPDG/GenVpd.py
===================================================================
--- trunk/edk2/BaseTools/Source/Python/BPDG/GenVpd.py   2014-08-14 20:42:40 UTC 
(rev 15808)
+++ trunk/edk2/BaseTools/Source/Python/BPDG/GenVpd.py   2014-08-15 03:06:48 UTC 
(rev 15809)
@@ -2,7 +2,7 @@
 #  This file include GenVpd class for fix the Vpd type PCD offset, and 
PcdEntry for describe
 #  and process each entry of vpd type PCD.
 #
-#  Copyright (c) 2010, Intel Corporation. All rights reserved.<BR>
+#  Copyright (c) 2010 - 2014, 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
@@ -13,12 +13,12 @@
 #  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR 
IMPLIED.
 #
 
-import os
+import Common.LongFilePathOs as os
 import StringIO
 import StringTable as st
 import array
 import re
-
+from Common.LongFilePathSupport import OpenLongFilePath as open
 from struct import *
 import Common.EdkLogger as EdkLogger
 import Common.BuildToolError as BuildToolError

Modified: trunk/edk2/BaseTools/Source/Python/Common/Database.py
===================================================================
--- trunk/edk2/BaseTools/Source/Python/Common/Database.py       2014-08-14 
20:42:40 UTC (rev 15808)
+++ trunk/edk2/BaseTools/Source/Python/Common/Database.py       2014-08-15 
03:06:48 UTC (rev 15809)
@@ -1,7 +1,7 @@
 ## @file
 # This file is used to create a database used by ECC tool
 #
-# Copyright (c) 2007 - 2008, Intel Corporation. All rights reserved.<BR>
+# Copyright (c) 2007 - 2014, 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
@@ -15,7 +15,7 @@
 # Import Modules
 #
 import sqlite3
-import os
+import Common.LongFilePathOs as os
 
 import EdkLogger as EdkLogger
 from CommonDataClass.DataClass import *

Modified: trunk/edk2/BaseTools/Source/Python/Common/DecClassObject.py
===================================================================
--- trunk/edk2/BaseTools/Source/Python/Common/DecClassObject.py 2014-08-14 
20:42:40 UTC (rev 15808)
+++ trunk/edk2/BaseTools/Source/Python/Common/DecClassObject.py 2014-08-15 
03:06:48 UTC (rev 15809)
@@ -1,7 +1,7 @@
 ## @file
 # This file is used to define each component of DEC file
 #
-# Copyright (c) 2007, Intel Corporation. All rights reserved.<BR>
+# Copyright (c) 2007 - 2014, 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
@@ -14,7 +14,7 @@
 ##
 # Import Modules
 #
-import os
+import Common.LongFilePathOs as os
 from String import *
 from DataType import *
 from Identification import *
@@ -26,6 +26,7 @@
 import Database
 from Parsing import *
 import GlobalData
+from Common.LongFilePathSupport import OpenLongFilePath as open
 
 #
 # Global variable

Modified: trunk/edk2/BaseTools/Source/Python/Common/Dictionary.py
===================================================================
--- trunk/edk2/BaseTools/Source/Python/Common/Dictionary.py     2014-08-14 
20:42:40 UTC (rev 15808)
+++ trunk/edk2/BaseTools/Source/Python/Common/Dictionary.py     2014-08-15 
03:06:48 UTC (rev 15809)
@@ -1,7 +1,7 @@
 ## @file
 # Define a dictionary structure
 #
-# Copyright (c) 2007, Intel Corporation. All rights reserved.<BR>
+# Copyright (c) 2007 - 2014, 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
@@ -16,6 +16,7 @@
 #
 import EdkLogger
 from DataType import *
+from Common.LongFilePathSupport import OpenLongFilePath as open
 
 ## Convert a text file to a dictionary
 #

Modified: trunk/edk2/BaseTools/Source/Python/Common/DscClassObject.py
===================================================================
--- trunk/edk2/BaseTools/Source/Python/Common/DscClassObject.py 2014-08-14 
20:42:40 UTC (rev 15808)
+++ trunk/edk2/BaseTools/Source/Python/Common/DscClassObject.py 2014-08-15 
03:06:48 UTC (rev 15809)
@@ -1,7 +1,7 @@
 ## @file
 # This file is used to define each component of DSC file
 #
-# Copyright (c) 2007 - 2010, Intel Corporation. All rights reserved.<BR>
+# Copyright (c) 2007 - 2014, 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
@@ -14,7 +14,7 @@
 ##
 # Import Modules
 #
-import os
+import Common.LongFilePathOs as os
 import EdkLogger as EdkLogger
 import Database
 from String import *
@@ -28,6 +28,7 @@
 from Misc import sdict
 import GlobalData
 from Table.TableDsc import TableDsc
+from Common.LongFilePathSupport import OpenLongFilePath as open
 
 #
 # Global variable

Modified: trunk/edk2/BaseTools/Source/Python/Common/EdkIIWorkspace.py
===================================================================
--- trunk/edk2/BaseTools/Source/Python/Common/EdkIIWorkspace.py 2014-08-14 
20:42:40 UTC (rev 15808)
+++ trunk/edk2/BaseTools/Source/Python/Common/EdkIIWorkspace.py 2014-08-15 
03:06:48 UTC (rev 15809)
@@ -1,7 +1,7 @@
 ## @file
 # This is the base class for applications that operate on an EDK II Workspace 
 #
-# Copyright (c) 2007, Intel Corporation. All rights reserved.<BR>
+# Copyright (c) 2007 - 2014, 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
@@ -14,8 +14,9 @@
 ##
 # Import Modules
 #
-import os, sys, time
+import Common.LongFilePathOs as os, sys, time
 from DataType import *
+from Common.LongFilePathSupport import OpenLongFilePath as open
 
 ## EdkIIWorkspace
 #

Modified: trunk/edk2/BaseTools/Source/Python/Common/EdkIIWorkspaceBuild.py
===================================================================
--- trunk/edk2/BaseTools/Source/Python/Common/EdkIIWorkspaceBuild.py    
2014-08-14 20:42:40 UTC (rev 15808)
+++ trunk/edk2/BaseTools/Source/Python/Common/EdkIIWorkspaceBuild.py    
2014-08-15 03:06:48 UTC (rev 15809)
@@ -1,7 +1,7 @@
 ## @file
 # This file is used to define each component of the build database
 #
-# Copyright (c) 2007 - 2010, Intel Corporation. All rights reserved.<BR>
+# Copyright (c) 2007 - 2014, 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
@@ -14,7 +14,7 @@
 ##
 # Import Modules
 #
-import os, string, copy, pdb, copy
+import Common.LongFilePathOs as os, string, copy, pdb, copy
 import EdkLogger
 import DataType
 from InfClassObject import *

Modified: trunk/edk2/BaseTools/Source/Python/Common/EdkLogger.py
===================================================================
--- trunk/edk2/BaseTools/Source/Python/Common/EdkLogger.py      2014-08-14 
20:42:40 UTC (rev 15808)
+++ trunk/edk2/BaseTools/Source/Python/Common/EdkLogger.py      2014-08-15 
03:06:48 UTC (rev 15809)
@@ -1,7 +1,7 @@
 ## @file
 # This file implements the log mechanism for Python tools.
 #
-# Copyright (c) 2007, Intel Corporation. All rights reserved.<BR>
+# Copyright (c) 2007 - 2014, 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
@@ -12,7 +12,7 @@
 #
 
 ## Import modules
-import sys, os, logging
+import Common.LongFilePathOs as os, sys, logging
 import traceback
 from  BuildToolError import *
 

Modified: trunk/edk2/BaseTools/Source/Python/Common/FdfParserLite.py
===================================================================
--- trunk/edk2/BaseTools/Source/Python/Common/FdfParserLite.py  2014-08-14 
20:42:40 UTC (rev 15808)
+++ trunk/edk2/BaseTools/Source/Python/Common/FdfParserLite.py  2014-08-15 
03:06:48 UTC (rev 15809)
@@ -1,7 +1,7 @@
 ## @file
 # parse FDF file
 #
-#  Copyright (c) 2007 - 2010, Intel Corporation. All rights reserved.<BR>
+#  Copyright (c) 2007 - 2014, 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
@@ -16,9 +16,10 @@
 # Import Modules
 #
 import re
-import os
+import Common.LongFilePathOs as os
 
 import CommonDataClass.FdfClass
+from Common.LongFilePathSupport import OpenLongFilePath as open
 
 ##define T_CHAR_SPACE                ' '
 ##define T_CHAR_NULL                 '\0'

Modified: trunk/edk2/BaseTools/Source/Python/Common/InfClassObject.py
===================================================================
--- trunk/edk2/BaseTools/Source/Python/Common/InfClassObject.py 2014-08-14 
20:42:40 UTC (rev 15808)
+++ trunk/edk2/BaseTools/Source/Python/Common/InfClassObject.py 2014-08-15 
03:06:48 UTC (rev 15809)
@@ -1,7 +1,7 @@
 ## @file
 # This file is used to define each component of INF file
 #
-# Copyright (c) 2007 - 2010, Intel Corporation. All rights reserved.<BR>
+# Copyright (c) 2007 - 2014, 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
@@ -14,7 +14,7 @@
 ##
 # Import Modules
 #
-import os
+import Common.LongFilePathOs as os
 import re
 import EdkLogger
 from CommonDataClass.CommonClass import LibraryClassClass
@@ -29,6 +29,7 @@
 from Table.TableInf import TableInf
 import Database
 from Parsing import *
+from Common.LongFilePathSupport import OpenLongFilePath as open
 
 #
 # Global variable

Added: trunk/edk2/BaseTools/Source/Python/Common/LongFilePathOs.py
===================================================================
--- trunk/edk2/BaseTools/Source/Python/Common/LongFilePathOs.py                 
        (rev 0)
+++ trunk/edk2/BaseTools/Source/Python/Common/LongFilePathOs.py 2014-08-15 
03:06:48 UTC (rev 15809)
@@ -0,0 +1,73 @@
+## @file
+# Override built in module os to provide support for long file path
+#
+# Copyright (c) 2014, 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.
+#
+
+import os
+import LongFilePathOsPath
+from Common.LongFilePathSupport import LongFilePath
+from Common.LongFilePathSupport import UniToStr
+
+path = LongFilePathOsPath
+
+def access(path, mode):
+    return os.access(LongFilePath(path), mode)
+
+def remove(path):
+    return os.remove(LongFilePath(path))
+
+def removedirs(name):
+    return os.removedirs(LongFilePath(name))
+
+def rmdir(path):
+    return os.rmdir(LongFilePath(path))
+
+def mkdir(path):
+    return os.mkdir(LongFilePath(path))
+
+def makedirs(name, mode=0777):
+    return os.makedirs(LongFilePath(name), mode)
+
+def rename(old, new):
+    return os.rename(LongFilePath(old), LongFilePath(new))
+
+def chdir(path):
+    return os.chdir(LongFilePath(path))
+
+def chmod(path, mode):
+    return os.chmod(LongFilePath(path), mode)
+
+def stat(path):
+    return os.stat(LongFilePath(path))
+
+def utime(path):
+    return os.utime(LongFilePath(path), None)
+
+def listdir(path):
+    List = []
+    uList = os.listdir(u"%s" % LongFilePath(path))
+    for Item in uList:
+        List.append(UniToStr(Item))
+    return List
+
+environ = os.environ
+getcwd = os.getcwd
+chdir = os.chdir
+walk = os.walk
+W_OK = os.W_OK
+F_OK = os.F_OK
+sep = os.sep
+linesep = os.linesep
+getenv = os.getenv
+pathsep = os.pathsep
+name = os.name
+SEEK_SET = os.SEEK_SET
+SEEK_END = os.SEEK_END

Added: trunk/edk2/BaseTools/Source/Python/Common/LongFilePathOsPath.py
===================================================================
--- trunk/edk2/BaseTools/Source/Python/Common/LongFilePathOsPath.py             
                (rev 0)
+++ trunk/edk2/BaseTools/Source/Python/Common/LongFilePathOsPath.py     
2014-08-15 03:06:48 UTC (rev 15809)
@@ -0,0 +1,51 @@
+## @file
+# Override built in module os.path to provide support for long file path
+#
+# Copyright (c) 2014, 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.
+#
+
+import os
+from Common.LongFilePathSupport import LongFilePath
+
+def isfile(path):
+    return os.path.isfile(LongFilePath(path))
+
+def isdir(path):
+    return os.path.isdir(LongFilePath(path))
+
+def exists(path):
+    return os.path.exists(LongFilePath(path))
+
+def getsize(filename):
+    return os.path.getsize(LongFilePath(filename))
+
+def getmtime(filename):
+    return os.path.getmtime(LongFilePath(filename))
+
+def getatime(filename):
+    return os.path.getatime(LongFilePath(filename))
+
+def getctime(filename):
+    return os.path.getctime(LongFilePath(filename))
+
+join = os.path.join
+splitext = os.path.splitext
+splitdrive = os.path.splitdrive
+split = os.path.split
+abspath = os.path.abspath
+basename = os.path.basename
+commonprefix = os.path.commonprefix
+sep = os.path.sep
+normpath = os.path.normpath
+normcase = os.path.normcase
+dirname = os.path.dirname
+islink = os.path.islink
+isabs = os.path.isabs
+realpath = os.path.realpath

Added: trunk/edk2/BaseTools/Source/Python/Common/LongFilePathSupport.py
===================================================================
--- trunk/edk2/BaseTools/Source/Python/Common/LongFilePathSupport.py            
                (rev 0)
+++ trunk/edk2/BaseTools/Source/Python/Common/LongFilePathSupport.py    
2014-08-15 03:06:48 UTC (rev 15809)
@@ -0,0 +1,59 @@
+## @file
+# Override built in function file.open to provide support for long file path
+#
+# Copyright (c) 2014, 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.
+#
+
+import os
+import platform
+import shutil
+
+##
+# OpenLongPath
+# Convert a file path to a long file path
+#
+def LongFilePath(FileName):
+    FileName = os.path.normpath(FileName)
+    if platform.system() == 'Windows':
+        if FileName.startswith('\\\\?\\'):
+            return FileName
+        if FileName.startswith('\\\\'):
+            return '\\\\?\\UNC\\' + FileName[2:]
+        if os.path.isabs(FileName):
+            return '\\\\?\\' + FileName
+    return FileName
+
+##
+# OpenLongFilePath
+# wrap open to support opening a long file path
+#
+def OpenLongFilePath(FileName, Mode='r', Buffer= -1):
+    return open(LongFilePath(FileName), Mode, Buffer)
+
+##
+# CopyLongFilePath
+# wrap copyfile to support copy a long file path
+#
+def CopyLongFilePath(src, dst):
+    with open(LongFilePath(src), 'rb') as fsrc:
+        with open(LongFilePath(dst), 'wb') as fdst:
+            shutil.copyfileobj(fsrc, fdst)
+
+## Convert a python unicode string to a normal string
+#
+# Convert a python unicode string to a normal string
+# UniToStr(u'I am a string') is 'I am a string'
+#
+# @param Uni:  The python unicode string
+#
+# @retval:     The formatted normal string
+#
+def UniToStr(Uni):
+    return repr(Uni)[2:-1]

Modified: trunk/edk2/BaseTools/Source/Python/Common/MigrationUtilities.py
===================================================================
--- trunk/edk2/BaseTools/Source/Python/Common/MigrationUtilities.py     
2014-08-14 20:42:40 UTC (rev 15808)
+++ trunk/edk2/BaseTools/Source/Python/Common/MigrationUtilities.py     
2014-08-15 03:06:48 UTC (rev 15809)
@@ -1,7 +1,7 @@
 ## @file
 # Contains several utilitities shared by migration tools.
 #
-# Copyright (c) 2007, Intel Corporation. All rights reserved.<BR>
+# Copyright (c) 2007 - 2014, 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
@@ -14,13 +14,14 @@
 ##
 # Import Modules
 #
-import os
+import Common.LongFilePathOs as os
 import re
 import EdkLogger
 from optparse import OptionParser
 from Common.BuildToolError import *
 from XmlRoutines import *
 from CommonDataClass.CommonClass import *
+from Common.LongFilePathSupport import OpenLongFilePath as open
 
 ## Set all fields of CommonClass object.
 #

Modified: trunk/edk2/BaseTools/Source/Python/Common/Misc.py
===================================================================
--- trunk/edk2/BaseTools/Source/Python/Common/Misc.py   2014-08-14 20:42:40 UTC 
(rev 15808)
+++ trunk/edk2/BaseTools/Source/Python/Common/Misc.py   2014-08-15 03:06:48 UTC 
(rev 15809)
@@ -1,7 +1,7 @@
 ## @file
 # Common routines used by all tools
 #
-# Copyright (c) 2007 - 2010, Intel Corporation. All rights reserved.<BR>
+# Copyright (c) 2007 - 2014, 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
@@ -14,7 +14,7 @@
 ##
 # Import Modules
 #
-import os
+import Common.LongFilePathOs as os
 import sys
 import string
 import thread
@@ -32,6 +32,7 @@
 from BuildToolError import *
 from CommonDataClass.DataClass import *
 from Parsing import GetSplitValueList
+from Common.LongFilePathSupport import OpenLongFilePath as open
 
 ## Regular expression used to find out place holders in string template
 gPlaceholderPattern = re.compile("\$\{([^$()\s]+)\}", re.MULTILINE|re.UNICODE)

Modified: trunk/edk2/BaseTools/Source/Python/Common/String.py
===================================================================
--- trunk/edk2/BaseTools/Source/Python/Common/String.py 2014-08-14 20:42:40 UTC 
(rev 15808)
+++ trunk/edk2/BaseTools/Source/Python/Common/String.py 2014-08-15 03:06:48 UTC 
(rev 15809)
@@ -1,7 +1,7 @@
 ## @file
 # This file is used to define common string related functions used in parsing 
process
 #
-# Copyright (c) 2007 - 2008, Intel Corporation. All rights reserved.<BR>
+# Copyright (c) 2007 - 2014, 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
@@ -16,13 +16,14 @@
 #
 import re
 import DataType
-import os.path
+import Common.LongFilePathOs as os
 import string
 import EdkLogger as EdkLogger
 
 import GlobalData
 from BuildToolError import *
 from CommonDataClass.Exceptions import *
+from Common.LongFilePathSupport import OpenLongFilePath as open
 
 gHexVerPatt = re.compile('0x[a-f0-9]{4}[a-f0-9]{4}$', re.IGNORECASE)
 gHumanReadableVerPatt = re.compile(r'([1-9][0-9]*|0)\.[0-9]{1,2}$')

Modified: trunk/edk2/BaseTools/Source/Python/Common/TargetTxtClassObject.py
===================================================================
--- trunk/edk2/BaseTools/Source/Python/Common/TargetTxtClassObject.py   
2014-08-14 20:42:40 UTC (rev 15808)
+++ trunk/edk2/BaseTools/Source/Python/Common/TargetTxtClassObject.py   
2014-08-15 03:06:48 UTC (rev 15809)
@@ -1,7 +1,7 @@
 ## @file
 # This file is used to define each component of Target.txt file
 #
-# Copyright (c) 2007 - 2010, Intel Corporation. All rights reserved.<BR>
+# Copyright (c) 2007 - 2014, 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
@@ -14,11 +14,12 @@
 ##
 # Import Modules
 #
-import os
+import Common.LongFilePathOs as os
 import EdkLogger
 import DataType
 from BuildToolError import *
 import GlobalData
+from Common.LongFilePathSupport import OpenLongFilePath as open
 
 gDefaultTargetTxtFile = "Conf/target.txt"
 

Modified: trunk/edk2/BaseTools/Source/Python/Common/ToolDefClassObject.py
===================================================================
--- trunk/edk2/BaseTools/Source/Python/Common/ToolDefClassObject.py     
2014-08-14 20:42:40 UTC (rev 15808)
+++ trunk/edk2/BaseTools/Source/Python/Common/ToolDefClassObject.py     
2014-08-15 03:06:48 UTC (rev 15809)
@@ -1,7 +1,7 @@
 ## @file
 # This file is used to define each component of tools_def.txt file
 #
-# Copyright (c) 2007, Intel Corporation. All rights reserved.<BR>
+# Copyright (c) 2007 - 2014, 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
@@ -14,13 +14,14 @@
 ##
 # Import Modules
 #
-import os
+import Common.LongFilePathOs as os
 import re
 import EdkLogger
 
 from Dictionary import *
 from BuildToolError import *
 from TargetTxtClassObject import *
+from Common.LongFilePathSupport import OpenLongFilePath as open
 
 ##
 # Static variables used for pattern

Modified: trunk/edk2/BaseTools/Source/Python/Common/VpdInfoFile.py
===================================================================
--- trunk/edk2/BaseTools/Source/Python/Common/VpdInfoFile.py    2014-08-14 
20:42:40 UTC (rev 15808)
+++ trunk/edk2/BaseTools/Source/Python/Common/VpdInfoFile.py    2014-08-15 
03:06:48 UTC (rev 15809)
@@ -6,7 +6,7 @@
 # is pointed by *_*_*_VPD_TOOL_GUID in conf/tools_def.txt 
 #
 #
-# Copyright (c) 2010, Intel Corporation. All rights reserved.<BR>
+# Copyright (c) 2010 - 2014, 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
@@ -15,11 +15,12 @@
 # THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
 # WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
 #
-import os
+import Common.LongFilePathOs as os
 import re
 import Common.EdkLogger as EdkLogger
 import Common.BuildToolError as BuildToolError
 import subprocess
+from Common.LongFilePathSupport import OpenLongFilePath as open
 
 FILE_COMMENT_TEMPLATE = \
 """

Modified: trunk/edk2/BaseTools/Source/Python/Ecc/Check.py
===================================================================
--- trunk/edk2/BaseTools/Source/Python/Ecc/Check.py     2014-08-14 20:42:40 UTC 
(rev 15808)
+++ trunk/edk2/BaseTools/Source/Python/Ecc/Check.py     2014-08-15 03:06:48 UTC 
(rev 15809)
@@ -1,7 +1,7 @@
 ## @file
 # This file is used to define checkpoints used by ECC tool
 #
-# Copyright (c) 2008 - 2010, Intel Corporation. All rights reserved.<BR>
+# Copyright (c) 2008 - 2014, 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
@@ -10,7 +10,7 @@
 # THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
 # WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
 #
-import os
+import Common.LongFilePathOs as os
 import re
 from CommonDataClass.DataClass import *
 from Common.DataType import SUP_MODULE_LIST_STRING, TAB_VALUE_SPLIT

Modified: trunk/edk2/BaseTools/Source/Python/Ecc/CodeFragmentCollector.py
===================================================================
--- trunk/edk2/BaseTools/Source/Python/Ecc/CodeFragmentCollector.py     
2014-08-14 20:42:40 UTC (rev 15808)
+++ trunk/edk2/BaseTools/Source/Python/Ecc/CodeFragmentCollector.py     
2014-08-15 03:06:48 UTC (rev 15809)
@@ -1,7 +1,7 @@
 ## @file
 # preprocess source file
 #
-#  Copyright (c) 2007, Intel Corporation. All rights reserved.<BR>
+#  Copyright (c) 2007 - 2014, 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
@@ -17,7 +17,7 @@
 #
 
 import re
-import os
+import Common.LongFilePathOs as os
 import sys
 
 import antlr3

Modified: trunk/edk2/BaseTools/Source/Python/Ecc/Configuration.py
===================================================================
--- trunk/edk2/BaseTools/Source/Python/Ecc/Configuration.py     2014-08-14 
20:42:40 UTC (rev 15808)
+++ trunk/edk2/BaseTools/Source/Python/Ecc/Configuration.py     2014-08-15 
03:06:48 UTC (rev 15809)
@@ -14,10 +14,11 @@
 ##
 # Import Modules
 #
-import os
+import Common.LongFilePathOs as os
 import Common.EdkLogger as EdkLogger
 from Common.DataType import *
 from Common.String import *
+from Common.LongFilePathSupport import OpenLongFilePath as open
 
 ## Configuration
 #

Modified: trunk/edk2/BaseTools/Source/Python/Ecc/Database.py
===================================================================
--- trunk/edk2/BaseTools/Source/Python/Ecc/Database.py  2014-08-14 20:42:40 UTC 
(rev 15808)
+++ trunk/edk2/BaseTools/Source/Python/Ecc/Database.py  2014-08-15 03:06:48 UTC 
(rev 15809)
@@ -1,7 +1,7 @@
 ## @file
 # This file is used to create a database used by ECC tool
 #
-# Copyright (c) 2007 - 2008, Intel Corporation. All rights reserved.<BR>
+# Copyright (c) 2007 - 2014, 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
@@ -15,7 +15,7 @@
 # Import Modules
 #
 import sqlite3
-import os, time
+import Common.LongFilePathOs as os, time
 
 import Common.EdkLogger as EdkLogger
 import CommonDataClass.DataClass as DataClass

Modified: trunk/edk2/BaseTools/Source/Python/Ecc/Ecc.py
===================================================================
--- trunk/edk2/BaseTools/Source/Python/Ecc/Ecc.py       2014-08-14 20:42:40 UTC 
(rev 15808)
+++ trunk/edk2/BaseTools/Source/Python/Ecc/Ecc.py       2014-08-15 03:06:48 UTC 
(rev 15809)
@@ -14,7 +14,7 @@
 ##
 # Import Modules
 #
-import os, time, glob, sys
+import Common.LongFilePathOs as os, time, glob, sys
 import Common.EdkLogger as EdkLogger
 import Database
 import EccGlobalData
@@ -37,6 +37,7 @@
 import c
 import re, string
 from Exception import *
+from Common.LongFilePathSupport import OpenLongFilePath as open
 
 ## Ecc
 #

Modified: trunk/edk2/BaseTools/Source/Python/Ecc/EccGlobalData.py
===================================================================
--- trunk/edk2/BaseTools/Source/Python/Ecc/EccGlobalData.py     2014-08-14 
20:42:40 UTC (rev 15808)
+++ trunk/edk2/BaseTools/Source/Python/Ecc/EccGlobalData.py     2014-08-15 
03:06:48 UTC (rev 15809)
@@ -1,7 +1,7 @@
 ## @file
 # This file is used to save global datas used by ECC tool
 #
-# Copyright (c) 2008, Intel Corporation. All rights reserved.<BR>
+# Copyright (c) 2008 - 2014, 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
@@ -14,7 +14,7 @@
 ##
 # Import Modules
 #
-import os
+import Common.LongFilePathOs as os
 
 gWorkspace = ''
 gTarget = ''

Modified: trunk/edk2/BaseTools/Source/Python/Ecc/Exception.py
===================================================================
--- trunk/edk2/BaseTools/Source/Python/Ecc/Exception.py 2014-08-14 20:42:40 UTC 
(rev 15808)
+++ trunk/edk2/BaseTools/Source/Python/Ecc/Exception.py 2014-08-15 03:06:48 UTC 
(rev 15809)
@@ -1,7 +1,7 @@
 ## @file
 # This file is used to parse exception items found by ECC tool
 #
-# Copyright (c) 2009, Intel Corporation. All rights reserved.<BR>
+# Copyright (c) 2009 - 2014, 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
@@ -15,7 +15,7 @@
 # Import Modules
 #
 from Xml.XmlRoutines import *
-import os.path
+import Common.LongFilePathOs as os
 
 # ExceptionXml to parse Exception Node of XML file
 class ExceptionXml(object):

Modified: trunk/edk2/BaseTools/Source/Python/Ecc/FileProfile.py
===================================================================
--- trunk/edk2/BaseTools/Source/Python/Ecc/FileProfile.py       2014-08-14 
20:42:40 UTC (rev 15808)
+++ trunk/edk2/BaseTools/Source/Python/Ecc/FileProfile.py       2014-08-15 
03:06:48 UTC (rev 15809)
@@ -1,7 +1,7 @@
 ## @file
 # fragments of source file
 #
-#  Copyright (c) 2007, Intel Corporation. All rights reserved.<BR>
+#  Copyright (c) 2007 - 2014, 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
@@ -17,8 +17,9 @@
 #
 
 import re
-import os
+import Common.LongFilePathOs as os
 from ParserWarning import Warning
+from Common.LongFilePathSupport import OpenLongFilePath as open
 
 CommentList = []
 PPDirectiveList = []

Modified: trunk/edk2/BaseTools/Source/Python/Ecc/MetaDataParser.py
===================================================================
--- trunk/edk2/BaseTools/Source/Python/Ecc/MetaDataParser.py    2014-08-14 
20:42:40 UTC (rev 15808)
+++ trunk/edk2/BaseTools/Source/Python/Ecc/MetaDataParser.py    2014-08-15 
03:06:48 UTC (rev 15809)
@@ -1,7 +1,7 @@
 ## @file
 # This file is used to define common parser functions for meta-data
 #
-# Copyright (c) 2008, Intel Corporation. All rights reserved.<BR>
+# Copyright (c) 2008 - 2014, 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
@@ -11,7 +11,7 @@
 # WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
 #
 
-import os
+import Common.LongFilePathOs as os
 from CommonDataClass.DataClass import *
 from EccToolError import *
 import EccGlobalData

Modified: 
trunk/edk2/BaseTools/Source/Python/Ecc/MetaFileWorkspace/MetaDataTable.py
===================================================================
--- trunk/edk2/BaseTools/Source/Python/Ecc/MetaFileWorkspace/MetaDataTable.py   
2014-08-14 20:42:40 UTC (rev 15808)
+++ trunk/edk2/BaseTools/Source/Python/Ecc/MetaFileWorkspace/MetaDataTable.py   
2014-08-15 03:06:48 UTC (rev 15809)
@@ -1,7 +1,7 @@
 ## @file
 # This file is used to create/update/query/erase table for files
 #
-# Copyright (c) 2008, Intel Corporation. All rights reserved.<BR>
+# Copyright (c) 2008 - 2014, 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
@@ -14,7 +14,7 @@
 ##
 # Import Modules
 #
-import os
+import Common.LongFilePathOs as os
 
 import Common.EdkLogger as EdkLogger
 from CommonDataClass import DataClass

Modified: 
trunk/edk2/BaseTools/Source/Python/Ecc/MetaFileWorkspace/MetaFileParser.py
===================================================================
--- trunk/edk2/BaseTools/Source/Python/Ecc/MetaFileWorkspace/MetaFileParser.py  
2014-08-14 20:42:40 UTC (rev 15808)
+++ trunk/edk2/BaseTools/Source/Python/Ecc/MetaFileWorkspace/MetaFileParser.py  
2014-08-15 03:06:48 UTC (rev 15809)
@@ -14,7 +14,7 @@
 ##
 # Import Modules
 #
-import os
+import Common.LongFilePathOs as os
 import re
 import time
 import copy
@@ -31,7 +31,8 @@
 from CommonDataClass.Exceptions import *
 
 from MetaFileTable import MetaFileStorage
-from GenFds.FdfParser import FdfParser  
+from GenFds.FdfParser import FdfParser
+from Common.LongFilePathSupport import OpenLongFilePath as open
 
 ## A decorator used to parse macro definition
 def ParseMacro(Parser):

Modified: trunk/edk2/BaseTools/Source/Python/Ecc/Xml/XmlRoutines.py
===================================================================
--- trunk/edk2/BaseTools/Source/Python/Ecc/Xml/XmlRoutines.py   2014-08-14 
20:42:40 UTC (rev 15808)
+++ trunk/edk2/BaseTools/Source/Python/Ecc/Xml/XmlRoutines.py   2014-08-15 
03:06:48 UTC (rev 15809)
@@ -2,7 +2,7 @@
 # This is an XML API that uses a syntax similar to XPath, but it is written in
 # standard python so that no extra python packages are required to use it.
 #
-# Copyright (c) 2007, Intel Corporation. All rights reserved.<BR>
+# Copyright (c) 2007 - 2014, 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
@@ -16,6 +16,7 @@
 # Import Modules
 #
 import xml.dom.minidom
+from Common.LongFilePathSupport import OpenLongFilePath as open
 
 ## Create a element of XML
 #

Modified: trunk/edk2/BaseTools/Source/Python/Ecc/c.py
===================================================================
--- trunk/edk2/BaseTools/Source/Python/Ecc/c.py 2014-08-14 20:42:40 UTC (rev 
15808)
+++ trunk/edk2/BaseTools/Source/Python/Ecc/c.py 2014-08-15 03:06:48 UTC (rev 
15809)
@@ -1,7 +1,7 @@
 ## @file
 # This file is used to be the c coding style checking of ECC tool
 #
-# Copyright (c) 2009 - 2010, Intel Corporation. All rights reserved.<BR>
+# Copyright (c) 2009 - 2014, 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
@@ -12,7 +12,7 @@
 #
 
 import sys
-import os
+import Common.LongFilePathOs as os
 import re
 import string
 import CodeFragmentCollector

Modified: trunk/edk2/BaseTools/Source/Python/Eot/CodeFragmentCollector.py
===================================================================
--- trunk/edk2/BaseTools/Source/Python/Eot/CodeFragmentCollector.py     
2014-08-14 20:42:40 UTC (rev 15808)
+++ trunk/edk2/BaseTools/Source/Python/Eot/CodeFragmentCollector.py     
2014-08-15 03:06:48 UTC (rev 15809)
@@ -1,7 +1,7 @@
 ## @file
 # preprocess source file
 #
-#  Copyright (c) 2007 - 2010, Intel Corporation. All rights reserved.<BR>
+#  Copyright (c) 2007 - 2014, 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
@@ -16,7 +16,7 @@
 # Import Modules
 #
 import re
-import os
+import Common.LongFilePathOs as os
 import sys
 
 import antlr3

Modified: trunk/edk2/BaseTools/Source/Python/Eot/Database.py
===================================================================
--- trunk/edk2/BaseTools/Source/Python/Eot/Database.py  2014-08-14 20:42:40 UTC 
(rev 15808)
+++ trunk/edk2/BaseTools/Source/Python/Eot/Database.py  2014-08-15 03:06:48 UTC 
(rev 15809)
@@ -1,7 +1,7 @@
 ## @file
 # This file is used to create a database used by EOT tool
 #
-# Copyright (c) 2007 - 2010, Intel Corporation. All rights reserved.<BR>
+# Copyright (c) 2007 - 2014, 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
@@ -15,7 +15,7 @@
 # Import Modules
 #
 import sqlite3
-import os, time
+import Common.LongFilePathOs as os, time
 
 import Common.EdkLogger as EdkLogger
 import CommonDataClass.DataClass as DataClass

Modified: trunk/edk2/BaseTools/Source/Python/Eot/Eot.py
===================================================================
--- trunk/edk2/BaseTools/Source/Python/Eot/Eot.py       2014-08-14 20:42:40 UTC 
(rev 15808)
+++ trunk/edk2/BaseTools/Source/Python/Eot/Eot.py       2014-08-15 03:06:48 UTC 
(rev 15809)
@@ -1,7 +1,7 @@
 ## @file
 # This file is used to be the main entrance of EOT tool
 #
-# Copyright (c) 2008 - 2010, Intel Corporation. All rights reserved.<BR>
+# Copyright (c) 2008 - 2014, 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
@@ -14,7 +14,7 @@
 ##
 # Import Modules
 #
-import os, time, glob
+import Common.LongFilePathOs as os, time, glob
 import Common.EdkLogger as EdkLogger
 import EotGlobalData
 from optparse import OptionParser
@@ -30,6 +30,7 @@
 from Common.Misc import ParseConsoleLog
 from Common.BuildVersion import gBUILD_VERSION
 from Parser import ConvertGuid
+from Common.LongFilePathSupport import OpenLongFilePath as open
 
 ## Class Eot
 #

Modified: trunk/edk2/BaseTools/Source/Python/Eot/EotGlobalData.py
===================================================================
--- trunk/edk2/BaseTools/Source/Python/Eot/EotGlobalData.py     2014-08-14 
20:42:40 UTC (rev 15808)
+++ trunk/edk2/BaseTools/Source/Python/Eot/EotGlobalData.py     2014-08-15 
03:06:48 UTC (rev 15809)
@@ -1,7 +1,7 @@
 ## @file
 # This file is used to save global datas
 #

@@ Diff output truncated at 100000 characters. @@
This was sent by the SourceForge.net collaborative development platform, the 
world's largest Open Source development site.


------------------------------------------------------------------------------
_______________________________________________
edk2-commits mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/edk2-commits

Reply via email to