public inbox for devel@edk2.groups.io
 help / color / mirror / Atom feed
* 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

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