From: Alan W. I. <ir...@be...> - 2007-10-28 17:57:21
|
On 2007-10-28 14:22+0100 Arjen Markus wrote: >> On 2007-10-26 14:10-0700 Alan W. Irwin wrote: >> > >> Forget that last request because I have made some svn changes that make >> that request irrelevant. >> >> As of revision 7981 when you execute >> >> ./get-drv-info.exe ps >> >> that application internally prepends the drivers directory path to the >> search term (ps in this case) just like what occurs for the core plplot >> library. Because of this change libltdl (called by that application) now >> searches for >> >> /cygdrive/c/arjen/plplot-svn/install-cygwin/drivers/ps.so >> >> rather than ps.so as in prior revisions. >> >> I am hoping this change to an automatic full path used for searching for >> dynamically loaded devices (now done just like the PLplot core library) >> will >> solve the get-drv-info problem for Cygwin. Please do the simple test again >> for revision 7981 and let me know the detailed results. > > I did so: get-drv-info does not produce _any_ output now: > > cd ...../drivers > get-drv-info ps > get-drv-info `pwd`/ps.so > get-drv-info xxxx How about ./get-drv-info.exe ps.so ? The "./" prefix and .exe suffix may or may not be necessary. The most important change is ps.so which you did not try above. That is an educated guess that is worth trying since it should result in a search for the exact full path name of the file (see below for the Linux example of this with strace). > > are all completely silent, no output whatsoever. Please try the following with ps.so to help diagnose what is going on in that case: strace.exe ./get-drv-info.exe ps.so (I have checked cygwin packages and you do have strace.exe available to you.) You should get a ton of output from strace.exe telling you exactly what attempts get-drv-info.exe made to open files. For example, on my Linux system here are the strace results filtered for anything to do with ps: software@chickadee> strace ./get-drv-info ps.so 2>&1 |grep ps execve("./get-drv-info", ["./get-drv-info", "ps.so"], [/* 31 vars */]) = 0 open("/home/software/plplot_cvs/HEAD/build_dir/drivers/ps.so", O_RDONLY) = 3 write(2, "Could not read symbol plD_DEVICE"..., 222Could not read symbol plD_DEVICE_INFO_ps.so in driver module /home/software/plplot_cvs/HEAD/build_dir/drivers/ps.so libltdl error: /home/software/autotools/install/lib/libltdl.so.3: undefined symbol: plD_DEVICE_INFO_ps.so Note, it doesn't look for any file other than the exact match /home/software/plplot_cvs/HEAD/build_dir/drivers/ps.so. It finds that file, but then the symbol search afterward is screwed up (which is easy to fix if an exact file search solves the Cygwin issue with finding the file). Hope that strace diagnosis will help you figure out why dynamic loading on Cygwin cannot seem to find ps.so. OTOH, if strace shows that ps.so is being found by the exact search, and you just have the symbol problem like above when you search for ps.so, let me know and I can quickly fix it in svn (or you can do that yourself by internally appending ".so" to the name in get-drv-info.c and plcore.c, and running ./get-drv-info.exe ps to make sure everything works properly. Alan __________________________ Alan W. Irwin Astronomical research affiliation with Department of Physics and Astronomy, University of Victoria (astrowww.phys.uvic.ca). Programming affiliations with the FreeEOS equation-of-state implementation for stellar interiors (freeeos.sf.net); PLplot scientific plotting software package (plplot.org); the libLASi project (unifont.org/lasi); the Loads of Linux Links project (loll.sf.net); and the Linux Brochure Project (lbproject.sf.net). __________________________ Linux-powered Science __________________________ |