Linker error!

Linker error!


Has anyone seen linker errors while compiling with STM compiler of the following form:

ld: .libs/ undefined versioned symbol name  get_commit_flag._@TXN

I am seeing these errors only for functions which are annotated as tm_callable. The strange thing is that I see these errors for certain annotated functions and not all of them.

Any help would be appreciated.


8 posts / 0 new
Last post
For more complete information about compiler optimizations, see our Optimization Notice.
Ravi Narayanaswamy (Intel)'s picture

I assume the functions marked as tm_callable were recompiled using the STM compiler. Can you give me a test case and the options used tocompile it. Providinga compilable file in which "get_commit_flag" routine may be sufficient.

Yes I am compiliing all the files with STM compiler.
get_commit_flag() function is defined in a file different than it's being used in.

Command used to compile the file having its definition:
icc -I. -I/usr/include/gtk-1.2 -I/usr/include/glib-1.2 -I/usr/lib/glib/include -D_REENTRANT -I/usr/X11R6/include -I../intl -I.. -g -O0 -Qtm_enabled -D_GNU_SOURCE -D_XACT_MEMORY "-DTM_CALLABLE=__attribute__ ((tm_callable))" "-DTM_WAIVER=__attribute__ ((tm_waiver))" -Wall -Wpointer-arith -MT transaction.lo -MD -MP -MF .deps/transaction.Tpo -c transaction.c -fPIC -DPIC -o .libs/transaction.o

but while linking i get the following error

icc -shared .libs/configfile.o .libs/xmmsctrl.o .libs/dirbrowser.o .libs/util.o .libs/formatter.o .libs/titlestring.o .libs/xentry.o .libs/xconvert.o .libs/charset.o .libs/transaction.o -L/usr/lib -L/usr/X11R6/lib /usr/lib/ /usr/lib/ /usr/lib/ /usr/lib/ /usr/lib/ -lpthread -ldl -lXi -lXext -lX11 -lm -Wl,-soname -Wl, -o .libs/
ld: .libs/ undefined versioned symbol name get_begin_flag._@nonTXN
ld: failed to set dynamic section sizes: Bad value

Ravi Narayanaswamy (Intel)'s picture

We fixed a bug with the same symptoms in the new release. Let us know if this still exists in which case we will need a test case.

Is the new release out already? If not when is it expected?
I think the problem was having STM annotations in a dynamic library! Need to confirm this though.


I tried with the new release and it seems to be fine now.

Ravi Narayanaswamy (Intel)'s picture

Thanks for confirming that issue has been resolved

Note that, with the new release, tm_waiver is re-named as tm_pure w/ defined semantics.

Login to leave a comment.