Skip to content

Commit

Permalink
Fix abi check for SLE
Browse files Browse the repository at this point in the history
instead of pulling the current ABI from a branch, just add the
reference abi (which should be more or less stable) to the git repo.

Signed-off-by: Martin Wilck <[email protected]>
  • Loading branch information
mwilck committed Sep 20, 2023
1 parent e881dd0 commit 9f7f70f
Show file tree
Hide file tree
Showing 7 changed files with 10,543 additions and 33 deletions.
34 changes: 1 addition & 33 deletions .github/workflows/abi.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -2,27 +2,13 @@ name: check-abi
on:
- push
- pull_request
env:
ABI_BRANCH: ${{ secrets.ABI_BRANCH }}

jobs:
save-and-test-ABI:
test-ABI:
runs-on: ubuntu-20.04
steps:
- name: set ABI branch
if: ${{ env.ABI_BRANCH == '' }}
run: echo "ABI_BRANCH=master" >> $GITHUB_ENV
- name: checkout
uses: actions/checkout@v2
- name: get reference ABI
id: reference
continue-on-error: true
uses: dawidd6/action-download-artifact@v2
with:
workflow: abi.yaml
branch: ${{ env.ABI_BRANCH }}
name: abi
path: reference-abi
- name: update
run: sudo apt-get update
- name: dependencies
Expand All @@ -31,24 +17,6 @@ jobs:
gcc make pkg-config abigail-tools
libdevmapper-dev libreadline-dev libaio-dev libsystemd-dev
libudev-dev libjson-c-dev liburcu-dev libcmocka-dev libedit-dev
- name: create ABI
run: make -Orecurse -j$(grep -c ^processor /proc/cpuinfo) abi.tar.gz
- name: save ABI
uses: actions/upload-artifact@v1
with:
name: abi
path: abi
- name: compare ABI against reference
id: compare
continue-on-error: true
if: ${{ steps.reference.outcome == 'success' }}
run: make abi-test
- name: save differences
if: ${{ steps.compare.outcome == 'failure' }}
uses: actions/upload-artifact@v1
with:
name: abi-test
path: abi-test
- name: fail
if: ${{ env.ABI_BRANCH != github.ref_name && steps.compare.outcome == 'failure' }}
run: false
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,7 @@ libdmmp/test/libdmmp_test
libdmmp/test/libdmmp_speed_test
tests/*-test
tests/*.out
!reference-abi/*.abi
tests/*.vgr
libmultipath/nvme-ioctl.c
libmultipath/nvme-ioctl.h
816 changes: 816 additions & 0 deletions reference-abi/libdmmp.abi

Large diffs are not rendered by default.

165 changes: 165 additions & 0 deletions reference-abi/libmpathcmd-nv.abi
Original file line number Diff line number Diff line change
@@ -0,0 +1,165 @@
<abi-corpus version='2.2' path='libmpathcmd-nv.so' architecture='elf-amd-x86_64' soname='libmpathcmd-nv.so'>
<elf-needed>
<dependency name='libc.so.6'/>
</elf-needed>
<elf-function-symbols>
<elf-symbol name='__mpath_connect' version='NOVERSION' is-default-version='yes' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='mpath_connect' version='NOVERSION' is-default-version='yes' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='mpath_disconnect' version='NOVERSION' is-default-version='yes' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='mpath_process_cmd' version='NOVERSION' is-default-version='yes' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='mpath_recv_reply' version='NOVERSION' is-default-version='yes' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='mpath_recv_reply_data' version='NOVERSION' is-default-version='yes' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='mpath_recv_reply_len' version='NOVERSION' is-default-version='yes' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='mpath_send_cmd' version='NOVERSION' is-default-version='yes' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
</elf-function-symbols>
<abi-instr address-size='64' path='mpath_cmd.c' comp-dir-path='/mnt/git/mpath-tools/libmpathcmd' language='LANG_C99'>
<type-decl name='char' size-in-bits='8' id='type-id-1'/>
<array-type-def dimensions='1' type-id='type-id-1' size-in-bits='112' id='type-id-2'>
<subrange length='14' lower-bound='0' upper-bound='13' type-id='type-id-3' id='type-id-4'/>
</array-type-def>
<type-decl name='int' size-in-bits='32' id='type-id-5'/>
<type-decl name='long int' size-in-bits='64' id='type-id-6'/>
<type-decl name='short int' size-in-bits='16' id='type-id-7'/>
<class-decl name='pollfd' size-in-bits='64' is-struct='yes' visibility='default' filepath='/usr/include/sys/poll.h' line='36' column='1' id='type-id-8'>
<data-member access='public' layout-offset-in-bits='0'>
<var-decl name='fd' type-id='type-id-5' visibility='default' filepath='/usr/include/sys/poll.h' line='38' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='32'>
<var-decl name='events' type-id='type-id-7' visibility='default' filepath='/usr/include/sys/poll.h' line='39' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='48'>
<var-decl name='revents' type-id='type-id-7' visibility='default' filepath='/usr/include/sys/poll.h' line='40' column='1'/>
</data-member>
</class-decl>
<class-decl name='sockaddr' size-in-bits='128' is-struct='yes' visibility='default' filepath='/usr/include/bits/socket.h' line='183' column='1' id='type-id-9'>
<data-member access='public' layout-offset-in-bits='0'>
<var-decl name='sa_family' type-id='type-id-10' visibility='default' filepath='/usr/include/bits/socket.h' line='185' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='16'>
<var-decl name='sa_data' type-id='type-id-2' visibility='default' filepath='/usr/include/bits/socket.h' line='186' column='1'/>
</data-member>
</class-decl>
<typedef-decl name='__socklen_t' type-id='type-id-11' filepath='/usr/include/bits/types.h' line='210' column='1' id='type-id-12'/>
<typedef-decl name='__ssize_t' type-id='type-id-6' filepath='/usr/include/bits/types.h' line='194' column='1' id='type-id-13'/>
<typedef-decl name='nfds_t' type-id='type-id-3' filepath='/usr/include/sys/poll.h' line='33' column='1' id='type-id-14'/>
<typedef-decl name='sa_family_t' type-id='type-id-15' filepath='/usr/include/bits/sockaddr.h' line='28' column='1' id='type-id-10'/>
<typedef-decl name='size_t' type-id='type-id-3' filepath='/usr/lib64/gcc/x86_64-suse-linux/13/include/stddef.h' line='214' column='1' id='type-id-16'/>
<typedef-decl name='socklen_t' type-id='type-id-12' filepath='/usr/include/unistd.h' line='274' column='1' id='type-id-17'/>
<typedef-decl name='ssize_t' type-id='type-id-13' filepath='/usr/include/sys/types.h' line='108' column='1' id='type-id-18'/>
<type-decl name='unsigned int' size-in-bits='32' id='type-id-11'/>
<type-decl name='unsigned long int' size-in-bits='64' id='type-id-3'/>
<type-decl name='unsigned short int' size-in-bits='16' id='type-id-15'/>
<pointer-type-def type-id='type-id-1' size-in-bits='64' id='type-id-19'/>
<pointer-type-def type-id='type-id-19' size-in-bits='64' id='type-id-20'/>
<qualified-type-def type-id='type-id-1' const='yes' id='type-id-21'/>
<pointer-type-def type-id='type-id-21' size-in-bits='64' id='type-id-22'/>
<qualified-type-def type-id='type-id-9' const='yes' id='type-id-23'/>
<pointer-type-def type-id='type-id-23' size-in-bits='64' id='type-id-24'/>
<pointer-type-def type-id='type-id-5' size-in-bits='64' id='type-id-25'/>
<pointer-type-def type-id='type-id-8' size-in-bits='64' id='type-id-26'/>
<type-decl name='variadic parameter type' id='type-id-27'/>
<type-decl name='void' id='type-id-28'/>
<pointer-type-def type-id='type-id-28' size-in-bits='64' id='type-id-29'/>
<pointer-type-def type-id='type-id-28' size-in-bits='64' id='type-id-30'/>
<function-decl name='__mpath_connect' mangled-name='__mpath_connect' filepath='/mnt/git/mpath-tools/libmpathcmd/mpath_cmd.c' line='97' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__mpath_connect@@NOVERSION'>
<parameter type-id='type-id-5' name='nonblocking' filepath='/mnt/git/mpath-tools/libmpathcmd/mpath_cmd.c' line='97' column='1'/>
<return type-id='type-id-5'/>
</function-decl>
<function-decl name='mpath_connect' mangled-name='mpath_connect' filepath='/mnt/git/mpath-tools/libmpathcmd/mpath_cmd.c' line='139' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='mpath_connect@@NOVERSION'>
<return type-id='type-id-5'/>
</function-decl>
<function-decl name='mpath_disconnect' mangled-name='mpath_disconnect' filepath='/mnt/git/mpath-tools/libmpathcmd/mpath_cmd.c' line='144' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='mpath_disconnect@@NOVERSION'>
<parameter type-id='type-id-5' name='fd' filepath='/mnt/git/mpath-tools/libmpathcmd/mpath_cmd.c' line='144' column='1'/>
<return type-id='type-id-5'/>
</function-decl>
<function-decl name='mpath_recv_reply_len' mangled-name='mpath_recv_reply_len' filepath='/mnt/git/mpath-tools/libmpathcmd/mpath_cmd.c' line='149' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='mpath_recv_reply_len@@NOVERSION'>
<parameter type-id='type-id-5' name='fd' filepath='/mnt/git/mpath-tools/libmpathcmd/mpath_cmd.c' line='149' column='1'/>
<parameter type-id='type-id-11' name='timeout' filepath='/mnt/git/mpath-tools/libmpathcmd/mpath_cmd.c' line='149' column='1'/>
<return type-id='type-id-18'/>
</function-decl>
<function-decl name='mpath_recv_reply_data' mangled-name='mpath_recv_reply_data' filepath='/mnt/git/mpath-tools/libmpathcmd/mpath_cmd.c' line='168' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='mpath_recv_reply_data@@NOVERSION'>
<parameter type-id='type-id-5' name='fd' filepath='/mnt/git/mpath-tools/libmpathcmd/mpath_cmd.c' line='168' column='1'/>
<parameter type-id='type-id-19' name='reply' filepath='/mnt/git/mpath-tools/libmpathcmd/mpath_cmd.c' line='168' column='1'/>
<parameter type-id='type-id-16' name='len' filepath='/mnt/git/mpath-tools/libmpathcmd/mpath_cmd.c' line='168' column='1'/>
<parameter type-id='type-id-11' name='timeout' filepath='/mnt/git/mpath-tools/libmpathcmd/mpath_cmd.c' line='169' column='1'/>
<return type-id='type-id-5'/>
</function-decl>
<function-decl name='mpath_recv_reply' mangled-name='mpath_recv_reply' filepath='/mnt/git/mpath-tools/libmpathcmd/mpath_cmd.c' line='184' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='mpath_recv_reply@@NOVERSION'>
<parameter type-id='type-id-5' name='fd' filepath='/mnt/git/mpath-tools/libmpathcmd/mpath_cmd.c' line='184' column='1'/>
<parameter type-id='type-id-20' name='reply' filepath='/mnt/git/mpath-tools/libmpathcmd/mpath_cmd.c' line='184' column='1'/>
<parameter type-id='type-id-11' name='timeout' filepath='/mnt/git/mpath-tools/libmpathcmd/mpath_cmd.c' line='184' column='1'/>
<return type-id='type-id-5'/>
</function-decl>
<function-decl name='mpath_send_cmd' mangled-name='mpath_send_cmd' filepath='/mnt/git/mpath-tools/libmpathcmd/mpath_cmd.c' line='205' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='mpath_send_cmd@@NOVERSION'>
<parameter type-id='type-id-5' name='fd' filepath='/mnt/git/mpath-tools/libmpathcmd/mpath_cmd.c' line='205' column='1'/>
<parameter type-id='type-id-22' name='cmd' filepath='/mnt/git/mpath-tools/libmpathcmd/mpath_cmd.c' line='205' column='1'/>
<return type-id='type-id-5'/>
</function-decl>
<function-decl name='mpath_process_cmd' mangled-name='mpath_process_cmd' filepath='/mnt/git/mpath-tools/libmpathcmd/mpath_cmd.c' line='220' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='mpath_process_cmd@@NOVERSION'>
<parameter type-id='type-id-5' name='fd' filepath='/mnt/git/mpath-tools/libmpathcmd/mpath_cmd.c' line='220' column='1'/>
<parameter type-id='type-id-22' name='cmd' filepath='/mnt/git/mpath-tools/libmpathcmd/mpath_cmd.c' line='220' column='1'/>
<parameter type-id='type-id-20' name='reply' filepath='/mnt/git/mpath-tools/libmpathcmd/mpath_cmd.c' line='220' column='1'/>
<parameter type-id='type-id-11' name='timeout' filepath='/mnt/git/mpath-tools/libmpathcmd/mpath_cmd.c' line='221' column='1'/>
<return type-id='type-id-5'/>
</function-decl>
<function-decl name='__poll_chk' filepath='/usr/include/bits/poll2.h' line='28' column='1' visibility='default' binding='global' size-in-bits='64'>
<parameter type-id='type-id-26'/>
<parameter type-id='type-id-14'/>
<parameter type-id='type-id-5'/>
<parameter type-id='type-id-3'/>
<return type-id='type-id-5'/>
</function-decl>
<function-decl name='__recv_chk' filepath='/usr/include/bits/socket2.h' line='23' column='1' visibility='default' binding='global' size-in-bits='64'>
<parameter type-id='type-id-5'/>
<parameter type-id='type-id-30'/>
<parameter type-id='type-id-16'/>
<parameter type-id='type-id-16'/>
<parameter type-id='type-id-5'/>
<return type-id='type-id-18'/>
</function-decl>
<function-decl name='__errno_location' filepath='/usr/include/errno.h' line='37' column='1' visibility='default' binding='global' size-in-bits='64'>
<return type-id='type-id-25'/>
</function-decl>
<function-decl name='fcntl' filepath='/usr/include/fcntl.h' line='177' column='1' visibility='default' binding='global' size-in-bits='64'>
<parameter type-id='type-id-5'/>
<parameter type-id='type-id-5'/>
<parameter is-variadic='yes'/>
<return type-id='type-id-5'/>
</function-decl>
<function-decl name='malloc' filepath='/usr/include/stdlib.h' line='672' column='1' visibility='default' binding='global' size-in-bits='64'>
<parameter type-id='type-id-16'/>
<return type-id='type-id-30'/>
</function-decl>
<function-decl name='free' filepath='/usr/include/stdlib.h' line='687' column='1' visibility='default' binding='global' size-in-bits='64'>
<parameter type-id='type-id-30'/>
<return type-id='type-id-28'/>
</function-decl>
<function-decl name='strlen' filepath='/usr/include/string.h' line='407' column='1' visibility='default' binding='global' size-in-bits='64'>
<parameter type-id='type-id-22'/>
<return type-id='type-id-16'/>
</function-decl>
<function-decl name='socket' filepath='/usr/include/sys/socket.h' line='102' column='1' visibility='default' binding='global' size-in-bits='64'>
<parameter type-id='type-id-5'/>
<parameter type-id='type-id-5'/>
<parameter type-id='type-id-5'/>
<return type-id='type-id-5'/>
</function-decl>
<function-decl name='connect' filepath='/usr/include/sys/socket.h' line='126' column='1' visibility='default' binding='global' size-in-bits='64'>
<parameter type-id='type-id-5'/>
<parameter type-id='type-id-24'/>
<parameter type-id='type-id-17'/>
<return type-id='type-id-5'/>
</function-decl>
<function-decl name='send' filepath='/usr/include/sys/socket.h' line='138' column='1' visibility='default' binding='global' size-in-bits='64'>
<parameter type-id='type-id-5'/>
<parameter type-id='type-id-29'/>
<parameter type-id='type-id-16'/>
<parameter type-id='type-id-5'/>
<return type-id='type-id-18'/>
</function-decl>
<function-decl name='close' filepath='/usr/include/unistd.h' line='358' column='1' visibility='default' binding='global' size-in-bits='64'>
<parameter type-id='type-id-5'/>
<return type-id='type-id-5'/>
</function-decl>
</abi-instr>
</abi-corpus>
Loading

0 comments on commit 9f7f70f

Please sign in to comment.