[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Xen-devel] [Xen-users] Binary compatibility report for Xen base libraries



26.06.2016, 17:42, "Doug Goldstein":
>  On 6/24/16 9:21 AM, Ponomarenko Andrey wrote:
>>   Hello,
>>
>>   I maintain a new project for backward compatibility analysis of the Linux 
>> ABIs. The report for Xen base libraries has been recently added to the 
>> project: http://abi-laboratory.pro/tracker/timeline/xen/
>>
>>   The report is generated daily with the help of the abi-compliance-checker, 
>> abi-dumper and abi-tracker tools: https://github.com/lvc/abi-tracker
>>
>>   Hope this will help users, maintainers and developers to maintain backward 
>> compatibility.
>>
>>   Thank you.
>
>  Outstanding! I had mentioned your tools in the #xen-devel channel. And I
>  had talked about utilizing them as part of the Travis build process with
>  the goal of making this data available. Thank you for doing this.
>
>  Do you have any advice for us if it would be positive to do some sort of
>  check on a per-commit basis or not?


Hello,

You can use basic tools to perform analysis per each commit:

1. Build shared objects of a library with debug info (with -g -Og additional 
GCC flags)
2. Extract ABI information with the help of the abi-dumper tool:

    abi-dumper xen-4.5.3/lib64/libxenguest.so.4.5.0 --vnum=4.5.3 
--public-headers=xen-4.5.3/include --output=./ABI-4.5.3.dump
    abi-dumper xen-4.6.0/lib64/libxenguest.so.4.6.0 --vnum=4.6.0 
--public-headers=xen-4.6.0/include --output=./ABI-4.6.0.dump

3. Compare ABI dumps to produce report:

    abi-compliance-checker -l libxenguest -old ABI-4.5.3.dump -new 
ABI-4.6.0.dump

The abi-tracker and abi-monitor tools can also be used to perform analysis per 
each commit:

1. Create profile for a library (e.g. 
https://github.com/lvc/upstream-tracker/blob/master/profile/xen.json) and add 
the following property to it:

    "Git": "http://xenbits.xen.org/git-http/xen.git";,

2. Create build script for a library (e.g. 
https://github.com/lvc/upstream-tracker/blob/master/build_script/xen.sh)
3. Retry this command per each commit to pull source from git repository, 
download latest stable releases and build them:

    abi-monitor -get -build-new profile/xen.json

4. Run this command to update ABI report after each run of the abi-monitor:

    abi-tracker -build profile/xen.json

5. The latest version of the library from git will be analyzed against the 
latest stable release.

Thank you.

_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel

 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.