OLD | NEW |
| (Empty) |
1 #!/bin/sh | |
2 | |
3 # | |
4 # abi_checks.sh - check for possible abi changes | |
5 # | |
6 # Copyright (C) 2009 Michael Adam <obnox@samba.org> | |
7 # | |
8 # This program is free software; you can redistribute it and/or modify it | |
9 # under the terms of the GNU General Public License as published by the Free | |
10 # Software Foundation; either version 3 of the License, or (at your option) | |
11 # any later version. | |
12 # | |
13 # This program is distributed in the hope that it will be useful, but WITHOUT | |
14 # ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or | |
15 # FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for | |
16 # more details. | |
17 # | |
18 # You should have received a copy of the GNU General Public License along with | |
19 # this program; if not, see <http://www.gnu.org/licenses/>. | |
20 # | |
21 | |
22 # | |
23 # USAGE: abi_checks.sh LIBNAME header1 [header2 ...] | |
24 # | |
25 # This script creates symbol and signature lists from the provided header | |
26 # files with the aid of the mksyms.sh and mksigs.pl scripts (saved as | |
27 # $LIBNAME.exports.check and $LIBNAME.sigatures.check). It then compares | |
28 # the resulting files with the files $LIBNAME.exports and $LIBNME.signatures | |
29 # which it expects to find in the current directory. | |
30 # | |
31 | |
32 LANG=C; export LANG | |
33 LC_ALL=C; export LC_ALL | |
34 LC_COLLATE=C; export LC_COLLATE | |
35 | |
36 exit_status=0 | |
37 script=$0 | |
38 dir_name=$(dirname ${script}) | |
39 | |
40 if test x"$1" = "x" ; then | |
41 echo "USAGE: ${script} libname header [header ...]" | |
42 exit 1 | |
43 fi | |
44 | |
45 libname="$1" | |
46 shift | |
47 | |
48 if test x"$1" = "x" ; then | |
49 echo "USAGE: ${script} libname header [header ...]" | |
50 exit 1 | |
51 fi | |
52 | |
53 headers="$*" | |
54 | |
55 exports_file=${libname}.exports | |
56 exports_file_check=${exports_file}.check | |
57 signatures_file=${libname}.signatures | |
58 signatures_file_check=${signatures_file}.check | |
59 | |
60 | |
61 ${dir_name}/mksyms.sh awk ${exports_file_check} ${headers} 2>&1 > /dev/null | |
62 cat ${headers} | ${dir_name}/mksigs.pl | sort| uniq > ${signatures_file_check} 2
> /dev/null | |
63 | |
64 diff -u ${exports_file} ${exports_file_check} | |
65 if test "x$?" != "x0" ; then | |
66 echo "WARNING: possible ABI change detected in exports!" | |
67 let exit_status++ | |
68 else | |
69 echo "exports check: OK" | |
70 fi | |
71 | |
72 diff -u ${signatures_file} ${signatures_file_check} | |
73 if test "x$?" != "x0" ; then | |
74 echo "WARNING: possible ABI change detected in signatures!" | |
75 let exit_status++ | |
76 else | |
77 echo "signatures check: OK" | |
78 fi | |
79 | |
80 exit $exit_status | |
OLD | NEW |