qemu-devel
[Top][All Lists]
Advanced

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

Re: [Qemu-devel] [PATCH] translate-all: wrapped map_exec() in #ifdef


From: Michael Tokarev
Subject: Re: [Qemu-devel] [PATCH] translate-all: wrapped map_exec() in #ifdef
Date: Mon, 03 Nov 2014 12:16:34 +0300
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Icedove/31.2.0

03.11.2014 11:18, SeokYeon Hwang wrote:
>> -----Original Message-----
>> From: Peter Maydell [mailto:address@hidden
>> Sent: Saturday, November 01, 2014 3:30 AM
>> To: SeokYeon Hwang
>> Cc: QEMU Developers
>> Subject: Re: [Qemu-devel] [PATCH] translate-all: wrapped map_exec() in
>> #ifdef
>>
>> On 31 October 2014 04:59, SeokYeon Hwang <address@hidden> wrote:
>>> Moved map_exec() and wrapped it in #ifdef to avoid "-Wunused-function"
>> on clang 3.4 or later.
>>>
>>> Signed-off-by: SeokYeon Hwang <address@hidden>
>>
>> I had this kind of on my todo list too, but I didn't much like the nested
>> ifdefs which are really only because of what the different implementations
>> of alloc_code_gen_buffer() happen to do. I think it would be more robust
>> to just mark the functions with the 'unused' attribute instead of relying
>> on 'inline' to implicitly do this for us:
>>
>> --- a/translate-all.c
>> +++ b/translate-all.c
>> @@ -270,14 +270,14 @@ bool cpu_restore_state(CPUState *cpu, uintptr_t
>> retaddr)  }
>>
>>  #ifdef _WIN32
>> -static inline void map_exec(void *addr, long size)
>> +static __attribute__((unused)) void map_exec(void *addr, long size)
>>  {
>>      DWORD old_protect;
>>      VirtualProtect(addr, size,
>>                     PAGE_EXECUTE_READWRITE, &old_protect);  }

In which case this function isn't used on windows?  I mean, is it really
necessary to mark it as unused for win32 case?

>> #else
>> -static inline void map_exec(void *addr, long size)
>> +static __attribute__((unused)) void map_exec(void *addr, long size)
>>  {
>>      unsigned long start, end, page_size;

How about this instead:

--- a/translate-all.c
+++ b/translate-all.c
@@ -276,7 +276,7 @@ static inline void map_exec(void *addr, long size)
     VirtualProtect(addr, size,
                    PAGE_EXECUTE_READWRITE, &old_protect);
 }
-#else
+#elif !defined(USE_MMAP)
 static inline void map_exec(void *addr, long size)
 {
     unsigned long start, end, page_size;

? (Untested, but just to show an idea)... ;)

Thanks,

/mjt



reply via email to

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