Most options to the link-editor can be passed through the compiler driver command line. For the most part, the compiler and the link-editor options do not conflict. Where a conflict arises, the compiler drivers usually provide a command line syntax that you can use to pass specific options to the link-editor. You can also provide options to the link-editor by setting the LD_OPTIONS environment variable.
$ LD_OPTIONS="-R /home/me/libs -L /home/me/libs" cc -o prog main.c -lfoo
The -R and -L options are interpreted by the link-editor. These options precede any command line options that are received from the compiler driver.
The link-editor parses the entire option list for any invalid options or any options with invalid associated arguments. When either of these cases are found, a suitable error message is generated. If the error is deemed fatal, the link-edit terminates. In the following example, the illegal option -X, and the illegal argument to the -z option, are caught by the link-editor's checking.
$ ld -X -z sillydefs main.o ld: illegal option -- X ld: fatal: option -z has illegal argument `sillydefs'
$ ld -e foo .... -e bar main.o ld: warning: option -e appears more than once, first setting taken
$ ld -dy -a main.o ld: fatal: option -dy and -a are incompatible
After processing all options, if no fatal error conditions have been detected, the link-editor proceeds to process the input files.