<pre style='margin:0'>
Joshua Root (jmroot) pushed a commit to branch master
in repository macports-base.
</pre>
<p><a href="https://github.com/macports/macports-base/commit/cfacb20bde7f9073e388f7368bdf77c65be5e2b2">https://github.com/macports/macports-base/commit/cfacb20bde7f9073e388f7368bdf77c65be5e2b2</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 cfacb20bd Check for more warnings in configure logs
</span>cfacb20bd is described below
<span style='display:block; white-space:pre;color:#808000;'>commit cfacb20bde7f9073e388f7368bdf77c65be5e2b2
</span>Author: Ryan Carsten Schmidt <git@ryandesign.com>
AuthorDate: Mon May 20 21:51:36 2024 -0500
<span style='display:block; white-space:pre;color:#404040;'> Check for more warnings in configure logs
</span><span style='display:block; white-space:pre;color:#404040;'>
</span><span style='display:block; white-space:pre;color:#404040;'> Check for -Wimplicit-int and -Wincompatible-function-pointer-types
</span><span style='display:block; white-space:pre;color:#404040;'> warnings in configure logs because llvm.org clang 16 and the latest
</span><span style='display:block; white-space:pre;color:#404040;'> Apple clang consider those to be errors.
</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/70017
</span>---
src/port1.0/portconfigure.tcl | 66 +++++++++++++++++++++++++++++++++++++++----
1 file changed, 60 insertions(+), 6 deletions(-)
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/src/port1.0/portconfigure.tcl b/src/port1.0/portconfigure.tcl
</span><span style='display:block; white-space:pre;color:#808080;'>index b596453a9..ecca5f81d 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/src/port1.0/portconfigure.tcl
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/src/port1.0/portconfigure.tcl
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1902,6 +1902,50 @@ proc portconfigure::configure_main {args} {
</span> return 0
}
<span style='display:block; white-space:pre;background:#e0ffe0;'>+proc portconfigure::check_warnings {warning_flag} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ global \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ workpath
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ set files [list]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ fs-traverse -tails file [list ${workpath}] {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if {[file tail $file] in [list config.log CMakeError.log meson-log.txt] && [file isfile [file join ${workpath} $file]]} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # We could do the searching ourselves, but using a tool optimized for this purpose is likely much faster
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # than using Tcl.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # Using /usr/bin/grep here so we don't accidentally pick up a MacPorts-installed grep which might
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # currently not be runnable due to a missing library.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ set args [list "/usr/bin/grep" "-El" "--" "-W[quotemeta $warning_flag]\\\]\$"]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ lappend args [file join ${workpath} $file]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if {![catch {exec -- {*}$args}]} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ lappend files $file
</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;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if {[llength $files] > 0} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ui_warn [format [msgcat::mc "Configuration logfiles contain indications of %s; check that features were not accidentally disabled:"] "-W$warning_flag"]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ foreach file $files {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ui_msg [format " found in %s" $file]
</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;'>+}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+options configure.checks.implicit_int
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+default configure.checks.implicit_int yes
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+proc portconfigure::check_implicit_int {} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ portconfigure::check_warnings {implicit-int}
</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;'>+options configure.checks.incompatible_function_pointer_types
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+default configure.checks.incompatible_function_pointer_types yes
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+proc portconfigure::check_incompatible_function_pointer_types {} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ portconfigure::check_warnings {incompatible-function-pointer-types}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span> options configure.checks.implicit_function_declaration \
configure.checks.implicit_function_declaration.whitelist
default configure.checks.implicit_function_declaration yes
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1920,9 +1964,9 @@ proc portconfigure::check_implicit_function_declarations {} {
</span> # We could do the searching ourselves, but using a tool optimized for this purpose is likely much faster
# than using Tcl.
#
<span style='display:block; white-space:pre;background:#ffe0e0;'>- # Using /usr/bin/fgrep here, so we don't accidentally pick up a macports-installed grep which might
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # Using /usr/bin/grep here so we don't accidentally pick up a MacPorts-installed grep which might
</span> # currently not be runnable due to a missing library.
<span style='display:block; white-space:pre;background:#ffe0e0;'>- set args [list "/usr/bin/fgrep" "--" "-Wimplicit-function-declaration"]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ set args [list "/usr/bin/grep" "-E" "--" "-Wimplicit-function-declaration\\\]\$"]
</span> lappend args [file join ${workpath} $file]
if {![catch {set result [exec -- {*}$args]}]} {
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1947,7 +1991,7 @@ proc portconfigure::check_implicit_function_declarations {} {
</span> }
if {[dict size $undeclared_functions] > 0} {
<span style='display:block; white-space:pre;background:#ffe0e0;'>- ui_warn "Configuration logfiles contain indications of -Wimplicit-function-declaration; check that features were not accidentally disabled:"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ui_warn [format [msgcat::mc "Configuration logfiles contain indications of %s; check that features were not accidentally disabled:"] "-Wimplicit-function-declaration"]
</span> dict for {function files} $undeclared_functions {
ui_msg [format " %s: found in %s" $function [join [dict keys $files] ", "]]
}
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1972,9 +2016,19 @@ proc portconfigure::load_implicit_function_declaration_whitelist {sdk_version} {
</span> proc portconfigure::configure_finish {args} {
global \
configure.dir \
<span style='display:block; white-space:pre;background:#ffe0e0;'>- configure.checks.implicit_function_declaration
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ configure.checks.implicit_function_declaration \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ configure.checks.implicit_int \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ configure.checks.incompatible_function_pointer_types
</span>
<span style='display:block; white-space:pre;background:#ffe0e0;'>- if {[file isdirectory ${configure.dir}] && ${configure.checks.implicit_function_declaration}} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- portconfigure::check_implicit_function_declarations
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if {[file isdirectory ${configure.dir}]} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if {${configure.checks.implicit_function_declaration}} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ portconfigure::check_implicit_function_declarations
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if {${configure.checks.implicit_int}} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ portconfigure::check_implicit_int
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if {${configure.checks.incompatible_function_pointer_types}} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ portconfigure::check_incompatible_function_pointer_types
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span> }
}
</pre><pre style='margin:0'>
</pre>