04-03-2007 01:17 PM
04-03-2007 02:09 PM
A follow up -
When I try to use the autoparallelization optimization, by using the /Qparallel compiler switch, it seems to compile all OK, but in a file where an autoparallelization takes place, I get a slew of link errors in addition to the previously reported __intel_new_proc_init undefined symbol.
11 Project link errors
Undefined symbol '___kmpc_end_serialized_parallel' referenced in "operability.c".
Undefined symbol '___kmpc_barrier' referenced in "operability.c".
Undefined symbol '___kmpc_global_thread_num' referenced in "operability.c".
Undefined symbol '___kmpc_for_static_init_4' referenced in "operability.c".
Undefined symbol '___kmpc_for_static_fini' referenced in "operability.c".
Undefined symbol '___kmpc_critical' referenced in "operability.c".
Undefined symbol '___kmpc_end_critical' referenced in "operability.c".
Undefined symbol '___kmpc_ok_to_fork' referenced in "operability.c".
Undefined symbol '___intel_new_proc_init' referenced in "DataMiner.c".
Undefined symbol '___kmpc_fork_call' referenced in "operability.c".
Undefined symbol '___kmpc_serialized_parallel' referenced in "operability.c".
Microsoft Visual C++ tools.
04-03-2007 02:51 PM - edited 04-03-2007 02:51 PM
And the answer is ......
The __intel_new_proc_init symbol is in the Intel library libirc.lib, just include this in the project and no worries.
It's a function used to determine what processor the app is running on, and if any processor specific code will work.
Curiously, it also looks like using the recommended optimization setting for P4 processors, /QaxNP, causes a GPF ! This option causes the compiler to generate multiple binaries, the appropriate one selected at run time based on the microprocessor being used.
Menchar
Message Edited by menchar on 04-03-2007 12:52 PM
04-09-2009 06:16 PM
And another follow up -
Similar problem with Intel 10.0.025 compiler, CVI 8.5.1, when using autoparallelization option.
__kmpc_begin and __kmpc_end undefined symbols link error.
Including the intel library liguide40.lib resolved these, but apparently incur the need to distribute the libguide40.dll
Menchar