[Qemu-devel] [PATCH] preprocessor issue in qemu/patch-block-raw-posix.c

Juergen Lock nox at jelal.kn-bremen.de
Fri Sep 26 21:32:38 UTC 2008


On Thu, Sep 25, 2008 at 03:39:58PM -0500, Anthony Liguori wrote:
> Juergen Lock wrote:
>> I forgot to note that this also needed the following patch:
>>   
> 
> Why?  This #ifdef is working around a very specific bug.
> 
Well, looks like the preprocessor tries to parse the entire expression
including the undefined `!__GLIBC_PREREQ(2, 4)' before evaluating it:

block-raw-posix.c:548:69: missing binary operator before token "("

so I just put it on an extra line.

> Regards,
> 
> Anthony Liguori
> 
>> Index: qemu/block-raw-posix.c
>> @@ -545,7 +545,8 @@
>>       qemu_aio_set_fd_handler(s->fd, posix_aio_read, NULL, 
>> posix_aio_flush, s);
>>  -#if defined(__linux__) && defined(__GLIBC_PREREQ) && !__GLIBC_PREREQ(2, 
>> 4)
>> +#if defined(__linux__) && defined(__GLIBC_PREREQ)
>> +#if !__GLIBC_PREREQ(2, 4)
>>      {
>>          /* XXX: aio thread exit seems to hang on RedHat 9 and this init
>>             seems to fix the problem. */
>> @@ -557,6 +558,7 @@
>>          aio_init(&ai);
>>      }
>>  #endif
>> +#endif
>>      posix_aio_state = s;
>>       return 0;
>> 
>> Signed-off-by: Juergen Lock <nox at jelal.kn-bremen.de>
>> 
>> 
>>   
> 


More information about the freebsd-emulation mailing list