We were previously doing it after LTO, which did have the desired effect
of having the un-exported symbols marked as private extern in the final
output binary, but doing it before LTO creates more optimization
One observable difference is that LTO can now elide un-exported symbols
entirely, so they may not even be present as private externs in the
This is also what ld64 implements.