This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug target/61407] Build errors on latest OS X 10.10 Yosemite with Xcode 6 on GCC 4.8.3
- From: "jrtc27 at jrtc27 dot com" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: Tue, 26 Aug 2014 18:18:16 +0000
- Subject: [Bug target/61407] Build errors on latest OS X 10.10 Yosemite with Xcode 6 on GCC 4.8.3
- Auto-submitted: auto-generated
- References: <bug-61407-4 at http dot gcc dot gnu dot org/bugzilla/>
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61407
--- Comment #29 from James Clarke <jrtc27 at jrtc27 dot com> ---
(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.