Skip to contentSkip to conversation

sysklogd: add patch to fix build with glibc 2.24

PATCH New Ryan Coe 2 participants 2 messages Oct 8, 2016 – Oct 9, 2016

lore
Share & tools
lore

Ryan Coe

author
#0 lore raw

PATCH 1/1 sysklogd: add patch to fix build with glibc 2.24

Building sysklogd with glibc 2.24 fails with the following error:

syslogd.c: In function ?reapchild?:
syslogd.c:2097:13: error: storage size of ?status? isn?t known

  union wait status;
             ^

Makefile:99: recipe for target 'syslogd.o' failed
make[2]: *** [syslogd.o] Error 1
make[2]: *** Waiting for unfinished jobs....
package/pkg-generic.mk:201: recipe for target './buildroot/output/build/sysklogd-1.5.1/.stamp_built' failed make[1]: *** [./buildroot/output/build/sysklogd-1.5.1/.stamp_built] Error 2
Makefile:41: recipe for target '_all' failed
make: *** [_all] Error 2

union wait was marked deprecated in glibc 2.23 and removed in glibc 2.24. The fix is to declare it as an int.

See https://sourceware.org/ml/libc-alpha/2016-02/msg00342.html

Sent upstream via their mailing list

---
 ...01-replace-deprecated-union-wait-with-int.patch | 25 ++++++++++++++++++++++
 1 file changed, 25 insertions(+)
 create mode 100644 package/sysklogd/0001-replace-deprecated-union-wait-with-int.patch
package/sysklogd/0001-replace-deprecated-union-wait-with-int.patch new file +25 -0
new file mode 100644
index 0000000..c9a30e9
@@ -0,0 +1,25 @@
+From 86fe87cdf097e6286e76eadcc9c11c79be6258f2 Mon Sep 17 00:00:00 2001
+From: Ryan Coe <[email protected]>
+Date: Fri, 7 Oct 2016 19:42:40 -0700
+Subject: [PATCH 1/1] replace deprecated union wait with int
+
+Signed-off-by: Ryan Coe <[email protected]>
+---
+ syslogd.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/syslogd.c b/syslogd.c
+index ea73ea5da5e935bb8cab328559f950cd3afc2d20..ace96c8be40f50d123120c0586a384a298212245 100644
+--- a/syslogd.c
++++ b/syslogd.c
+@@ -2094,7 +2094,7 @@ void reapchild()
+	(void) signal(SIGCHLD, reapchild);	/* reset signal handler -ASP */
+	wait ((int *)0);
+ #else
+-	union wait status;
++	int status;
+
+	while (wait3(&status, WNOHANG, (struct rusage *) NULL) > 0)
+		;
+--
+2.9.3
Signature · 1 line
2.9.3
#1 lore raw

PATCH 1/1 sysklogd: add patch to fix build with glibc 2.24

Hello,

Quoted 19 lines · Ryan Coe

Building sysklogd with glibc 2.24 fails with the following error:

syslogd.c: In function ?reapchild?:
syslogd.c:2097:13: error: storage size of ?status? isn?t known

  union wait status;
             ^

Makefile:99: recipe for target 'syslogd.o' failed
make[2]: *** [syslogd.o] Error 1
make[2]: *** Waiting for unfinished jobs....
package/pkg-generic.mk:201: recipe for target './buildroot/output/build/sysklogd-1.5.1/.stamp_built' failed make[1]: *** [./buildroot/output/build/sysklogd-1.5.1/.stamp_built] Error 2
Makefile:41: recipe for target '_all' failed
make: *** [_all] Error 2

union wait was marked deprecated in glibc 2.23 and removed in glibc 2.24. The fix is to declare it as an int.

See https://sourceware.org/ml/libc-alpha/2016-02/msg00342.html

Quoted 7 lines

Sent upstream via their mailing list

---
 ...01-replace-deprecated-union-wait-with-int.patch | 25 ++++++++++++++++++++++
 1 file changed, 25 insertions(+)
 create mode 100644 package/sysklogd/0001-replace-deprecated-union-wait-with-int.patch

Applied to master, thanks.

Thomas

Signature · 3 lines
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com