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

 

_______________________________________________
edk2-devel mailing list
[email protected]
https://lists.01.org/mailman/listinfo/edk2-devel

Reply via email to