On 2015-04-14 12:36, David Holmes wrote:
On 14/04/2015 8:12 PM, Erik Joelsson wrote:
The best information that I could find about this is in the Solaris
documentation found here:
https://docs.oracle.com/cd/E26505_01/pdf/E26506.pdf

Under the heading "Localizing Symbol Instances" there is an example
mapfile including __Argv, __environ_lock, _environ and _lib_version. The
text notes that symbol definitions established by your "compiler driver"
need to be kept global. I believe this is what is happening here.

Thanks Erik. From a quick read I don't really understand what is happening here, but I suspect we're doing something "not quite right" somewhere that causes this. It seems really ugly to have to define these in a map file. I wonder if our compiler experts can shed some light on why we need to do this and how to avoid it?

But for expediency that shouldn't hold up getting this fix in place.

I agree with you 100%. This fix is enough for the time being, but it smells funny. On the other hand, the PDF Erik links to seems to indicate that this is indeed what needs to be done when having a map file, so it might be correct (and just sunstudio that has a smelly design). I too would like to get some input from sunstudio compiler experts, though.

/Magnus

Reply via email to