David Mosher on Fri, 01 Jul 2005 20:59:54 +0200

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

Re: pari compilation problems after cygwin updates

Fri 2005-07-01 00:59:00 +0200, Bill Allombert wrote:

It is traditional on UNIX to handle //include as an alias for /include.

Here is the final paragraph of §4.11 "Pathname Resolution" of the "Single UNIX Specification, Version 3" (ISO/IEC 9945:2003 [ISO POSIX (2003)]; IEEE Std 1003.1, 2004 Edition; The Open Group Base Specifications, Issue 6), <http://www.opengroup.org/onlinepubs/009695399/basedefs/xbd_chap04.html#tag_04_11>:

  A pathname consisting of a single slash shall resolve to the root
  directory of the process. A null pathname shall not be successfully
  resolved. A pathname that begins with two successive slashes may be
  interpreted in an implementation-defined manner, although more than two
  leading slashes shall be treated as a single slash.

My vague recollection is that there's nothing new here, and that an initial double-slash has been a "special case" in POSIX for quite some time.

Cygwin 1.5.12 seems to be compliant: 'cd ///etc', 'cd ////etc', 'ls ///etc', and 'cat ///etc/motd' (and 'cat ///etc//motd') all work as expected, whereas 'cd //etc', 'ls //etc', and 'cat //etc/motd' all generate "No such file or directory" errors. (Perhaps a poor choice of "implementation-defined" behavior, but seemingly compliant nonetheless.)

In any case, neither the default Cygwin directory layout, nor the Filesystem Hierarchy Standard (FHS) <http://www.pathname.com/fhs/>, have '/include' (but they do have '/usr/include').

David Mosher