<pre style='margin:0'>
Chris Jones (cjones051073) pushed a commit to branch master
in repository macports-ports.

</pre>
<p><a href="https://github.com/macports/macports-ports/commit/886d2e9acbada0ddbfd7cd3e417097b4226b48cb">https://github.com/macports/macports-ports/commit/886d2e9acbada0ddbfd7cd3e417097b4226b48cb</a></p>
<pre style="white-space: pre; background: #F8F8F8"><span style='display:block; white-space:pre;color:#808000;'>commit 886d2e9acbada0ddbfd7cd3e417097b4226b48cb
</span>Author: Chris Jones <jonesc@macports.org>
AuthorDate: Sat May 8 23:47:19 2021 +0100

<span style='display:block; white-space:pre;color:#404040;'>    rust-compiler-wrap: Directly embed legacy-support flags, use clang to link
</span><span style='display:block; white-space:pre;color:#404040;'>    
</span><span style='display:block; white-space:pre;color:#404040;'>    Closes: https://trac.macports.org/ticket/62843
</span>---
 lang/rust/Portfile | 34 ++++++++++++++--------------------
 1 file changed, 14 insertions(+), 20 deletions(-)

<span style='display:block; white-space:pre;color:#808080;'>diff --git a/lang/rust/Portfile b/lang/rust/Portfile
</span><span style='display:block; white-space:pre;color:#808080;'>index ad953abb6ac..b5d473965e9 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/lang/rust/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/lang/rust/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -10,7 +10,7 @@ legacysupport.newest_darwin_requires_legacy 15
</span> 
 name                rust
 version             1.52.0
<span style='display:block; white-space:pre;background:#ffe0e0;'>-revision            0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+revision            1
</span> categories          lang devel
 platforms           darwin
 supported_archs     x86_64 arm64
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -207,9 +207,9 @@ subport ${ccwrap} {
</span>     depends_build
     # Always build from source to ensure we use user's compiler selection
     archive_sites
<span style='display:block; white-space:pre;background:#ffe0e0;'>-    if { ${os.major} <= [option legacysupport.newest_darwin_requires_legacy] } {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        depends_lib-append [legacysupport::get_dependency]
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    # Always depend on legacy support as flags need to be baked into wrapper scripts
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    # as rust doesn't allow information to be passed by arbitrary environment vars.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    depends_lib-append [legacysupport::get_dependency]
</span>     use_configure    no
     build            {}
     depends_lib-append port:cctools
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -221,12 +221,10 @@ subport ${ccwrap} {
</span>             # If this fails just use exact settings for cc and cxx
             set sel_cc  ${configure.cc}
             set sel_cxx ${configure.cxx}
<span style='display:block; white-space:pre;background:#ffe0e0;'>-            set sel_ld  ld
</span>             if {[regexp {macports-clang-(.*)} ${configure.compiler} -> llvm_ver]} {
                 set llvm_path ${prefix}/libexec/llvm-${llvm_ver}
                 set sel_cc    ${llvm_path}/bin/clang
                 set sel_cxx   ${llvm_path}/bin/clang++
<span style='display:block; white-space:pre;background:#ffe0e0;'>-                set sel_ld    ${llvm_path}/bin/ld
</span>             }
             xinstall -m 755 -d ${destroot}${wrapdir}
             proc create_wrapper { fname comp flags } {
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -236,17 +234,11 @@ subport ${ccwrap} {
</span>                 close ${f}
             }
             create_wrapper ${destroot}${wrapdir}/clang   \
<span style='display:block; white-space:pre;background:#ffe0e0;'>-                "\$\{MACPORTS_RUST_CC\:\-${sel_cc}\}" \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                "\$\{MACPORTS_LEGACY_SUPPORT_CPPFLAGS\}"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                "${sel_cc}" "[option legacysupport.header_search]"
</span>             create_wrapper ${destroot}${wrapdir}/clang++ \
<span style='display:block; white-space:pre;background:#ffe0e0;'>-                "\$\{MACPORTS_RUST_CXX\:\-${sel_cxx}\}" \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                "\$\{MACPORTS_LEGACY_SUPPORT_CPPFLAGS\}"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-            create_wrapper ${destroot}${wrapdir}/ld-rust \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                "\$\{MACPORTS_RUST_CC\:\-${sel_cc}\}" \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                "\$\{MACPORTS_LEGACY_SUPPORT_CPPFLAGS\} \$\{MACPORTS_LEGACY_SUPPORT_LDFLAGS\}"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-            create_wrapper ${destroot}${wrapdir}/ld \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                "\$\{MACPORTS_RUST_LD\:\-${sel_ld}\}" \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                "\$\{MACPORTS_LEGACY_SUPPORT_LDFLAGS\}"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                "${sel_cxx}" "[option legacysupport.header_search]"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            create_wrapper ${destroot}${wrapdir}/clang-ld \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                "${sel_cc}" "[option legacysupport.header_search] [legacysupport::get_library_link_flags]"
</span>             foreach cmd { ar as nm nm-classic libtool lipo objdump otool ranlib \
                           size size-classic strip strings bitcode-strip segedit } {
                 ln -s ${prefix}/bin/${cmd} ${destroot}${wrapdir}/${cmd}
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -262,7 +254,7 @@ if { ${subport} ne ${ccwrap} } {
</span>         configure.cxx    ${wrapdir}/clang++
         configure.objc   ${wrapdir}/clang
         configure.objcxx ${wrapdir}/clang++
<span style='display:block; white-space:pre;background:#ffe0e0;'>-        set ld           ${wrapdir}/ld-rust
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        set ld           ${wrapdir}/clang-ld
</span>         set NewPath     "${wrapdir}:${NewPath}"
     }
     envs_append   "PATH=${NewPath}"
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -287,9 +279,11 @@ configure.args    --enable-vendor \
</span>                   --python=${prefix}/bin/python${py_ver}
 
 # Cache support
<span style='display:block; white-space:pre;background:#ffe0e0;'>-if {[tbool configure.ccache]} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    depends_build-append   port:ccache
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    configure.args-append  --enable-ccache
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+if { ${subport} ne ${ccwrap} } {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    if {[tbool configure.ccache]} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        depends_build-append   port:ccache
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        configure.args-append  --enable-ccache
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    }
</span> }
 
 post-configure {
</pre><pre style='margin:0'>

</pre>