common block not private between dlls

common block not private between dlls

currently running Intel(R) Visual Fortran Compiler Professional for applications running on IA-32, Version 11.1

I have multiple DLLs.  Each DLL has a common block with the same name.  I do not DLLEXPORT these common blocks.  The common block is  used by functions to determine their calling frequency which they then use in time based calculations.  Some functions run at a 50 ms time period, some 100 ms, some 200 ms.  I know, global variables are bad.  However, these functions are not maintained by me and are used in other applications.  DLL functions are run in their own threads in parallel. i.e. all functions in DLL 1 are run in thread 1, all functions in DLL 2 are run in thread 2 etc.  The problem is that the common block is shared between the DLLs.  I did not think they would be because I did not DLLEXPORT the common block.  Anyway way to make the common block private to the DLL and or thread? Also, what's up with the Intel Premium Support Web Site.  It appears to be down.  I can't log in.




6 posts / 0 new
Last post
For more complete information about compiler optimizations, see our Optimization Notice.

Premier Support website has been hobbled by an incomplete upgrade cycle for nearly 2 weeks.   I'm sorry but not surprised to hear that it's affecting customers as well.

If you wish to hide data within a dll, I suppose module facilities with private would be more suitable.

I can't use PRIVATE. I would then have to edit all the functions in order to pass the required values and I don't have the rights to do that.  As I mentioned above, these sources are maintained and used elsewhere.  Right now, the functions take no arguments.  I have hundreds of sources files and they all reference the common block which needs to be global within the DLL/thread only. 

We've identified an issue with Intel Premier Support when customers try to log on with a userid that doesn't have access to Premier Support. Instead of a useful error message, they got a redirect to a non-existent server.  That particular issue has been fixed. However, I looked up your account and it seemed ok, so I am not sure what the issue is. Please use "Send Author A Message" and tell me what user ID you were using.

COMMON blocks in different DLLs should be independent if not DLLEXPORTed (and then imported in the other DLLs). But different threads will all see the same COMMON in a given DLL. Are you able to put together a small example showing what you're seeing?

Retired 12/31/2016

After creating a demo project and further examing my code, it looks the behaviour displayed was a programming error on my part.  The Intel Fortran behaves correctly as documented.  Sorry for wasting people's time.  Thank you for the quick responses.  I can now also log onto Intel Premium Support

Very good! Thanks for the update.

Retired 12/31/2016

Leave a Comment

Please sign in to add a comment. Not a member? Join today