Welcome to Intel® Software Network Quick Login | Join | Help |
Search in Intel® Software Network Forums
in Go

issue with TXN and nonTXN symbols

Last post 04-06-2008, 9:12 PM by Serge Preis. 1 replies.
Sort Posts: Previous Next
 04-06-2008, 8:51 PM 30252237  

issue with TXN and nonTXN symbols

Looks like the symbols generated by the compiler for transactional and non-transactional versions of a tm_callable function (foo._$TXN, foo._$nonTXN) are not global. Because whenever I try to use such functions where the declarations are not visible, I am getting undefined reference errors. For instance, I have a static library which annotates some functions as tm_callable. And when I try to use that static library in some other code, I see these problems.

Is there any way to force the compiler to generate global symbols for both transactional and non-transactional versions of an annotated function?

Thanks,
Neelam
 
 04-06-2008, 9:12 PM 30252238 in reply to 30252237  

Re: issue with TXN and nonTXN symbols

1. If original function marked as tm_callable has external visibility (not marked as static) auxilary symbols (foo._$TXN, foo._$nonTXN) will have the same external visibility. If it is not so please report platform (32/64bit and OS) and we'll try to reproduce this issue. It is importnat to remember that library shall be built with -Qtm_enabled knob otherwise any TM-specific constructs will not have any effect and this, depending on platform, may be either error or just warning.

2. It is very important that declaration of function (foo()) with tm_callable mark is visible at any its use (throught header file or pre-declaration). However, violation of this rule should not lead to undefined reference diagnostics. It will result in tx_warnings and, effectively, execution of foo() irrevocably (serially).

Regards,
Serge Preis

 
View as RSS news feed in XML

Shortcuts


Tags For This Post

...

Community Tags

...