I'm missing reason why fio can not be built statically with both libaio
and posixaio
Here is simplest way to reproduce on clear linux using docker ubuntu image:
echo '
url=https://brick.kernel.dk/snaps/fio-3.26.tar.gz
libaio=https://pagure.io/libaio/archive/libaio-0.3.112/libaio-libaio-0.3.112.tar.gz
apt-get update
apt-get install libc6-dev build-essential autoconf autoconf make wget -y -q
work=/build/fio-src
mkdir -p $work
rm -rf $work/*
cd $work
rm -rf $work/*
wget -q -nv --no-check-certificate -O _fio.tgz $url
wget -q -nv --no-check-certificate -O _libaio.tgz $libaio
tar xzf _fio.tgz
rm -f _fio.tgz
tar xzf _libaio.tgz
rm -f _libaio.tgz
# build libaio
cd lib*
make prefix=/usr/local install
cd ../fio*
# build fio
./configure --prefix=/usr/local --build-static | tee configure.log
make -j && make install && echo "SUCCESS. $(fio --version) engines:" &&
fio --enghelp | tail -n +2 | sort
cat configure.log | grep "AIO"
' > /tmp/reproduce-missing-posixaio.sh
time docker run -t --rm
-v/tmp/reproduce-missing-posixaio.sh:/tmp/reproduce-missing-posixaio.sh
ubuntu:20.04 bash /tmp/reproduce-missing-posixaio.sh
OUTPUT is
SUCCESS. fio-3.26 engines:
cpuio
e4defrag
falloc
filecreate
filestat
ftruncate
io_uring
libaio
mmap
mtd
net
netsplice
null
psync
pvsync
pvsync2
sg
splice
sync
vsync
Linux AIO support yes
Linux AIO support rw flags yes
POSIX AIO support no
POSIX AIO support needs -lrt no
POSIX AIO fsync no
Solaris AIO support no
According to man [https://man7.org/linux/man-pages/man7/aio.7.html]
posix aio was introduced in glibc 2.1.
Another words, libc6-dev 2.31 is preinstalled but posixaio is not
available for static build?
Can we build fio statically with both libaio and posixaio?
Thanks in advance
Vlad