Hi everyone,
Currently we have multiple packages linking libraries from common-mk/external_dependencies/BUILD.gn. For example, proto_library("install_attributes-proto") is linked from both Libbrillo and Cryptohome. This causes symbol clashes (especially in some cases, like in fuzzers) and, presumably, contributes to the ChromeOS image size issue.
I had a small "tactical" workaround uploaded:
crrev.com/c/3980753 and its follow-ups move "install_attributes-proto" to Libbrillo's libinstallattributes.so. However, the review feedback was to look into a broader solution.
So what would people think about this - i.e., create a new package, maybe named like "chromeos-base/external-dep-bindings", which will provide .so library(ies) containing those bindings from common-mk/external_dependencies? Or would it be preferable to have separate packages per group of protos, like "chromeos-base/install-attributes-protos", "chromeos-base/policy-protos" (although the latter can probably be done in the existing "chromeos-base/protofiles")? Also what about Go bindings?
Curious to hear your opinions - I'm sure it's not the first time this topic is brought up.
Thanks,
Maksim