Hi Alan,

On 2010-11-10 21:42, Alan W. Irwin wrote:
> On 2010-11-10 08:50+0100 Arjen Markus wrote:
> 
>> On Linux (and OSX?) the first character is a /, so [my commit to
> lowercase the first letter of the comparison] should work fine
>> too.
> 
> I confirm that, and thanks for this fix which should make life a lot
> easier for our Windows Visual Studio users.
> 

Good! That should indeed make life a lot easier.

>>
>> The crash (assertion failure) I mentioned with one particular setting
>> of PLPLOT_DRV_DIR is caused solely by the appearance of files with
>> extension ".rc" in the dll\Debug subdirectory when using Visual Studio.
>> They are related to "manifest files" for the Fortran DLLs. Perhaps we
>> should have a look at the reading procedure for the PLplot .rc files
>> to avoid this crash, but it seems rare enough a condition not to put
>> much emphasis on that.
> 
> I am allergic to letting bugs slide (especially if they involve the
> build system) so could you explain the issue further?
> 
> On Linux the <top-level-build-tree>/drivers/<driver>.rc files are
> configured by cmake (see the logic in
> cmake/modules/drivers-finish.cmake).  Those files describe which
> devices have been enabled for each device driver.  The test-drv-info
> application generates exactly the same information from the driver
> plugin that has been built, and there is a cmake custom target
> (test_${SOURCE_ROOT_NAME}_dyndriver, see drivers/CMakeLists.txt) for
> each driver that checks the two sets of information are identical as a
> test that the driver plugin is OK.  As far as I know, these
> driver-related *.rc files all should occur in the drivers subdirectory
> even on Windows.  Do these files have anything to do with your
> troubles above or is it something entirely unrelated?
> 
> If the troubles are due to some weird Windows nameclash with the .rc
> suffix on the driver-related *.rc files, the motivation for that
> choice of suffix is lost in the mists of time, and we could certainly
> change that suffix to something else that is much more distinctive
> (such as .driver_info).
> 

The Visual Studio build produces .rc files (where rc is an abbreviation
of resource compiler, IIUIC) that are subsequently used by the resource
compiler to produce .res files (resource files), which are most probably 
incorporated in the DLLs. Here is the content of one of these
intermediate files:

2 /* ISOLATIONAWARE_MANIFEST_RESOURCE_ID */ 24 /* RT_MANIFEST */ 
"D:\\plplot-svn\\build-windows-vs2008-2\\dll\\Debug\\plplotf95d.dll.embed.manifest"

I will not claim to understand what is going on here, I only
superficially understand the use of manifest files.

If we are going to use an extension "driver_info" instead of "rc" it is
very unlikely we run into such trouble again.

But perhaps we ought to be prepared for ill-formatted driver files. I 
just examined the code and I see that we expect the file to have a
number of tokens separated by colons - and there is no check on whether
these tokens actually exist! So, a quick patch would be to check that
we have these tokens. That would eliminate the problem I reported 
without us having to introduce a different extension.

I will work on this.

Regards,

Arjen
 

DISCLAIMER: This message is intended exclusively for the addressee(s) and may 
contain confidential and privileged information. If you are not the intended 
recipient please notify the sender immediately and destroy this message. 
Unauthorized use, disclosure or copying of this message is strictly prohibited.
The foundation 'Stichting Deltares', which has its seat at Delft, The 
Netherlands, Commercial Registration Number 41146461, is not liable in any way 
whatsoever for consequences and/or damages resulting from the improper, 
incomplete and untimely dispatch, receipt and/or content of this e-mail.





------------------------------------------------------------------------------
Centralized Desktop Delivery: Dell and VMware Reference Architecture
Simplifying enterprise desktop deployment and management using
Dell EqualLogic storage and VMware View: A highly scalable, end-to-end
client virtualization framework. Read more!
http://p.sf.net/sfu/dell-eql-dev2dev
_______________________________________________
Plplot-devel mailing list
Plplot-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/plplot-devel

Reply via email to