qemu-devel
[Top][All Lists]
Advanced

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

[Qemu-devel] Re: [PATCH 2/3] Replace remaining gcc format attribute by m


From: Blue Swirl
Subject: [Qemu-devel] Re: [PATCH 2/3] Replace remaining gcc format attribute by macro GCC_FMT_ATTR (format checking)
Date: Sat, 25 Sep 2010 07:46:14 +0000

On Thu, Sep 23, 2010 at 8:44 PM, Stefan Weil <address@hidden> wrote:
> Am 23.09.2010 22:33, schrieb Blue Swirl:
>>
>> On Thu, Sep 23, 2010 at 7:28 PM, Stefan Weil <address@hidden> wrote:
>>>
>>> Replace the remaining format attribute printf by macro
>>> GCC_FMT_ATTR which uses gnu_printf (if supported).
>>>
>>> This needs additional code changes:
>>>
>>> * Add qemu-common.h (which defined GCC_FMT_ATTR) were needed.
>>>
>>> * Remove standard includes when qemu-common.h was added.
>>>  qemu-common.h already provides these includes.
>>>
>>> * Remove local definitions which now come from stdio.h.
>>>  These definitions were needed before tcg was introduced.
>>>  They raise conflicts when qemu-common.h is included.
>>
>> IIRC the problem was that some system headers were incompatible with
>> global asm variables. There is still one, AREG0.
>>
>> But I'd rather not keep the hideous local definitions forever. Maybe
>> those systems which are broken by the patch are not interesting
>> anymore?
>
> Are there such systems? Or did the problems with earlier
> versions arise from the fact that a lot of global asm variables
> were reserved by qemu? How could a correctly defined AREG0
> interfere with system headers?

One explanation is that the code in target-*/op_helper.c may assume
that env/AREG0 is always available but since library functions may
clobber that, we want to hide them.

> For linux and win32, I did not notice problems caused by these changes.

It looks like that code has origins in one of the very first patches,
r16 or ba1c6e37fc5efc0f3d1e50d0760f9f4a1061187b. It was moved from
exec-i386.h to dyngen-exec.h by r236 or
79638566e5b87058e92f537b989df0dbc23f8b41. R997 or
1e6cae953d6a37216359b79e05d23e1bf4dc6bbe added a warning about system
headers. The commits around that add OS X support, maybe the problem
was there?



reply via email to

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