The creation of NLM file is not being done the usual way by the GNU Linker ld, but in a two-step process by the GNU Linker ld and the additional nlmconv program.
To hide the complexity of the whole process, cross_nlm replaces the ld linker by a script that understands the ld command line arguments and calls ld and nlmconv automatically, handling temporary files and command line parameters as required.