As mentioned in https://reviews.llvm.org/D67479#1667256 ,
- --[no-]allow-shlib-undefined control the diagnostic for an unresolved symbol in a shared object
- -z defs/-z undefs control the diagnostic for an unresolved symbol in a regular object file
- --unresolved-symbols= controls both bits.
In addition, make --warn-unresolved-symbols affect --no-allow-shlib-undefined.
This patch makes the behavior match GNU ld.