Intel® Fortran Compiler
Build applications that can scale for the future with optimized code designed for Intel® Xeon® and compatible processors.

OpenValidateX and MSDB100.dll

lopes8070
Beginner
2,283 Views

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.

 

0 Kudos
16 Replies
lopes8070
Beginner
2,283 Views

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.

0 Kudos
lopes8070
Beginner
2,283 Views

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.

 

0 Kudos
Steven_L_Intel1
Employee
2,283 Views

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.

0 Kudos
lopes8070
Beginner
2,283 Views

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.

0 Kudos
lopes8070
Beginner
2,283 Views

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?

0 Kudos
Steven_L_Intel1
Employee
2,283 Views

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

0 Kudos
lopes8070
Beginner
2,283 Views

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"

0 Kudos
Steven_L_Intel1
Employee
2,283 Views

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

0 Kudos
lopes8070
Beginner
2,283 Views

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"

0 Kudos
lopes8070
Beginner
2,283 Views

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

0 Kudos
lopes8070
Beginner
2,283 Views

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

0 Kudos
Steven_L_Intel1
Employee
2,283 Views

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?

0 Kudos
lopes8070
Beginner
2,283 Views

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.

0 Kudos
Steven_L_Intel1
Employee
2,283 Views

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.

0 Kudos
lopes8070
Beginner
2,283 Views

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

0 Kudos
Steven_L_Intel1
Employee
2,283 Views

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.

0 Kudos
Reply