public inbox for devel@edk2.groups.io
 help / color / mirror / Atom feed
From: <edk2-lists@mc2research.org>
To: "'Laszlo Ersek'" <lersek@redhat.com>, <edk2-devel@lists.01.org>
Subject: Re: Dependency expression inheritance problems
Date: Wed, 28 Mar 2018 15:48:05 -0700	[thread overview]
Message-ID: <002001d3c6e6$d67d4cf0$8377e6d0$@mc2research.org> (raw)
In-Reply-To: <3afc6f92-81aa-a90c-289e-2868caade361@redhat.com>

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



  reply	other threads:[~2018-03-28 22:41 UTC|newest]

Thread overview: 11+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
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 [this message]
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

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-list from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to='002001d3c6e6$d67d4cf0$8377e6d0$@mc2research.org' \
    --to=devel@edk2.groups.io \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox