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