/Gy (Enable Function-Level Linking)

The /Gy option enables linking on a function-by-function basis by creating packaged functions. A packaged function is visible to the linker in the form of a COMDAT record. Packaged functions have several uses:

You can exclude unreferenced packaged functions from the executable file by specifying the linker's /PACKF option. For more information on /PACKF, see page 589.

You can place packaged functions in a specified order in the executable file by using a FUNCTIONS statement in a module-definition (.DEF) file. For more information on FUNCTIONS, see page 625.

You can assign individual packaged functions to a specified segment by using a FUNCTIONS statement.

You can place individual packaged functions in a specified overlay in a DOS program by using a FUNCTIONS statement. For more information on overlaid programs, see Chapter 15.

For C++, member functions are automatically packaged; other functions are not, and /Gy is required to compile them as packaged functions.