Liming,

I finally figured out what was causing the issue. It looks like it is a DEFINE 
combined with PACKAGES_PATH seems to cause the issue in the FDF file. 

The DSC file is still set to OvmfPkg/AcpiTables/AcpiTables.inf, I'm not sure if 
that is also required. It seems like if the DEFINE is relative to WORKSPACE 
everything works, if it has to be processed with PACKAGES_PATH that seems to 
bring out the issue. 

~/work/src/edk2(master)>OvmfPkg/build.sh
...
build.py...
 : error 7000: Failed to execute command
        GenFds -f /Users/andrewfish/work/src/edk2/OvmfPkg/OvmfPkgX64.fdf 
--conf=/Users/andrewfish/work/src/edk2/Conf -o 
/Users/andrewfish/work/src/edk2/Build/OvmfX64/DEBUG_XCODE5 -t XCODE5 -b DEBUG 
-p /Users/andrewfish/work/src/edk2/OvmfPkg/OvmfPkgX64.dsc -a X64 -D 
"EFI_SOURCE=/Users/andrewfish/work/src/edk2/EdkCompatibilityPkg" -D 
"EDK_SOURCE=/Users/andrewfish/work/src/edk2/EdkCompatibilityPkg" -D 
"TOOL_CHAIN_TAG=XCODE5" -D "TOOLCHAIN=XCODE5" -D "TARGET=DEBUG" -D 
"WORKSPACE=/Users/andrewfish/work/src/edk2" -D 
"EDK_TOOLS_PATH=/Users/andrewfish/work/src/edk2/BaseTools" -D "ARCH=X64" -D 
"ECP_SOURCE=/Users/andrewfish/work/src/edk2/EdkCompatibilityPkg" 
[/Users/andrewfish/work/src/edk2]


~/work/src/edk2(master)>export PACKAGES_PATH="$WORKSPACE/OvmfPkg"
~/work/src/edk2(master)>git diff OvmfPkg/
diff --git a/OvmfPkg/OvmfPkgX64.fdf b/OvmfPkg/OvmfPkgX64.fdf
index 84a40a3..7094648 100644
--- a/OvmfPkg/OvmfPkgX64.fdf
+++ b/OvmfPkg/OvmfPkgX64.fdf
@@ -17,7 +17,7 @@
 
 [Defines]
 !include OvmfPkg.fdf.inc
-
+DEFINE ACPI = AcpiTables
 #
 # Build the variable store and the firmware code as one unified flash device
 # image.
@@ -272,7 +272,7 @@ INF  OvmfPkg/SmbiosPlatformDxe/SmbiosPlatformDxe.inf
 
 INF  MdeModulePkg/Universal/Acpi/AcpiTableDxe/AcpiTableDxe.inf
 INF  OvmfPkg/AcpiPlatformDxe/AcpiPlatformDxe.inf
-INF  RuleOverride=ACPITABLE OvmfPkg/AcpiTables/AcpiTables.inf
+INF  RuleOverride=ACPITABLE $(ACPI)/AcpiTables.inf
 INF  MdeModulePkg/Universal/Acpi/S3SaveStateDxe/S3SaveStateDxe.inf
 INF  
MdeModulePkg/Universal/Acpi/BootScriptExecutorDxe/BootScriptExecutorDxe.inf
 
Thanks,

Andrew Fish


> On May 23, 2016, at 8:34 AM, Andrew Fish <af...@apple.com> wrote:
> 
> 
>> On May 23, 2016, at 5:52 AM, Gao, Liming <liming....@intel.com> wrote:
>> 
>> Andrew:
>>  The buid output path is always in $(WORKSPACE)\Build directory.
> 
> You mean the path in $(WORKSPACE)\Build does not match the WORKSPACE relative 
> path of the file? That seems to imply that code from different packages could 
> get mixed together in the $(WORKSPACE)\Build output. That seems very very 
> confusing to the user. 
> 
>> It is not related to $(PACKAGES_PATH). PACKAGES_PATH is designed to search 
>> source files, doesn’t impact build output directory. 
>> 
> 
> That is not what I was seeing? I'm seeing $(WORKSPACE) relative paths in 
> $(WORKSPACE)\Build and then I'm see logic that is not using the full path to 
> search for files? 
> 
> I have output that looks like: 
> Build/X/DEBUG_XCODE5/X64/edk2/MdeModulePkg/Universal/Acpi/AcpiTableDxe/AcpiTableDxe/OUTPUT/
> But I saw the Python searching a location like this for files:
> Build/X/DEBUG_XCODE5/X64/MdeModulePkg/Universal/Acpi/AcpiTableDxe/AcpiTableDxe/OUTPUT/
> 
> Thanks,
> 
> Andrew Fish
> 
>> I try Ovmf platform. Its AcpiTables can be found and be built into FFS.
>> 
>> Thanks
>> Liming <>
>> <>From: af...@apple.com <mailto:af...@apple.com> [mailto:af...@apple.com 
>> <mailto:af...@apple.com>] 
>> Sent: Saturday, May 21, 2016 8:21 AM
>> To: Gao, Liming <liming....@intel.com <mailto:liming....@intel.com>>
>> Cc: edk2-devel <edk2-devel@lists.01.org <mailto:edk2-devel@lists.01.org>>
>> Subject: Re: [edk2] [BaseTools] PACKAGES_PATH issue?
>> 
>> Liming,
>> 
>> I found one more issues. My ACPI tables are breaking the build. It looks 
>> like the failure is no input files. What I've figured out in GetFileList() 
>> is FfsInf.EfiOutputPath is constructed incorrectly. The path does not 
>> included the prefix from the PACKAGES_PATH and thus the directory does not 
>> exist and no files are found. It looks like the issue is 
>> __GetEFIOutPutPath__() as it is using self.InfFileName and that has not been 
>> adjusted for PACKAGES_PATH?
>> 
>> Thanks,
>> 
>> Andrew Fish
>> 
>>> On May 20, 2016, at 1:34 AM, Gao, Liming wrote:
>>> 
>>> Andrew:
>>> Thanks for your point out. It is bug. Your fix is correct. I will send the 
>>> patch for it. 
>>> 
>>> Thanks
>>> Liming
>>>> -----Original Message-----
>>>> From: af...@apple.com <mailto:af...@apple.com> [mailto:af...@apple.com 
>>>> <mailto:af...@apple.com>]
>>>> Sent: Friday, May 20, 2016 1:25 PM
>>>> To: Gao, Liming 
>>>> Cc: edk2-devel 
>>>> Subject: Re: [edk2] [BaseTools] RuleOverride = BINARY code location?
>>>> 
>>>> 
>>>>> On May 19, 2016, at 8:18 PM, Gao, Liming wrote:
>>>>> 
>>>>> Thanks Andrew. I will continue to investigate it.
>>>>> 
>>>> 
>>>>>>> F = 'FileNoExtention'
>>>>>>> os.path.splitext(F)[1]
>>>> ''
>>>>>>> '' in '.out'
>>>> True
>>>> 
>>>> So I think the bug is the `in` it should be `==`
>>>>>>> '' == '.out'
>>>> False
>>>> 
>>>> Thanks,
>>>> 
>>>> Andrew Fish
>>>> 
>>>> 
>>>>>> -----Original Message-----
>>>>>> From: af...@apple.com <mailto:af...@apple.com> [mailto:af...@apple.com 
>>>>>> <mailto:af...@apple.com>]
>>>>>> Sent: Friday, May 20, 2016 10:01 AM
>>>>>> To: Gao, Liming 
>>>>>> Cc: edk2-devel 
>>>>>> Subject: Re: [edk2] [BaseTools] RuleOverride = BINARY code location?
>>>>>> 
>>>>>> 
>>>>>>> On May 18, 2016, at 5:44 PM, Andrew Fish wrote:
>>>>>>> 
>>>>>>>> 
>>>>>>>> On May 18, 2016, at 5:43 PM, Gao, Liming 
>>>> wrote:
>>>>>>>> 
>>>>>>>> Andrew:
>>>>>>>> |.bin will search the file with the postfix .bin in INF file directory 
>>>>>>>> and its
>>>>>> output directory. So, there may be more than .bin files are found. Please
>>>> see
>>>>>> the code login in GetFileList() from
>>>>>> C:\R9Tip\edk2\BaseTools\Source\Python\GenFds\Section.py.
>>>>>>>> 
>>>>>>> 
>>>>>> 
>>>>>> Thanks for the pointer.
>>>>>> 
>>>>>> This is the code that adding the OS executables in GetFileList() that is
>>>> adding
>>>>>> the OS executables without the .bin extension.
>>>>>> if os.path.exists(Makefile):
>>>>>> # Update to search files with suffix in all sub-dirs.
>>>>>> Tuple = os.walk(FfsInf.EfiOutputPath)
>>>>>> for Dirpath, Dirnames, Filenames in Tuple:
>>>>>> for F in Filenames:
>>>>>> if os.path.splitext(F)[1] in (Suffix):
>>>>>> FullName = os.path.join(Dirpath, F)
>>>>>> if os.path.getmtime(FullName) >
>>>> os.path.getmtime(Makefile):
>>>>>> FileList.append(FullName)
>>>>>> 
>>>>>> 
>>>>>> I think the issue is:
>>>>>> if os.path.splitext(F)[1] in (Suffix):
>>>>>> 
>>>>>> If the file does not have an extension it matches.
>>>>>> 
>>>>>> Sorry might be wrong have to go out to a writers reading with my wife so
>>>>>> have to stop looking right now.
>>>>>> 
>>>>>> Contributed-under: TianoCore Contribution Agreement 1.0
>>>>>> 
>>>>>> Thanks,
>>>>>> 
>>>>>> Andrew Fish
>>>>> _______________________________________________
>>>>> edk2-devel mailing list
>>>>> edk2-devel@lists.01.org <mailto:edk2-devel@lists.01.org>
>>>>> https://lists.01.org/mailman/listinfo/edk2-devel 
>>>>> <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

_______________________________________________
edk2-devel mailing list
edk2-devel@lists.01.org
https://lists.01.org/mailman/listinfo/edk2-devel

Reply via email to