qemu-devel
[Top][All Lists]
Advanced

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

Re: [Qemu-devel] [PATCH 3/3] w32: Fix format string regression


From: Stefan Weil
Subject: Re: [Qemu-devel] [PATCH 3/3] w32: Fix format string regression
Date: Sun, 17 Jul 2011 20:34:39 +0200
User-agent: Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.1.16) Gecko/20110702 Iceowl/1.0b1 Icedove/3.0.11

Am 17.07.2011 11:03, schrieb Blue Swirl:
On Fri, Jul 15, 2011 at 11:42 PM, Andreas Färber <address@hidden> wrote:
Am 15.07.2011 um 21:38 schrieb Stefan Weil:
Commit 953ffe0f935f40c0d6061d69e76e0339393b54f8
introduced FMT_pid which is wrong for w32 and w64 getpid():
those getpid() implementations always return an int value.

This is not in line with Posix:
http://pubs.opengroup.org/onlinepubs/9699919799/functions/getpid.html#tag_16_243

Maybe I should have added that getpid() is a function in a vendor specific API.
Microsoft does not claim that getpid() is in line with Posix
(they say it is a deprecated POSIX function, see
http://msdn.microsoft.com/en-us/library/ms235372%28v=vs.80%29.aspx).

Visual Studio uses this declaration:
_CRT_NONSTDC_DEPRECATE(_getpid) _CRTIMP int __cdecl getpid(void);

Mingw32 tries to be more POSIX like and uses (with pid_t = int) this declaration:
_CRTIMP pid_t __cdecl __MINGW_NOTHROW getpid (void);

Mingw-w64 is closer to the VS declaration:
int __cdecl getpid(void) __MINGW_ATTRIB_DEPRECATED_MSVC2005;

The replacement for getpid() is _getpid(). It also has a wrong
declaration in mingw32. A patch which simply replaces getpid by
_getpid is on my todo list, but not urgent, because the current
code works when my patch was applied.

Regards,
Stefan




reply via email to

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