[MacPorts] #44062: root6: make it work on 10.6
MacPorts
noreply at macports.org
Sun Jun 29 22:14:02 PDT 2014
#44062: root6: make it work on 10.6
----------------------+-------------------------
Reporter: mojca@… | Owner: mojca@…
Type: defect | Status: closed
Priority: Normal | Milestone:
Component: ports | Version:
Resolution: fixed | Keywords: snowleopard
Port: root6 |
----------------------+-------------------------
Comment (by egall@…):
Replying to [comment:31 jeremyhu@…]:
> Replying to [comment:15 mojca@…]:
> > The solution mentioned in that ticket was [https://github.com/root-
mirror/root/commit/d194bd7a33136b9d491a1fcdcc10fbc16c80956c this one]:
> > {{{
> > #!diff
> > --- core/thread/inc/ThreadLocalStorage.h.orig
> > +++ core/thread/inc/ThreadLocalStorage.h
> > @@ -44,7 +44,7 @@
> > #endif
> >
> > #if defined(R__MACOSX)
> > -# if defined(__clang__)
> > +# if defined(__clang__) && defined(MAC_OS_X_VERSION_10_7)
> > # define R__HAS___THREAD
> > # else
> > # define R__HAS_PTHREAD
> > }}}
> >
> > Is it possible that `MAC_OS_X_VERSION_10_7` is defined on 10.6? I
believe that I need to rebuild everything in order to test. Simply running
`make` after changing that file didn't really help.
>
> Yes. Checking for the existence of the MAC_OS_X_VERSION_10_7 macro is
certainly not the right thing to do. Shame on them. The compiler and
deployment target determine if TLS is supported, not the existence of some
macro.
>
So now I am getting kind of confused as to how exactly TLS support
works... You say compiler '''and''' deployment target both matter, but how
exactly do they interact? Is one of the two more important? The other
tickets I found (#36172, #38493) all seemed to be unsure as to whether it
was the compiler or deployment target that was more important, as well...
This is getting kind of off-topic, but I was actually working on porting
another package that uses TLS (libbabeltrace, for use with the recent
update to gdb), and I found that versions of clang that were supposed to
have TLS support (clang-3.3 here) failed to compile code containing
`__thread`, so I am assuming that the deployment target must have been
what made it fail there, but on the other hand, gcc apparently does
'''not''' actually have TLS support on darwin yet
([https://gcc.gnu.org/bugzilla/show_bug.cgi?id=52268] is still open), and
yet I was still able to compile code containing `__thread` with the gcc48
port (it passed the autoconf conftest from `xorg-tls.m4`, too), so I am
assuming that gcc48 must have just ignored the deployment target or
something?
--
Ticket URL: <https://trac.macports.org/ticket/44062#comment:59>
MacPorts <http://www.macports.org/>
Ports system for OS X
More information about the macports-tickets
mailing list