From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-wg0-f49.google.com (mail-wg0-f49.google.com [74.125.82.49]) by dpdk.org (Postfix) with ESMTP id 630819AAA for ; Tue, 17 Mar 2015 17:48:30 +0100 (CET) Received: by wgbcc7 with SMTP id cc7so13415528wgb.0 for ; Tue, 17 Mar 2015 09:48:30 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:from:to:cc:subject:date:message-id:organization :user-agent:in-reply-to:references:mime-version :content-transfer-encoding:content-type; bh=7B/ECxW1Pl+c/iVml0WpSZJ2TnTm94uUmHFLXMkp7Io=; b=C1yq7NZS5PmPdKCLM9FTxhFKp4OTrgZRzB2NwKcaXCltgeOfyLvM6zXa7NS4Fdjw9R +z4fgzC+ZiAWcgEHRyBOH/RYU8aBlCs/nSzVGpWwDfcP9CYfwUczDldRra17rzWDyXVH cGzQhW/+A6YTZy7nlNWknNr4lj7LnwiK+4LneE1rfeMv2FZ73Li5T9cSSwHIftEnMUpe QeHVhYLxbpITYoal+A+/hrbcGwq4IgCFYIesgNTo8el++iZmq/ofu7lha1gRT+9c3Vlk ZEcoBTGG8BooChlrO2M78XSs21pQ+QZmFTZHOA0IsfdKDzTp28buGHNWdYDV2p8r3cQl yaHg== X-Gm-Message-State: ALoCoQka6EqCpiy7b6q2vRoA5cQfBsUroqPEuFw94BA/GrjW/xBIP0xa4C+S05Y9C/NkRJsOvooT X-Received: by 10.194.62.74 with SMTP id w10mr132028155wjr.95.1426610910228; Tue, 17 Mar 2015 09:48:30 -0700 (PDT) Received: from xps13.localnet (136-92-190-109.dsl.ovh.fr. [109.190.92.136]) by mx.google.com with ESMTPSA id uo6sm20663082wjc.49.2015.03.17.09.48.28 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 17 Mar 2015 09:48:29 -0700 (PDT) From: Thomas Monjalon To: Neil Horman Date: Tue, 17 Mar 2015 17:47:56 +0100 Message-ID: <109739948.LhSJyheLrP@xps13> Organization: 6WIND User-Agent: KMail/4.14.4 (Linux/3.18.4-1-ARCH; KDE/4.14.4; x86_64; ; ) In-Reply-To: <8343380.8uC93YKvWO@xps13> References: <1422652596-12777-1-git-send-email-nhorman@tuxdriver.com> <1426255750-3961-1-git-send-email-nhorman@tuxdriver.com> <8343380.8uC93YKvWO@xps13> MIME-Version: 1.0 Content-Transfer-Encoding: 7Bit Content-Type: text/plain; charset="us-ascii" Cc: dev@dpdk.org Subject: Re: [dpdk-dev] [PATCH v4] ABI: Add abi checking utility X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: patches and discussions about DPDK List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 17 Mar 2015 16:48:30 -0000 More comments: Please rename to validate-abi.sh (with an hyphen) to be more consistent with other scripts. Please add it in the MAINTAINERS file. Thanks 2015-03-17 16:42, Thomas Monjalon: > Hi Neil, > > I tested this tool and I see few small improvements possible. > > 2015-03-13 10:09, Neil Horman: > > There was a request for an abi validation utilty for the ongoing ABI stability > utility > > work. As it turns out there is a abi compliance checker in development that > > seems to be under active development and provides fairly detailed ABI compliance > > reports. Its not yet intellegent enough to understand symbol versioning, but it > intelligent > > does provide the ability to identify symbols which have changed between > > releases, along with details of the change, and offers developers the > > opportunity to identify which symbols then need versioning and validation for a > > given update via manual testing. > > > > This script automates the use of the compliance checker between two arbitrarily > > specified tags within the dpdk tree. To execute enter the $RTE_SDK directory > > and run: > > > > ./scripts/validate_abi.sh $GIT_TAG1 $GIT_TAG2 $CONFIG > > > > where $GIT_TAG1 and 2 are git tags and $CONFIG is a config specification > > suitable for passing as the T= variable in the make config command. > > > > Note the upstream source for the abi compliance checker is here: > > http://ispras.linuxbase.org/index.php/ABI_compliance_checker > > > > It generates a report for each DSO built from the requested tags that developers > > can review to find ABI compliance issues. > > > > Signed-off-by: Neil Horman > > > > --- > > > > Change Notes: > > > > v2) Fixed some typos as requested by Thomas > > > > v3) Fixed some additional typos Thomas requested > > Improved script to work from detached state > > Added some documentation to the changelog > > Added some comments to the scripts > > > > v4) Remove duplicate exports. > > Move restoration of starting branch/comit to cleanup_and_exit > > --- > [...] > > +TAG1=$1 > > +TAG2=$2 > > +TARGET=$3 > > +ABI_DIR=`mktemp -d -p /tmp ABI.XXXXXX` > > +JOBS=$(grep -c '^processor' /proc/cpuinfo) > > [...] > > +cleanup_and_exit() { > > + rm -rf $ABI_DIR > > + exit $1 > > + git checkout $CURRENT_BRANCH > > Checkout is never done because of previous exit. > > > +} > [...] > > +log "INFO" "Checking out version $TAG1 of the dpdk" > > +# Move to the old version of the tree > > +git checkout $TAG1 > > What about -q for quiet mode? > > [...] > > +log "INFO" "Building DPDK $TAG1. This might take a moment" > > +make O=$TARGET > $VERBOSE 2>&1 > > -j$JOBS would improve building time > > [...] > > +# Move to the new version of the tree > > +log "INFO" "Checking out version $TAG2 of the dpdk" > > +git checkout $TAG2 > > -q ? > > [...] > > +log "INFO" "Building DPDK $TAG2. This might take a moment" > > +make O=$TARGET > $VERBOSE 2>&1 > > -j ? > > [...] > > +# Start comparison of ABI dumps > > +for i in `ls $ABI_DIR/*-1.dump` > > +do > > + NEWNAME=`basename $i` > > + OLDNAME=`basename $i | sed -e"s/1.dump/0.dump/"` > > + LIBNAME=`basename $i | sed -e"s/-ABI-1.dump//"` > > + > > + if [ ! -f $ABI_DIR/$OLDNAME ] > > + then > > + log "INFO" "$OLDNAME DOES NOT EXIST IN $TAG1. SKIPPING..." > > + fi > > + > > + #compare the abi dumps > > + $ABICHECK -l $LIBNAME -old $ABI_DIR/$OLDNAME -new $ABI_DIR/$NEWNAME > > +done > > It would be more convenient to generate an HTML index giving access to every > reports for every DSOs. > > > + > > +git reset --hard > > +log "INFO" "ABI CHECK COMPLETE. REPORTS ARE IN compat_report directory" > > +cleanup_and_exit 0 > > After reading the report, it's not clear what would be tolerated or not. > Should we forbid every defects? >