Exclude Symbol from the Executable Output File (-X symb)

Excludes the unresolved text symbol symb from the executable output file. symb can be either of:
 symbol[, symbol]
 :symbol-filename

where symbol is a function name and symbol-filename is a text file containing a list of symbols, one per line. Spaces between -I and ":" are allowed. There can be no spaces between ":" and the filename.

This flag creates a stub routine to satisfy any reference to symb, which if called produces RTS error 107:

Operation not implemented in this Run-Time System

It can be used to satisfy undefined symbols to modules that you know are not required (but are referenced), thereby still allowing an executable file to be produced. The resulting file might not actually be any smaller than it would have been if you had not specified this flag. However, setting this flag does ensure that should you try to call any excluded module, you receive a meaningful error message.