https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61407
--- Comment #32 from James Clarke <jrtc27 at jrtc27 dot com> --- (In reply to Ilya Mikhaltsou from comment #31) > (In reply to James Clarke from comment #29) > > (In reply to Jack Howarth from comment #28) > > > I noticed that MacPorts is using… > > > > > > #if SANITIZER_MAC && ( !defined(__DARWIN_64_BIT_INO_T) || > > > __DARWIN_64_BIT_INO_T) > > > > > > and > > > > > > # if ! defined(__DARWIN_64_BIT_INO_T) || __DARWIN_64_BIT_INO_T > > > > > > rather than just… > > > > > > > > > #if SANITIZER_MAC && __DARWIN_64_BIT_INO_T > > > > > > and > > > > > > # if __DARWIN_64_BIT_INO_T > > > > > > in their patch for gcc49… > > > > > > https://trac.macports.org/browser/trunk/dports/lang/gcc49/files/patch-10.10. > > > diff > > > > > > Should we be doing the same? > > > > That's because they're using my original patch from this bug report > > (https://gcc.gnu.org/bugzilla/attachment.cgi?id=33180), which itself is > > based off Ilya Mikhaltsou's patch > > (https://gcc.gnu.org/bugzilla/attachment.cgi?id=32949, also from this bug > > report). I don't know why Ilya decided to default to a 64-bit dirent struct, > > as the documentation clearly states that it is only 64-bit when the > > _DARWIN_FEATURE_64_BIT_INODE macro is defined > > (https://developer.apple.com/library/mac/documentation/Darwin/Reference/ > > ManPages/man5/dir.5.html#//apple_ref/doc/man/5/dir). This is different from > > __DARWIN_64_BIT_INO_T, but you can see in sys/cdefs.h that > > _DARWIN_FEATURE_64_BIT_INODE is only defined (to 1) when > > __DARWIN_64_BIT_INO_T is true. > > > > Please note that I have updated my patch to use the public > > _DARWIN_FEATURE_64_BIT_INODE macro, and to check whether it is defined > > rather than its value (seeing as the documentation only refers to its > > definition, not its value). The updated patches are at > > https://gcc.gnu.org/ml/gcc-patches/2014-08/msg02427.html. > > I wasn't doing much thinking on the topic, I've simply made the minimal > necessary changes to a) compile on 10.10 and b) to work exactly the same as > before on previous versions. If you think it is redundant, there are no > objective reasons for keeping it that way. I thought that was probably the case. I believe how it is now in my patch is correct, but I'm open to being challenged on it!