On Thu, 2020-08-27 at 14:21 +0200, Lukas Javorsky wrote:
Hi folks,
I've run into the compilation problem in the Galera package
This problem occurs only on f33 and higher tho.
Here is build performed on Fedora 32:
https://koji.fedoraproject.org/koji/taskinfo?taskID=50232504
And here is the same build, but on Fedora 33:
https://koji.fedoraproject.org/koji/taskinfo?taskID=50232498
Does anyone know what could cause this?
It looks like something that changed in cc1plus or scons is causing this, so if you had
similar issue, please let me know.
I'm pretty confident this is a source level
issue, not a problem with gcc or
scons.
If you look at the cpp output you'll find something like this:
# 130 "galera/tests/defaults_check.cpp" 3 4
(
# 130 "galera/tests/defaults_check.cpp"
it == map.end()
# 130 "galera/tests/defaults_check.cpp" 3 4
) ? _ck_assert_failed("galera/tests/defaults_check.cpp", 130,
"Failure '"
# 130 "galera/tests/defaults_check.cpp"
"it == map.end()"
# 130 "galera/tests/defaults_check.cpp" 3 4
"' occurred" ,
# 130 "galera/tests/defaults_check.cpp"
"Failed to insert KV pair: %s = %s", param.first.c_str(),
param.second.c_str()
# 130 "galera/tests/defaults_check.cpp" 3 4
, __null) : _mark_point("galera/tests/defaults_check.cpp", 130)
# 131 "galera/tests/defaults_check.cpp"
Where ck_assert_failed is defined by /usr/include/check.h, which comes from
check-devel:
CK_DLL_EXP void CK_EXPORT _ck_assert_failed(const char *file, int line,
const char *expr, const char *msg,
...) CK_ATTRIBUTE_NORETURN
CK_ATTRIBUTE_FORMAT(printf, 4, 5);
Which says argument 4 of the call to ck_assert_failed is a printf style argument.
THat argument is:
"Failed to insert KV pair: %s = %s", param.first.c_str()
Note two string format arguments (%s). Yet there are 3 arguments
(param.first.c_str(), param.second.c_str(), __null
That's what the compiler is complaining about. This all indicates either check.h
is broken or the sources using it are broken. But it isn't a compiler or scons
issue.
jeff