OpenValidateX and MSDB100.dll

OpenValidateX and MSDB100.dll

All,

I have been doing internet research all day and I have not been able to resolve an issue.  I have a windows 7 64 bit machine with Microsoft Visual Studio 10.0 and a fortran library that I am trying to compile with fortran 2013 sp1.  I have OpenSSH installed on the windows machine so I am able to ssh over from a linux machine and compile the library from command line without any problems.  The problem occurs when I automate this process in XML using ANT.  I run the exact same script via ANT and I get the following 2 errors:

After every file:

 [sshexec] 1>realft.f90
[sshexec] 1>error code 23 (returned by OpenValidateX) opening pdb vc100.pdb

and at link:

LINK : fatal error LNK1101: incorrect MSPDB100.DLL version; recheck installation of this product

 

Again, this works perfectly fine when I ssh manually to the machine and execute the build script, but when automated via ANT it breaks.  Here is the XML that builds it where build_geometry.bat is the script that performs the VS build:

        <sshexec host="awindev" username="cruise" keyfile="${user.home}/.ssh/id_rsa"  command='cd "${projectSourceDirectoryPath}" ; chmod 755 build_geometry.bat ; ./build.bat C:/ccworking/GEO-win32-debug' output="build-errors.txt" failonerror="false" />

I can see it going over to the machine, getting to the correct directory, and executing the build.bat just fine.  That script is executing. 
And again, when I ssh over and execute the script manually, everything works fine without any errors.  I thought it was something about the path, but I have tried adding VS/Common7/IDE to the path, looking for other MSPDB100.dll, etc.  What confuses my if there is no difference between the XML SSHing over and myself SSHing over.

Any help or direction would be greatly appreciated.  Please excuse any information have left out.

 

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

Sorry for messing up a few of the names, I was trying to simplify it.  The build_geometry.bat is build.bat.  They are the same.

I have also tried 

/cygdrive/c/Program\ Files\ \(x86\)/Microsoft\ Visual\ Studio\ 10.0/VC/bin/vcvars32.bat

both 32 and 64 bits, no change.

 

Do you have VS2010 SP1 installed on that system? If not, I recommend that you do so. It fixes a number of problems - maybe this one too.

When you say you add to path, do you mean the system PATH variable?

I know nothing about OpenValidateX.

Steve - Intel Developer Support

I tried adding it to the PATH environment variable, yes.

I have VS version 10.0.3019.1.  I'll see if I can download an update. 

That OpenValidateX surprised me too.  I found absolutely nothing on the web for it.

Well, no luck.  Updated Visual Studio and I still get the OpenValidateX error and the missing dll.  Any other ideas or information I might be able to provide?

Check to make sure that the length of PATH in the automated environment isn't longer than 1023 characters - Windows starts to do strange things when PATH is too long.

There's some interesting ideas in http://stackoverflow.com/questions/2990331/ms-c-2010-and-mspdb100-dll

Steve - Intel Developer Support

Yes, i have seen that thread and tried many of the ideas (where I got the vcvars and PATH ideas I posted above).  I have gone through some of the things they have posted but no progress so far.

I have made sure that PATH is not truncated

PATH="/bin:/cygdrive/c/Windows/System32:/cygdrive/c/Windows:/cygdrive/c/Program Files (x86)/GnuWin32/bin:/cygdrive/c/Program Files (x86)/Subversion/bin"

You will need more that that in PATH when you're doing the compile and link...

Steve - Intel Developer Support

