Hi Alan and Arjen, > Hi Arjen: > > It's a long shot, but there was some purpose to my question. So please > answer it with the _exact_ command (test-drv-info + argument), that was run > by make VERBOSE=1 including the directory the command was run in. > > test-drv-info is simply a renamed version of get-drv-info with no actual > code changes. So it bothers me that there is absolutely no error message > from it. (There have always been such error messages in the past if > something was wrong with the dynamic loading or with the argument that was > used.) What happens if you use a different/wrong argument to it? Do you get > an error message then, and if so what? > > I made some minor CMake changes to the way the code is built and run so > probably the best bet is there is something wrong there for the Cygwin case > (but not for the actual C-code itself). > > >>> If our build system chooses libltdl, do you have the latest/greatest >>> version >>> installed properly? >>> >>> >> Quite probably it is an old one, but as I said before: it has worked in >> a previous build. So my suspicion is that the relatively new >> test-drv-info program does something different. I will try and find >> out what that difference is. >> > > I have just double-checked by downloading get-drv-info.c (revision 9475) > from our repository and it is identical to test-drv-info.c. So the issue is > not due to a code change between get-drv-info.c and test-drv-info.c. > > Alan >
I know what the problem is, but a solution is not straight forward. Arjen, the problem, why test-drv-info doesn't produce any results is, that it can't find a dll which is linked into test-drv-info. If you use Dependency Walker (http://www.dependencywalker.com/) you'll find out, that test-drv-info needs libplplotd-9.6.1.dll cygwin1.dll cygltdl-7.dll kernel32.dll The first one is in src and can't therefore be found, since for cygwin we don't let cmake move all dlls into the dll directory (even if you put the dll path in the PATH environment variable). test-drv-info is linked to PLplot library due to the call to plGetDrvDir(). The plplot dll depends itself on qsastime, csa and nn library. So if you export the following to the PATH environment variable: export PATH=...build/lib/csa:$PATH export PATH=...build/lib/nn:$PATH export PATH=...build/lib/qsastime:$PATH export PATH=...build/src:$PATH test-drv-info.exe works then. The dll path workaround for the other Win32 compilers doesn't work here, since in test-drv-info.c we have: snprintf( drvspec, DRVSPEC_LEN, "%s/%s", plGetDrvDir (), drvnam ); So there is always the output of plGetDrvDir() prepended to the driver name, which would in this case (all dlls are in the dll directory) not be necessary. So only for cygwin this would need to be changed. And presumably where the driver dlls are actually opened as well. I already did some changes and will commit later, so that cygwin works similar to the other Win32 compiler toolsets (all dlls are in dll directory, and plplot just opens the dll without path). Regards, Werner -- Dr. Werner Smekal Institut fuer Allgemeine Physik Technische Universitaet Wien Wiedner Hauptstr 8-10 A-1040 Wien Austria DVR-Nr: 0005886 email: sme...@iap.tuwien.ac.at web: http://www.iap.tuwien.ac.at/~smekal phone: +43-(0)1-58801-13463 (office) +43-(0)1-58801-13469 (laboratory) fax: +43-(0)1-58801-13499 ------------------------------------------------------------------------------ _______________________________________________ Plplot-devel mailing list Plplot-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/plplot-devel