summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Documentation/abi-checker.txt132
-rw-r--r--abi-checker/data/abi_3.10.19_1 (renamed from tools/abi-checker/data/abi_3.10.19_1)0
-rw-r--r--abi-checker/sample/LICENSE (renamed from tools/abi-checker/sample/LICENSE)0
-rw-r--r--abi-checker/sample/Makefile (renamed from tools/abi-checker/sample/Makefile)0
-rw-r--r--abi-checker/sample/packaging/udisks-automount-agent.spec.txt (renamed from tools/abi-checker/sample/packaging/sample-module.spec.txt)0
-rw-r--r--abi-checker/sample/sample_module.c (renamed from tools/abi-checker/sample/sample_module.c)0
-rw-r--r--abi-checker/src/Makefile (renamed from tools/abi-checker/src/Makefile)0
-rwxr-xr-xabi-checker/src/abi-module-checker (renamed from tools/abi-checker/src/abi-module-checker)16
-rwxr-xr-xabi-checker/src/abi-module-dumper (renamed from tools/abi-checker/src/abi-module-dumper)17
-rwxr-xr-xabi-checker/src/abi-module-kernels-list (renamed from tools/abi-checker/src/abi-module-kernels-list)16
-rwxr-xr-xabi-checker/src/build_api_kernel_checker.sh24
-rw-r--r--abi-checker/src/kernel_abi_checker.c (renamed from tools/abi-checker/src/kernel_abi_checker.c)0
-rw-r--r--abi-checker/src/kernel_abi_checker.h (renamed from tools/abi-checker/src/kernel_abi_checker.h)0
-rw-r--r--abi-checker/src/kernel_abi_checker_elf.c (renamed from tools/abi-checker/src/kernel_abi_checker_elf.c)0
-rw-r--r--packaging/linux-kernel.spec16
-rwxr-xr-xtools/abi-checker/src/build_api_kernel_checker.sh38
16 files changed, 36 insertions, 223 deletions
diff --git a/Documentation/abi-checker.txt b/Documentation/abi-checker.txt
deleted file mode 100644
index 57caa2119e5..00000000000
--- a/Documentation/abi-checker.txt
+++ /dev/null
@@ -1,132 +0,0 @@
-
- Linux kernel ABI/API checker
---------------------------------------------------------------------------
-
-I. Introduction
-===============
-
- "abi-checker" is a simple set of tools to:
-- test changes in Linux kernel API/ABI.
-- test compatibility kernel module wth kernel
-- creates dump for external kernel modules with list of kernel symbols
- used by the module.
-
-
-II. Application/scripts
-=======================
-
-1. abi-checker
-
- The application can be run in the following modes:
- - "test-kernel" - in the mode compares two Module.symvers files.
- In case if some changes have been detected the
- application creates report containg list of changed symbols
- (added/changed/removed). Additionally summary ireport with
- total number symbols, itotal number changed/modified/removed
- symbols is created.
-
- Usage:
- abi-checker test-kernel file1 file2
-
- Return values:
- 0 - if Module.symvers are identical
- 1 - if some changes have been detected.
-
- - "build-list" - in the mode the applications creates file containing linux kernel
- symbols uses by the module.
- As input the application expect:
- - kernel Module.symvers file
- - module symbols file - each line of the file has
- name of the module symbol.
-
- As output the application creates file in format like "Modules.symvers".
-
- Usage:
- abi-checker build-list Module.symvers kernel_symbols_file output_file
-
- Return:
- 0 - success
- 1 - any error
-
- - "dump-module" - in the mode the application directly extracts from *.ko file
- symbols and creates file in format like Module.symvers containing list
- of kernel symbols used by the module.
-
- Usage:
- abi-checker dump-module Module.symvers module_ko_file output_file
-
- Return:
- 0 - success
- 1 - any error
-
- - "test-module" - in the mode the application compares kernel "Module.symvers" file
- with external module "Module.symvers" file. In case of any differences
- list of changed/removed symbols is reported. Additionally summary info
- with numer total number symbols, total number changed/modified/removed
- symbols is created also.
-
- Usage:
- abi-checker test-module kernel_Module.symvers module_Module.symvers
-
- Return:
- 0 - if all module symbols are identical with kernel symbols
- 1 - if some changes have been detected.
-
-2. abi-module-checker - helper script. It simplify API/API checks for kernel module. Internally
- the script call abi-checker in "test-module" mode. The script assumes that in
- /boot/abi directory is present ABI/API repository for linux kernel.
-
- Usage:
- abi-module-checker kernel_module_abi_file
-
- Return:
- 0 - if module API/ABI file is compatible with current kernel
- 1 - in case if module is not compatible with current kernel or error
-
-3. abi-module-dumper - helper script. It simplify ABI/API module dump file creation. The script
- assumes that in /boot/abi directory is present ABI/API repository for linux kernel.
-
- Usage:
- abi-module-dumper _module_ko_file_ _output_file_
-
- Return:
- 0 - success
- 1 - any error
-
-4. abi-module-kernels-list - helper script. The script reporst all kernel version compatible
- with the given kernel module. The script assumes that in /boot/abi directory
- is present ABI/API repository for linux kernel.
-
- Usage:
- abi-module-kernels-list _module_abi_file_
-
- Return:
- 0 - success
- 1 - any error
-
-III. Module.symvers file format
-===============================
-
- Each line of the Module.symvers file has the folloing format:
-
- symbol_name<tab>symbol_crc<tab>module_name<tab>additiona_info
-
-Example:
- ...
- 0x27e1a049 printk vmlinux EXPORT_SYMBOL
- 0xf85bebf9 dev_printk_emit vmlinux EXPORT_SYMBOL
- ...
-
-IV. Kernel ABI/API repository
-=============================
-
- The ABI/API repository is located in /boot/abi direcotry. The repository contains list of all
-ABI/API versions (also for historical kernel versions).
- The repository contains list of files which names are in format abi_${KERNELVERSION}_${ABIVERSION}.
-ABI/API file for current kernel version is marked by current symbolic link.
-
-V. Kernel ABI/API repository
-============================
-
- Directory tools/abi-checker/data ABI/API Module.symvers for current and older kernel version.
-Module.symvers for current kernel version is indicated by current symbolic link.
diff --git a/tools/abi-checker/data/abi_3.10.19_1 b/abi-checker/data/abi_3.10.19_1
index eea34557901..eea34557901 100644
--- a/tools/abi-checker/data/abi_3.10.19_1
+++ b/abi-checker/data/abi_3.10.19_1
diff --git a/tools/abi-checker/sample/LICENSE b/abi-checker/sample/LICENSE
index 63fabc1b163..63fabc1b163 100644
--- a/tools/abi-checker/sample/LICENSE
+++ b/abi-checker/sample/LICENSE
diff --git a/tools/abi-checker/sample/Makefile b/abi-checker/sample/Makefile
index 4759f3cb804..4759f3cb804 100644
--- a/tools/abi-checker/sample/Makefile
+++ b/abi-checker/sample/Makefile
diff --git a/tools/abi-checker/sample/packaging/sample-module.spec.txt b/abi-checker/sample/packaging/udisks-automount-agent.spec.txt
index bca84165312..bca84165312 100644
--- a/tools/abi-checker/sample/packaging/sample-module.spec.txt
+++ b/abi-checker/sample/packaging/udisks-automount-agent.spec.txt
diff --git a/tools/abi-checker/sample/sample_module.c b/abi-checker/sample/sample_module.c
index b95a7afa5ce..b95a7afa5ce 100644
--- a/tools/abi-checker/sample/sample_module.c
+++ b/abi-checker/sample/sample_module.c
diff --git a/tools/abi-checker/src/Makefile b/abi-checker/src/Makefile
index b020bc698f4..b020bc698f4 100644
--- a/tools/abi-checker/src/Makefile
+++ b/abi-checker/src/Makefile
diff --git a/tools/abi-checker/src/abi-module-checker b/abi-checker/src/abi-module-checker
index 2666fbd9dc9..78e5a89b132 100755
--- a/tools/abi-checker/src/abi-module-checker
+++ b/abi-checker/src/abi-module-checker
@@ -24,20 +24,6 @@ then
exit 1
fi
-ABI_TOOL_LOCATION="/usr/local/bin"
-ABI_TOOL_NAME="abi-checker"
-ABI_TOOL="${ABI_TOOL_LOCATION}/${ABI_TOOL_NAME}"
-
-if [ -x "${ABI_TOOL}" ]
-then
- CMD="${ABI_TOOL}"
-elif [ -x "./${ABI_TOOL_NAME}" ]
-then
- CMD="./${ABI_TOOL_NAME}"
-else
- CMD="${ABI_TOOL_NAME}"
-fi
-
-"${CMD}" "test-module" "${kerne_abi_file}" "${1}"
+/usr/local/bin/abi-checker "test-module" "${kerne_abi_file}" "${1}"
exit ${?}
diff --git a/tools/abi-checker/src/abi-module-dumper b/abi-checker/src/abi-module-dumper
index 3af55fb8b15..783e02aaf4a 100755
--- a/tools/abi-checker/src/abi-module-dumper
+++ b/abi-checker/src/abi-module-dumper
@@ -30,22 +30,9 @@ then
echo "ERROR: Please check input file ${1}"
echo ""
exit 1
+
fi
-ABI_TOOL_LOCATION="/usr/local/bin"
-ABI_TOOL_NAME="abi-checker"
-ABI_TOOL="${ABI_TOOL_LOCATION}/${ABI_TOOL_NAME}"
-
-if [ -x "${ABI_TOOL}" ]
-then
- CMD="${ABI_TOOL}"
-elif [ -x "./${ABI_TOOL_NAME}" ]
-then
- CMD="./${ABI_TOOL_NAME}"
-else
- CMD="${ABI_TOOL_NAME}"
-fi
-
-"${CMD}" "dump-module" "${kerne_abi_file}" "${1}" "${2}"
+/usr/local/bin/abi-checker "dump-module" "${kerne_abi_file}" "${1}" "${2}"
exit ${?}
diff --git a/tools/abi-checker/src/abi-module-kernels-list b/abi-checker/src/abi-module-kernels-list
index e07f523bd0a..12105e1b04f 100755
--- a/tools/abi-checker/src/abi-module-kernels-list
+++ b/abi-checker/src/abi-module-kernels-list
@@ -13,20 +13,6 @@ then
exit 1
fi
-ABI_TOOL_LOCATION="/usr/local/bin"
-ABI_TOOL_NAME="abi-checker"
-ABI_TOOL="${ABI_TOOL_LOCATION}/${ABI_TOOL_NAME}"
-
-if [ -x "${ABI_TOOL}" ]
-then
- CMD="${ABI_TOOL}"
-elif [ -x "./${ABI_TOOL_NAME}" ]
-then
- CMD="./${ABI_TOOL_NAME}"
-else
- CMD="${ABI_TOOL_NAME}"
-fi
-
#
# Check all historical abi kernel files
#
@@ -36,7 +22,7 @@ do
version=`echo ${filename} | awk -F _ '{ print $2 }'`
abi=`echo ${filename} | awk -F _ '{ print $3 }'`
- "${CMD}" "test-module" "${file}" "${1}" 2> /dev/null > /dev/null
+ /usr/local/bin/abi-checker "test-module" "${file}" "${1}" 2> /dev/null > /dev/null
if [ "${?}" = "0" ]
then
echo " Kernel:${version}, ABI/API:${abi} .... compatible"
diff --git a/abi-checker/src/build_api_kernel_checker.sh b/abi-checker/src/build_api_kernel_checker.sh
new file mode 100755
index 00000000000..d9e348b753a
--- /dev/null
+++ b/abi-checker/src/build_api_kernel_checker.sh
@@ -0,0 +1,24 @@
+#!/bin/sh
+
+# Find abi_version file
+ksymver=`find ../.. -name "Module.symvers"`
+
+# compare abi fingerprint file with kernel abi file
+./abi-checker test-kernel "${ksymver}" "../data/abi_${1}_${2}"
+rc="${?}"
+
+# Test result
+if [ ${rc} != "0" ]
+then
+ echo ""
+ echo "----------------------------------------------------------------------------------------------------------------------------"
+ echo ""
+ echo "The kernel ABI/API has changed. Please update kernel version and add a new abi-checker/data/abi_VERSION_ABIVER file "
+ echo "(example abi-checker/data/abi_${1}_${2} )."
+ echo "The kernel sources build will abort."
+ echo ""
+ echo ""
+ exit 1
+fi
+
+exit 0
diff --git a/tools/abi-checker/src/kernel_abi_checker.c b/abi-checker/src/kernel_abi_checker.c
index da396e135b3..da396e135b3 100644
--- a/tools/abi-checker/src/kernel_abi_checker.c
+++ b/abi-checker/src/kernel_abi_checker.c
diff --git a/tools/abi-checker/src/kernel_abi_checker.h b/abi-checker/src/kernel_abi_checker.h
index 8df231ee0e7..8df231ee0e7 100644
--- a/tools/abi-checker/src/kernel_abi_checker.h
+++ b/abi-checker/src/kernel_abi_checker.h
diff --git a/tools/abi-checker/src/kernel_abi_checker_elf.c b/abi-checker/src/kernel_abi_checker_elf.c
index 6f4f28cd9a6..6f4f28cd9a6 100644
--- a/tools/abi-checker/src/kernel_abi_checker_elf.c
+++ b/abi-checker/src/kernel_abi_checker_elf.c
diff --git a/packaging/linux-kernel.spec b/packaging/linux-kernel.spec
index 0bbbfa50582..485f06e39e6 100644
--- a/packaging/linux-kernel.spec
+++ b/packaging/linux-kernel.spec
@@ -92,7 +92,7 @@ Linux kernel uImage
%build
# 0. Build abi checker
-make -C tools/abi-checker/src
+make -C abi-checker/src
# 1. Create main build directory
rm -rf %{kernel_build_dir}
@@ -112,7 +112,7 @@ make EXTRAVERSION="-%{build_id}" O=%{kernel_build_dir}/linux-kernel-build-%{vers
%if %{with abidev}
echo "No linuks kernel ABI/API checks"
%else
-( cd tools/abi-checker/src; chmod 755 build_api_kernel_checker.sh; ./build_api_kernel_checker.sh "%{version}" "%{abiver}" )
+( cd abi-checker/src; chmod 755 build_api_kernel_checker.sh; ./build_api_kernel_checker.sh "%{version}" "%{abiver}" )
%endif
make EXTRAVERSION="-%{build_id}" O=%{kernel_build_dir}/linux-kernel-build-%{version}-%{build_id} uImage %{?jobs:-j%jobs}
@@ -146,17 +146,17 @@ make INSTALL_PATH=%{buildroot}/boot INSTALL_MOD_PATH=%{buildroot} O=%{kernel_bui
make INSTALL_PATH=%{buildroot} INSTALL_MOD_PATH=%{buildroot} O=%{kernel_build_dir}/linux-kernel-build-%{version}-%{build_id} INSTALL_HDR_PATH=%{buildroot}/usr headers_install
# 4.1 Install ABI/API tools
-cp tools/abi-checker/src/abi-checker %{buildroot}/usr/local/bin
-cp tools/abi-checker/src/abi-module-checker %{buildroot}/usr/local/bin
-cp tools/abi-checker/src/abi-module-dumper %{buildroot}/usr/local/bin
-cp tools/abi-checker/src/abi-module-kernels-list %{buildroot}/usr/local/bin
+cp abi-checker/src/abi-checker %{buildroot}/usr/local/bin
+cp abi-checker/src/abi-module-checker %{buildroot}/usr/local/bin
+cp abi-checker/src/abi-module-dumper %{buildroot}/usr/local/bin
+cp abi-checker/src/abi-module-kernels-list %{buildroot}/usr/local/bin
chmod 755 %{buildroot}/usr/local/bin/*
# 4.2 Install abi_%{version} file
%if %{with abidev}
find ../.. -name "Module.symvers" -exec cp {} %{buildroot}/boot/abi/abi_devel \;
%else
-cp tools/abi-checker/data/abi* %{buildroot}/boot/abi/.
+cp abi-checker/data/abi* %{buildroot}/boot/abi/.
ln -sf /boot/abi/abi_%{version}_%{abiver} %{buildroot}/boot/abi/current
%endif
@@ -183,7 +183,7 @@ rm -rf %{buildroot}/usr/src/linux-kernel-sources-%{version}-%{build_id}/%{kernel
rm -f %{buildroot}/usr/src/linux-kernel-sources-%{version}-%{build_id}/source
rm -f %{buildroot}/usr/src/linux-kernel-build-%{version}-%{build_id}/source
-rm -rf %{buildroot}/usr/src/linux-kernel-sources-%{version}-%{build_id}/tools/abi-checker
+rm -rf %{buildroot}/usr/src/linux-kernel-sources-%{version}-%{build_id}/abi-checker
rm -rf %{buildroot}/System.map*
rm -rf %{buildroot}/vmlinux*
diff --git a/tools/abi-checker/src/build_api_kernel_checker.sh b/tools/abi-checker/src/build_api_kernel_checker.sh
deleted file mode 100755
index 52693f8a5ff..00000000000
--- a/tools/abi-checker/src/build_api_kernel_checker.sh
+++ /dev/null
@@ -1,38 +0,0 @@
-#!/bin/sh
-
-# Find abi_version file
-ksymver=`find ../../.. -name "Module.symvers"`
-
-ABI_TOOL_LOCATION="/usr/local/bin"
-ABI_TOOL_NAME="abi-checker"
-ABI_TOOL="${ABI_TOOL_LOCATION}/${ABI_TOOL_NAME}"
-
-if [ -x "${ABI_TOOL}" ]
-then
- CMD="${ABI_TOOL}"
-elif [ -x "./${ABI_TOOL_NAME}" ]
-then
- CMD="./${ABI_TOOL_NAME}"
-else
- CMD="${ABI_TOOL_NAME}"
-fi
-
-# compare abi fingerprint file with kernel abi file
-"${CMD}" test-kernel "${ksymver}" "../data/abi_${1}_${2}"
-rc="${?}"
-
-# Test result
-if [ ${rc} != "0" ]
-then
- echo ""
- echo "----------------------------------------------------------------------------------------------------------------------------"
- echo ""
- echo "The kernel ABI/API has changed. Please update kernel version and add a new tools/abi-checker/data/abi_VERSION_ABIVER file "
- echo "(example tools/abi-checker/data/abi_${1}_${2} )."
- echo "The kernel sources build will abort."
- echo ""
- echo ""
- exit 1
-fi
-
-exit 0