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: Wed, 7 Sep 2005 16:57:56 -0400

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

  >> perl -e 'my $wd = `pwd`; print "$wd\n";'
  >> 
  >> what does it say?

  jg> address@hidden ~
  jg> $ perl -e 'my $wd = `pwd`; print "$wd\n";'
  jg> /home/now3d

OK, right.  When Perl determines the directory name it is a UNIX-y name,
like that.  When make determines the directory name it is a windows
name.

Here's the "base" file from a sample test; this is the file the
regression test (Perl) generates:

  ! make: Entering directory `/home/now3d/make/tests'

and here is the actual log of the invocation of GNU make:

  ! make: Entering directory `C:/msys/1.0/home/now3d/make/tests'

GNU make runs the getcwd() function to get the current directory.  We
need to find a way in Perl to have it return the same value GNU make
gets.

  >> 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"; }'

  jg> address@hidden ~
  jg> $ perl -e 'if (eval { symlink("",""); 1 }) { print "symlinks ok\n"; }'
  jg> symlinks ok

Ugh!

  jg> I guess this means that ln -s is actually does a copy. ln --version
  jg> shows ln (fileutils) 4.1

No; this is using the system call symlink().  It's not invoking a
program like "ln -s".  Windows Perl shouldn't support that, since it
doesn't work.

Maybe Perl is noticing that the arguments are empty and so isn't failing
like it should.  Try this:

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

and see what it says then.  If it says "symlinks ok", look in the
directory to see if any files (or whatever!) named "foo" or "bar" have
been created.

  jg> I have ran through all the tests and zipped up the results:

Was this with the very latest CVS code, downloaded recently (within the
last few days)?

Because, I tried to fix the cwd problem by adding code to use the
POSIX::getwd() function in Perl.

If it IS the latest CVS code, please try this and see that it says:

  perl -e 'require "POSIX.pm"; my $cwd = POSIX::getcwd(); print "cwd = $cwd\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]