Tools for working with symbolic constraints from Kbuild Makefile.


Keywords
makefile, kconfig, kbuild, configurations, kmax, kclause, klocalizer
License
GPL-2.0+
Install
pip install kmaxtools==2.2

Documentation

The Kmax Tool Suite

Getting Started

Install pip3, Linux's build dependencies, and kmaxtools:

sudo apt install -y python3-pip flex bison bc libssl-dev
sudo pip3 install kmaxtools

Download the Linux source:

wget https://cdn.kernel.org/pub/linux/kernel/v5.x/linux-5.4.tar.xz
tar -xvf linux-5.4.tar.xz

Run klocalizer

cd linux-5.4/
klocalizer drivers/usb/storage/alauda.o

Build the .config file made by klocalizer:

make ARCH=x86_64 olddefconfig
make ARCH=x86_64 clean drivers/usb/storage/alauda.o

Cross-Compiling

Get make.cross:

sudo apt install -y xz-utils lftp
wget https://raw.githubusercontent.com/fengguang/lkp-tests/master/sbin/make.cross

Run klocalizer with a different architecture:

klocalizer -a powerpc drivers/block/ps3disk.o
bash make.cross ARCH=powerpc olddefconfig; bash make.cross ARCH=powerpc clean drivers/block/ps3disk.o

Additional Documentation

Overview

Advanced Usage

Bugs Found by kmaxtools