From nobody Tue Feb 10 00:58:28 2026 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) client-ip=192.237.175.120; envelope-from=xen-devel-bounces@lists.xenproject.org; helo=lists.xenproject.org; Authentication-Results: mx.zohomail.com; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; dmarc=fail(p=none dis=none) header.from=citrix.com ARC-Seal: i=1; a=rsa-sha256; t=1590164023; cv=none; d=zohomail.com; s=zohoarc; b=kR+f7OEpSd7nApeyrScePsvFzWre2TJkW0/MdMEuTC4W5lwfZFxEBVL4vnvsPCtjwNakZAP8QojXS6qVpKcyGYkbKLnEpgpRzowapwRIR4jc/gP38KPQl3J5wQDByXaVCa6hG1yt4LCsr4LrnD9TqedzLGa50EeYnsYAcJnepNg= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1590164023; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=JUjz/bsyhZbV8dohE/z+p1LI+srJH5K+RQtD9U1l+GU=; b=JVZi042K7/ytzBlp+y1q3WbWGK3mQE2iCb6YUdaaYb/Vd3uI8skFNFfHfimlpf6bNtIa8JJ9FnRfJX9E2Jml6M9kloot4HyTtl/pCib5xRPQPeCYupPYGjofrBW38cttKfnhXr3Hdd3OT+2bGFk4FXWXTSPbr5SwBZW9kcd9Mpw= ARC-Authentication-Results: i=1; mx.zohomail.com; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; dmarc=fail header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) by mx.zohomail.com with SMTPS id 1590164023533637.1162890327944; Fri, 22 May 2020 09:13:43 -0700 (PDT) Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1jcAIO-000657-1R; Fri, 22 May 2020 16:13:16 +0000 Received: from all-amaz-eas1.inumbo.com ([34.197.232.57] helo=us1-amaz-eas2.inumbo.com) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1jcAIL-00064Q-TR for xen-devel@lists.xenproject.org; Fri, 22 May 2020 16:13:13 +0000 Received: from esa3.hc3370-68.iphmx.com (unknown [216.71.145.155]) by us1-amaz-eas2.inumbo.com (Halon) with ESMTPS id 216b5274-9c47-11ea-abf6-12813bfff9fa; Fri, 22 May 2020 16:13:11 +0000 (UTC) X-Inumbo-ID: 216b5274-9c47-11ea-abf6-12813bfff9fa Authentication-Results: esa3.hc3370-68.iphmx.com; dkim=none (message not signed) header.i=none IronPort-SDR: KxPNs5keHhc+fidn6/H1Nm9Y7zYU1beE8+bp8J+5ykM+OnhXTmM65r1mXRxUpW1JVCUCLJo1YO ZzROBGSVu/j+QAKZE9cXmewpX5ej+JVbvfL46Dj0hNEmTCY3igcdnTAoKd/IFIHb8LBhk8SjDR nS4dWO0Xl126vYI19Dk3cdoxyOLwNu0T9RSsqWEJRBFciI4IlzFKTUmHKIvgVYSri+kfYNhsCR rVHuDwIhUOSsZcj5050J6MwQ1xcGhsDlEunnaRSro97/0hawLlz5/THJpybteRzRt5XH1kBmhm jE0= X-SBRS: 2.7 X-MesageID: 18189347 X-Ironport-Server: esa3.hc3370-68.iphmx.com X-Remote-IP: 162.221.158.21 X-Policy: $RELAYED X-IronPort-AV: E=Sophos;i="5.73,422,1583211600"; d="scan'208";a="18189347" From: George Dunlap To: Subject: [PATCH 3/5] libxl: Generate golang bindings in libxl Makefile Date: Fri, 22 May 2020 17:12:38 +0100 Message-ID: <20200522161240.3748320-4-george.dunlap@citrix.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20200522161240.3748320-1-george.dunlap@citrix.com> References: <20200522161240.3748320-1-george.dunlap@citrix.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-BeenThere: xen-devel@lists.xenproject.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Xen developer discussion List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Cc: Nick Rosbrook , Ian Jackson , George Dunlap , Wei Liu Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" Content-Type: text/plain; charset="utf-8" The generated golang bindings (types.gen.go and helpers.gen.go) are left checked in so that they can be fetched from xenbits using the golang tooling. This means that they must be updated whenever libxl_types.idl (or other dependencies) are updated. However, the golang bindings are only built optionally; we can't assume that anyone updating libxl_types.idl will also descend into the tools/golang tree to re-generate the bindings. Fix this by re-generating the golang bindings from the libxl Makefile when the IDL dependencies are updated, so that anyone who updates libxl_types.idl will also end up updating the golang generated files as well. - Make a variable for the generated files, and a target in xenlight/Makefile which will only re-generate the files. - Add a target in libxl/Makefile to call external idl generation targets (currently only golang). For ease of testing, also add a specific target in libxl/Makefile just to check and update files generated from the IDL. This does mean that there are two potential paths for generating the files during a parallel build; but that shouldn't be an issue, since tools/golang/xenlight should never be built until after tools/libxl has completed building anyway. Signed-off-by: George Dunlap Acked-by: Ian Jackson Reviewed-by: Nick Rosbrook --- CC: Ian Jackson CC: Wei Liu CC: Nick Rosbrook --- tools/golang/xenlight/Makefile | 6 +++++- tools/libxl/Makefile | 12 +++++++++++- 2 files changed, 16 insertions(+), 2 deletions(-) diff --git a/tools/golang/xenlight/Makefile b/tools/golang/xenlight/Makefile index cd0a62505f..751f916276 100644 --- a/tools/golang/xenlight/Makefile +++ b/tools/golang/xenlight/Makefile @@ -17,12 +17,16 @@ all: build .PHONY: package package: $(XEN_GOPATH)$(GOXL_PKG_DIR) =20 -$(XEN_GOPATH)/src/$(XEN_GOCODE_URL)/xenlight/: xenlight.go types.gen.go he= lpers.gen.go +GOXL_GEN_FILES =3D types.gen.go helpers.gen.go + +$(XEN_GOPATH)/src/$(XEN_GOCODE_URL)/xenlight/: xenlight.go $(GOXL_GEN_FILE= S) $(INSTALL_DIR) $(XEN_GOPATH)$(GOXL_PKG_DIR) $(INSTALL_DATA) xenlight.go $(XEN_GOPATH)$(GOXL_PKG_DIR) $(INSTALL_DATA) types.gen.go $(XEN_GOPATH)$(GOXL_PKG_DIR) $(INSTALL_DATA) helpers.gen.go $(XEN_GOPATH)$(GOXL_PKG_DIR) =20 +idl-gen: $(GOXL_GEN_FILES) + %.gen.go: gengotypes.py $(LIBXL_SRC_DIR)/libxl_types.idl $(LIBXL_SRC_DIR)/= idl.py XEN_ROOT=3D$(XEN_ROOT) $(PYTHON) gengotypes.py $(LIBXL_SRC_DIR)/libxl_typ= es.idl =20 diff --git a/tools/libxl/Makefile b/tools/libxl/Makefile index 69fcf21577..2a06a7ebb8 100644 --- a/tools/libxl/Makefile +++ b/tools/libxl/Makefile @@ -218,7 +218,7 @@ testidl.c: libxl_types.idl gentest.py libxl.h $(AUTOINC= S) .PHONY: all all: $(CLIENTS) $(TEST_PROGS) $(PKG_CONFIG) $(PKG_CONFIG_LOCAL) \ libxenlight.so libxenlight.a libxlutil.so libxlutil.a \ - $(AUTOSRCS) $(AUTOINCS) + $(AUTOSRCS) $(AUTOINCS) idl-external =20 $(LIBXL_OBJS) $(LIBXLU_OBJS) $(SAVE_HELPER_OBJS) \ $(LIBXL_TEST_OBJS) $(TEST_PROG_OBJS): \ @@ -274,6 +274,16 @@ _libxl_type%.h _libxl_type%_json.h _libxl_type%_privat= e.h _libxl_type%.c: libxl_ $(call move-if-changed,__libxl_type$(stem)_json.h,_libxl_type$(stem)_json= .h) $(call move-if-changed,__libxl_type$(stem).c,_libxl_type$(stem).c) =20 +.PHONY: idl-external +idl-external: + $(MAKE) -C $(XEN_ROOT)/tools/golang/xenlight idl-gen + +LIBXL_IDLGEN_FILES =3D _libxl_types.h _libxl_types_json.h _libxl_types_pri= vate.h _libxl_types.c \ + _libxl_types_internal.h _libxl_types_internal_json.h _libxl_types_interna= l_private.h _libxl_types_internal.c + + +idl-gen: $(LIBXL_GEN_FILES) idl-external + libxenlight.so: libxenlight.so.$(MAJOR) $(SYMLINK_SHLIB) $< $@ =20 --=20 2.25.1