Intel® Fortran Compiler
Build applications that can scale for the future with optimized code designed for Intel® Xeon® and compatible processors.
29253 Discussions

ax compiler switch with 9.0 ifort produces an unresolved reference when linking

Lester
Beginner
477 Views
I have a dual CPU Intel Xeon 2.4GHz machine, running Fedora Core 3, and am using the following version of ifort.

Intel Fortran Compiler for 32-bit applications, Version 9.0 Build 20050722Z Package ID: l_fc_c_9.0.025
Copyright (C) 1985-2005 Intel Corporation. All rights reserved.

When I compile and link a program using the -ax with any of the arguments, I get unresolved references from the ld step like the message below.

ifort -o xsdrn xsdrn.o -L../lib -lxsdrn -lscale
IPO Error: unresolved : vmlsLn4
Referenced in libxsdrn.a(recrd2.o)
IPO Error: unresolved : vmlsCos4
Referenced in libxsdrn.a(pncnst.o)
../lib/libxsdrn.a(pncnst.o)(.text+0xe51): In function `pncnst_.J':
: undefined reference to `vmlsCos4'
../lib/libxsdrn.a(recrd2.o)(.text+0x560): In function `recrd2_.J':
: undefined reference to `vmlsLn4'

The recrd2 deck was compiled with the following command.

ifort -us -traceback -std95 -lowercase -fp -free -O3 -axW -ftz -ip -tpp7 -I ../scalelib -c /scale/scale5.dev/src/xsdrn/recrd2.f90

If I remove the -axW then the unresolved references go away. Is there some library that needs to be added to the link line to correct this, or is there some other problem?

I am attaching recrd2.f90 in case it would help in testing.
0 Kudos
1 Reply
TimP
Honored Contributor III
477 Views
Yes, the rule is to specify the same architecture switch in the link step, so that the necessary additional libraries can be specified automatically in the command sent to ld. Adding an option such as -axW will cause the option -lsvml to be included implicitly. Your compilation has vectorized cos() and log() functions by use of calls to the short vector math library.
0 Kudos
Reply