https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61407

--- Comment #33 from James Clarke <jrtc27 at jrtc27 dot com> ---
(In reply to Jack Howarth from comment #30)
> The proposed changes in v4 of the patch aren't building here on 10.9. I
> don't see how
> 
> # if defined(_DARWIN_FEATURE_64_BIT_INODE)
> 
> can completely substitute for…
> 
> # if ! defined(__DARWIN_64_BIT_INO_T) || __DARWIN_64_BIT_INO_T 
> 
> as sys/cdefs.h shows…
> 
> /*
>  * _DARWIN_FEATURE_64_BIT_INODE indicates that the ino_t type is 64-bit, and
>  * structures modified for 64-bit inodes (like struct stat) will be used.
>  */
> #if __DARWIN_64_BIT_INO_T
> #define _DARWIN_FEATURE_64_BIT_INODE            1
> #endif
> 
> which means that…
> 
> # if defined(_DARWIN_FEATURE_64_BIT_INODE)
> 
> is effectively only
> 
> # if __DARWIN_64_BIT_INO_T 
> 
> as the definition of _DARWIN_FEATURE_64_BIT_INODE only checks if
> __DARWIN_64_BIT_INO_T is set and not if it is undefined as well.

I was able to perform a complete clean bootstrap on my system, so I'm curious
as to what error(s) you got?

I agree, the two are not equivalent, but the first one (!defined(X) || X) is
wrong in my opinion, as if the macro is not defined, the documentation for
dir(5) states that the 32-bit versions are used.

Reply via email to