make-w32
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: make/tests issues


From: Paul D. Smith
Subject: Re: make/tests issues
Date: Wed, 3 Mar 2004 18:35:42 -0500

%% "J. Grant" <address@hidden> writes:

  jg> Ok, I think running something like:

  jg> "tr -d \r <comments.log >normalised_comments.log"

  jg> on each output file would mean the diff comparisons would be able
  jg> to use the normal LF format files included in the distribution.
  jg> Could something like this be added?

Well, that's not very portable.  It obviously won't work on Windows
ports without any sort of UNIX emulation, at the very least.

  jg> "unlink($pure_log);"

  jg> That is the line that removes "c:\bin\make.exe".  $pure_log is
  jg> "c:\bin\make.exe" on MSYS/perl-5.6.1/win32, and is "make" on GNU/Linux.

No, it shouldn't be either of those things.  It's not when I run it.

$pure_log should be empty unless you have set the environment variable
PURIFYOPTIONS; it gets set like this:

   $ENV{PURIFYOPTIONS} =~ /.*-logfile=([^ ]+)/;
   $pure_log = $1 || '';
   $pure_log =~ s/%v/$make_name/;

So, the only way $pure_log could contain the value of $make_name is if
PURIFYOPTIONS is set to the value '%v'.

  jg> What is the "if($code & 0x7000)" checking? what does 0x7000 signify?
  jg> (The "unlink" command is in the else of this).

  jg> I am unclear exactly what this purification log is.  I do not follow the
  jg> comment next to this piece of code:

  jg>      # Check to see if we have Purify errors.  If so, keep the logfile.
  jg>      # For this to work you need to build with the Purify flag 
-exit-status=yes

  jg> Could someone enlighten me please? What is this -exit-status=yes and
  jg> where does this fit into the build of make?

Purify is a proprietary tool for finding memory leaks and other heap
problems.  It's a link-time tool.  The short answer to your question is
that you shouldn't have to care at all about it, since you obviously
don't have that tool available to you.

You need to find out why that variable is set to that value, and/or why
$pure_log is being set the way it is.


The longer answers are: -exit-status=yes is a flag you pass to the
Purify tool when you create your "Purified" application that causes your
application's exit code to signify whether any memory problems were
found.  The change to the code is by setting a particular bit, and so
the "if($code & 0x7000)" is testing to see whether any memory errors
were found.  $pure_log is supposed to contain the filename of the log
that Purify generates.  If there was an error, the log is saved.  If
there wasn't, the log is removed.

As I said, you don't care about any of that.  All you need to find out
is why $pure_log is set to the name of your make program: it should be
empty unless you're using Purify.

-- 
-------------------------------------------------------------------------------
 Paul D. Smith <address@hidden>          Find some GNU make tips at:
 http://www.gnu.org                      http://make.paulandlesley.org
 "Please remain calm...I may be mad, but I am a professional." --Mad Scientist




reply via email to

[Prev in Thread] Current Thread [Next in Thread]