Yes, I see that.  I fixed that problem, here is my PATH, but I get the same result.

 

  [sshexec] declare -x PATH="/cygdrive/c/Program Files (x86)/Common Files/Intel/Shared Libraries/redist/intel64/mpirt:/cygdrive/c/Program Files (x86)/Common Files/Intel/Shared Libraries/redist/intel64/compiler:/cygdrive/c/Program Files (x86)/Common Files/Intel/Shared Libraries/redist/ia32/mpirt:/cygdrive/c/Program Files (x86)/Common Files/Intel/Shared Libraries/redist/ia32/compiler:/cygdrive/c/Program Files (x86)/Common Files/Intel/Shared Libraries/redist/intel64/mpirt:/cygdrive/c/Program Files (x86)/Common Files/Intel/Shared Libraries/redist/intel64/compiler:/cygdrive/c/Program Files (x86)/Common Files/Intel/Shared Libraries/redist/ia32/mpirt:/cygdrive/c/Program Files (x86)/Common Files/Intel/Shared Libraries/redist/ia32/compiler:/cygdrive/c/Program Files (x86)/Intel/Composer XE 2011 SP1/redist/ia32/tbb/vc10:/cygdrive/c/Program Files (x86)/Intel/Composer XE 2011 SP1/redist/intel64/tbb/vc10:/cygdrive/c/Program Files (x86)/Intel/Composer XE 2011 SP1/redist/intel64/ipp:/cygdrive/c/Program Files (x86)/Intel/Composer XE 2011
  [sshexec] SP1/redist/ia32/ipp:/cygdrive/c/Program Files (x86)/Intel/Composer XE 2011 SP1/redist/intel64/mkl:/cygdrive/c/Program Files (x86)/Intel/Composer XE 2011 SP1/redist/ia32/mkl:/cygdrive/c/Program Files (x86)/Common Files/Intel/Shared Libraries/redist/intel64/compiler:/cygdrive/c/Program Files (x86)/Common Files/Intel/Shared Libraries/redist/ia32/compiler:/cygdrive/c/Windows/system32:/cygdrive/c/Windows:/cygdrive/c/Windows/System32/Wbem:/cygdrive/c/Windows/System32/WindowsPowerShell/v1.0:/cygdrive/c/Program Files (x86)/Microsoft SQL Server/100/Tools/Binn:/cygdrive/c/Program Files/Microsoft SQL Server/100/Tools/Binn:/cygdrive/c/Program Files/Microsoft SQL Server/100/DTS/Binn:/cygdrive/c/Program Files (x86)/Subversion/bin:/cygdrive/c/Program Files (x86)/GnuWin32/bin:/bin:/bin:/cygdrive/c/Windows/System32:/cygdrive/c/Windows:/cygdrive/c/Program Files (x86)/GnuWin32/bin:/cygdrive/c/Program Files (x86)/Subversion/bin"

For what it's worth, if i build without debugging, it works fine.

I posted my fixed path but it's taking  while to get through your approval process, it is MUCH longer.

Hmm - You've thrown Cygwin into the mix - I didn't notice that earlier (forward slashes.) Maybe the PDB support (a library MS provides that we link to) is having trouble dealing with the Cygwin path. Are you using Cygwin when compiling directly? What's the PATH from an environment that works?

Steve - Intel Developer Support

When I manually ssh over I end up in the cygwin environment.  The PATH there is what I mentioned above.

PATH="/bin:/cygdrive/c/Windows/System32:/cygdrive/c/Windows:/bin:/cygdrive/c/Windows/System32:/cygdrive/c/Windows:/cygdrive/c/Program Files (x86)/GnuWin32/bin:/cygdrive/c/Program Files (x86)/Subversion/bin"

This is the environment where it works and it has the much shorted PATH.  I tried putting this as the PATH in the automated environment and it still threw the same error.

I've run out of ideas... You'll need to investigate more to see what the environment differences are between the manual and automated systems. It's not something we can control.

Steve - Intel Developer Support

How would I go about investigating the differences.  Can you point me in the right direction?

Based on what you've done so far, my next step would be to write a small program that does a LoadLibrary on MSPDB100.DLL and see if it succeeds. I might then take the handle and use GetModuleFileName to get the path to that DLL, and compare it with what I was expecting.

Steve - Intel Developer Support

Leave a Comment

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