public inbox for devel@edk2.groups.io
 help / color / mirror / Atom feed
From: <edk2-lists@mc2research.org>
To: <edk2-devel@lists.01.org>
Subject: Dependency expression inheritance problems
Date: Wed, 28 Mar 2018 11:14:58 -0700	[thread overview]
Message-ID: <000401d3c6c0$aef61660$0ce24320$@mc2research.org> (raw)

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

 



             reply	other threads:[~2018-03-28 18:08 UTC|newest]

Thread overview: 11+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-03-28 18:14 edk2-lists [this message]
2018-03-28 18:32 ` Dependency expression inheritance problems 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

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='000401d3c6c0$aef61660$0ce24320$@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