public inbox for cygwin@cygwin.com
 help / color / mirror / Atom feed
* makedepend does not honor UNC path for -I and -Y
@ 2022-02-02 17:02 Ronald Hoogenboom
  2022-02-06 16:47 ` Jon Turney
  0 siblings, 1 reply; 4+ messages in thread
From: Ronald Hoogenboom @ 2022-02-02 17:02 UTC (permalink / raw)
  To: cygwin

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


^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: makedepend does not honor UNC path for -I and -Y
  2022-02-02 17:02 makedepend does not honor UNC path for -I and -Y Ronald Hoogenboom
@ 2022-02-06 16:47 ` Jon Turney
  2022-02-07  8:59   ` Ronald Hoogenboom
  0 siblings, 1 reply; 4+ messages in thread
From: Jon Turney @ 2022-02-06 16:47 UTC (permalink / raw)
  To: Ronald Hoogenboom, The Cygwin Mailing List

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

^ permalink raw reply	[flat|nested] 4+ messages in thread

* RE: makedepend does not honor UNC path for -I and -Y
  2022-02-06 16:47 ` Jon Turney
@ 2022-02-07  8:59   ` Ronald Hoogenboom
  2022-02-08 13:27     ` Jon Turney
  0 siblings, 1 reply; 4+ messages in thread
From: Ronald Hoogenboom @ 2022-02-07  8:59 UTC (permalink / raw)
  To: Jon Turney, The Cygwin Mailing List

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

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: makedepend does not honor UNC path for -I and -Y
  2022-02-07  8:59   ` Ronald Hoogenboom
@ 2022-02-08 13:27     ` Jon Turney
  0 siblings, 0 replies; 4+ messages in thread
From: Jon Turney @ 2022-02-08 13:27 UTC (permalink / raw)
  To: Ronald Hoogenboom, The Cygwin Mailing List

On 07/02/2022 08:59, Ronald Hoogenboom wrote:
> 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

Probably yes.

> create a patch, will cygwin add it in their build process of tools?

Definitely yes.

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2022-02-08 13:27 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-02-02 17:02 makedepend does not honor UNC path for -I and -Y Ronald Hoogenboom
2022-02-06 16:47 ` Jon Turney
2022-02-07  8:59   ` Ronald Hoogenboom
2022-02-08 13:27     ` Jon Turney

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).