Changes between Initial Version and Version 9 of Ticket #59717


Ignore:
Timestamp:
Nov 18, 2019, 11:45:25 AM (4 years ago)
Author:
dgelessus (dgelessus)
Comment:

Legend:

Unmodified
Added
Removed
Modified
  • Ticket #59717 – Description

    initial v9  
    1818  * I've submitted a fix for this as [https://github.com/macports/macports-ports/pull/5771 PR 5771].
    1919* llvm/clang-3.7 always wants libcxx as its C++ stdlib, but the libcxx port doesn't support Tiger.
    20   * In [https://github.com/macports/macports-ports/pull/5783 PR 5783] I've attempted to make libcxx build on Tiger, but the PR is currently incomplete and would also need more extensive testing.
     20  * I've attempted to make libcxx build on Tiger in [https://github.com/dgelessus/macports-ports/tree/tiger_libcxx_no_pr a branch of my fork]. This isn't tested very well yet. (I've previously submitted this as [https://github.com/macports/macports-ports/pull/5783 PR 5783], but these changes likely won't be merged into the main ports tree, to avoid breaking newer systems.)
    2121  * Perhaps an alternative fix would be to make clang use libstdcxx instead of libcxx on Tiger. I haven't looked into this further yet, but @kencu has [https://github.com/kencu/TigerPorts/tree/master/lang/llvm-3.8 a customized llvm/clang-3.8 port that uses libstdcxx], so it seems to be possible.
    22 * llvm-3.7's configure script tries to call clang-3.4 with the option -stdlib=macports-libstdcxx, which that version of the clang port doesn't support. This option is patched in by MacPorts for clang-5.0 and newer with the +libstdcxx variant (which is enabled by default). clang ports older than 5.0 (including 3.4) don't have a +libstdcxx variant.
    23   * I'm currently experimenting with backporting the +libstdcxx variant from clang-5.0 to clang-3.4. This seems to be fairly easy to do - the code affected by the patch hasn't changed significantly between the two versions.
    24   * It may be better to figure out why the configure script tries to use -stdlib=macports-libstdcxx in the first place. It shouldn't need to, since llvm/clang-3.7 will be built agianst libcxx, not libstdcxx.
     22* llvm-3.7's configure script tries to call clang-3.4 with the option -stdlib=macports-libstdc++, which that version of the clang port doesn't support. This option is patched in by MacPorts for clang-5.0 and newer with the +libstdcxx variant (which is enabled by default). clang ports older than 5.0 (including 3.4) don't have a +libstdcxx variant.
     23  * This is caused by a bug in MacPorts base, which has been reported in #59584.
     24  * As a workaround, the +libstdcxx patch from clang-5.0 can be applied to clang-3.4 (with minor modifications). This won't result in proper macports-libstdc++ support (because clang before 3.8 doesn't support compiling C++11 code against libstdc++), but it is enough to make the incorrect call from the configure script not fail.
    2525* llvm-3.7 references a couple of macros that don't exist on Tiger.
    2626  * This only requires some very minor patches, which I can submit once I've tested them.
     27* The clang-3.7 build fails to build the compiler-rt libraries for the clang_darwin target (the clang_macho_embedded ones get built properly). make thinks that there is nothing to be done for the clang_darwin target, so no libraries are built, which causes later parts of the build (that expect the libraries to exist) to fail.
     28  * This appears to be a similar issue to #54836 and #59157.
    2729* There may be more issues after this; I'm currently working on getting clang-3.7 fully built.
    2830