e9dd7cb3b6
Use `ld -r` on darwin-based targets to pre-link static caches before final linker invocation. It allows to hide symbols from caches to avoid linkage problems when linking 2 or more Kotlin-produced binaries. Sadly, it has several problems: 1. `ld -r` is slow. 2. There is no obvious way to make common symbols private. These are the reasons why we don't enable `-Xpre-link-cached` by default.