[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