From: Blue Swirl <blauwirbel@gmail.com>
To: "Andreas Färber" <andreas.faerber@web.de>
Cc: Alexandre Raymond <cerbere@gmail.com>,
Peter Maydell <peter.maydell@linaro.org>,
qemu-devel Developers <qemu-devel@nongnu.org>,
Alexander Graf <agraf@suse.de>
Subject: Re: [Qemu-devel] [PATCH v2] Darwin: Fix compilation warning regarding the deprecated daemon() function
Date: Mon, 13 Jun 2011 23:20:19 +0300 [thread overview]
Message-ID: <BANLkTimJoOit5E_LigTJrJ4O_finndJw3Q@mail.gmail.com> (raw)
In-Reply-To: <3F92F108-6AEF-4041-AA1C-895EA552D012@web.de>
On Thu, Jun 9, 2011 at 9:47 PM, Andreas Färber <andreas.faerber@web.de> 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 <cerbere@gmail.com>
>
> Acked-by: Andreas Färber <andreas.faerber@web.de>
>
> 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
>>
>>
>
>
next prev parent reply other threads:[~2011-06-13 20:20 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-06-07 3:34 [Qemu-devel] [PATCH v2] Darwin: Fix compilation warning regarding the deprecated daemon() function Alexandre Raymond
2011-06-09 18:47 ` Andreas Färber
2011-06-09 19:30 ` Andreas Färber
2011-06-13 20:20 ` Blue Swirl [this message]
2011-06-14 1:24 ` Andreas Färber
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=BANLkTimJoOit5E_LigTJrJ4O_finndJw3Q@mail.gmail.com \
--to=blauwirbel@gmail.com \
--cc=agraf@suse.de \
--cc=andreas.faerber@web.de \
--cc=cerbere@gmail.com \
--cc=peter.maydell@linaro.org \
--cc=qemu-devel@nongnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).