qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [PATCH v2] Darwin: Fix compilation warning regarding th


From: Blue Swirl
Subject: Re: [Qemu-devel] [PATCH v2] Darwin: Fix compilation warning regarding the deprecated daemon() function
Date: Mon, 13 Jun 2011 23:20:19 +0300

On Thu, Jun 9, 2011 at 9:47 PM, Andreas Färber <address@hidden> wrote:
> Am 07.06.2011 um 05:34 schrieb Alexandre Raymond:
>
>> Changes since v1: create a wrapper function named qemu_daemon() in
>> oslib-posix.c
>> instead of putting the OS specific workaround in qemu-nbd.c directly.
>>
>> On OSX >= 10.5, daemon() is deprecated, resulting in the following
>> warning:
>> ----8<----
>> qemu-nbd.c: In function ‘main’:
>> qemu-nbd.c:371: warning: ‘daemon’ is deprecated (declared at
>> /usr/include/stdlib.h:289)
>> ----8<----
>>
>> The following trick, used in mDNSResponder, takes care of this warning:
>>
>> http://www.opensource.apple.com/source/mDNSResponder/mDNSResponder-258.18/mDNSPosix/PosixDaemon.c
>>
>> On OSX, it temporarily renames the daemon() function before including
>> stdlib.h
>> and declares it manually as an extern function. This way, the compiler
>> does not
>> see the declaration from stdlib.h and thus does not display the warning.
>>
>> Signed-off-by: Alexandre Raymond <address@hidden>
>
> Acked-by: Andreas Färber <address@hidden>
>
> Blue, do you want this to go through the cocoa queue (please ack then) or do
> you want to apply this directly?

I have a minor style comment, but otherwise this could go via cocoa queue.

> I have two further issues on my radar, 1) Alexandre's handleEvent: warning
> and 2) the big sigfd issue, and would then send a pull request.
>
> Andreas
>
>> ---
>> osdep.h       |    1 +
>> oslib-posix.c |   15 +++++++++++++++
>> qemu-nbd.c    |    2 +-
>> 3 files changed, 17 insertions(+), 1 deletions(-)
>>
>> diff --git a/osdep.h b/osdep.h
>> index 970d767..6eb9a49 100644
>> --- a/osdep.h
>> +++ b/osdep.h
>> @@ -88,6 +88,7 @@
>> # define QEMU_GNUC_PREREQ(maj, min) 0
>> #endif
>>
>> +int qemu_daemon(int nochdir, int noclose);
>> void *qemu_memalign(size_t alignment, size_t size);
>> void *qemu_vmalloc(size_t size);
>> void qemu_vfree(void *ptr);
>> diff --git a/oslib-posix.c b/oslib-posix.c
>> index 7bc5f7c..5392e25 100644
>> --- a/oslib-posix.c
>> +++ b/oslib-posix.c
>> @@ -26,11 +26,26 @@
>>  * THE SOFTWARE.
>>  */
>>
>> +/* The following block of code temporarily renames the daemon() function
>> so the
>> +   compiler does not see the warning associated with it in stdlib.h on
>> OSX */
>> +#ifdef __APPLE__
>> +#define daemon qemu_fake_daemon_function
>> +#include <stdlib.h>
>> +#undef daemon
>> +extern int daemon(int, int);
>> +#endif
>> +
>> #include "config-host.h"
>> #include "sysemu.h"
>> #include "trace.h"
>> #include "qemu_socket.h"
>>
>> +
>> +
>> +int qemu_daemon(int nochdir, int noclose) {

Here the brace should be on a new line. This is C, not Java.

>> +    return daemon(nochdir, noclose);
>> +}
>> +
>> void *qemu_oom_check(void *ptr)
>> {
>>    if (ptr == NULL) {
>> diff --git a/qemu-nbd.c b/qemu-nbd.c
>> index e858033..e65cc6c 100644
>> --- a/qemu-nbd.c
>> +++ b/qemu-nbd.c
>> @@ -359,7 +359,7 @@ int main(int argc, char **argv)
>>
>>        if (!verbose) {
>>            /* detach client and server */
>> -            if (daemon(0, 0) == -1) {
>> +            if (qemu_daemon(0, 0) == -1) {
>>                err(EXIT_FAILURE, "Failed to daemonize");
>>            }
>>        }
>> --
>> 1.7.5
>>
>>
>
>



reply via email to

[Prev in Thread] Current Thread [Next in Thread]