• Home
  • History
  • Annotate
  • Line#
  • Navigate
  • Raw
  • Download
  • only in /asuswrt-rt-n18u-9.0.0.4.380.2695/release/src-rt/router/samba-3.5.8/lib/talloc/script/
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
32LANG=C; export LANG
33LC_ALL=C; export LC_ALL
34LC_COLLATE=C; export LC_COLLATE
35
36exit_status=0
37script=$0
38dir_name=$(dirname ${script})
39
40if test x"$1" = "x" ; then
41	echo "USAGE: ${script} libname header [header ...]"
42	exit 1
43fi
44
45libname="$1"
46shift
47
48if test x"$1" = "x" ; then
49	echo "USAGE: ${script} libname header [header ...]"
50	exit 1
51fi
52
53headers="$*"
54
55exports_file=${libname}.exports
56exports_file_check=${exports_file}.check
57signatures_file=${libname}.signatures
58signatures_file_check=${signatures_file}.check
59
60
61${dir_name}/mksyms.sh awk ${exports_file_check} ${headers} 2>&1 > /dev/null
62cat ${headers} | ${dir_name}/mksigs.pl | sort| uniq > ${signatures_file_check} 2> /dev/null
63
64diff -u ${exports_file} ${exports_file_check}
65if test "x$?" != "x0" ; then
66	echo "WARNING: possible ABI change detected in exports!"
67	let exit_status++
68else
69	echo "exports check: OK"
70fi
71
72diff -u ${signatures_file} ${signatures_file_check}
73if test "x$?" != "x0" ; then
74	echo "WARNING: possible ABI change detected in signatures!"
75	let exit_status++
76else
77	echo "signatures check: OK"
78fi
79
80exit $exit_status
81