* Dependency expression inheritance problems @ 2018-03-28 18:14 edk2-lists 2018-03-28 18:32 ` Laszlo Ersek 0 siblings, 1 reply; 11+ messages in thread From: edk2-lists @ 2018-03-28 18:14 UTC (permalink / raw) To: edk2-devel Hopefully someone on the list can help with this problem. I have a DXE_DRIVER that links with several libraries. Some of these libraries are from a binary distribution. I checked the binary library's .INF file and it has the [LibraryClasses] and [Depex] sections present in the same format as for a source .INF. (not comments) When I build my driver, the generated .depex file does not seem to inherit the library DEPEX. Yet, it appears that the build tools are aware of the subordinate components. Here is a copy of the DEPEX part of the generated build report (-y switch to build). >----------------------------------------------------------------------------- -----------------------------------------< Final Dependency Expression (DEPEX) Instructions PUSH gEfiVariableWriteArchProtocolGuid PUSH gEfiVariableArchProtocolGuid PUSH gEfiPcdProtocolGuid AND AND END ------------------------------------------------------------------------------ ------------------------------------------ Dependency Expression (DEPEX) from INF (gEfiVariableWriteArchProtocolGuid AND gEfiVariableArchProtocolGuid) AND (gEfiPcdProtocolGuid) AND (gEfiRuntimeCryptProtocolGuid AND gEdkiiCryptExProtocolGuid AND gEfiRngProtocolGuid) ------------------------------------------------------------------------------ ------------------------------------------ >From Module INF: gEfiVariableWriteArchProtocolGuid AND gEfiVariableArchProtocolGuid >From Library INF: (gEfiPcdProtocolGuid) AND (gEfiRuntimeCryptProtocolGuid AND gEdkiiCryptExProtocolGuid AND gEfiRngProtocolGuid) <----------------------------------------------------------------------------- -----------------------------------------> You will notice that the final DEPEX instructions do not include the '(gEfiRuntimeCryptProtocolGuid AND gEdkiiCryptExProtocolGuid AND gEfiRngProtocolGuid)' clause, which happen to be dependencies inherited from the binary library. I've gone through the Build specifications and can't find anything that might relate to what I am seeing. Any ideas why I may be getting the partial depex, as shown in Final Dependency Expression above, instead of the full depex as shown in Dependency Expression from INF, above? The Depex comment from the generated, AS-BUILT, .INF file is significantly different from even what the build report says. [Depex.X64] # (gEfiVariableWriteArchProtocolGuid AND gEfiVariableArchProtocolGuid) AND (gEfiPcdProtocolGuid) AND (gEfiPcdProtocolGuid) AND (gEfiPcdProtocolGuid) AND (gEfiPcdProtocolGuid) AND (gEfiBdsArchProtocolGuid AND gEfiCpuArchProtocolGuid AND gEfiMetronomeArchProtocolGuid AND gEfiMonotonicCounterArchProtocolGuid AND gEfiRealTimeClockArchProtocolGuid AND gEfiResetArchProtocolGuid AND gEfiRuntimeArchProtocolGuid AND gEfiSecurityArchProtocolGuid AND gEfiTimerArchProtocolGuid AND gEfiVariableWriteArchProtocolGuid AND gEfiVariableArchProtocolGuid AND gEfiWatchdogTimerArchProtocolGuid) AND (gEfiRuntimeCryptProtocolGuid AND gEdkiiCryptExProtocolGuid AND gEfiRngProtocolGuid) Thanks Much. Daryl ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: Dependency expression inheritance problems 2018-03-28 18:14 Dependency expression inheritance problems edk2-lists @ 2018-03-28 18:32 ` Laszlo Ersek 2018-03-28 18:33 ` Laszlo Ersek 0 siblings, 1 reply; 11+ messages in thread From: Laszlo Ersek @ 2018-03-28 18:32 UTC (permalink / raw) To: edk2-lists, edk2-devel On 03/28/18 20:14, edk2-lists@mc2research.org wrote: > Hopefully someone on the list can help with this problem. > > > > I have a DXE_DRIVER that links with several libraries. Some of these > libraries are from a binary distribution. I checked the binary library's .INF > file and it has the [LibraryClasses] and [Depex] sections present in the same > format as for a source .INF. (not comments) Isn't that wrong (from the binary distribution)? The INF spec makes me think think that library instances provided in binary format should ship their standalone .depex files as well, and they should be referenced in the [Binaries] section of the respective lib instance INF file. https://edk2-docs.gitbooks.io/edk-ii-inf-specification/content/2_inf_overview/215_[depex]_section.html#215-depex-section "Binary .depex files are listed in [Binaries] sections of the INF files." I vaguely recall seeing an example somewhere, but nothing specific. I could be totally wrong. :) Thanks Laszlo ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: Dependency expression inheritance problems 2018-03-28 18:32 ` Laszlo Ersek @ 2018-03-28 18:33 ` Laszlo Ersek 2018-03-28 22:48 ` edk2-lists 0 siblings, 1 reply; 11+ messages in thread From: Laszlo Ersek @ 2018-03-28 18:33 UTC (permalink / raw) To: edk2-lists, edk2-devel On 03/28/18 20:32, Laszlo Ersek wrote: > On 03/28/18 20:14, edk2-lists@mc2research.org wrote: >> Hopefully someone on the list can help with this problem. >> >> >> >> I have a DXE_DRIVER that links with several libraries. Some of these >> libraries are from a binary distribution. I checked the binary library's .INF >> file and it has the [LibraryClasses] and [Depex] sections present in the same >> format as for a source .INF. (not comments) > > Isn't that wrong (from the binary distribution)? The INF spec makes me > think think that library instances provided in binary format should ship > their standalone .depex files as well, and they should be referenced in > the [Binaries] section of the respective lib instance INF file. > > https://edk2-docs.gitbooks.io/edk-ii-inf-specification/content/2_inf_overview/215_[depex]_section.html#215-depex-section > > "Binary .depex files are listed in [Binaries] sections of the INF files." > > I vaguely recall seeing an example somewhere, but nothing specific. I > could be totally wrong. :) I should have looked a but further in the same spec :) See the "Example" section here: https://edk2-docs.gitbooks.io/edk-ii-inf-specification/content/3_edk_ii_inf_file_format/315_[binaries]_section.html Laszlo ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: Dependency expression inheritance problems 2018-03-28 18:33 ` Laszlo Ersek @ 2018-03-28 22:48 ` edk2-lists 2018-03-29 7:07 ` Gao, Liming 0 siblings, 1 reply; 11+ messages in thread From: edk2-lists @ 2018-03-28 22:48 UTC (permalink / raw) To: 'Laszlo Ersek', edk2-devel Laszlo, I think you are thinking of the old .dxs files. EDK II supports them, but their use is discouraged. >From the "EDK II Build Specification", v1.27: "For EDK II modules, the build tools will create the complete dependency expression using the information in the [Depex] section along with all [Depex] sections from the linked in library instances." and "Once all files are parsed, the build tools will do following work for each EDK II module: ... * Inherit library instance dependency ( [Depex] sections) expressions if a module does not list a separate dependency file." So, use of the [Depex] sections in the .DSC and .INF files is supposed to be the way to go. The spec. also states that if a .dxs file is specified, inheritance will not be used and the .dxs file must specify every dependency. "Use of a separate file for describing the dependencies is discouraged. ... Libraries may also have a dependency, [Depex] , section. These dependencies must be appended to the module's DEPEX sections unless the module includes a depex (.dxs) file - even if the module does not contain a [Depex] section. When a developer chooses to write the .dxs file, the developer is responsible for specifying all dependencies in the .dxs file." I believe that according to the spec., what I am attempting should work. The EDK II build tools should generate a .depex file for the module that contains the module's depex as well as depex' inherited from the module's component libraries. But, I could be misinterpreting the spec. or doing something wrong in the build files (.DSC and .INF). Has anyone actually looked at the .depex that the tools produce and compared it to what the expected contents are for binary and hybrid (binary + source) builds? Thanks much, Daryl -----Original Message----- From: Laszlo Ersek <lersek@redhat.com> Sent: Wednesday, March 28, 2018 11:34 AM To: edk2-lists@mc2research.org; edk2-devel@lists.01.org Subject: Re: [edk2] Dependency expression inheritance problems On 03/28/18 20:32, Laszlo Ersek wrote: > On 03/28/18 20:14, edk2-lists@mc2research.org wrote: >> Hopefully someone on the list can help with this problem. >> >> >> >> I have a DXE_DRIVER that links with several libraries. Some of these >> libraries are from a binary distribution. I checked the binary >> library's .INF file and it has the [LibraryClasses] and [Depex] >> sections present in the same format as for a source .INF. (not >> comments) > > Isn't that wrong (from the binary distribution)? The INF spec makes me > think think that library instances provided in binary format should > ship their standalone .depex files as well, and they should be > referenced in the [Binaries] section of the respective lib instance INF file. > > https://edk2-docs.gitbooks.io/edk-ii-inf-specification/content/2_inf_o > verview/215_[depex]_section.html#215-depex-section > > "Binary .depex files are listed in [Binaries] sections of the INF files." > > I vaguely recall seeing an example somewhere, but nothing specific. I > could be totally wrong. :) I should have looked a but further in the same spec :) See the "Example" section here: https://edk2-docs.gitbooks.io/edk-ii-inf-specification/content/3_edk_ii_inf_file_format/315_[binaries]_section.html Laszlo ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: Dependency expression inheritance problems 2018-03-28 22:48 ` edk2-lists @ 2018-03-29 7:07 ` Gao, Liming 2018-03-29 14:52 ` Andrew Fish 2018-03-29 23:10 ` edk2-lists 0 siblings, 2 replies; 11+ messages in thread From: Gao, Liming @ 2018-03-29 7:07 UTC (permalink / raw) To: edk2-lists@mc2research.org, 'Laszlo Ersek', edk2-devel@lists.01.org Daryl: Do you try the source library INF file? EDK2 build system will inherit the depex section from its library. Seemly, this is an issue when the module is the binary library. Thanks Liming >-----Original Message----- >From: edk2-devel [mailto:edk2-devel-bounces@lists.01.org] On Behalf Of >edk2-lists@mc2research.org >Sent: Thursday, March 29, 2018 6:48 AM >To: 'Laszlo Ersek' <lersek@redhat.com>; edk2-devel@lists.01.org >Subject: Re: [edk2] Dependency expression inheritance problems > >Laszlo, > >I think you are thinking of the old .dxs files. EDK II supports them, but their >use is discouraged. >From the "EDK II Build Specification", v1.27: >"For EDK II modules, the build tools will create the complete dependency >expression using the information in the [Depex] section along with all [Depex] >sections from the linked in library instances." > >and > >"Once all files are parsed, the build tools will do following work for each EDK II >module: > ... > * Inherit library instance dependency ( [Depex] sections) expressions >if a module does not list a separate dependency file." > >So, use of the [Depex] sections in the .DSC and .INF files is supposed to be the >way to go. > >The spec. also states that if a .dxs file is specified, inheritance will not be used >and the .dxs file must specify every dependency. "Use of a separate file for >describing the dependencies is discouraged. ... Libraries may also have a >dependency, [Depex] , section. These dependencies must be appended to >the module's DEPEX sections unless the module includes a depex (.dxs) file - >even if the module does not contain a [Depex] section. When a developer >chooses to write the .dxs file, the developer is responsible for specifying all >dependencies in the .dxs file." > >I believe that according to the spec., what I am attempting should work. The >EDK II build tools should generate a .depex file for the module that contains >the module's depex as well as depex' inherited from the module's component >libraries. > >But, I could be misinterpreting the spec. or doing something wrong in the >build files (.DSC and .INF). > >Has anyone actually looked at the .depex that the tools produce and >compared it to what the expected contents are for binary and hybrid (binary + >source) builds? > >Thanks much, >Daryl > > >-----Original Message----- >From: Laszlo Ersek <lersek@redhat.com> >Sent: Wednesday, March 28, 2018 11:34 AM >To: edk2-lists@mc2research.org; edk2-devel@lists.01.org >Subject: Re: [edk2] Dependency expression inheritance problems > >On 03/28/18 20:32, Laszlo Ersek wrote: >> On 03/28/18 20:14, edk2-lists@mc2research.org wrote: >>> Hopefully someone on the list can help with this problem. >>> >>> >>> >>> I have a DXE_DRIVER that links with several libraries. Some of these >>> libraries are from a binary distribution. I checked the binary >>> library's .INF file and it has the [LibraryClasses] and [Depex] >>> sections present in the same format as for a source .INF. (not >>> comments) >> >> Isn't that wrong (from the binary distribution)? The INF spec makes me >> think think that library instances provided in binary format should >> ship their standalone .depex files as well, and they should be >> referenced in the [Binaries] section of the respective lib instance INF file. >> >> https://edk2-docs.gitbooks.io/edk-ii-inf-specification/content/2_inf_o >> verview/215_[depex]_section.html#215-depex-section >> >> "Binary .depex files are listed in [Binaries] sections of the INF files." >> >> I vaguely recall seeing an example somewhere, but nothing specific. I >> could be totally wrong. :) > >I should have looked a but further in the same spec :) See the "Example" >section here: > >https://edk2-docs.gitbooks.io/edk-ii-inf- >specification/content/3_edk_ii_inf_file_format/315_[binaries]_section.html > >Laszlo > >_______________________________________________ >edk2-devel mailing list >edk2-devel@lists.01.org >https://lists.01.org/mailman/listinfo/edk2-devel ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: Dependency expression inheritance problems 2018-03-29 7:07 ` Gao, Liming @ 2018-03-29 14:52 ` Andrew Fish 2018-03-29 23:10 ` edk2-lists 1 sibling, 0 replies; 11+ messages in thread From: Andrew Fish @ 2018-03-29 14:52 UTC (permalink / raw) To: edk2-devel@lists.01.org Daryl, You can tell the build command to generate a report file to see what depex got constructed by the inherence, and what library instances got resolved for your various library classes. -y REPORTFILE, --report-file=REPORTFILE Create/overwrite the report to the specified filename. -Y REPORTTYPE, --report-type=REPORTTYPE Flags that control the type of build report to generate. Must be one of: [PCD, LIBRARY, FLASH, DEPEX, BUILD_FLAGS, FIXED_ADDRESS, HASH, EXECUTION_ORDER]. To specify more than one flag, repeat this option on the command line and the default flag set is [PCD, LIBRARY, FLASH, DEPEX, HASH, BUILD_FLAGS, FIXED_ADDRESS] Thanks, Andrew Fish > On Mar 29, 2018, at 12:07 AM, Gao, Liming <liming.gao@intel.com> wrote: > > Daryl: > Do you try the source library INF file? EDK2 build system will inherit the depex section from its library. Seemly, this is an issue when the module is the binary library. > > Thanks > Liming >> -----Original Message----- >> From: edk2-devel [mailto:edk2-devel-bounces@lists.01.org] On Behalf Of >> edk2-lists@mc2research.org >> Sent: Thursday, March 29, 2018 6:48 AM >> To: 'Laszlo Ersek' <lersek@redhat.com>; edk2-devel@lists.01.org >> Subject: Re: [edk2] Dependency expression inheritance problems >> >> Laszlo, >> >> I think you are thinking of the old .dxs files. EDK II supports them, but their >> use is discouraged. >> From the "EDK II Build Specification", v1.27: >> "For EDK II modules, the build tools will create the complete dependency >> expression using the information in the [Depex] section along with all [Depex] >> sections from the linked in library instances." >> >> and >> >> "Once all files are parsed, the build tools will do following work for each EDK II >> module: >> ... >> * Inherit library instance dependency ( [Depex] sections) expressions >> if a module does not list a separate dependency file." >> >> So, use of the [Depex] sections in the .DSC and .INF files is supposed to be the >> way to go. >> >> The spec. also states that if a .dxs file is specified, inheritance will not be used >> and the .dxs file must specify every dependency. "Use of a separate file for >> describing the dependencies is discouraged. ... Libraries may also have a >> dependency, [Depex] , section. These dependencies must be appended to >> the module's DEPEX sections unless the module includes a depex (.dxs) file - >> even if the module does not contain a [Depex] section. When a developer >> chooses to write the .dxs file, the developer is responsible for specifying all >> dependencies in the .dxs file." >> >> I believe that according to the spec., what I am attempting should work. The >> EDK II build tools should generate a .depex file for the module that contains >> the module's depex as well as depex' inherited from the module's component >> libraries. >> >> But, I could be misinterpreting the spec. or doing something wrong in the >> build files (.DSC and .INF). >> >> Has anyone actually looked at the .depex that the tools produce and >> compared it to what the expected contents are for binary and hybrid (binary + >> source) builds? >> >> Thanks much, >> Daryl >> >> >> -----Original Message----- >> From: Laszlo Ersek <lersek@redhat.com> >> Sent: Wednesday, March 28, 2018 11:34 AM >> To: edk2-lists@mc2research.org; edk2-devel@lists.01.org >> Subject: Re: [edk2] Dependency expression inheritance problems >> >> On 03/28/18 20:32, Laszlo Ersek wrote: >>> On 03/28/18 20:14, edk2-lists@mc2research.org wrote: >>>> Hopefully someone on the list can help with this problem. >>>> >>>> >>>> >>>> I have a DXE_DRIVER that links with several libraries. Some of these >>>> libraries are from a binary distribution. I checked the binary >>>> library's .INF file and it has the [LibraryClasses] and [Depex] >>>> sections present in the same format as for a source .INF. (not >>>> comments) >>> >>> Isn't that wrong (from the binary distribution)? The INF spec makes me >>> think think that library instances provided in binary format should >>> ship their standalone .depex files as well, and they should be >>> referenced in the [Binaries] section of the respective lib instance INF file. >>> >>> https://edk2-docs.gitbooks.io/edk-ii-inf-specification/content/2_inf_o >>> verview/215_[depex]_section.html#215-depex-section >>> >>> "Binary .depex files are listed in [Binaries] sections of the INF files." >>> >>> I vaguely recall seeing an example somewhere, but nothing specific. I >>> could be totally wrong. :) >> >> I should have looked a but further in the same spec :) See the "Example" >> section here: >> >> https://edk2-docs.gitbooks.io/edk-ii-inf- >> specification/content/3_edk_ii_inf_file_format/315_[binaries]_section.html >> >> Laszlo >> >> _______________________________________________ >> 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 ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: Dependency expression inheritance problems 2018-03-29 7:07 ` Gao, Liming 2018-03-29 14:52 ` Andrew Fish @ 2018-03-29 23:10 ` edk2-lists 2018-03-30 0:36 ` Gao, Liming 1 sibling, 1 reply; 11+ messages in thread From: edk2-lists @ 2018-03-29 23:10 UTC (permalink / raw) To: 'Gao, Liming', edk2-devel Liming, This is only a problem with binary libraries. If I do everything from sources, the generated .depex is correct. Daryl -----Original Message----- From: Gao, Liming <liming.gao@intel.com> Sent: Thursday, March 29, 2018 12:08 AM To: edk2-lists@mc2research.org; 'Laszlo Ersek' <lersek@redhat.com>; edk2-devel@lists.01.org Subject: RE: [edk2] Dependency expression inheritance problems Daryl: Do you try the source library INF file? EDK2 build system will inherit the depex section from its library. Seemly, this is an issue when the module is the binary library. Thanks Liming >-----Original Message----- >From: edk2-devel [mailto:edk2-devel-bounces@lists.01.org] On Behalf Of >edk2-lists@mc2research.org >Sent: Thursday, March 29, 2018 6:48 AM >To: 'Laszlo Ersek' <lersek@redhat.com>; edk2-devel@lists.01.org >Subject: Re: [edk2] Dependency expression inheritance problems > >Laszlo, > >I think you are thinking of the old .dxs files. EDK II supports them, >but their use is discouraged. >From the "EDK II Build Specification", v1.27: >"For EDK II modules, the build tools will create the complete >dependency expression using the information in the [Depex] section >along with all [Depex] sections from the linked in library instances." > >and > >"Once all files are parsed, the build tools will do following work for >each EDK II >module: > ... > * Inherit library instance dependency ( [Depex] sections) expressions >if a module does not list a separate dependency file." > >So, use of the [Depex] sections in the .DSC and .INF files is supposed >to be the way to go. > >The spec. also states that if a .dxs file is specified, inheritance >will not be used and the .dxs file must specify every dependency. "Use >of a separate file for describing the dependencies is discouraged. ... >Libraries may also have a dependency, [Depex] , section. These >dependencies must be appended to the module's DEPEX sections unless the >module includes a depex (.dxs) file - even if the module does not >contain a [Depex] section. When a developer chooses to write the .dxs >file, the developer is responsible for specifying all dependencies in the .dxs file." > >I believe that according to the spec., what I am attempting should >work. The EDK II build tools should generate a .depex file for the >module that contains the module's depex as well as depex' inherited >from the module's component libraries. > >But, I could be misinterpreting the spec. or doing something wrong in >the build files (.DSC and .INF). > >Has anyone actually looked at the .depex that the tools produce and >compared it to what the expected contents are for binary and hybrid >(binary + >source) builds? > >Thanks much, >Daryl > > >-----Original Message----- >From: Laszlo Ersek <lersek@redhat.com> >Sent: Wednesday, March 28, 2018 11:34 AM >To: edk2-lists@mc2research.org; edk2-devel@lists.01.org >Subject: Re: [edk2] Dependency expression inheritance problems > >On 03/28/18 20:32, Laszlo Ersek wrote: >> On 03/28/18 20:14, edk2-lists@mc2research.org wrote: >>> Hopefully someone on the list can help with this problem. >>> >>> >>> >>> I have a DXE_DRIVER that links with several libraries. Some of >>> these libraries are from a binary distribution. I checked the >>> binary library's .INF file and it has the [LibraryClasses] and >>> [Depex] sections present in the same format as for a source .INF. >>> (not >>> comments) >> >> Isn't that wrong (from the binary distribution)? The INF spec makes >> me think think that library instances provided in binary format >> should ship their standalone .depex files as well, and they should be >> referenced in the [Binaries] section of the respective lib instance INF file. >> >> https://edk2-docs.gitbooks.io/edk-ii-inf-specification/content/2_inf_ >> o verview/215_[depex]_section.html#215-depex-section >> >> "Binary .depex files are listed in [Binaries] sections of the INF files." >> >> I vaguely recall seeing an example somewhere, but nothing specific. I >> could be totally wrong. :) > >I should have looked a but further in the same spec :) See the "Example" >section here: > >https://edk2-docs.gitbooks.io/edk-ii-inf- >specification/content/3_edk_ii_inf_file_format/315_[binaries]_section.h >tml > >Laszlo > >_______________________________________________ >edk2-devel mailing list >edk2-devel@lists.01.org >https://lists.01.org/mailman/listinfo/edk2-devel ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: Dependency expression inheritance problems 2018-03-29 23:10 ` edk2-lists @ 2018-03-30 0:36 ` Gao, Liming 2018-04-06 22:01 ` darylm 2018-04-06 22:03 ` edk2-lists 0 siblings, 2 replies; 11+ messages in thread From: Gao, Liming @ 2018-03-30 0:36 UTC (permalink / raw) To: edk2-lists@mc2research.org, edk2-devel@lists.01.org Daryl: Could you submit one tracker in bugzillar? We will check it in BaseTools. Thanks Liming > -----Original Message----- > From: darylm@mc2research.com [mailto:darylm@mc2research.com] On Behalf Of edk2-lists@mc2research.org > Sent: Friday, March 30, 2018 7:10 AM > To: Gao, Liming <liming.gao@intel.com>; edk2-devel@lists.01.org > Subject: RE: [edk2] Dependency expression inheritance problems > > Liming, > > This is only a problem with binary libraries. If I do everything from > sources, the generated .depex is correct. > > Daryl > > -----Original Message----- > From: Gao, Liming <liming.gao@intel.com> > Sent: Thursday, March 29, 2018 12:08 AM > To: edk2-lists@mc2research.org; 'Laszlo Ersek' <lersek@redhat.com>; > edk2-devel@lists.01.org > Subject: RE: [edk2] Dependency expression inheritance problems > > Daryl: > Do you try the source library INF file? EDK2 build system will inherit the > depex section from its library. Seemly, this is an issue when the module is > the binary library. > > Thanks > Liming > >-----Original Message----- > >From: edk2-devel [mailto:edk2-devel-bounces@lists.01.org] On Behalf Of > >edk2-lists@mc2research.org > >Sent: Thursday, March 29, 2018 6:48 AM > >To: 'Laszlo Ersek' <lersek@redhat.com>; edk2-devel@lists.01.org > >Subject: Re: [edk2] Dependency expression inheritance problems > > > >Laszlo, > > > >I think you are thinking of the old .dxs files. EDK II supports them, > >but their use is discouraged. > >From the "EDK II Build Specification", v1.27: > >"For EDK II modules, the build tools will create the complete > >dependency expression using the information in the [Depex] section > >along with all [Depex] sections from the linked in library instances." > > > >and > > > >"Once all files are parsed, the build tools will do following work for > >each EDK II > >module: > > ... > > * Inherit library instance dependency ( [Depex] sections) expressions > > >if a module does not list a separate dependency file." > > > >So, use of the [Depex] sections in the .DSC and .INF files is supposed > >to be the way to go. > > > >The spec. also states that if a .dxs file is specified, inheritance > >will not be used and the .dxs file must specify every dependency. "Use > >of a separate file for describing the dependencies is discouraged. ... > >Libraries may also have a dependency, [Depex] , section. These > >dependencies must be appended to the module's DEPEX sections unless the > >module includes a depex (.dxs) file - even if the module does not > >contain a [Depex] section. When a developer chooses to write the .dxs > >file, the developer is responsible for specifying all dependencies in the > .dxs file." > > > >I believe that according to the spec., what I am attempting should > >work. The EDK II build tools should generate a .depex file for the > >module that contains the module's depex as well as depex' inherited > >from the module's component libraries. > > > >But, I could be misinterpreting the spec. or doing something wrong in > >the build files (.DSC and .INF). > > > >Has anyone actually looked at the .depex that the tools produce and > >compared it to what the expected contents are for binary and hybrid > >(binary + > >source) builds? > > > >Thanks much, > >Daryl > > > > > >-----Original Message----- > >From: Laszlo Ersek <lersek@redhat.com> > >Sent: Wednesday, March 28, 2018 11:34 AM > >To: edk2-lists@mc2research.org; edk2-devel@lists.01.org > >Subject: Re: [edk2] Dependency expression inheritance problems > > > >On 03/28/18 20:32, Laszlo Ersek wrote: > >> On 03/28/18 20:14, edk2-lists@mc2research.org wrote: > >>> Hopefully someone on the list can help with this problem. > >>> > >>> > >>> > >>> I have a DXE_DRIVER that links with several libraries. Some of > >>> these libraries are from a binary distribution. I checked the > >>> binary library's .INF file and it has the [LibraryClasses] and > >>> [Depex] sections present in the same format as for a source .INF. > >>> (not > >>> comments) > >> > >> Isn't that wrong (from the binary distribution)? The INF spec makes > >> me think think that library instances provided in binary format > >> should ship their standalone .depex files as well, and they should be > >> referenced in the [Binaries] section of the respective lib instance INF > file. > >> > >> https://edk2-docs.gitbooks.io/edk-ii-inf-specification/content/2_inf_ > >> o verview/215_[depex]_section.html#215-depex-section > >> > >> "Binary .depex files are listed in [Binaries] sections of the INF files." > >> > >> I vaguely recall seeing an example somewhere, but nothing specific. I > >> could be totally wrong. :) > > > >I should have looked a but further in the same spec :) See the "Example" > >section here: > > > >https://edk2-docs.gitbooks.io/edk-ii-inf- > >specification/content/3_edk_ii_inf_file_format/315_[binaries]_section.h > >tml > > > >Laszlo > > > >_______________________________________________ > >edk2-devel mailing list > >edk2-devel@lists.01.org > >https://lists.01.org/mailman/listinfo/edk2-devel ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: Dependency expression inheritance problems 2018-03-30 0:36 ` Gao, Liming @ 2018-04-06 22:01 ` darylm 2018-04-06 22:03 ` edk2-lists 1 sibling, 0 replies; 11+ messages in thread From: darylm @ 2018-04-06 22:01 UTC (permalink / raw) To: 'Gao, Liming', edk2-devel Liming, I don't remember whether I replied to you. I submitted Bugzilla report #914 - DEPEX not inherited from binary libraries - on 30 March 2018. Thanks, Daryl -----Original Message----- From: edk2-devel <edk2-devel-bounces@lists.01.org> On Behalf Of Gao, Liming Sent: Thursday, March 29, 2018 5:36 PM To: edk2-lists@mc2research.org; edk2-devel@lists.01.org Subject: Re: [edk2] Dependency expression inheritance problems Daryl: Could you submit one tracker in bugzillar? We will check it in BaseTools. Thanks Liming > -----Original Message----- > From: darylm@mc2research.com [mailto:darylm@mc2research.com] On Behalf > Of edk2-lists@mc2research.org > Sent: Friday, March 30, 2018 7:10 AM > To: Gao, Liming <liming.gao@intel.com>; edk2-devel@lists.01.org > Subject: RE: [edk2] Dependency expression inheritance problems > > Liming, > > This is only a problem with binary libraries. If I do everything from > sources, the generated .depex is correct. > > Daryl > > -----Original Message----- > From: Gao, Liming <liming.gao@intel.com> > Sent: Thursday, March 29, 2018 12:08 AM > To: edk2-lists@mc2research.org; 'Laszlo Ersek' <lersek@redhat.com>; > edk2-devel@lists.01.org > Subject: RE: [edk2] Dependency expression inheritance problems > > Daryl: > Do you try the source library INF file? EDK2 build system will > inherit the depex section from its library. Seemly, this is an issue > when the module is the binary library. > > Thanks > Liming > >-----Original Message----- > >From: edk2-devel [mailto:edk2-devel-bounces@lists.01.org] On Behalf > >Of edk2-lists@mc2research.org > >Sent: Thursday, March 29, 2018 6:48 AM > >To: 'Laszlo Ersek' <lersek@redhat.com>; edk2-devel@lists.01.org > >Subject: Re: [edk2] Dependency expression inheritance problems > > > >Laszlo, > > > >I think you are thinking of the old .dxs files. EDK II supports > >them, but their use is discouraged. > >From the "EDK II Build Specification", v1.27: > >"For EDK II modules, the build tools will create the complete > >dependency expression using the information in the [Depex] section > >along with all [Depex] sections from the linked in library instances." > > > >and > > > >"Once all files are parsed, the build tools will do following work > >for each EDK II > >module: > > ... > > * Inherit library instance dependency ( [Depex] sections) > >expressions > > >if a module does not list a separate dependency file." > > > >So, use of the [Depex] sections in the .DSC and .INF files is > >supposed to be the way to go. > > > >The spec. also states that if a .dxs file is specified, inheritance > >will not be used and the .dxs file must specify every dependency. > >"Use of a separate file for describing the dependencies is discouraged. ... > >Libraries may also have a dependency, [Depex] , section. These > >dependencies must be appended to the module's DEPEX sections unless > >the module includes a depex (.dxs) file - even if the module does not > >contain a [Depex] section. When a developer chooses to write the .dxs > >file, the developer is responsible for specifying all dependencies in > >the > .dxs file." > > > >I believe that according to the spec., what I am attempting should > >work. The EDK II build tools should generate a .depex file for the > >module that contains the module's depex as well as depex' inherited > >from the module's component libraries. > > > >But, I could be misinterpreting the spec. or doing something wrong in > >the build files (.DSC and .INF). > > > >Has anyone actually looked at the .depex that the tools produce and > >compared it to what the expected contents are for binary and hybrid > >(binary + > >source) builds? > > > >Thanks much, > >Daryl > > > > > >-----Original Message----- > >From: Laszlo Ersek <lersek@redhat.com> > >Sent: Wednesday, March 28, 2018 11:34 AM > >To: edk2-lists@mc2research.org; edk2-devel@lists.01.org > >Subject: Re: [edk2] Dependency expression inheritance problems > > > >On 03/28/18 20:32, Laszlo Ersek wrote: > >> On 03/28/18 20:14, edk2-lists@mc2research.org wrote: > >>> Hopefully someone on the list can help with this problem. > >>> > >>> > >>> > >>> I have a DXE_DRIVER that links with several libraries. Some of > >>> these libraries are from a binary distribution. I checked the > >>> binary library's .INF file and it has the [LibraryClasses] and > >>> [Depex] sections present in the same format as for a source .INF. > >>> (not > >>> comments) > >> > >> Isn't that wrong (from the binary distribution)? The INF spec makes > >> me think think that library instances provided in binary format > >> should ship their standalone .depex files as well, and they should > >> be referenced in the [Binaries] section of the respective lib > >> instance INF > file. > >> > >> https://edk2-docs.gitbooks.io/edk-ii-inf-specification/content/2_in > >> f_ o verview/215_[depex]_section.html#215-depex-section > >> > >> "Binary .depex files are listed in [Binaries] sections of the INF files." > >> > >> I vaguely recall seeing an example somewhere, but nothing specific. > >> I could be totally wrong. :) > > > >I should have looked a but further in the same spec :) See the "Example" > >section here: > > > >https://edk2-docs.gitbooks.io/edk-ii-inf- > >specification/content/3_edk_ii_inf_file_format/315_[binaries]_section > >.h > >tml > > > >Laszlo > > > >_______________________________________________ > >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 ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: Dependency expression inheritance problems 2018-03-30 0:36 ` Gao, Liming 2018-04-06 22:01 ` darylm @ 2018-04-06 22:03 ` edk2-lists 2018-04-08 2:03 ` Gao, Liming 1 sibling, 1 reply; 11+ messages in thread From: edk2-lists @ 2018-04-06 22:03 UTC (permalink / raw) To: 'Gao, Liming', edk2-devel Liming, I don't remember whether I answered you or not, but I did submit a Bugzilla report on March 30, 2018. Bug 914 - DEPEX not inherited from binary libraries Thank you, Daryl -----Original Message----- From: edk2-devel <edk2-devel-bounces@lists.01.org> On Behalf Of Gao, Liming Sent: Thursday, March 29, 2018 5:36 PM To: edk2-lists@mc2research.org; edk2-devel@lists.01.org Subject: Re: [edk2] Dependency expression inheritance problems Daryl: Could you submit one tracker in bugzillar? We will check it in BaseTools. Thanks Liming > -----Original Message----- > From: darylm@mc2research.com [mailto:darylm@mc2research.com] On Behalf > Of edk2-lists@mc2research.org > Sent: Friday, March 30, 2018 7:10 AM > To: Gao, Liming <liming.gao@intel.com>; edk2-devel@lists.01.org > Subject: RE: [edk2] Dependency expression inheritance problems > > Liming, > > This is only a problem with binary libraries. If I do everything from > sources, the generated .depex is correct. > > Daryl > > -----Original Message----- > From: Gao, Liming <liming.gao@intel.com> > Sent: Thursday, March 29, 2018 12:08 AM > To: edk2-lists@mc2research.org; 'Laszlo Ersek' <lersek@redhat.com>; > edk2-devel@lists.01.org > Subject: RE: [edk2] Dependency expression inheritance problems > > Daryl: > Do you try the source library INF file? EDK2 build system will > inherit the depex section from its library. Seemly, this is an issue > when the module is the binary library. > > Thanks > Liming > >-----Original Message----- > >From: edk2-devel [mailto:edk2-devel-bounces@lists.01.org] On Behalf > >Of edk2-lists@mc2research.org > >Sent: Thursday, March 29, 2018 6:48 AM > >To: 'Laszlo Ersek' <lersek@redhat.com>; edk2-devel@lists.01.org > >Subject: Re: [edk2] Dependency expression inheritance problems > > > >Laszlo, > > > >I think you are thinking of the old .dxs files. EDK II supports > >them, but their use is discouraged. > >From the "EDK II Build Specification", v1.27: > >"For EDK II modules, the build tools will create the complete > >dependency expression using the information in the [Depex] section > >along with all [Depex] sections from the linked in library instances." > > > >and > > > >"Once all files are parsed, the build tools will do following work > >for each EDK II > >module: > > ... > > * Inherit library instance dependency ( [Depex] sections) > >expressions > > >if a module does not list a separate dependency file." > > > >So, use of the [Depex] sections in the .DSC and .INF files is > >supposed to be the way to go. > > > >The spec. also states that if a .dxs file is specified, inheritance > >will not be used and the .dxs file must specify every dependency. > >"Use of a separate file for describing the dependencies is discouraged. ... > >Libraries may also have a dependency, [Depex] , section. These > >dependencies must be appended to the module's DEPEX sections unless > >the module includes a depex (.dxs) file - even if the module does not > >contain a [Depex] section. When a developer chooses to write the .dxs > >file, the developer is responsible for specifying all dependencies in > >the > .dxs file." > > > >I believe that according to the spec., what I am attempting should > >work. The EDK II build tools should generate a .depex file for the > >module that contains the module's depex as well as depex' inherited > >from the module's component libraries. > > > >But, I could be misinterpreting the spec. or doing something wrong in > >the build files (.DSC and .INF). > > > >Has anyone actually looked at the .depex that the tools produce and > >compared it to what the expected contents are for binary and hybrid > >(binary + > >source) builds? > > > >Thanks much, > >Daryl > > > > > >-----Original Message----- > >From: Laszlo Ersek <lersek@redhat.com> > >Sent: Wednesday, March 28, 2018 11:34 AM > >To: edk2-lists@mc2research.org; edk2-devel@lists.01.org > >Subject: Re: [edk2] Dependency expression inheritance problems > > > >On 03/28/18 20:32, Laszlo Ersek wrote: > >> On 03/28/18 20:14, edk2-lists@mc2research.org wrote: > >>> Hopefully someone on the list can help with this problem. > >>> > >>> > >>> > >>> I have a DXE_DRIVER that links with several libraries. Some of > >>> these libraries are from a binary distribution. I checked the > >>> binary library's .INF file and it has the [LibraryClasses] and > >>> [Depex] sections present in the same format as for a source .INF. > >>> (not > >>> comments) > >> > >> Isn't that wrong (from the binary distribution)? The INF spec makes > >> me think think that library instances provided in binary format > >> should ship their standalone .depex files as well, and they should > >> be referenced in the [Binaries] section of the respective lib > >> instance INF > file. > >> > >> https://edk2-docs.gitbooks.io/edk-ii-inf-specification/content/2_in > >> f_ o verview/215_[depex]_section.html#215-depex-section > >> > >> "Binary .depex files are listed in [Binaries] sections of the INF files." > >> > >> I vaguely recall seeing an example somewhere, but nothing specific. > >> I could be totally wrong. :) > > > >I should have looked a but further in the same spec :) See the "Example" > >section here: > > > >https://edk2-docs.gitbooks.io/edk-ii-inf- > >specification/content/3_edk_ii_inf_file_format/315_[binaries]_section > >.h > >tml > > > >Laszlo > > > >_______________________________________________ > >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 ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: Dependency expression inheritance problems 2018-04-06 22:03 ` edk2-lists @ 2018-04-08 2:03 ` Gao, Liming 0 siblings, 0 replies; 11+ messages in thread From: Gao, Liming @ 2018-04-08 2:03 UTC (permalink / raw) To: edk2-lists@mc2research.org, edk2-devel@lists.01.org Thanks. >-----Original Message----- >From: darylm@mc2research.com [mailto:darylm@mc2research.com] On >Behalf Of edk2-lists@mc2research.org >Sent: Saturday, April 07, 2018 6:04 AM >To: Gao, Liming <liming.gao@intel.com>; edk2-devel@lists.01.org >Subject: RE: [edk2] Dependency expression inheritance problems > >Liming, > >I don't remember whether I answered you or not, but I did submit a Bugzilla >report on March 30, 2018. >Bug 914 - DEPEX not inherited from binary libraries > >Thank you, >Daryl > >-----Original Message----- >From: edk2-devel <edk2-devel-bounces@lists.01.org> On Behalf Of Gao, >Liming >Sent: Thursday, March 29, 2018 5:36 PM >To: edk2-lists@mc2research.org; edk2-devel@lists.01.org >Subject: Re: [edk2] Dependency expression inheritance problems > >Daryl: > Could you submit one tracker in bugzillar? We will check it in BaseTools. > >Thanks >Liming >> -----Original Message----- >> From: darylm@mc2research.com [mailto:darylm@mc2research.com] On >Behalf >> Of edk2-lists@mc2research.org >> Sent: Friday, March 30, 2018 7:10 AM >> To: Gao, Liming <liming.gao@intel.com>; edk2-devel@lists.01.org >> Subject: RE: [edk2] Dependency expression inheritance problems >> >> Liming, >> >> This is only a problem with binary libraries. If I do everything from >> sources, the generated .depex is correct. >> >> Daryl >> >> -----Original Message----- >> From: Gao, Liming <liming.gao@intel.com> >> Sent: Thursday, March 29, 2018 12:08 AM >> To: edk2-lists@mc2research.org; 'Laszlo Ersek' <lersek@redhat.com>; >> edk2-devel@lists.01.org >> Subject: RE: [edk2] Dependency expression inheritance problems >> >> Daryl: >> Do you try the source library INF file? EDK2 build system will >> inherit the depex section from its library. Seemly, this is an issue >> when the module is the binary library. >> >> Thanks >> Liming >> >-----Original Message----- >> >From: edk2-devel [mailto:edk2-devel-bounces@lists.01.org] On Behalf >> >Of edk2-lists@mc2research.org >> >Sent: Thursday, March 29, 2018 6:48 AM >> >To: 'Laszlo Ersek' <lersek@redhat.com>; edk2-devel@lists.01.org >> >Subject: Re: [edk2] Dependency expression inheritance problems >> > >> >Laszlo, >> > >> >I think you are thinking of the old .dxs files. EDK II supports >> >them, but their use is discouraged. >> >From the "EDK II Build Specification", v1.27: >> >"For EDK II modules, the build tools will create the complete >> >dependency expression using the information in the [Depex] section >> >along with all [Depex] sections from the linked in library instances." >> > >> >and >> > >> >"Once all files are parsed, the build tools will do following work >> >for each EDK II >> >module: >> > ... >> > * Inherit library instance dependency ( [Depex] sections) >> >expressions >> >> >if a module does not list a separate dependency file." >> > >> >So, use of the [Depex] sections in the .DSC and .INF files is >> >supposed to be the way to go. >> > >> >The spec. also states that if a .dxs file is specified, inheritance >> >will not be used and the .dxs file must specify every dependency. >> >"Use of a separate file for describing the dependencies is discouraged. ... >> >Libraries may also have a dependency, [Depex] , section. These >> >dependencies must be appended to the module's DEPEX sections unless >> >the module includes a depex (.dxs) file - even if the module does not >> >contain a [Depex] section. When a developer chooses to write the .dxs >> >file, the developer is responsible for specifying all dependencies in >> >the >> .dxs file." >> > >> >I believe that according to the spec., what I am attempting should >> >work. The EDK II build tools should generate a .depex file for the >> >module that contains the module's depex as well as depex' inherited >> >from the module's component libraries. >> > >> >But, I could be misinterpreting the spec. or doing something wrong in >> >the build files (.DSC and .INF). >> > >> >Has anyone actually looked at the .depex that the tools produce and >> >compared it to what the expected contents are for binary and hybrid >> >(binary + >> >source) builds? >> > >> >Thanks much, >> >Daryl >> > >> > >> >-----Original Message----- >> >From: Laszlo Ersek <lersek@redhat.com> >> >Sent: Wednesday, March 28, 2018 11:34 AM >> >To: edk2-lists@mc2research.org; edk2-devel@lists.01.org >> >Subject: Re: [edk2] Dependency expression inheritance problems >> > >> >On 03/28/18 20:32, Laszlo Ersek wrote: >> >> On 03/28/18 20:14, edk2-lists@mc2research.org wrote: >> >>> Hopefully someone on the list can help with this problem. >> >>> >> >>> >> >>> >> >>> I have a DXE_DRIVER that links with several libraries. Some of >> >>> these libraries are from a binary distribution. I checked the >> >>> binary library's .INF file and it has the [LibraryClasses] and >> >>> [Depex] sections present in the same format as for a source .INF. >> >>> (not >> >>> comments) >> >> >> >> Isn't that wrong (from the binary distribution)? The INF spec makes >> >> me think think that library instances provided in binary format >> >> should ship their standalone .depex files as well, and they should >> >> be referenced in the [Binaries] section of the respective lib >> >> instance INF >> file. >> >> >> >> https://edk2-docs.gitbooks.io/edk-ii-inf-specification/content/2_in >> >> f_ o verview/215_[depex]_section.html#215-depex-section >> >> >> >> "Binary .depex files are listed in [Binaries] sections of the INF files." >> >> >> >> I vaguely recall seeing an example somewhere, but nothing specific. >> >> I could be totally wrong. :) >> > >> >I should have looked a but further in the same spec :) See the "Example" >> >section here: >> > >> >https://edk2-docs.gitbooks.io/edk-ii-inf- >> >specification/content/3_edk_ii_inf_file_format/315_[binaries]_section >> >.h >> >tml >> > >> >Laszlo >> > >> >_______________________________________________ >> >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 ^ permalink raw reply [flat|nested] 11+ messages in thread
end of thread, other threads:[~2018-04-08 2:03 UTC | newest] Thread overview: 11+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2018-03-28 18:14 Dependency expression inheritance problems edk2-lists 2018-03-28 18:32 ` Laszlo Ersek 2018-03-28 18:33 ` Laszlo Ersek 2018-03-28 22:48 ` edk2-lists 2018-03-29 7:07 ` Gao, Liming 2018-03-29 14:52 ` Andrew Fish 2018-03-29 23:10 ` edk2-lists 2018-03-30 0:36 ` Gao, Liming 2018-04-06 22:01 ` darylm 2018-04-06 22:03 ` edk2-lists 2018-04-08 2:03 ` Gao, Liming
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox