[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH v6 00/18] libxl: JSON infrastructure, fixes and prerequisite patches for new API
On 06/10/2014 05:21 PM, Wei Liu wrote: On Tue, Jun 10, 2014 at 04:51:35PM -0400, Boris Ostrovsky wrote:On 06/10/2014 04:10 PM, Boris Ostrovsky wrote:On 06/10/2014 10:14 AM, Ian Campbell wrote:On Mon, 2014-06-09 at 13:43 +0100, Wei Liu wrote:Wei Liu (18): A libxl: make cpupool_qualifier_to_cpupoolid a library functionApplied.A xl: remove parsing of "vncviewer" option in xl domain config fileApplied.M libxl: fix JSON generator for uint64_tAcked + applied.A libxl IDL: rename json_fn to json_gen_fn A libxl_json: introduce libxl__object_from_json A libxl_json: introduce parser functions for builtin typesThe last one breaks on older gcc: In file included from flexarray.c:16: libxl_internal.h:136: error: redefinition of typedef âlibxl__gcâ libxl_json.h:25: note: previous declaration of âlibxl__gcâ was here In file included from flexarray.c:16: libxl_internal.h:1641: error: redefinition of typedef âlibxl__json_objectâ libxl_json.h:26: note: previous declaration of âlibxl__json_objectâ was here make[4]: *** [flexarray.o] Error 1 Looks like at some point gcc started allowing multiple typedefs. So, for example:And this is apparently that point (for version 4.6, I believe): https://gcc.gnu.org/git/?p=gcc.git;a=commitdiff;h=ce3765bf44e49ef0568a1ad4a0b7f807591d6412 -borisThanks for reporting. Now that I notice these functions really belong to libxl_internal.h. Does this patch fix it for you? Yes, it allows me to build libxl. I can't test it right now but will do it tomorrow. Thanks. -boris Wei. ---8<--- From 5a57f827f644f716b3748beec0214bbefddda4b6 Mon Sep 17 00:00:00 2001 From: Wei Liu <wei.liu2@xxxxxxxxxx> Date: Tue, 10 Jun 2014 22:16:14 +0100 Subject: [PATCH] libxl: move some internal functions to libxl_internal.h In 752f181f ("libxl_json: introduce parser functions for builtin types") a bunch of parser functions are added to libxl_json.h, which breaks GCC < 4.6. These functions are internal and libxl_json.h is public header, so move them to libxl_internal.h. Signed-off-by: Wei Liu <wei.liu2@xxxxxxxxxx> --- tools/libxl/libxl_internal.h | 32 ++++++++++++++++++++++++++++++++ tools/libxl/libxl_json.h | 35 ----------------------------------- 2 files changed, 32 insertions(+), 35 deletions(-) diff --git a/tools/libxl/libxl_internal.h b/tools/libxl/libxl_internal.h index 80ea883..a0d4f24 100644 --- a/tools/libxl/libxl_internal.h +++ b/tools/libxl/libxl_internal.h @@ -3147,6 +3147,38 @@ void libxl__numa_candidate_put_nodemap(libxl__gc *gc, */ #define CTYPE(isfoo,c) (isfoo((unsigned char)(c)))+int libxl_defbool_parse_json(libxl__gc *gc, const libxl__json_object *o,+ libxl_defbool *p); +int libxl__bool_parse_json(libxl__gc *gc, const libxl__json_object *o, + bool *p); +int libxl_mac_parse_json(libxl__gc *gc, const libxl__json_object *o, + libxl_mac *p); +int libxl_bitmap_parse_json(libxl__gc *gc, const libxl__json_object *o, + libxl_bitmap *p); +int libxl_uuid_parse_json(libxl__gc *gc, const libxl__json_object *o, + libxl_uuid *p); +int libxl_cpuid_policy_list_parse_json(libxl__gc *gc, + const libxl__json_object *o, + libxl_cpuid_policy_list *p); +int libxl_string_list_parse_json(libxl__gc *gc, const libxl__json_object *o, + libxl_string_list *p); +int libxl_key_value_list_parse_json(libxl__gc *gc, + const libxl__json_object *o, + libxl_key_value_list *p); +int libxl_hwcap_parse_json(libxl__gc *gc, const libxl__json_object *o, + libxl_hwcap *p); +int libxl__int_parse_json(libxl__gc *gc, const libxl__json_object *o, + void *p); +int libxl__uint8_parse_json(libxl__gc *gc, const libxl__json_object *o, + void *p); +int libxl__uint16_parse_json(libxl__gc *gc, const libxl__json_object *o, + void *p); +int libxl__uint32_parse_json(libxl__gc *gc, const libxl__json_object *o, + void *p); +int libxl__uint64_parse_json(libxl__gc *gc, const libxl__json_object *o, + void *p); +int libxl__string_parse_json(libxl__gc *gc, const libxl__json_object *o, + char **p);#endif diff --git a/tools/libxl/libxl_json.h b/tools/libxl/libxl_json.hindex b196c1c..e4c0f6c 100644 --- a/tools/libxl/libxl_json.h +++ b/tools/libxl/libxl_json.h @@ -22,52 +22,17 @@ # include <yajl/yajl_version.h> #endif-typedef struct libxl__gc libxl__gc;-typedef struct libxl__json_object libxl__json_object; - yajl_gen_status libxl__uint64_gen_json(yajl_gen hand, uint64_t val); yajl_gen_status libxl_defbool_gen_json(yajl_gen hand, libxl_defbool *p); -int libxl_defbool_parse_json(libxl__gc *gc, const libxl__json_object *o, - libxl_defbool *p); -int libxl__bool_parse_json(libxl__gc *gc, const libxl__json_object *o, - bool *p); yajl_gen_status libxl_uuid_gen_json(yajl_gen hand, libxl_uuid *p); -int libxl_uuid_parse_json(libxl__gc *gc, const libxl__json_object *o, - libxl_uuid *p); yajl_gen_status libxl_mac_gen_json(yajl_gen hand, libxl_mac *p); -int libxl_mac_parse_json(libxl__gc *gc, const libxl__json_object *o, - libxl_mac *p); yajl_gen_status libxl_bitmap_gen_json(yajl_gen hand, libxl_bitmap *p); -int libxl_bitmap_parse_json(libxl__gc *gc, const libxl__json_object *o, - libxl_bitmap *p); yajl_gen_status libxl_cpuid_policy_list_gen_json(yajl_gen hand, libxl_cpuid_policy_list *p); -int libxl_cpuid_policy_list_parse_json(libxl__gc *gc, - const libxl__json_object *o, - libxl_cpuid_policy_list *p); yajl_gen_status libxl_string_list_gen_json(yajl_gen hand, libxl_string_list *p); -int libxl_string_list_parse_json(libxl__gc *gc, const libxl__json_object *o, - libxl_string_list *p); yajl_gen_status libxl_key_value_list_gen_json(yajl_gen hand, libxl_key_value_list *p); -int libxl_key_value_list_parse_json(libxl__gc *gc, - const libxl__json_object *o, - libxl_key_value_list *p); yajl_gen_status libxl_hwcap_gen_json(yajl_gen hand, libxl_hwcap *p); -int libxl_hwcap_parse_json(libxl__gc *gc, const libxl__json_object *o, - libxl_hwcap *p); -int libxl__int_parse_json(libxl__gc *gc, const libxl__json_object *o, - void *p); -int libxl__uint8_parse_json(libxl__gc *gc, const libxl__json_object *o, - void *p); -int libxl__uint16_parse_json(libxl__gc *gc, const libxl__json_object *o, - void *p); -int libxl__uint32_parse_json(libxl__gc *gc, const libxl__json_object *o, - void *p); -int libxl__uint64_parse_json(libxl__gc *gc, const libxl__json_object *o, - void *p); -int libxl__string_parse_json(libxl__gc *gc, const libxl__json_object *o, - char **p);#include <_libxl_types_json.h> _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |