Do not create exceptions when ADJUNCT_PROTO is set
In illumos, we have two concepts:
ADJUNCT_PROTOwhich is used to specify where external libraries that are required for target software is.
NATIVE_ADJUCNTwhich is used to specify where to also look for software that is required for build-time tooling on the build host.
When a Makefile specifies that there are libraries external to the gate it uses the
NATIVE_LIBS variable. Right now this is used both for native and non-native targets. When there is no
ADJUNCT_PROTO, e.g. we're relying on the normal software on the build host in
/usr for the target system then we need exceptions to the general
-zassert-deflib policy that we have for such libraries. However, if we do have one, then we do should not gag these libraries and require that everything comes from the adjuncts.
This ticket covers a few different general issues:
- Makefiles should generally not assume there is a single one of these protos. In the case of
NATIVE_ADJUNCTthis is meant to be used in addition to
/usr. This means downstream Makefiles need to use rules that don't assume this and use % rules. In general, we need to make the individual Makefiles do less work when building a native target.
- Because of the above, the build will fail if you set a
NATIVE_ADJUNCTbecause it will no longer search /usr, which is still assumed in all these cases. The reason this doesn't fail on say SmartOS, is because of local changes to tools and others to search those additional locations.
- Where needed splitting up the concept of "native libs"
- When an adjunct proto is present, removing the
-zassert-deflibgags in general
- Improving documentation in nightly environment files and related (such as the illumos developer's guide) to make it clearer how these things work and are designed to
This also will make it easier to cleanly facilitate cross-building and while necessary is not sufficient.