[MacPorts] #58898: libcxx bootstrapping needs a method to upgrade to the +emulatedtls variant on 10.6 and less
MacPorts
noreply at macports.org
Thu May 21 01:54:30 UTC 2020
#58898: libcxx bootstrapping needs a method to upgrade to the +emulatedtls variant
on 10.6 and less
---------------------+---------------------------------------
Reporter: kencu | Owner: jeremyhu
Type: defect | Status: assigned
Priority: Normal | Milestone:
Component: ports | Version:
Resolution: | Keywords: snowleopard leopard tiger
Port: libcxx |
---------------------+---------------------------------------
Comment (by kencu):
I have been wrapping my head around this, but I always wind up back where
I started with circular dependencies if there are to be no manual steps.
The simplest thing would be to make the +emulated_tls variant a default
variant, and have Ryan build it manually one time on 10.6. Then it's in
the archives, and can be downloaded and installed. But it's a manual step.
It is trivial to make up a port that could either be called {{{libcxx-
bootstrap}}} or {{{libcxx +bootstrap}}} that builds the current non-
emulated-tls libcxx. And then the standard {{{libcxx}}} port could enable
{{{emulated_tls}}} by default. {{{libcxx}}} could depend on {{{libcxx-
bootstrap}}} if there is nothing at {{{/usr/lib/libc++.dylib}}}, for
example.
But for that to work, everything that is in the line to build libcxx would
have also be satisfied by libcxx-bootstrap instead of just by libcxx, and
that is a lot of ports leading all the way up to clang-9.0. It's messy.
Alternately, we could build libcxx 7.0 using gcc7 or gcc8. We can
bootstrap to gcc7 right now from the base OS, and to gcc8. And those
compilers can build libcxx 7.0. Totally different than what we do now, and
there is going to be something messy about the libcxxabi ABI linking into
gcc I think to be managed somehow.
I could build libcxx mostly with clang-3.4, but use gcc7 to build the
troublesome cxa_thread_atexit.cpp file that needs a __thread supporting
compiler. That's a bit ugly. Hard to see how that would be the best way
forward.
Or I could just download a fully intact, pre-build
libcxx+universal+emulated_tls from some webserver or github repo where I
keep it, and be done with it. That is dead simple.
--
Ticket URL: <https://trac.macports.org/ticket/58898#comment:21>
MacPorts <https://www.macports.org/>
Ports system for macOS
More information about the macports-tickets
mailing list