makedepend does not honor UNC path for -I and -Y
Ronald Hoogenboom
RHoogenboom@irdeto.com
Mon Feb 7 08:59:09 GMT 2022
Thanks, Jon.
I solved this by 'relativizing' paths before passing to makedepend using realpath --relative-to (from coreutils).
Since makedepend is not heavily used anymore now gcc has the -MMD option, I wonder if the maintainers are taking any pull requests... If they don't and I create a patch, will cygwin add it in their build process of tools?
-----Original Message-----
From: Jon Turney <jon.turney@dronecode.org.uk>
Sent: Sunday, 6 February 2022 5:48 PM
To: Ronald Hoogenboom <RHoogenboom@irdeto.com>; The Cygwin Mailing List <cygwin@cygwin.com>
Subject: Re: makedepend does not honor UNC path for -I and -Y
On 02/02/2022 17:02, Ronald Hoogenboom wrote:
> cygwin makedepend collapses the double-slash UNC path prefix to one single slash. It fails to find headers via such search paths.
>
> Cygwin 3.2.0-1 on windows server 2012 R2 makedepend 1.0.6
Thanks for reporting this.
I suspect that this is an upstream bug in makedepend, in that it does some canonicalization on paths, and assumes that '//' is the same as '/'
everywhere in a path, which isn't true for an initial '//' (but happens to work on Linux, etc.)
See SUSv4 Base specifications, section 4.13 "Pathname Resolution" ([1], registration required):
"If a pathname begins with two successive <slash> characters, the first component following the leading <slash> characters may be interpreted in an implementation-defined manner, although more than two leading <slash> characters shall be treated as a single <slash> character."
Unfortunately, you're probably going to have to fix this yourself, if it's causing you problems.
Fortunately, makedepend is relatively small (See [2]).
[1]
https://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap04.html#tag_04_13
[2] https://gitlab.freedesktop.org/xorg/util/makedepend
More information about the Cygwin
mailing list