From: Alan W. I. <ir...@be...> - 2002-09-16 17:45:21
|
On Mon, 16 Sep 2002, [iso-8859-1] Jo=E3o Cardoso wrote: > > Hi, > > In the current cvs I can't use the png driver: > > [jcard@feup] ./x01c -dev png -o po.png -debug > Plplot library version: 5.1.0 > plLoadDriver: Device not loaded! > plLoadDriver: tag=3Dpng, drvidx=3D4 > plLoadDriver: Trying to load gdd_drv.so on ./drivers/gdd_drv.so > plLoadDriver: Trying to load at > /usr/local/lib/plplot5.1.0/data/../drivers/gdd_drv.so > Unable to load driver: gdd_drv.so. > Reason: /usr/local/lib/plplot5.1.0/data/../drivers/gdd_drv.so: cannot > open shared object file: No such file or directory This misleading error message from the wrong (second) dlerror has been annoying me for a while so I just fixed it in CVS. Could you please try this again after cvs update? That should give you both the first and secon= d dlerror error messages with the -debug option (and no dlerror error message= s if you don't specify -debug). Once the first dlerror message is output, I suspect you will get an error message about no access to a symbol in one of our libraries. If so, could you try to fix it by setting LD_LIBRARY_PATH to point to the directory (./ in this case) where our libraries have been built? > If I change in plcore.c, line 1855, RTLD_NOW to RTLD_LAZY, it works: > > [jcard@feup] ./x01c -dev png -o po.png -debug > Plplot library version: 5.1.0 > plLoadDriver: Device not loaded! > plLoadDriver: tag=3Dpng, drvidx=3D4 > plLoadDriver: Trying to load gdd_drv.so on ./drivers/gdd_drv.so > Opened po.png > Segmentation fault > > Oops... at home it worked (exactly same environement). Nevertheless, now > the driver is opened and the output file created and partly filled, so > there is some problem here. I don't need the RTLD_LAZY (or LD_LIBRARY_PATH under Debian), but I do confirm the second error you have just found. Something is now wrong with the gd device driver if you don't specify -drvopt text. I will look into i= t further. From=20the Linux dlopen man page at http://nodevice.com/sections/ManIndex/man0254.html, I don't see how RTLD_LAZY will fix the problem. It will, however, delay the problem until you actually try to use the symbols, and you may have encountered the secon= d error (see above) before that happened. Once you re-run with the proper dlerror message and RTLD_NOW, we will know more. Alan |