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