From mboxrd@z Thu Jan 1 00:00:00 1970 From: Olivier MATZ Subject: Re: [PATCH v4] devtools: rework abi checker script Date: Mon, 25 Sep 2017 11:11:20 +0200 Message-ID: <20170925091119.ouy62fyeewxatbav@platinum> References: <20170911084635.11707-1-olivier.matz@6wind.com> <20170920091253.15794-1-olivier.matz@6wind.com> <20170921154035.GB3389@hmswarspite.think-freely.org> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Cc: dev@dpdk.org, bruce.richardson@intel.com To: Neil Horman Return-path: Received: from mail.droids-corp.org (zoll.droids-corp.org [94.23.50.67]) by dpdk.org (Postfix) with ESMTP id 1AC4B2F7D for ; Mon, 25 Sep 2017 11:11:32 +0200 (CEST) Content-Disposition: inline In-Reply-To: <20170921154035.GB3389@hmswarspite.think-freely.org> List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" On Thu, Sep 21, 2017 at 11:40:35AM -0400, Neil Horman wrote: > On Wed, Sep 20, 2017 at 11:12:53AM +0200, Olivier Matz wrote: > > The initial version of the script had some limitations: > > - cannot work on a non-clean workspace > > - environment variables are not documented > > - no compilation log in case of failure > > - return success even it abi is incompatible > > > > This patch addresses these issues and rework the code. > > > > Signed-off-by: Olivier Matz > > --- > > > > v3->v4: > > - clarify logs on incompatible abi > > - log when an error returned an error > > - [really] fix the report path > > - log the output of make config in the proper file > > > > v2->v3: > > - fix when not launched from dpdk root dir > > - use "-Og -Wno-error" instead of "-O0" > > - fix typo in commit log > > > > v1->v2: > > - use /usr/bin/env to find bash (which is required) > > - fix displayed path to html reports > > - reword help for -f option > > > > > > devtools/validate-abi.sh | 397 ++++++++++++++++++++++++----------------------- > > 1 file changed, 205 insertions(+), 192 deletions(-) > > > This looks better, thank you for the iterations. One last note: The abi dumper > utility errors out with error code of 12 if a given object has no exported > symbols, and I see a few of those. You may want to consider catching that > error, logging an appropriate message and skipping the error emit. That can be > handled later though, as its a corner case. I'd go with this patch, and then > do a incremental improvement later Unfortunately the error code 12 does not exist on my version of abi-dumper (debian stable, v0.99.16). I'm currently doing this as a workaround: cmd $abidump ${i} -o $dst/${1}/${i}.dump -lver ${1} || true # hack to ignore empty SymbolsInfo section (no public ABI) if grep -q "'SymbolInfo' => {}," $dst/${1}/${i}.dump 2> /dev/null; then log "INFO" "${i} has no public ABI, remove dump file" cmd rm -f $dst/${1}/${i}.dump fi I tested with the latest abi-dumper version, and I indeed see these errors in the logs. It seems we don't go inside the 'if' above with a recent abi-dumper, and the .dump file is not generated. I can add a check to display the same additional log "INFO" "${i} has no public ABI, remove dump file" if abi-dumper returns 12. Something like this: ret=0 cmd $abidump ${i} -o $dst/${1}/${i}.dump -lver ${1} || ret=$? # hack to ignore empty SymbolsInfo section (no public ABI) if [ ${ret} = 12 ]; then log "INFO" "${i} has no public ABI" fi if grep -q "'SymbolInfo' => {}," $dst/${1}/${i}.dump 2> /dev/null; then log "INFO" "${i} has no public ABI, remove dump file" cmd rm -f $dst/${1}/${i}.dump fi Olivier