llvm-strip does not support -l. Apple's strip supports -l, but
it is not documented, and the latest code doesn't seem to do anything
meaningful. From the old source code drops it seems that -l was added
around version 795 of cctools and removed before 898. The code around
the flag usage in 795 talks about problems with kext and forcing the
execution of ld -r, which seems a behaviour that is not enforceable in
latest versions of cctools.
The -l flag was added in https://reviews.llvm.org/D15133 without a lot
of explanation.
Since the flag is not active, removing it should not modify the
behaviour for most people (except if someone is trying to compile LLVM
with a really old version of strip).
Additionally, break the invocation into two different flags, since
llvm-strip doesn't at the moment support grouped flags, and other
strip implementations should work the same no matter if grouped or
not.
Test Plan:
Using strip from Xcode 12.5 in Big Sur to strip the same binary (a
simple Hello World), using both -Sxl and -Sx produces exactly the
same binary.
Repeating the same process with clang results also in the same binary.