<pre style='margin:0'>
Ken (kencu) pushed a commit to branch master
in repository macports-ports.
</pre>
<p><a href="https://github.com/macports/macports-ports/commit/24345c7733ed5eca7c5d1e836272a45221ee72f5">https://github.com/macports/macports-ports/commit/24345c7733ed5eca7c5d1e836272a45221ee72f5</a></p>
<pre style="white-space: pre; background: #F8F8F8"><span style='display:block; white-space:pre;color:#808000;'>commit 24345c7733ed5eca7c5d1e836272a45221ee72f5
</span>Author: Ken Cunningham <kencu@macports.org>
AuthorDate: Sun Sep 19 12:38:16 2021 -0700
<span style='display:block; white-space:pre;color:#404040;'> clang-7.0: fixes for older systems
</span><span style='display:block; white-space:pre;color:#404040;'>
</span><span style='display:block; white-space:pre;color:#404040;'> 1. use cmake-bootstrap to reduce deps for building
</span><span style='display:block; white-space:pre;color:#404040;'> 2. use /usr/lib/libxml2.dylib to remove need for MP libxml2
</span><span style='display:block; white-space:pre;color:#404040;'> 3. allow relabelling asm labels to allow legacy support to work properly
</span><span style='display:block; white-space:pre;color:#404040;'> 4. minor whitespace cleanups
</span><span style='display:block; white-space:pre;color:#404040;'>
</span><span style='display:block; white-space:pre;color:#404040;'> see: https://trac.macports.org/ticket/58677
</span>---
lang/llvm-7.0/Portfile | 35 +++++++++++++++-------
...003-patch-clang-7.0-allow-asm-redefinition.diff | 23 ++++++++++++++
2 files changed, 48 insertions(+), 10 deletions(-)
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/lang/llvm-7.0/Portfile b/lang/llvm-7.0/Portfile
</span><span style='display:block; white-space:pre;color:#808080;'>index 197ced96d8c..59ebe85f1e0 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/lang/llvm-7.0/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/lang/llvm-7.0/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -16,7 +16,7 @@ set clang_executable_version 7
</span> set lldb_executable_version 7.1.0
name llvm-${llvm_version}
revision 2
<span style='display:block; white-space:pre;background:#ffe0e0;'>-subport clang-${llvm_version} { revision 0 }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+subport clang-${llvm_version} { revision 1 }
</span> subport lldb-${llvm_version} { revision 1 }
set suffix mp-${llvm_version}
set sub_prefix ${prefix}/libexec/llvm-${llvm_version}
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -279,15 +279,13 @@ if {${subport} eq "llvm-${llvm_version}"} {
</span> if {${os.major} <= 13} {
# We unfortunately don't have an option to just turn off tsan
# https://llvm.org/bugs/show_bug.cgi?id=27715
<span style='display:block; white-space:pre;background:#ffe0e0;'>- configure.args-append \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- -DCOMPILER_RT_BUILD_SANITIZERS=OFF
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ configure.args-append -DCOMPILER_RT_BUILD_SANITIZERS=OFF
</span> }
if {${os.major} <= 13} {
# libfuzzer uses TLS, fails on 10.9 and less
# possibly fixable, see https://trac.macports.org/ticket/58291
<span style='display:block; white-space:pre;background:#ffe0e0;'>- configure.args-append \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- -DCOMPILER_RT_BUILD_LIBFUZZER=OFF
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ configure.args-append -DCOMPILER_RT_BUILD_LIBFUZZER=OFF
</span> }
if {${os.major} <= 15} {
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -296,8 +294,7 @@ if {${subport} eq "llvm-${llvm_version}"} {
</span> # see https://trac.macports.org/ticket/57130
# https://bugs.llvm.org/show_bug.cgi?id=38959
# https://bugs.llvm.org/show_bug.cgi?id=38958
<span style='display:block; white-space:pre;background:#ffe0e0;'>- configure.args-append \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- -DCOMPILER_RT_BUILD_XRAY=OFF
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ configure.args-append -DCOMPILER_RT_BUILD_XRAY=OFF
</span> }
} elseif {${subport} eq "lldb-${llvm_version}"} {
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -359,10 +356,10 @@ if {[lsearch -exact $PortInfo(depends_build) port:cctools] != -1} {
</span>
# use the system python27 if present
if {${os.platform} eq "darwin" && ${os.major} >= 11} {
<span style='display:block; white-space:pre;background:#ffe0e0;'>- set pythonfullpath /usr/bin/python2.7
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ set pythonfullpath /usr/bin/python2.7
</span> } else {
<span style='display:block; white-space:pre;background:#ffe0e0;'>- set pythonfullpath ${prefix}/bin/python2.7
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- depends_lib-append port:python27
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ set pythonfullpath ${prefix}/bin/python2.7
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ depends_lib-append port:python27
</span> }
configure.args-append -DPYTHON_EXECUTABLE=${pythonfullpath}
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -403,6 +400,19 @@ variant assertions description "Enable assertions for error detection (has perfo
</span> }
platform darwin {
<span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if {${os.major} < 14} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # use cmake-bootstrap to minimize dependencies.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ depends_build-replace path:bin/cmake:cmake port:cmake-bootstrap
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ configure.cmd ${prefix}/libexec/cmake-bootstrap/bin/cmake
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # remove need for port:libxml2 dependency
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ depends_lib-delete port:libxml2
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ configure.args-append -DLIBXML2_INCLUDE_DIR=/usr/include/libxml2
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ configure.args-append -DLIBXML2_LIBRARIES=/usr/lib/libxml2.dylib
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ configure.args-append -DLIBXML2_XMLLINT_EXECUTABLE=/usr/bin/xmllint
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span> if {[string match "*ppc*" [get_canonical_archs]]} {
# http://trac.macports.org/ticket/33987
configure.optflags -Os
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -416,6 +426,11 @@ platform darwin {
</span>
if {${subport} eq "clang-${llvm_version}" && ${os.major} <= 9} {
patchfiles-append leopard-no-blocks.patch
<span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # allow asm label redefining. We use this in legacysupport
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # but it was disabled in clang as of clang-3.8
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # see https://trac.macports.org/ticket/58677
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ patchfiles-append 2003-patch-clang-7.0-allow-asm-redefinition.diff
</span> }
if {${subport} eq "clang-${llvm_version}" && ${os.major} <= 14} {
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/lang/llvm-7.0/files/2003-patch-clang-7.0-allow-asm-redefinition.diff b/lang/llvm-7.0/files/2003-patch-clang-7.0-allow-asm-redefinition.diff
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 00000000000..8956ce84e47
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/lang/llvm-7.0/files/2003-patch-clang-7.0-allow-asm-redefinition.diff
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,23 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+We use asm symbol redefining to allow some of legacysupport's magic to work
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+in certain circumstances this errors, always (so far) involving the <assert.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+header. work around this by allowing asm symbol redefining again on < 10.6
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+where this feature is used at present, until/unless we can come up with some more
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+elegant solution to the problem that doesn't require this.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+see https://trac.macports.org/ticket/58677 for further details
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+kencu@macports.org
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- a/tools/clang/lib/Sema/SemaDecl.cpp.orig 2021-09-19 10:11:38.000000000 -0700
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ b/tools/clang/lib/Sema/SemaDecl.cpp 2021-09-19 10:16:42.000000000 -0700
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -2634,8 +2634,8 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if (AsmLabelAttr *OldA = Old->getAttr<AsmLabelAttr>()) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if (OldA->getLabel() != NewA->getLabel()) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ // This redeclaration changes __asm__ label.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- Diag(New->getLocation(), diag::err_different_asm_label);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- Diag(OldA->getLocation(), diag::note_previous_declaration);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ // Diag(New->getLocation(), diag::err_different_asm_label);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ // Diag(OldA->getLocation(), diag::note_previous_declaration);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ } else if (Old->isUsed()) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ // This redeclaration adds an __asm__ label to a declaration that has
</span></pre><pre style='margin:0'>
</pre>