<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>