* Milan Crha:
On Thu, 2023-11-30 at 18:09 +0100, Florian Weimer wrote:
> Again, some of these are false positives.
Hi,
I think the errors from the configure time of the script are not always
problems, are they? At least in the case of the evolution-data-server,
it's half a problem and half expected.
Yes, we have definitely need an exception list for implicit function
declarations.
Specifically, one "configure" (there is used CMake) check
tries to
figure out whether gethostbyname_r() has five arguments. It does not in
Fedora, thus a) there are passed no enough arguments to the function;
b) there are incompatible types passed to the function. Both are
claimed by gcc. The second is due to the first. The result of this
"source compiles" test is correct, the function does not have five
arguments.
I don't see this. The evolution-data-server-3.50.2-1.fc39 and
evolution-data-server-3.50.2-1.fc40 have this:
-- Performing Test HAVE_I_CAL_EMAIL_PARAMETER
-- Performing Test HAVE_I_CAL_EMAIL_PARAMETER - Success
While my test build has:
-- Performing Test HAVE_I_CAL_EMAIL_PARAMETER
-- Performing Test HAVE_I_CAL_EMAIL_PARAMETER - Failed
So the test outcome is altered by the new error.
Furthermore, in the YAML log, I don't see the second error about the
mismatching parameter count:
“
…-build/CMakeFiles/CMakeScratch/TryCompile-HmYCHv/src.c: In function ‘main’:
…-build/CMakeFiles/CMakeScratch/TryCompile-HmYCHv/src.c:5:39: error: assignment to
‘icalparameter *’ {aka ‘struct icalparameter_impl *’} from incompatible pointer type
‘ICalParameter *’
5 | param = i_cal_property_get_first_parameter (NULL,
I_CAL_EMAIL_PARAMETER);
| ^
…-build/CMakeFiles/CMakeScratch/TryCompile-HmYCHv/src.c:6:60: error: passing argument 1 of
‘i_cal_parameter_get_email’ from incompatible pointer type
6 | i_cal_parameter_get_email (param);
| ^~~~~
| |
| icalparameter * {aka
struct icalparameter_impl *}
In file included from /usr/include/libical-glib/i-cal-parameter.h:28,
from /usr/include/libical-glib/i-cal-component.h:27,
from /usr/include/libical-glib/libical-glib.h:34,
from …-build/CMakeFiles/CMakeScratch/TryCompile-HmYCHv/src.c:2:
/usr/include/libical-glib/i-cal-derived-parameter.h:399:71: note: expected ‘const
ICalParameter *’ but argument is of type ‘icalparameter *’ {aka ‘struct icalparameter_impl
*’}
399 | const gchar * i_cal_parameter_get_email (const ICalParameter
*param);
|
~~~~~~~~~~~~~~~~~~~~~^~~~~
”
The instrumented GCC can backpropagate certain errors and suppress the
logging of otherwise critical errors (even if they occurred earlier in
the file), including in some cases if there are too many function
arguments. However, this suppression heuristic is presently incomplete.
But I don't think it matters here because there is no such error in the
CMake probe.
Another "configure" check used incorrect arguments in
error. I
corrected it for the development version [1], which should be released
at the beginning of the next year.
Ahh, sorry, I think I looked at this error because that's the only one
that makes it into the critical error log. 8-)
The first one you mentioned has probably been suppressed by the
heuristic. Still sending this message because it might be helpful to
show how this works.
Thanks,
Florian