<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/c6d41f796486be89fa1c8f7ebcf3c9797cbdfbe4">https://github.com/macports/macports-ports/commit/c6d41f796486be89fa1c8f7ebcf3c9797cbdfbe4</a></p>
<pre style="white-space: pre; background: #F8F8F8">The following commit(s) were added to refs/heads/master by this push:
<span style='display:block; white-space:pre;color:#404040;'> new c6d41f79648 z3: Check z3.pgo_profile is properly set before using See: https://trac.macports.org/ticket/72155
</span>c6d41f79648 is described below
<span style='display:block; white-space:pre;color:#808000;'>commit c6d41f796486be89fa1c8f7ebcf3c9797cbdfbe4
</span>Author: Chris Jones <jonesc@macports.org>
AuthorDate: Thu Mar 27 16:26:07 2025 +0000
<span style='display:block; white-space:pre;color:#404040;'> z3: Check z3.pgo_profile is properly set before using
</span><span style='display:block; white-space:pre;color:#404040;'> See: https://trac.macports.org/ticket/72155
</span>---
math/z3/Portfile | 64 +++++++++++++++++++++++++++++---------------------------
1 file changed, 33 insertions(+), 31 deletions(-)
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/math/z3/Portfile b/math/z3/Portfile
</span><span style='display:block; white-space:pre;color:#808080;'>index 78712644bac..3831e96e2ea 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/math/z3/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/math/z3/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -175,39 +175,41 @@ if {
</span> default_variants-append +lto
}
<span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span> if {[info exists z3.pgo_profile]} {
<span style='display:block; white-space:pre;background:#ffe0e0;'>- if {![variant_isset profile]} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- default_variants-append +pgo
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if { ${z3.pgo_profile} ne {} } {
</span>
<span style='display:block; white-space:pre;background:#ffe0e0;'>- variant pgo conflicts profile description {Enable profile-guided optimization} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- # Requires clang
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- compiler.blacklist-append {*gcc*}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- # We currently only provide profiling data for the F*-qualified z3
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- # subports; these profiles are generated from a verification run
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- # over Project Everest subprojects, which should be strongly
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- # representative of F*'s use of z3.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- #
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- # TODO: Investigate bechmark suites we could use to produce general-purpose
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- # profiling data for the main z3 port.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- #
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- # To regenerate a subport's profiling data, install
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- # z3-fstar(-legacy) with +profile -pgo, and then:
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- #
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- # ${filespath}/z3-fstar.profdata-generate.sh \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- # -l llvm-profdata-mp-<llvm-version> \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- # -z ${prefix}/libexec/z3-fstar/bin/z3-<version> \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- # -o ${filespath}/${z3.pgo_profile}.profdata.tar.xz \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- # -j <njobs> \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- # <everest-src>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- configure.optflags-append -fprofile-instr-use=${workpath}/z3.profdata
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- depends_extract-append bin:xz:xz
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- post-extract {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- set tar [findBinary tar ${portutil::autoconf::tar_command}]
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- set xz [findBinary xz ${portutil::autoconf::xz_path}]
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- system "${xz} -cd ${filespath}/${z3.pgo_profile}.profdata.tar.xz | ${tar} -C ${workpath} --no-same-owner -xf -"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if {![variant_isset profile]} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ default_variants-append +pgo
</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;'>+ variant pgo conflicts profile description {Enable profile-guided optimization} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # Requires clang
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ compiler.blacklist-append {*gcc*}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # We currently only provide profiling data for the F*-qualified z3
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # subports; these profiles are generated from a verification run
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # over Project Everest subprojects, which should be strongly
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # representative of F*'s use of z3.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # TODO: Investigate bechmark suites we could use to produce general-purpose
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # profiling data for the main z3 port.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # To regenerate a subport's profiling data, install
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # z3-fstar(-legacy) with +profile -pgo, and then:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # ${filespath}/z3-fstar.profdata-generate.sh \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # -l llvm-profdata-mp-<llvm-version> \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # -z ${prefix}/libexec/z3-fstar/bin/z3-<version> \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # -o ${filespath}/${z3.pgo_profile}.profdata.tar.xz \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # -j <njobs> \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # <everest-src>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ configure.optflags-append -fprofile-instr-use=${workpath}/z3.profdata
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ depends_extract-append bin:xz:xz
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ post-extract {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ set tar [findBinary tar ${portutil::autoconf::tar_command}]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ set xz [findBinary xz ${portutil::autoconf::xz_path}]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ system "${xz} -cd ${filespath}/${z3.pgo_profile}.profdata.tar.xz | ${tar} -C ${workpath} --no-same-owner -xf -"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span> }
}
}
</pre><pre style='margin:0'>
</pre>