Prior to Intel® Compiler 15.0 in the offload compilation model, the binaries targeting the Intel MIC Architecture were generated as dynamic libraries (.so). Dynamic libraries do not need all referenced variables or routines to be resolved during linking as these can be resolved during load time. This behavior could mask some missing variable or routine in the application resulting in a failure during load time. In order to identify and resolve all missing symbols at link time, option "-z defs" must be provided to the linker.
Since 15.0 the offload executable generated by Intel Compiler is no longer a shared object so the option "-z defs" is no longer needed to detect the missing symbols error in offloaded code at link time.
Refer to the Intel® Parallel Studio XE 2016 Composer Edition for Linux product documentation for additional details.