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 post / 0 nuovi
Ultimo contenuto
Per informazioni complete sulle ottimizzazioni del compilatore, consultare l'Avviso sull'ottimizzazione

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

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.

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.

Accedere per lasciare un commento.