The -Wl
flag is used to pass flags directly to the linker; therfore:
-S
Do not put debug information (STABS or DWARF) in the output file.
-x
Do not put non-global symbols in the output file's symbol table. Non-global symbols are useful when debugging and getting symbol names in back traces, but are not used at runtime. If -x is used with -r non-global symbol names are not removed, but instead replaced with a unique, dummy name that will be automatically removed when linked into a final linked image. This allows dead code stripping, which uses symbols to break up code and data, to work properly and provides the security of having source symbol names removed.
(I got this information using man ld
within Terminal.app).