[MacPorts] #48471: FSF gcc48 fails to compile projects on El Capitan due to OS X SDK bug in Availability.h
MacPorts
noreply at macports.org
Tue Oct 27 11:28:29 PDT 2015
#48471: FSF gcc48 fails to compile projects on El Capitan due to OS X SDK bug in
Availability.h
-----------------------+-----------------------
Reporter: jasonw@… | Owner: mww@…
Type: defect | Status: new
Priority: Normal | Milestone:
Component: ports | Version: 2.3.3
Resolution: | Keywords: elcapitan
Port: gcc48 |
-----------------------+-----------------------
Comment (by murrayeisenberg@…):
Replying to [comment:52 jeremyhu@…]:
> Replying to [comment:51 murrayeisenberg@…]:
> > Replying to [comment:50 ryandesign@…]:
> > > Replying to [comment:48 murrayeisenberg@…]:
> > > > Replying to [comment:41 jeremyhu@…]:
> > > > > Yes. If you want, you can just manually edit Availability.h to
replace the '`defined(__has_feature)`' with '`defined(__has_attribute)`'
for the OSX and iOS availability macros, but you do so at your own risk
because you know what you're doing ;)
> > > >
> > > > Even using {{{sudo}}} with an admin account on OS X 10.11.1 did
not allow me to edit Availability.h. How did you do it (if you did)?
> > >
> > > System Integrity Protection (SIP), a new feature as of OS X 10.11 El
Capitan, will not allow you to edit files in system locations like /usr.
SIP can be turned off, but I recommend you don't do that.
> > >
> > > > Also, I could not even build gcc48, again apparently due to the
same issue with Availability.h.
> > >
> > > Yes.
> >
> > Yes, I know about SIP and how to turn it on and off, but for the
obvious reasons hesitate to do so. So:
> >
> > 1. Is there to be some other workaround?
> > 2. In case I dare to turn off SIP temporarily...
> >
> > Is it literally just the several instances of {{{
'defined(__has_feature)' }}} that have to be replaced?
>
> Only the ones that are preceding `__has_attribute()` usage. Don't
replace the ones that are correctly guarding `__has_feature()` usage. If
you don't know what that means, then don't make any changes.
>
> > I ask because in Availability.h there are other mentions of
"availability", such as in
> > {{{'#if __has_feature(attribute_availability_*)'}}} where what
follows {{{'availability'}}} could be {{{'twos'}}}, {{{'watchOS'}}},
{{{'app_extension'}}}, etc.
>
> I suggest you don't make manual changes if you're not absolutely clear
to you what the problem is just by looking at the code block shown in
comment:24. Making a mistake in editing that file can have further
fallout.
OK, just making the change of that one line of that one block of code in
Availability.h, in a copy of Availability.h in /opt/local/include, seems
to fix things for the nonce.
--
Ticket URL: <https://trac.macports.org/ticket/48471#comment:60>
MacPorts <https://www.macports.org/>
Ports system for OS X
More information about the macports-tickets
mailing list