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!

Reply via email to