From patchwork Tue Sep 10 12:02:02 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ian Jackson X-Patchwork-Id: 11139335 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 8E41313BD for ; Tue, 10 Sep 2019 12:06:51 +0000 (UTC) Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 69B0D2089F for ; Tue, 10 Sep 2019 12:06:51 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (1024-bit key) header.d=citrix.com header.i=@citrix.com header.b="UjCM3LoR" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 69B0D2089F Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=eu.citrix.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=xen-devel-bounces@lists.xenproject.org Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1i7etB-0007fo-JL; Tue, 10 Sep 2019 12:04:53 +0000 Received: from us1-rack-iad1.inumbo.com ([172.99.69.81]) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1i7etA-0007fJ-3i for xen-devel@lists.xenproject.org; Tue, 10 Sep 2019 12:04:52 +0000 X-Inumbo-ID: 30ca2f80-d3c3-11e9-b76c-bc764e2007e4 Received: from esa3.hc3370-68.iphmx.com (unknown [216.71.145.155]) by us1-rack-iad1.inumbo.com (Halon) with ESMTPS id 30ca2f80-d3c3-11e9-b76c-bc764e2007e4; Tue, 10 Sep 2019 12:04:50 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=citrix.com; s=securemail; t=1568117091; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version; bh=99TEzrvLZ+qtL7w7qzh8IxlvbVuaRJGhpkqcHUP0HD4=; b=UjCM3LoROgsAxKPOsUZ6xwZCpgci9/eWrChsmtXw8Ykd7FBWJtAOpWj3 0rYtRt/CnIYvoRPONm4pMF+i8YltfPJuLi8Den0+fvOoQNMqnCQj9yDa+ 8HkOm3dUwo7ohqLynlaMZV8y0hmONzQDTlbljzrB6hjhaMHyRtv7Wyz6T c=; Authentication-Results: esa3.hc3370-68.iphmx.com; dkim=none (message not signed) header.i=none; spf=None smtp.pra=ian.jackson@eu.citrix.com; spf=Pass smtp.mailfrom=Ian.Jackson@citrix.com; spf=None smtp.helo=postmaster@mail.citrix.com Received-SPF: None (esa3.hc3370-68.iphmx.com: no sender authenticity information available from domain of ian.jackson@eu.citrix.com) identity=pra; client-ip=162.221.158.21; receiver=esa3.hc3370-68.iphmx.com; envelope-from="Ian.Jackson@citrix.com"; x-sender="ian.jackson@eu.citrix.com"; x-conformance=sidf_compatible Received-SPF: Pass (esa3.hc3370-68.iphmx.com: domain of Ian.Jackson@citrix.com designates 162.221.158.21 as permitted sender) identity=mailfrom; client-ip=162.221.158.21; receiver=esa3.hc3370-68.iphmx.com; envelope-from="Ian.Jackson@citrix.com"; x-sender="Ian.Jackson@citrix.com"; x-conformance=sidf_compatible; x-record-type="v=spf1"; x-record-text="v=spf1 ip4:209.167.231.154 ip4:178.63.86.133 ip4:195.66.111.40/30 ip4:85.115.9.32/28 ip4:199.102.83.4 ip4:192.28.146.160 ip4:192.28.146.107 ip4:216.52.6.88 ip4:216.52.6.188 ip4:162.221.158.21 ip4:162.221.156.83 ~all" Received-SPF: None (esa3.hc3370-68.iphmx.com: no sender authenticity information available from domain of postmaster@mail.citrix.com) identity=helo; client-ip=162.221.158.21; receiver=esa3.hc3370-68.iphmx.com; envelope-from="Ian.Jackson@citrix.com"; x-sender="postmaster@mail.citrix.com"; x-conformance=sidf_compatible IronPort-SDR: YIzsCNqF5oNg0qLavnYTYeHFSIYa+gqknBtIIG4cT8S7DZpN9D3GfUXwRoEHXbaOf0mNqYeUDd pKFwXc5WFg7oCAPRcrxzWZLGR1OvtuAMJYEFkF9BcgbLUu9rnDuRW9i/FjfLaI2wgHw15LFSgh IkCLnU15yKJZKk3CIXG63cIc5KiYNpV7M5Gscni3U6Pwx1sp2hdcue4mlBbWc81uhSOA0miuIp pvcrQtljRm9r3HcD8zFQkpy2RfiaDNi+AqBvlllYnt5XahMYLzEhcGJtP14226hMyxj2Rt6v/I Qmc= X-SBRS: 2.7 X-MesageID: 5370573 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.64,489,1559534400"; d="scan'208";a="5370573" From: Ian Jackson To: Date: Tue, 10 Sep 2019 13:02:02 +0100 Message-ID: <20190910120207.10358-8-ian.jackson@eu.citrix.com> X-Mailer: git-send-email 2.11.0 In-Reply-To: <20190910120207.10358-1-ian.jackson@eu.citrix.com> References: <20190910120207.10358-1-ian.jackson@eu.citrix.com> MIME-Version: 1.0 Subject: [Xen-devel] [PATCH v3 07/12] tools/ocaml: abi-check: Improve output and error messages X-BeenThere: xen-devel@lists.xenproject.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: Xen developer discussion List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Cc: Andrew Cooper , Ian Jackson , Christian Lindig , Wei Liu , David Scott Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" In the generated C, add some comments saying where we found the ocaml type. This helps with debugging. (I considered emitting #line directives but decided this would be more confusing than helpful.) Improve two dies. Use better-named filehandles (perl prints thier names when it dies). Signed-off-by: Ian Jackson --- tools/ocaml/libs/xc/abi-check | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/tools/ocaml/libs/xc/abi-check b/tools/ocaml/libs/xc/abi-check index a470c05e0b..9450676429 100755 --- a/tools/ocaml/libs/xc/abi-check +++ b/tools/ocaml/libs/xc/abi-check @@ -15,7 +15,7 @@ our %enums; @ARGV == 2 or die; our ($c, $o) = @ARGV; -open STDIN, "<", $c or die $!; +open C_FILE, "<", $c or die $!; our $cline = -1; our $ei; @@ -29,7 +29,7 @@ our $ei; # /* ! CPrefix CFinal CFinalHow */ # # The function definitions use /* ! */ which simply skips that instance. -while (<>) { +while () { if ($cline == -1) { if (m/c_bitmap_to_ocaml_list|ocaml_list_to_c_bitmap/) { $cline = 0; @@ -37,7 +37,8 @@ while (<>) { } } else { $cline++; - m{^\s+/\* \s+ ! \s+ (.*?) \s* \*/\s*$}x or die "$cline $_ ?"; + m{^\s+/\* \s+ ! \s+ (.*?) \s* \*/\s*$}x or + die "at line $cline of annotation, did not expect $_ ?"; my @vals = split /\s+/, $1; if ($cline == 1 && !@vals) { $cline = -1; @@ -45,7 +46,7 @@ while (<>) { $ei->{$_} = shift @vals foreach qw(OType OPrefix Mangle); } elsif ($cline == 2 && @vals == 3) { $ei->{$_} = shift @vals foreach qw(CPrefix CFinal CFinalHow); - die if $enums{ $ei->{OType} }; + die "redefining OType $ei->{OType}" if $enums{ $ei->{OType} }; $enums{ $ei->{OType} } = $ei; $cline = -1; } else { @@ -58,13 +59,14 @@ sub expect ($$) { printf "BUILD_BUG_ON( %-30s != %-10s );\n", @_ or die $!; } -open STDIN, "<", $o or die $!; +open OCAML_FILE, "<", $o or die $!; my $cval; $ei = undef; my $bitnum = 0; -while (<>) { +while () { if (!$ei) { if (m{^type \s+ (\w+) \s* \= \s* $/}x && $enums{$1}) { + print "// found ocaml type $1 at $o:$.\n" or die $!; $ei = $enums{$1}; $cval = ''; $bitnum = 0;