On Wed, Mar 09, 2011 at 02:01:06PM +0100, Matthias Bolte wrote:
2011/3/9 Daniel Veillard <veillard(a)redhat.com>:
> On Wed, Mar 09, 2011 at 12:18:44PM +0000, Daniel P. Berrange wrote:
>> On Wed, Mar 09, 2011 at 10:49:34AM +0100, Matthias Bolte wrote:
>> > I found this one while trying to compile ruby-libvirt.
>> >
>> > Matthias
>>
>> > From 6858713a7ea7fad961acbc4d4f3c0c53ede2302d Mon Sep 17 00:00:00 2001
>> > From: Matthias Bolte <matthias.bolte(a)googlemail.com>
>> > Date: Wed, 9 Mar 2011 10:42:49 +0100
>> > Subject: [PATCH] Include stdint.h in libvirt.h for INT64_MAX
>> >
>> > VIR_DOMAIN_MEMORY_PARAM_UNLIMITED uses INT64_MAX but stdint.h
>> > was not included. Therefore, libvirt.h was not selfcontained.
>>
>> I'm a little wary of doing this, because stdint.h isn't neccessary
>> the most portable header file & while libvirt internally can rely
>> on gnulib to fix problems, apps building against libvirt don't
>> have that.
>>
>> I think it could be better to just define VIR_DOMAIN_MEMORY_PARAM_UNLIMITED
>> directly to the right value, rather than in terms of INT64_MAX
>
> Agreed we should try to limit the dependancies from public headers
> to the minimum, in that case I'm fine hardcoding the value.
>
> Daniel
>
Okay, so here's v2.
Matthias
From f85a17d3493fc3c2c29da6460060338b4bbd73da Mon Sep 17 00:00:00
2001
From: Matthias Bolte <matthias.bolte(a)googlemail.com>
Date: Wed, 9 Mar 2011 10:42:49 +0100
Subject: [PATCH] Don't use INT64_MAX in libvirt.h because it requires stdint.h
VIR_DOMAIN_MEMORY_PARAM_UNLIMITED uses INT64_MAX but stdint.h
was not and should not be included. Therefore, libvirt.h was
not self-contained.
Instead of including stdint.h specify the value directly.
---
include/libvirt/libvirt.h.in | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/include/libvirt/libvirt.h.in b/include/libvirt/libvirt.h.in
index 618b350..82e45d7 100644
--- a/include/libvirt/libvirt.h.in
+++ b/include/libvirt/libvirt.h.in
@@ -705,7 +705,7 @@ typedef enum {
* Macro providing the virMemoryParameter value that indicates "unlimited"
*/
-#define VIR_DOMAIN_MEMORY_PARAM_UNLIMITED (INT64_MAX >> 10)
+#define VIR_DOMAIN_MEMORY_PARAM_UNLIMITED 9007199254740991 /* = INT64_MAX >> 10 */
Hum shouldn't that be 9007199254740991UL to provide type information ?
Daniel
--
Daniel Veillard | libxml Gnome XML XSLT toolkit
http://xmlsoft.org/
daniel(a)veillard.com | Rpmfind RPM search engine
http://rpmfind.net/
http://veillard.com/ | virtualization library
http://libvirt.org/