[libdvbpsi-devel] [PATCH] dvbinfo: fix error: 'daemon' is deprecated: first deprecated in OS X 10.5 [-Werror, -Wdeprecated-declarations]

Michael Ira Krufky mkrufky at linuxtv.org
Wed Apr 16 03:48:15 CEST 2014


I'm not sure if you will want to apply this patch, but I thought I
should share it and let you decide.  I need it in order to build
libdvbpsi on OSX Mavericks, but I don't actually use the dvbinfo
program.

Fix the following build error when building under OSX:

gcc -DHAVE_CONFIG_H -I. -I../..  -D_FILE_OFFSET_BITS=64 -DDVBPSI_DIST   -g -O2 -Wall -Werror --std=gnu99 -D_GNU_SOURCE -Wpointer-arith -Wcast-align -Wcast-qual -Wstrict-prototypes -Wshadow -Waggregate-return -Wmissing-prototypes -Wnested-externs -Wsign-compare -DDVBPSI_DIST -MT dvbinfo-dvbinfo.o -MD -MP -MF .deps/dvbinfo-dvbinfo.Tpo -c -o dvbinfo-dvbinfo.o `test -f 'dvbinfo.c' || echo './'`dvbinfo.c
dvbinfo.c:656:13: error: 'daemon' is deprecated: first deprecated in OS X 10.5 [-Werror,-Wdeprecated-declarations]
        if (daemon(1,0) < 0)
            ^
/usr/include/stdlib.h:267:6: note: 'daemon' declared here
int      daemon(int, int) __DARWIN_1050(daemon) __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_0, __MAC_10_5, __IPHONE_2_0, __IPHONE_2_0);
         ^
1 error generated.
make[3]: *** [dvbinfo-dvbinfo.o] Error 1
make[2]: *** [all-recursive] Error 1
make[1]: *** [all-recursive] Error 1
make: *** [all] Error 2

Signed-off-by: Michael Ira Krufky <mkrufky at linuxtv.org>
---
 examples/dvbinfo/dvbinfo.c | 13 +++++++++++++
 1 file changed, 13 insertions(+)

diff --git a/examples/dvbinfo/dvbinfo.c b/examples/dvbinfo/dvbinfo.c
index 5ca7ea0..8a7417d 100644
--- a/examples/dvbinfo/dvbinfo.c
+++ b/examples/dvbinfo/dvbinfo.c
@@ -22,6 +22,14 @@
 
 #include "config.h"
 
+#if __APPLE__
+// In Mac OS X 10.5 and later trying to use the daemon function gives a “‘daemon’ is deprecated”
+// error, which prevents compilation because we build with "-Werror".
+// Since this is supposed to be portable cross-platform code, we don't care that daemon is
+// deprecated on Mac OS X 10.5, so we use this preprocessor trick to eliminate the error message.
+#define daemon yes_we_know_that_daemon_is_deprecated_in_os_x_10_5_thankyou
+#endif
+
 #include <stdlib.h>
 #include <stdio.h>
 #include <stdbool.h>
@@ -68,6 +76,11 @@
 #   include "tcp.h"
 #endif
 
+#if __APPLE__
+#undef daemon
+extern int daemon(int, int);
+#endif
+
 #define FIFO_THRESHOLD_SIZE (400 * 1024 * 1024) /* threshold in bytes */
 #define ARRAY_SIZE(x) (sizeof(x) / sizeof((x)[0]))
 
-- 
1.8.3.2


More information about the libdvbpsi-devel mailing list