[edk2] [Patch] BaseTools: Fix the bug that different DSC file use same build output

Yonghong Zhu posted 1 patch 6 years, 11 months ago
Failed in applying to current master (apply log)
BaseTools/Source/Python/AutoGen/AutoGen.py | 9 ++++++++-
1 file changed, 8 insertions(+), 1 deletion(-)
[edk2] [Patch] BaseTools: Fix the bug that different DSC file use same build output
Posted by Yonghong Zhu 6 years, 11 months ago
We meet a corner case that build different DSC file, but the DSC file use
same build output directory, and the different DSC file use a same PCD
with different Pcd Type, it cause build failure.

Cc: Liming Gao <liming.gao@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Yonghong Zhu <yonghong.zhu@intel.com>
---
 BaseTools/Source/Python/AutoGen/AutoGen.py | 9 ++++++++-
 1 file changed, 8 insertions(+), 1 deletion(-)

diff --git a/BaseTools/Source/Python/AutoGen/AutoGen.py b/BaseTools/Source/Python/AutoGen/AutoGen.py
index fa6ec56..e89b61d 100644
--- a/BaseTools/Source/Python/AutoGen/AutoGen.py
+++ b/BaseTools/Source/Python/AutoGen/AutoGen.py
@@ -659,17 +659,24 @@ class WorkspaceAutoGen(AutoGen):
         self._FvDir = None
         self._MakeFileDir = None
         self._BuildCommand = None
 
         #
-        # Create BuildOptions Macro & PCD metafile.
+        # Create BuildOptions Macro & PCD metafile, also add the Active Platform and FDF file.
         #
         content = 'gCommandLineDefines: '
         content += str(GlobalData.gCommandLineDefines)
         content += os.linesep
         content += 'BuildOptionPcd: '
         content += str(GlobalData.BuildOptionPcd)
+        content += os.linesep
+        content += 'Active Platform: '
+        content += str(self.Platform)
+        content += os.linesep
+        if self.FdfFile:
+            content += 'Flash Image Definition: '
+            content += str(self.FdfFile)
         SaveFileOnChange(os.path.join(self.BuildDir, 'BuildOptions'), content, False)
 
         #
         # Create PcdToken Number file for Dynamic/DynamicEx Pcd.
         #
-- 
2.6.1.windows.1

_______________________________________________
edk2-devel mailing list
edk2-devel@lists.01.org
https://lists.01.org/mailman/listinfo/edk2-devel
Re: [edk2] [Patch] BaseTools: Fix the bug that different DSC file use same build output
Posted by Gao, Liming 6 years, 11 months ago
Reviewed-by: Liming Gao <liming.gao@intel.com>

> -----Original Message-----
> From: edk2-devel [mailto:edk2-devel-bounces@lists.01.org] On Behalf Of Yonghong Zhu
> Sent: Tuesday, May 23, 2017 5:25 PM
> To: edk2-devel@lists.01.org
> Cc: Gao, Liming <liming.gao@intel.com>
> Subject: [edk2] [Patch] BaseTools: Fix the bug that different DSC file use same build output
> 
> We meet a corner case that build different DSC file, but the DSC file use
> same build output directory, and the different DSC file use a same PCD
> with different Pcd Type, it cause build failure.
> 
> Cc: Liming Gao <liming.gao@intel.com>
> Contributed-under: TianoCore Contribution Agreement 1.0
> Signed-off-by: Yonghong Zhu <yonghong.zhu@intel.com>
> ---
>  BaseTools/Source/Python/AutoGen/AutoGen.py | 9 ++++++++-
>  1 file changed, 8 insertions(+), 1 deletion(-)
> 
> diff --git a/BaseTools/Source/Python/AutoGen/AutoGen.py b/BaseTools/Source/Python/AutoGen/AutoGen.py
> index fa6ec56..e89b61d 100644
> --- a/BaseTools/Source/Python/AutoGen/AutoGen.py
> +++ b/BaseTools/Source/Python/AutoGen/AutoGen.py
> @@ -659,17 +659,24 @@ class WorkspaceAutoGen(AutoGen):
>          self._FvDir = None
>          self._MakeFileDir = None
>          self._BuildCommand = None
> 
>          #
> -        # Create BuildOptions Macro & PCD metafile.
> +        # Create BuildOptions Macro & PCD metafile, also add the Active Platform and FDF file.
>          #
>          content = 'gCommandLineDefines: '
>          content += str(GlobalData.gCommandLineDefines)
>          content += os.linesep
>          content += 'BuildOptionPcd: '
>          content += str(GlobalData.BuildOptionPcd)
> +        content += os.linesep
> +        content += 'Active Platform: '
> +        content += str(self.Platform)
> +        content += os.linesep
> +        if self.FdfFile:
> +            content += 'Flash Image Definition: '
> +            content += str(self.FdfFile)
>          SaveFileOnChange(os.path.join(self.BuildDir, 'BuildOptions'), content, False)
> 
>          #
>          # Create PcdToken Number file for Dynamic/DynamicEx Pcd.
>          #
> --
> 2.6.1.windows.1
> 
> _______________________________________________
> edk2-devel mailing list
> edk2-devel@lists.01.org
> https://lists.01.org/mailman/listinfo/edk2-devel
_______________________________________________
edk2-devel mailing list
edk2-devel@lists.01.org
https://lists.01.org/mailman/listinfo/edk2-devel