Symbian
Symbian OS Library

FAQ-0818 Why do I get a link error for Dll::SetTls() in ARMI builds?

[Index][spacer] [Previous] [Next]



 

Classification: C++ Category: Errors & Error Handling
Created: 09/12/2002 Modified: 10/07/2002
Number: FAQ-0818
Platform: Symbian OS v6.0, Symbian OS v6.1, Symbian OS v7.0

Question:
I have declared that my project should be linked against euser.lib, which is what the docs say I should specify if I am using Dll:Tls() and Dll::SetTls(). This works fine when building for the emulator but fails when building for ARM. Am I missing something?

Answer:
The problem here comes from an architectural change which was made in Symbian OS v6.1 to facilitate on-target debugging. It was backported to v6.0 halfway through the life of the latter. The consequence of this is that the two static methods Tls() and SetTls() of Dll are, for ARM builds, no longer implemented in euser.lib but in a new library edllstub.lib, which you should therefore include in your mmp file if you use these methods.