On Sat, 2023-12-02 at 17:33 +0100, Florian Weimer wrote:
> 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.
Hi,
the HAVE_I_CAL_EMAIL_PARAMETER is the b) from the above, aka the
changes uncovered a bug in the configure-time code-compiles check.
The a), an expected failure, is this one:
.../TryCompile-0C2YRH/src.c: In function ‘main’:
.../TryCompile-0C2YRH/src.c:11:37: warning: redundant redeclaration of
‘__h_errno_location’ [-Wredundant-decls]
11 | int h_errno;
| ^~~~~~~
/usr/include/netdb.h:59:13: note: previous declaration of ‘__h_errno_location’ with
type ‘int *(void)’
59 | extern int *__h_errno_location (void) __THROW __attribute__ ((__const__));
| ^~~~~~~~~~~~~~~~~~
.../TryCompile-0C2YRH/src.c:12:111: warning: passing argument 7 of ‘gethostbyaddr_r’
from incompatible pointer type [-Wincompatible-pointer-types]
12 | (void)gethostbyaddr_r
("www.ximian.com", 14, AF_INET, &hent, buffer, bufsize, &h_errno);
|
^
|
|
|
int *
/usr/include/netdb.h:174:57: note: expected ‘struct hostent ** restrict’ but argument
is of type ‘int *’
174 | struct hostent **__restrict __result,
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~
.../TryCompile-0C2YRH/src.c:12:39: error: too few arguments to function
‘gethostbyaddr_r’
12 | (void)gethostbyaddr_r
("www.ximian.com", 14, AF_INET, &hent, buffer, bufsize, &h_errno);
| ^~~~~~~~~~~~~~~
/usr/include/netdb.h:170:12: note: declared here
170 | extern int gethostbyaddr_r (const void *__restrict __addr, __socklen_t
__len,
| ^~~~~~~~~~~~~~~
gmake[1]: *** [CMakeFiles/cmTC_3133a.dir/build.make:78:
CMakeFiles/cmTC_3133a.dir/src.c.o] Error 1
gmake[1]: Leaving directory '.../TryCompile-0C2YRH'
gmake: *** [Makefile:127: cmTC_3133a/fast] Error 2
Note the `too few arguments to function ‘gethostbyaddr_r’` error
follows the `incompatible pointer type` warning, which is going to be
an error after the proposed change.
Bye,
Milan