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

Jean-Paul Saman jpsaman at videolan.org
Wed Apr 16 09:17:27 CEST 2014


Michael,

I'll apply the patch anyway, since it should build cross-platform thus also
on MacOS X Maverick.
Rewriting the code to not use daemon() function is something that can be
done at a later time.

Thanks again for the patch.

Kind regards,
Jean-Paul Saman



On Wed, Apr 16, 2014 at 3:48 AM, Michael Ira Krufky <mkrufky at linuxtv.org>wrote:

> 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
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mailman.videolan.org/pipermail/libdvbpsi-devel/attachments/20140416/d25c8224/attachment.html>


More information about the libdvbpsi-devel mailing list