#56 mq-notify build failed in mq-memory-corruption with a compiler error
Opened by mattf. Modified

I ran the default tests with 6.13.0-0.rc7.20250114gitc45323b7560e.56.fc42.x86_64
in a Fedora Rawhide KDE live image Fedora-KDE-Desktop-Live-Rawhide-20250118.n.0.x86_64.iso on bare metal. mq-notify build failed in mq-memory-corruption with a compiler error involving incompatible pointer types as follows.

Starting test ./default/mq-memory-corruption
mq_notify-5.1.c: In function ‘main’:
mq_notify-5.1.c:104:31: error: assignment to ‘__sighandler_t’ {aka ‘void ()(int)’} from incompatible pointer type ‘void ()(void)’ [-Wincompatible-pointer-types]
104 | sa.sa_handler = msg_handler;
| ^
mq_notify-5.1.c:53:6: note: ‘msg_handler’ declared here
53 | void msg_handler()
| ^~~~~~~~~~~
In file included from /usr/include/sys/wait.h:36,
from mq_notify-5.1.c:31:
/usr/include/signal.h:72:16: note: ‘__sighandler_t’ declared here
72 | typedef void (*__sighandler_t) (int);
| ^~~~~~~~~~~~~~
mq-notify build failed.

mq-memory-corruption was skipped as a result. I haven't seen this problem before. The error might be related to the gcc 15 snapshot recently merged to Rawhide.


I haven't tested against rawhide, but this will probably fix it:

diff --git a/default/mq-memory-corruption/mq_notify-5.1.c b/default/mq-memory-corruption/mq_notify-5.1.c
index 3ec1993..6fb58d1 100644
--- a/default/mq-memory-corruption/mq_notify-5.1.c
+++ b/default/mq-memory-corruption/mq_notify-5.1.c
@@ -50,7 +50,7 @@

int enter_handler = 0;

-void msg_handler()
+void msg_handler(int not_used)
{
enter_handler = 1;
}

@gtwilliams I tried to apply your patch with git apply, but the following error was shown.
error: corrupt patch at line 7

I manually changed default/mq-memory-corruption/mq_notify-5.1.c to have
void msg_handler(int not_used)

The error didn't happen after that change, and mq-memory-corruption passed. Thanks

Metadata