From c81b4c74e4ba1a7dae8639197cb72f12b8e64463 Mon Sep 17 00:00:00 2001 From: "mark.yang" Date: Wed, 16 Apr 2025 18:33:33 +0900 Subject: [PATCH] ssmtp: fix build error with gcc-15 * fix build error with gcc-15 ../ssmtp-2.64/ssmtp.c:1454:31: error: passing argument 2 of 'signal' from incompatible pointer type [-Wincompatible-pointer-types] 1454 | (void)signal(SIGALRM, (void(*)())handler); /* Catch SIGALRM */ | ^~~~~~~~~~~~~~~~~~ | | | void (*)(void) In file included from TOPDIR/tmp/work/core2-64-oe-linux/ssmtp/2.64/recipe-sysroot/usr/include/sys/param.h:28, from ../ssmtp-2.64/ssmtp.c:18: TOPDIR/tmp/work/core2-64-oe-linux/ssmtp/2.64/recipe-sysroot/usr/include/signal.h:88:57: note: expected '__sighandler_t' {aka 'void (*)(int)'} but argument is of type 'void (*)(void)' 88 | extern __sighandler_t signal (int __sig, __sighandler_t __handler) | ~~~~~~~~~~~~~~~^~~~~~~~~ ../ssmtp-2.64/ssmtp.c:1393:6: note: 'handler' declared here 1393 | void handler(void) | ^~~~~~~ Signed-off-by: mark.yang Signed-off-by: Khem Raj --- ...ible-pointer-types-error-with-gcc-15.patch | 47 +++++++++++++++++++ .../recipes-support/ssmtp/ssmtp_2.64.bb | 1 + 2 files changed, 48 insertions(+) create mode 100644 meta-networking/recipes-support/ssmtp/ssmtp/0001-Fix-incompatible-pointer-types-error-with-gcc-15.patch diff --git a/meta-networking/recipes-support/ssmtp/ssmtp/0001-Fix-incompatible-pointer-types-error-with-gcc-15.patch b/meta-networking/recipes-support/ssmtp/ssmtp/0001-Fix-incompatible-pointer-types-error-with-gcc-15.patch new file mode 100644 index 0000000000..920c1cd2c5 --- /dev/null +++ b/meta-networking/recipes-support/ssmtp/ssmtp/0001-Fix-incompatible-pointer-types-error-with-gcc-15.patch @@ -0,0 +1,47 @@ +From 7d3db0f63b9fa4a0deca486eccbe60c3cfa00750 Mon Sep 17 00:00:00 2001 +From: "mark.yang" +Date: Wed, 16 Apr 2025 18:28:24 +0900 +Subject: [PATCH] Fix incompatible-pointer-types error with gcc 15 + +../ssmtp-2.64/ssmtp.c:1454:31: error: passing argument 2 of 'signal' from incompatible pointer type [-Wincompatible-pointer-types] + 1454 | (void)signal(SIGALRM, (void(*)())handler); /* Catch SIGALRM */ + | ^~~~~~~~~~~~~~~~~~ + | | + | void (*)(void) +In file included from TOPDIR/tmp/work/core2-64-oe-linux/ssmtp/2.64/recipe-sysroot/usr/include/sys/param.h:28, + from ../ssmtp-2.64/ssmtp.c:18: +TOPDIR/tmp/work/core2-64-oe-linux/ssmtp/2.64/recipe-sysroot/usr/include/signal.h:88:57: note: expected '__sighandler_t' {aka 'void (*)(int)'} but argument is of type 'void (*)(void)' + 88 | extern __sighandler_t signal (int __sig, __sighandler_t __handler) + | ~~~~~~~~~~~~~~~^~~~~~~~~ +../ssmtp-2.64/ssmtp.c:1393:6: note: 'handler' declared here + 1393 | void handler(void) + | ^~~~~~~ + +Upstream-Status: Inactive-Upstream [This package has been orphaned https://bugs.debian.org/925056] +Signed-off-by: mark.yang +--- + ssmtp.c | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/ssmtp.c b/ssmtp.c +index 4dedaf8..a938d14 100644 +--- a/ssmtp.c ++++ b/ssmtp.c +@@ -1390,7 +1390,7 @@ handler() -- A "normal" non-portable version of an alarm handler + like a socket. So we longjump instead, which is erronious on + a small number of machines and ill-defined in the language + */ +-void handler(void) ++void handler(__attribute__((unused)) int sig) + { + extern jmp_buf TimeoutJmpBuf; + +@@ -1451,7 +1451,7 @@ int ssmtp(char *argv[]) + from = from_format(uad, override_from); + + /* Now to the delivery of the message */ +- (void)signal(SIGALRM, (void(*)())handler); /* Catch SIGALRM */ ++ (void)signal(SIGALRM, handler); /* Catch SIGALRM */ + (void)alarm((unsigned) MAXWAIT); /* Set initial timer */ + if(setjmp(TimeoutJmpBuf) != 0) { + /* Then the timer has gone off and we bail out */ diff --git a/meta-networking/recipes-support/ssmtp/ssmtp_2.64.bb b/meta-networking/recipes-support/ssmtp/ssmtp_2.64.bb index 499a79d1ed..8dc2d76477 100644 --- a/meta-networking/recipes-support/ssmtp/ssmtp_2.64.bb +++ b/meta-networking/recipes-support/ssmtp/ssmtp_2.64.bb @@ -9,6 +9,7 @@ SRC_URI = "${DEBIAN_MIRROR}/main/s/${BPN}/${BPN}_${PV}.orig.tar.bz2 \ file://use-DESTDIR.patch \ file://0001-ssmtp-Correct-the-null-pointer-assignment-to-char-po.patch \ file://0001-include-libgen.h-for-basename.patch \ + file://0001-Fix-incompatible-pointer-types-error-with-gcc-15.patch \ " SRC_URI[md5sum] = "65b4e0df4934a6cd08c506cabcbe584f"