Builds that error out on duplicate symbols can still succeed if the symbols
will be dead stripped. Currently, this is the current behavior in ld64.
https://github.com/apple-oss-distributions/ld64/blob/main/src/ld/Resolver.cpp#L2018.
While it's strange for a linker to require `-dead_strip` in order for a link to succeed,
it's far better to align with ld64's behavior to be closer as a drop-in replacement.In order to provide an easier to path for adoption, introduce a new flag that will
retain compatibility with ld64's behavior (similar to `--deduplicate-literals`). This is
Move the duplicate symbol check after mark live so we can use this information toturned off by default since we do not encourage this behavior in the linker.
determine whether we should error on the specified duplicate symbol.