These options are described in more detail in -f*: platform-independent flags. If a
flag is implied by -O then it is also implied by -O2 (unless
flag description explicitly says otherwise). If a flag is implied by
-O0 only then the flag is not implied by -O and -O2.

Set the install name (via -install_name passed to Apple’s
linker), specifying the full install path of the library file.
Any libraries or executables that link with it later will pick
up that path as their runtime search location for it.
(Darwin/OS X only)

This instructs the linker to add all symbols, not only used
ones, to the dynamic symbol table. Currently Linux and
Windows/MinGW32 only. This is equivalent to using
-optl-rdynamic on Linux, and -optl-export-all-symbols
on Windows.

Control whether the RTS behaviour can be tweaked via command-line
flags and the GHCRTS environment variable. Using none
means no RTS flags can be given; some means only a minimum
of safe options can be given (the default), and all (or no
argument at all) means that all RTS flags are permitted.

Generate a standalone static library (as opposed to an
executable). This is useful when cross compiling. The
library together with all its dependencies ends up in in a
single static library that can be linked against.