diff options
author | Stefano Brivio <sbrivio@redhat.com> | 2022-01-25 19:55:54 +0100 |
---|---|---|
committer | Stefano Brivio <sbrivio@redhat.com> | 2022-01-26 16:30:59 +0100 |
commit | 1776de0140fb663777d4590fbb849c1d0a0c7885 (patch) | |
tree | 397ae4d1a18f823bb253135027574fb9527a6b7b /Makefile | |
parent | daf8d057cebf4b304c11b10cd6e6c98e19710630 (diff) | |
download | passt-1776de0140fb663777d4590fbb849c1d0a0c7885.tar passt-1776de0140fb663777d4590fbb849c1d0a0c7885.tar.gz passt-1776de0140fb663777d4590fbb849c1d0a0c7885.tar.bz2 passt-1776de0140fb663777d4590fbb849c1d0a0c7885.tar.lz passt-1776de0140fb663777d4590fbb849c1d0a0c7885.tar.xz passt-1776de0140fb663777d4590fbb849c1d0a0c7885.tar.zst passt-1776de0140fb663777d4590fbb849c1d0a0c7885.zip |
tcp, netlink, HAS{BYTES_ACKED,MIN_RTT,GETRANDOM} and NETLINK_GET_STRICT_CHK
tcpi_bytes_acked and tcpi_min_rtt are only available on recent
kernel versions: provide fall-back paths (incurring some grade of
performance penalty).
Support for getrandom() was introduced in Linux 3.17 and glibc 2.25:
provide an alternate mechanism for that as well, reading from
/dev/random.
Also check if NETLINK_GET_STRICT_CHK is defined before using it:
it's not strictly needed, we'll filter out irrelevant results from
netlink anyway.
Signed-off-by: Stefano Brivio <sbrivio@redhat.com>
Diffstat (limited to 'Makefile')
-rw-r--r-- | Makefile | 15 |
1 files changed, 15 insertions, 0 deletions
@@ -45,6 +45,21 @@ ifeq ($(shell printf "$(C)" | $(CC) -S -xc - -o - >/dev/null 2>&1; echo $$?),0) CFLAGS += -DHAS_SND_WND endif +C := \#include <linux/tcp.h>\nstruct tcp_info x = { .tcpi_bytes_acked = 0 }; +ifeq ($(shell printf "$(C)" | $(CC) -S -xc - -o - >/dev/null 2>&1; echo $$?),0) + CFLAGS += -DHAS_BYTES_ACKED +endif + +C := \#include <linux/tcp.h>\nstruct tcp_info x = { .tcpi_min_rtt = 0 }; +ifeq ($(shell printf "$(C)" | $(CC) -S -xc - -o - >/dev/null 2>&1; echo $$?),0) + CFLAGS += -DHAS_MIN_RTT +endif + +C := \#include <sys/random.h>\nint main(){int a=getrandom(0, 0, 0);} +ifeq ($(shell printf "$(C)" | $(CC) -S -xc - -o - >/dev/null 2>&1; echo $$?),0) + CFLAGS += -DHAS_GETRANDOM +endif + prefix ?= /usr/local all: passt pasta passt4netns qrap |