diff mbox series

[meta-networking] ssmtp: fix build error with gcc-15

Message ID 20250416093333.3442943-1-mark.yang@lge.com
State Accepted
Headers show
Series [meta-networking] ssmtp: fix build error with gcc-15 | expand

Commit Message

mark yang April 16, 2025, 9:33 a.m. UTC
From: "mark.yang" <mark.yang@lge.com>

* 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 <mark.yang@lge.com>
---
 ...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 mbox series

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" <mark.yang@lge.com>
+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 <mark.yang@lge.com>
+---
+ 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"