Hello, Denis.

Thursday, September 26, 2013, 13:39:02 you wrote:

> The most needed thing to fix is
> ${abspath /foo}
> that currently returns "/cy/foo"

 Yes, this is exactly that problem.
 abspath  first  detects whether it is given an absolute path. If not,
it  prepends  current  working directory (result of getcwd()). Then it
squashes down all .'s and ..'s.
 The  problem  happens  because  currently with DOS paths enabled make
expects  all  absolute paths to begin with 'X:/'. With '/foo' it's not
the  case. According to DOS semantics, this means 'foo subdirectory of
root  directory  of current drive. So, make tries to prepend the first
three  characters  from  getcwd()  result, which it assumes also to be
DOS-style  and start with 'X:/'. But Cygwin isn't real DOS/Windows, so
getcwd()  really  returns POSIX-style path. Hence you get '/cy', which
is obviously first three characters from '/cygdrive/x/something'.

-- 
С уважением,
 Pavel                          mailto:pavel_fe...@mail.ru


_______________________________________________
Bug-make mailing list
Bug-make@gnu.org
https://lists.gnu.org/mailman/listinfo/bug-make

Reply via email to