You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
But layering_check does not seem to think that openssl is exporting certain header files:
src/crypto/ssl_utils.h:20:10: error: module //src/crypto:crypto does not depend on a module exporting 'openssl/evp.h'
#include <openssl/evp.h>
I can see these header files in the build cache include directories, so I'm just guessing that the rule for openssl doesn't have these headers declared?
Is this expected behavior, or how can I go about debugging this?
EDIT:
It does seem as though rules_foreign_cc disables layering checks. But I'm still a bit lost on how to deal with adding layering checks to libraries that depend on a library built with rules_foreign_cc as it doesn't appear to declare the output headers explicitly.
The text was updated successfully, but these errors were encountered:
rules_foreign_cc disables layering checks because the flags that this feature set are not safe to pass to a third party build system. @fmeum you've previously worked with getting layering checks working in the toolchain - is there something I can add to the generated CcInfo that would make this case work where one layer comes from a third party build system?
The API for creating and adding module maps is private, so the only thing you could try now is to split up the CcInfo: Populate the linking context from your custom starlark rule, but wrap it in a cc_library with the exported headers to provide the compilation context. The cc_library target should have features = ["-layering_check"] set to disable checks for it, but it will still generate a module map.
I'm using
openssl
viaconfigure_make
:And then enable the
layering_check
feature on acc_library
that depends on "@openssl":But
layering_check
does not seem to think thatopenssl
is exporting certain header files:I can see these header files in the build cache include directories, so I'm just guessing that the rule for openssl doesn't have these headers declared?
Is this expected behavior, or how can I go about debugging this?
EDIT:
It does seem as though rules_foreign_cc disables layering checks. But I'm still a bit lost on how to deal with adding layering checks to libraries that depend on a library built with rules_foreign_cc as it doesn't appear to declare the output headers explicitly.
The text was updated successfully, but these errors were encountered: