package/start-stop-daemon: fix build issues with musl and GCC 14

Unlike glibc and uClibc, musl doesn't play tricks with transparent
unions for the second argument to bind() to accept the various sockaddr
variants, but rather just defines it as "struct sockaddr*". As GCC 14 no
longer allows arbitrary implicit pointer casts, this results in a build
error. Import the upstream patch that adds the cast.

Fixes: https://autobuild.buildroot.org/results/00b/00b42a35a80c2deb61f2cd40aedd231597bbb290
Signed-off-by: Florian Larysch <fl@n621.de>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
(cherry picked from commit 562eb870fe)
Signed-off-by: Thomas Perale <thomas.perale@mind.be>
This commit is contained in:
Florian Larysch
2025-08-13 22:13:54 +02:00
committed by Thomas Perale
parent 836be446b2
commit 7e67a0b99b

View File

@@ -0,0 +1,31 @@
From 209ffbbf7c8fcf49d9296c969feb7a41aece6525 Mon Sep 17 00:00:00 2001
From: Guillem Jover <guillem@debian.org>
Date: Tue, 6 Dec 2022 18:37:08 +0100
Subject: [PATCH] s-s-d: Cast struct sockaddr_un to struct sockaddr on bind()
call
Changelog: internal
Warned-by: gcc -Wincompatible-pointer-types on musl-libc
Upstream: https://git.dpkg.org/cgit/dpkg/dpkg.git/commit/?id=209ffbbf7c8fcf49d9296c969feb7a41aece6525
Signed-off-by: Florian Larysch <fl@n621.de>
---
utils/start-stop-daemon.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/utils/start-stop-daemon.c b/utils/start-stop-daemon.c
index 6863151c1..a15c0493f 100644
--- a/utils/start-stop-daemon.c
+++ b/utils/start-stop-daemon.c
@@ -632,7 +632,7 @@ create_notify_socket(void)
su.sun_family = AF_UNIX;
strncpy(su.sun_path, sockname, sizeof(su.sun_path) - 1);
- rc = bind(fd, &su, sizeof(su));
+ rc = bind(fd, (struct sockaddr *)&su, sizeof(su));
if (rc < 0)
fatale("cannot bind to notification socket");
--
2.50.1