make-w32
[Top][All Lists]
Advanced

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

Re: MSVC build test results


From: Paul D. Smith
Subject: Re: MSVC build test results
Date: Tue, 30 Aug 2005 16:03:20 -0400

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

  jg> Great! Let me know when the code is commited, and I will run
  jg> through the tests again.

I committed all the stuff around when I sent the email... all my changes
are in there now.

  >> These are all caused by a difference of opinion on the current working
  >> directory by pwd vs. GNU make.  Make, with WINDOWS32 set, uses
  >> getcwd_fs() to determine the working directory and returns values like
  >> "/home/now3d/make/tests".
  >> 
  >> There is no portable "getwd" function in Perl, so our test suite uses
  >> `pwd` to figure the working directory.  That appears to return values
  >> like "C:/msys/1.0/home/now3d/make/tests".

  jg> Hmm, when I type pwd in MSYS/rxvt I see /home/now3d/make/tests displayed.

Strange.  If you do this:

    perl -e 'my $wd = `pwd`; print "$wd\n";'

what does it say?

Does msys use some kind of variable setting to control this?  Because
the test suite strips out lots of environment variables.

You might have to debug; you can try changing the code in
run_make_tests.pl:get_this_pwd() to print the value it discovers.

  >> Don't get these; why are the variables being printed out of order?
  >> Maybe some kind of IO flush problem?  This is not conformant to the ISO
  >> spec though.

  jg> Maybe. I have seen lines being cut off half way and intermixed on win32
  jg> builds which both try to write to stdout from threads/dlls.

I added code to the $(info ...) function to fflush(stdout) after it
prints the info.

The other functions (warning / error) print to stderr and they always
fflush already.

  >> Hm.  There's code in the test suite to check whether the system supports
  >> symlinks or not, and it skips all these tests if it doesn't.
  >> 
  >> But, apparently, that is not working!  The perl docs say that if you try
  >> to use the symlink() function on a system that doesn't support it, it
  >> will die.  So, you invoke the function in an eval{} to see if it works
  >> without killing the script, which I do, but apparently it is still true
  >> on your system?
  >> 
  >> Can you investigate this?

  jg> Perhaps we could disable symlink testing on MinGW/MSVC MSYS or win32
  jg> test environments? (I think we can indentify that)

That's exactly what I'm saying: according to the perl docs that's
what the code in the test suite is supposed to be doing.  Please run
this and let me know what it says:

  perl -e 'if (eval { symlink("",""); 1 }) { print "symlinks ok\n"; }'

-- 
-------------------------------------------------------------------------------
 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]