efc550029077faa0cc4dbb6f6fbcc17eee7f5e75
[openwrt/staging/mans0n.git] /
1 From df3289cf81503ef299450a67f5bf11e526fdb2d0 Mon Sep 17 00:00:00 2001
2 From: "Jason A. Donenfeld" <Jason@zx2c4.com>
3 Date: Thu, 2 Jan 2020 17:47:49 +0100
4 Subject: [PATCH 079/124] wireguard: selftests: remove ancient kernel
5 compatibility code
6
7 commit 9a69a4c8802adf642bc4a13d471b5a86b44ed434 upstream.
8
9 Quite a bit of the test suite was designed to work with ancient kernels.
10 Thankfully we no longer have to deal with this. This commit updates
11 things that we can finally update and removes things that we can finally
12 remove, to avoid the build-up of the last several years as a result of
13 having to support ancient kernels. We can finally rely on suppress_
14 prefixlength being available. On the build side of things, the no-PIE
15 hack is no longer required, and we can bump some of the tools, repair
16 our m68k and i686-kvm support, and get better coverage of the static
17 branches used in the crypto lib and in udp_tunnel.
18
19 Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
20 Signed-off-by: David S. Miller <davem@davemloft.net>
21 Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
22 ---
23 tools/testing/selftests/wireguard/netns.sh | 11 +--
24 .../testing/selftests/wireguard/qemu/Makefile | 82 ++++++++++---------
25 .../selftests/wireguard/qemu/arch/m68k.config | 2 +-
26 tools/testing/selftests/wireguard/qemu/init.c | 1 +
27 .../selftests/wireguard/qemu/kernel.config | 2 +
28 5 files changed, 50 insertions(+), 48 deletions(-)
29
30 --- a/tools/testing/selftests/wireguard/netns.sh
31 +++ b/tools/testing/selftests/wireguard/netns.sh
32 @@ -37,7 +37,7 @@ n2() { pretty 2 "$*"; maybe_exec ip netn
33 ip0() { pretty 0 "ip $*"; ip -n $netns0 "$@"; }
34 ip1() { pretty 1 "ip $*"; ip -n $netns1 "$@"; }
35 ip2() { pretty 2 "ip $*"; ip -n $netns2 "$@"; }
36 -sleep() { read -t "$1" -N 0 || true; }
37 +sleep() { read -t "$1" -N 1 || true; }
38 waitiperf() { pretty "${1//*-}" "wait for iperf:5201"; while [[ $(ss -N "$1" -tlp 'sport = 5201') != *iperf3* ]]; do sleep 0.1; done; }
39 waitncatudp() { pretty "${1//*-}" "wait for udp:1111"; while [[ $(ss -N "$1" -ulp 'sport = 1111') != *ncat* ]]; do sleep 0.1; done; }
40 waitncattcp() { pretty "${1//*-}" "wait for tcp:1111"; while [[ $(ss -N "$1" -tlp 'sport = 1111') != *ncat* ]]; do sleep 0.1; done; }
41 @@ -294,12 +294,9 @@ ip1 -6 rule add table main suppress_pref
42 ip1 -4 route add default dev wg0 table 51820
43 ip1 -4 rule add not fwmark 51820 table 51820
44 ip1 -4 rule add table main suppress_prefixlength 0
45 -# suppress_prefixlength only got added in 3.12, and we want to support 3.10+.
46 -if [[ $(ip1 -4 rule show all) == *suppress_prefixlength* ]]; then
47 - # Flood the pings instead of sending just one, to trigger routing table reference counting bugs.
48 - n1 ping -W 1 -c 100 -f 192.168.99.7
49 - n1 ping -W 1 -c 100 -f abab::1111
50 -fi
51 +# Flood the pings instead of sending just one, to trigger routing table reference counting bugs.
52 +n1 ping -W 1 -c 100 -f 192.168.99.7
53 +n1 ping -W 1 -c 100 -f abab::1111
54
55 n0 iptables -t nat -F
56 ip0 link del vethrc
57 --- a/tools/testing/selftests/wireguard/qemu/Makefile
58 +++ b/tools/testing/selftests/wireguard/qemu/Makefile
59 @@ -5,6 +5,7 @@
60 PWD := $(shell pwd)
61
62 CHOST := $(shell gcc -dumpmachine)
63 +HOST_ARCH := $(firstword $(subst -, ,$(CHOST)))
64 ifneq (,$(ARCH))
65 CBUILD := $(subst -gcc,,$(lastword $(subst /, ,$(firstword $(wildcard $(foreach bindir,$(subst :, ,$(PATH)),$(bindir)/$(ARCH)-*-gcc))))))
66 ifeq (,$(CBUILD))
67 @@ -37,19 +38,19 @@ endef
68 define file_download =
69 $(DISTFILES_PATH)/$(1):
70 mkdir -p $(DISTFILES_PATH)
71 - flock -x $$@.lock -c '[ -f $$@ ] && exit 0; wget -O $$@.tmp $(MIRROR)$(1) || wget -t inf --retry-on-http-error=404 -O $$@.tmp $(2)$(1) || rm -f $$@.tmp'
72 + flock -x $$@.lock -c '[ -f $$@ ] && exit 0; wget -O $$@.tmp $(MIRROR)$(1) || wget -O $$@.tmp $(2)$(1) || rm -f $$@.tmp'
73 if echo "$(3) $$@.tmp" | sha256sum -c -; then mv $$@.tmp $$@; else rm -f $$@.tmp; exit 71; fi
74 endef
75
76 -$(eval $(call tar_download,MUSL,musl,1.1.20,.tar.gz,https://www.musl-libc.org/releases/,44be8771d0e6c6b5f82dd15662eb2957c9a3173a19a8b49966ac0542bbd40d61))
77 +$(eval $(call tar_download,MUSL,musl,1.1.24,.tar.gz,https://www.musl-libc.org/releases/,1370c9a812b2cf2a7d92802510cca0058cc37e66a7bedd70051f0a34015022a3))
78 $(eval $(call tar_download,LIBMNL,libmnl,1.0.4,.tar.bz2,https://www.netfilter.org/projects/libmnl/files/,171f89699f286a5854b72b91d06e8f8e3683064c5901fb09d954a9ab6f551f81))
79 -$(eval $(call tar_download,IPERF,iperf,3.1.7,.tar.gz,http://downloads.es.net/pub/iperf/,a4ef73406fe92250602b8da2ae89ec53211f805df97a1d1d629db5a14043734f))
80 +$(eval $(call tar_download,IPERF,iperf,3.7,.tar.gz,https://downloads.es.net/pub/iperf/,d846040224317caf2f75c843d309a950a7db23f9b44b94688ccbe557d6d1710c))
81 $(eval $(call tar_download,BASH,bash,5.0,.tar.gz,https://ftp.gnu.org/gnu/bash/,b4a80f2ac66170b2913efbfb9f2594f1f76c7b1afd11f799e22035d63077fb4d))
82 -$(eval $(call tar_download,IPROUTE2,iproute2,5.1.0,.tar.gz,https://www.kernel.org/pub/linux/utils/net/iproute2/,9b43707d6075ecdca14803ca8ce0c8553848c49fa1586d12fd508d66577243f2))
83 -$(eval $(call tar_download,IPTABLES,iptables,1.6.1,.tar.bz2,https://www.netfilter.org/projects/iptables/files/,0fc2d7bd5d7be11311726466789d4c65fb4c8e096c9182b56ce97440864f0cf5))
84 -$(eval $(call tar_download,NMAP,nmap,7.60,.tar.bz2,https://nmap.org/dist/,a8796ecc4fa6c38aad6139d9515dc8113023a82e9d787e5a5fb5fa1b05516f21))
85 -$(eval $(call tar_download,IPUTILS,iputils,s20161105,.tar.gz,https://github.com/iputils/iputils/archive/s20161105.tar.gz/#,f813092f03d17294fd23544b129b95cdb87fe19f7970a51908a6b88509acad8a))
86 -$(eval $(call tar_download,WIREGUARD_TOOLS,WireGuard,0.0.20191212,.tar.xz,https://git.zx2c4.com/WireGuard/snapshot/,b0d718380f7a8822b2f12d75e462fa4eafa3a77871002981f367cd4fe2a1b071))
87 +$(eval $(call tar_download,IPROUTE2,iproute2,5.4.0,.tar.xz,https://www.kernel.org/pub/linux/utils/net/iproute2/,fe97aa60a0d4c5ac830be18937e18dc3400ca713a33a89ad896ff1e3d46086ae))
88 +$(eval $(call tar_download,IPTABLES,iptables,1.8.4,.tar.bz2,https://www.netfilter.org/projects/iptables/files/,993a3a5490a544c2cbf2ef15cf7e7ed21af1845baf228318d5c36ef8827e157c))
89 +$(eval $(call tar_download,NMAP,nmap,7.80,.tar.bz2,https://nmap.org/dist/,fcfa5a0e42099e12e4bf7a68ebe6fde05553383a682e816a7ec9256ab4773faa))
90 +$(eval $(call tar_download,IPUTILS,iputils,s20190709,.tar.gz,https://github.com/iputils/iputils/archive/s20190709.tar.gz/#,a15720dd741d7538dd2645f9f516d193636ae4300ff7dbc8bfca757bf166490a))
91 +$(eval $(call tar_download,WIREGUARD_TOOLS,wireguard-tools,1.0.20191226,.tar.xz,https://git.zx2c4.com/wireguard-tools/snapshot/,aa8af0fdc9872d369d8c890a84dbc2a2466b55795dccd5b47721b2d97644b04f))
92
93 KERNEL_BUILD_PATH := $(BUILD_PATH)/kernel$(if $(findstring yes,$(DEBUG_KERNEL)),-debug)
94 rwildcard=$(foreach d,$(wildcard $1*),$(call rwildcard,$d/,$2) $(filter $(subst *,%,$2),$d))
95 @@ -59,23 +60,21 @@ export CFLAGS ?= -O3 -pipe
96 export LDFLAGS ?=
97 export CPPFLAGS := -I$(BUILD_PATH)/include
98
99 -ifeq ($(CHOST),$(CBUILD))
100 +ifeq ($(HOST_ARCH),$(ARCH))
101 CROSS_COMPILE_FLAG := --host=$(CHOST)
102 -NOPIE_GCC := gcc -fno-PIE
103 CFLAGS += -march=native
104 STRIP := strip
105 else
106 $(info Cross compilation: building for $(CBUILD) using $(CHOST))
107 CROSS_COMPILE_FLAG := --build=$(CBUILD) --host=$(CHOST)
108 export CROSS_COMPILE=$(CBUILD)-
109 -NOPIE_GCC := $(CBUILD)-gcc -fno-PIE
110 STRIP := $(CBUILD)-strip
111 endif
112 ifeq ($(ARCH),aarch64)
113 QEMU_ARCH := aarch64
114 KERNEL_ARCH := arm64
115 KERNEL_BZIMAGE := $(KERNEL_BUILD_PATH)/arch/arm64/boot/Image
116 -ifeq ($(CHOST),$(CBUILD))
117 +ifeq ($(HOST_ARCH),$(ARCH))
118 QEMU_MACHINE := -cpu host -machine virt,gic_version=host,accel=kvm
119 else
120 QEMU_MACHINE := -cpu cortex-a53 -machine virt
121 @@ -85,7 +84,7 @@ else ifeq ($(ARCH),aarch64_be)
122 QEMU_ARCH := aarch64
123 KERNEL_ARCH := arm64
124 KERNEL_BZIMAGE := $(KERNEL_BUILD_PATH)/arch/arm64/boot/Image
125 -ifeq ($(CHOST),$(CBUILD))
126 +ifeq ($(HOST_ARCH),$(ARCH))
127 QEMU_MACHINE := -cpu host -machine virt,gic_version=host,accel=kvm
128 else
129 QEMU_MACHINE := -cpu cortex-a53 -machine virt
130 @@ -95,7 +94,7 @@ else ifeq ($(ARCH),arm)
131 QEMU_ARCH := arm
132 KERNEL_ARCH := arm
133 KERNEL_BZIMAGE := $(KERNEL_BUILD_PATH)/arch/arm/boot/zImage
134 -ifeq ($(CHOST),$(CBUILD))
135 +ifeq ($(HOST_ARCH),$(ARCH))
136 QEMU_MACHINE := -cpu host -machine virt,gic_version=host,accel=kvm
137 else
138 QEMU_MACHINE := -cpu cortex-a15 -machine virt
139 @@ -105,7 +104,7 @@ else ifeq ($(ARCH),armeb)
140 QEMU_ARCH := arm
141 KERNEL_ARCH := arm
142 KERNEL_BZIMAGE := $(KERNEL_BUILD_PATH)/arch/arm/boot/zImage
143 -ifeq ($(CHOST),$(CBUILD))
144 +ifeq ($(HOST_ARCH),$(ARCH))
145 QEMU_MACHINE := -cpu host -machine virt,gic_version=host,accel=kvm
146 else
147 QEMU_MACHINE := -cpu cortex-a15 -machine virt
148 @@ -116,7 +115,7 @@ else ifeq ($(ARCH),x86_64)
149 QEMU_ARCH := x86_64
150 KERNEL_ARCH := x86_64
151 KERNEL_BZIMAGE := $(KERNEL_BUILD_PATH)/arch/x86/boot/bzImage
152 -ifeq ($(CHOST),$(CBUILD))
153 +ifeq ($(HOST_ARCH),$(ARCH))
154 QEMU_MACHINE := -cpu host -machine q35,accel=kvm
155 else
156 QEMU_MACHINE := -cpu Skylake-Server -machine q35
157 @@ -126,7 +125,7 @@ else ifeq ($(ARCH),i686)
158 QEMU_ARCH := i386
159 KERNEL_ARCH := x86
160 KERNEL_BZIMAGE := $(KERNEL_BUILD_PATH)/arch/x86/boot/bzImage
161 -ifeq ($(subst i686,x86_64,$(CBUILD)),$(CHOST))
162 +ifeq ($(subst x86_64,i686,$(HOST_ARCH)),$(ARCH))
163 QEMU_MACHINE := -cpu host -machine q35,accel=kvm
164 else
165 QEMU_MACHINE := -cpu coreduo -machine q35
166 @@ -136,7 +135,7 @@ else ifeq ($(ARCH),mips64)
167 QEMU_ARCH := mips64
168 KERNEL_ARCH := mips
169 KERNEL_BZIMAGE := $(KERNEL_BUILD_PATH)/vmlinux
170 -ifeq ($(CHOST),$(CBUILD))
171 +ifeq ($(HOST_ARCH),$(ARCH))
172 QEMU_MACHINE := -cpu host -machine malta,accel=kvm
173 CFLAGS += -EB
174 else
175 @@ -147,7 +146,7 @@ else ifeq ($(ARCH),mips64el)
176 QEMU_ARCH := mips64el
177 KERNEL_ARCH := mips
178 KERNEL_BZIMAGE := $(KERNEL_BUILD_PATH)/vmlinux
179 -ifeq ($(CHOST),$(CBUILD))
180 +ifeq ($(HOST_ARCH),$(ARCH))
181 QEMU_MACHINE := -cpu host -machine malta,accel=kvm
182 CFLAGS += -EL
183 else
184 @@ -158,7 +157,7 @@ else ifeq ($(ARCH),mips)
185 QEMU_ARCH := mips
186 KERNEL_ARCH := mips
187 KERNEL_BZIMAGE := $(KERNEL_BUILD_PATH)/vmlinux
188 -ifeq ($(CHOST),$(CBUILD))
189 +ifeq ($(HOST_ARCH),$(ARCH))
190 QEMU_MACHINE := -cpu host -machine malta,accel=kvm
191 CFLAGS += -EB
192 else
193 @@ -169,7 +168,7 @@ else ifeq ($(ARCH),mipsel)
194 QEMU_ARCH := mipsel
195 KERNEL_ARCH := mips
196 KERNEL_BZIMAGE := $(KERNEL_BUILD_PATH)/vmlinux
197 -ifeq ($(CHOST),$(CBUILD))
198 +ifeq ($(HOST_ARCH),$(ARCH))
199 QEMU_MACHINE := -cpu host -machine malta,accel=kvm
200 CFLAGS += -EL
201 else
202 @@ -180,7 +179,7 @@ else ifeq ($(ARCH),powerpc64le)
203 QEMU_ARCH := ppc64
204 KERNEL_ARCH := powerpc
205 KERNEL_BZIMAGE := $(KERNEL_BUILD_PATH)/vmlinux
206 -ifeq ($(CHOST),$(CBUILD))
207 +ifeq ($(HOST_ARCH),$(ARCH))
208 QEMU_MACHINE := -cpu host,accel=kvm -machine pseries
209 else
210 QEMU_MACHINE := -machine pseries
211 @@ -190,7 +189,7 @@ else ifeq ($(ARCH),powerpc)
212 QEMU_ARCH := ppc
213 KERNEL_ARCH := powerpc
214 KERNEL_BZIMAGE := $(KERNEL_BUILD_PATH)/arch/powerpc/boot/uImage
215 -ifeq ($(CHOST),$(CBUILD))
216 +ifeq ($(HOST_ARCH),$(ARCH))
217 QEMU_MACHINE := -cpu host,accel=kvm -machine ppce500
218 else
219 QEMU_MACHINE := -machine ppce500
220 @@ -200,10 +199,11 @@ else ifeq ($(ARCH),m68k)
221 QEMU_ARCH := m68k
222 KERNEL_ARCH := m68k
223 KERNEL_BZIMAGE := $(KERNEL_BUILD_PATH)/vmlinux
224 -ifeq ($(CHOST),$(CBUILD))
225 -QEMU_MACHINE := -cpu host,accel=kvm -machine q800
226 +KERNEL_CMDLINE := $(shell sed -n 's/CONFIG_CMDLINE=\(.*\)/\1/p' arch/m68k.config)
227 +ifeq ($(HOST_ARCH),$(ARCH))
228 +QEMU_MACHINE := -cpu host,accel=kvm -machine q800 -smp 1 -append $(KERNEL_CMDLINE)
229 else
230 -QEMU_MACHINE := -machine q800
231 +QEMU_MACHINE := -machine q800 -smp 1 -append $(KERNEL_CMDLINE)
232 endif
233 else
234 $(error I only build: x86_64, i686, arm, armeb, aarch64, aarch64_be, mips, mipsel, mips64, mips64el, powerpc64le, powerpc, m68k)
235 @@ -238,14 +238,14 @@ $(BUILD_PATH)/init-cpio-spec.txt:
236 echo "nod /dev/console 644 0 0 c 5 1" >> $@
237 echo "dir /bin 755 0 0" >> $@
238 echo "file /bin/iperf3 $(IPERF_PATH)/src/iperf3 755 0 0" >> $@
239 - echo "file /bin/wg $(WIREGUARD_TOOLS_PATH)/src/tools/wg 755 0 0" >> $@
240 + echo "file /bin/wg $(WIREGUARD_TOOLS_PATH)/src/wg 755 0 0" >> $@
241 echo "file /bin/bash $(BASH_PATH)/bash 755 0 0" >> $@
242 echo "file /bin/ip $(IPROUTE2_PATH)/ip/ip 755 0 0" >> $@
243 echo "file /bin/ss $(IPROUTE2_PATH)/misc/ss 755 0 0" >> $@
244 echo "file /bin/ping $(IPUTILS_PATH)/ping 755 0 0" >> $@
245 echo "file /bin/ncat $(NMAP_PATH)/ncat/ncat 755 0 0" >> $@
246 - echo "file /bin/xtables-multi $(IPTABLES_PATH)/iptables/xtables-multi 755 0 0" >> $@
247 - echo "slink /bin/iptables xtables-multi 777 0 0" >> $@
248 + echo "file /bin/xtables-legacy-multi $(IPTABLES_PATH)/iptables/xtables-legacy-multi 755 0 0" >> $@
249 + echo "slink /bin/iptables xtables-legacy-multi 777 0 0" >> $@
250 echo "slink /bin/ping6 ping 777 0 0" >> $@
251 echo "dir /lib 755 0 0" >> $@
252 echo "file /lib/libc.so $(MUSL_PATH)/lib/libc.so 755 0 0" >> $@
253 @@ -260,8 +260,8 @@ $(KERNEL_BUILD_PATH)/.config: kernel.con
254 cd $(KERNEL_BUILD_PATH) && ARCH=$(KERNEL_ARCH) $(KERNEL_PATH)/scripts/kconfig/merge_config.sh -n $(KERNEL_BUILD_PATH)/.config $(KERNEL_BUILD_PATH)/minimal.config
255 $(if $(findstring yes,$(DEBUG_KERNEL)),cp debug.config $(KERNEL_BUILD_PATH) && cd $(KERNEL_BUILD_PATH) && ARCH=$(KERNEL_ARCH) $(KERNEL_PATH)/scripts/kconfig/merge_config.sh -n $(KERNEL_BUILD_PATH)/.config debug.config,)
256
257 -$(KERNEL_BZIMAGE): $(KERNEL_BUILD_PATH)/.config $(BUILD_PATH)/init-cpio-spec.txt $(MUSL_PATH)/lib/libc.so $(IPERF_PATH)/src/iperf3 $(IPUTILS_PATH)/ping $(BASH_PATH)/bash $(IPROUTE2_PATH)/misc/ss $(IPROUTE2_PATH)/ip/ip $(IPTABLES_PATH)/iptables/xtables-multi $(NMAP_PATH)/ncat/ncat $(WIREGUARD_TOOLS_PATH)/src/tools/wg $(BUILD_PATH)/init ../netns.sh $(WIREGUARD_SOURCES)
258 - $(MAKE) -C $(KERNEL_PATH) O=$(KERNEL_BUILD_PATH) ARCH=$(KERNEL_ARCH) CROSS_COMPILE=$(CROSS_COMPILE) CC="$(NOPIE_GCC)"
259 +$(KERNEL_BZIMAGE): $(KERNEL_BUILD_PATH)/.config $(BUILD_PATH)/init-cpio-spec.txt $(MUSL_PATH)/lib/libc.so $(IPERF_PATH)/src/iperf3 $(IPUTILS_PATH)/ping $(BASH_PATH)/bash $(IPROUTE2_PATH)/misc/ss $(IPROUTE2_PATH)/ip/ip $(IPTABLES_PATH)/iptables/xtables-legacy-multi $(NMAP_PATH)/ncat/ncat $(WIREGUARD_TOOLS_PATH)/src/wg $(BUILD_PATH)/init ../netns.sh $(WIREGUARD_SOURCES)
260 + $(MAKE) -C $(KERNEL_PATH) O=$(KERNEL_BUILD_PATH) ARCH=$(KERNEL_ARCH) CROSS_COMPILE=$(CROSS_COMPILE)
261
262 $(BUILD_PATH)/include/linux/.installed: | $(KERNEL_BUILD_PATH)/.config
263 $(MAKE) -C $(KERNEL_PATH) O=$(KERNEL_BUILD_PATH) INSTALL_HDR_PATH=$(BUILD_PATH) ARCH=$(KERNEL_ARCH) CROSS_COMPILE=$(CROSS_COMPILE) headers_install
264 @@ -280,7 +280,7 @@ $(BUILD_PATH)/include/.installed: $(MUSL
265
266 $(MUSL_CC): $(MUSL_PATH)/lib/libc.so
267 sh $(MUSL_PATH)/tools/musl-gcc.specs.sh $(BUILD_PATH)/include $(MUSL_PATH)/lib /lib/ld-linux.so.1 > $(BUILD_PATH)/musl-gcc.specs
268 - printf '#!/bin/sh\nexec "$(REAL_CC)" --specs="$(BUILD_PATH)/musl-gcc.specs" -fno-stack-protector -no-pie "$$@"\n' > $(BUILD_PATH)/musl-gcc
269 + printf '#!/bin/sh\nexec "$(REAL_CC)" --specs="$(BUILD_PATH)/musl-gcc.specs" "$$@"\n' > $(BUILD_PATH)/musl-gcc
270 chmod +x $(BUILD_PATH)/musl-gcc
271
272 $(IPERF_PATH)/.installed: $(IPERF_TAR)
273 @@ -291,7 +291,7 @@ $(IPERF_PATH)/.installed: $(IPERF_TAR)
274 touch $@
275
276 $(IPERF_PATH)/src/iperf3: | $(IPERF_PATH)/.installed $(USERSPACE_DEPS)
277 - cd $(IPERF_PATH) && CFLAGS="$(CFLAGS) -D_GNU_SOURCE" ./configure --prefix=/ $(CROSS_COMPILE_FLAG) --enable-static --disable-shared
278 + cd $(IPERF_PATH) && CFLAGS="$(CFLAGS) -D_GNU_SOURCE" ./configure --prefix=/ $(CROSS_COMPILE_FLAG) --enable-static --disable-shared --with-openssl=no
279 $(MAKE) -C $(IPERF_PATH)
280 $(STRIP) -s $@
281
282 @@ -308,8 +308,8 @@ $(WIREGUARD_TOOLS_PATH)/.installed: $(WI
283 flock -s $<.lock tar -C $(BUILD_PATH) -xf $<
284 touch $@
285
286 -$(WIREGUARD_TOOLS_PATH)/src/tools/wg: | $(WIREGUARD_TOOLS_PATH)/.installed $(LIBMNL_PATH)/src/.libs/libmnl.a $(USERSPACE_DEPS)
287 - LDFLAGS="$(LDFLAGS) -L$(LIBMNL_PATH)/src/.libs" $(MAKE) -C $(WIREGUARD_TOOLS_PATH)/src/tools LIBMNL_CFLAGS="-I$(LIBMNL_PATH)/include" LIBMNL_LDLIBS="-lmnl" wg
288 +$(WIREGUARD_TOOLS_PATH)/src/wg: | $(WIREGUARD_TOOLS_PATH)/.installed $(LIBMNL_PATH)/src/.libs/libmnl.a $(USERSPACE_DEPS)
289 + LDFLAGS="$(LDFLAGS) -L$(LIBMNL_PATH)/src/.libs" $(MAKE) -C $(WIREGUARD_TOOLS_PATH)/src LIBMNL_CFLAGS="-I$(LIBMNL_PATH)/include" LIBMNL_LDLIBS="-lmnl" wg
290 $(STRIP) -s $@
291
292 $(BUILD_PATH)/init: init.c | $(USERSPACE_DEPS)
293 @@ -323,7 +323,8 @@ $(IPUTILS_PATH)/.installed: $(IPUTILS_TA
294 touch $@
295
296 $(IPUTILS_PATH)/ping: | $(IPUTILS_PATH)/.installed $(USERSPACE_DEPS)
297 - $(MAKE) -C $(IPUTILS_PATH) USE_CAP=no USE_IDN=no USE_NETTLE=no USE_CRYPTO=no ping
298 + sed -i /atexit/d $(IPUTILS_PATH)/ping.c
299 + cd $(IPUTILS_PATH) && $(CC) $(CFLAGS) -std=c99 -o $@ ping.c ping_common.c ping6_common.c iputils_common.c -D_GNU_SOURCE -D'IPUTILS_VERSION(f)=f' -lresolv $(LDFLAGS)
300 $(STRIP) -s $@
301
302 $(BASH_PATH)/.installed: $(BASH_TAR)
303 @@ -357,7 +358,7 @@ $(IPTABLES_PATH)/.installed: $(IPTABLES_
304 sed -i -e "/nfnetlink=[01]/s:=[01]:=0:" -e "/nfconntrack=[01]/s:=[01]:=0:" $(IPTABLES_PATH)/configure
305 touch $@
306
307 -$(IPTABLES_PATH)/iptables/xtables-multi: | $(IPTABLES_PATH)/.installed $(LIBMNL_PATH)/src/.libs/libmnl.a $(USERSPACE_DEPS)
308 +$(IPTABLES_PATH)/iptables/xtables-legacy-multi: | $(IPTABLES_PATH)/.installed $(LIBMNL_PATH)/src/.libs/libmnl.a $(USERSPACE_DEPS)
309 cd $(IPTABLES_PATH) && PKG_CONFIG_LIBDIR="$(LIBMNL_PATH)" ./configure --prefix=/ $(CROSS_COMPILE_FLAG) --enable-static --disable-shared --disable-nftables --disable-bpf-compiler --disable-nfsynproxy --disable-libipq --with-kernel=$(BUILD_PATH)/include
310 $(MAKE) -C $(IPTABLES_PATH)
311 $(STRIP) -s $@
312 @@ -368,8 +369,9 @@ $(NMAP_PATH)/.installed: $(NMAP_TAR)
313 touch $@
314
315 $(NMAP_PATH)/ncat/ncat: | $(NMAP_PATH)/.installed $(USERSPACE_DEPS)
316 - cd $(NMAP_PATH) && ./configure --prefix=/ $(CROSS_COMPILE_FLAG) --enable-static --disable-shared --without-ndiff --without-zenmap --without-nping --with-libpcap=included --with-libpcre=included --with-libdnet=included --without-liblua --with-liblinear=included --without-nmap-update --without-openssl --with-pcap=linux
317 - $(MAKE) -C $(NMAP_PATH) build-ncat
318 + cd $(NMAP_PATH) && ./configure --prefix=/ $(CROSS_COMPILE_FLAG) --enable-static --disable-shared --without-ndiff --without-zenmap --without-nping --with-libpcap=included --with-libpcre=included --with-libdnet=included --without-liblua --with-liblinear=included --without-nmap-update --without-openssl --with-pcap=linux --without-libssh
319 + $(MAKE) -C $(NMAP_PATH)/libpcap
320 + $(MAKE) -C $(NMAP_PATH)/ncat
321 $(STRIP) -s $@
322
323 clean:
324 @@ -379,7 +381,7 @@ distclean: clean
325 rm -rf $(DISTFILES_PATH)
326
327 menuconfig: $(KERNEL_BUILD_PATH)/.config
328 - $(MAKE) -C $(KERNEL_PATH) O=$(KERNEL_BUILD_PATH) ARCH=$(KERNEL_ARCH) CROSS_COMPILE=$(CROSS_COMPILE) CC="$(NOPIE_GCC)" menuconfig
329 + $(MAKE) -C $(KERNEL_PATH) O=$(KERNEL_BUILD_PATH) ARCH=$(KERNEL_ARCH) CROSS_COMPILE=$(CROSS_COMPILE) menuconfig
330
331 .PHONY: qemu build clean distclean menuconfig
332 .DELETE_ON_ERROR:
333 --- a/tools/testing/selftests/wireguard/qemu/arch/m68k.config
334 +++ b/tools/testing/selftests/wireguard/qemu/arch/m68k.config
335 @@ -1,9 +1,9 @@
336 CONFIG_MMU=y
337 +CONFIG_M68KCLASSIC=y
338 CONFIG_M68040=y
339 CONFIG_MAC=y
340 CONFIG_SERIAL_PMACZILOG=y
341 CONFIG_SERIAL_PMACZILOG_TTYS=y
342 CONFIG_SERIAL_PMACZILOG_CONSOLE=y
343 -CONFIG_CMDLINE_BOOL=y
344 CONFIG_CMDLINE="console=ttyS0 wg.success=ttyS1"
345 CONFIG_FRAME_WARN=1024
346 --- a/tools/testing/selftests/wireguard/qemu/init.c
347 +++ b/tools/testing/selftests/wireguard/qemu/init.c
348 @@ -21,6 +21,7 @@
349 #include <sys/reboot.h>
350 #include <sys/utsname.h>
351 #include <sys/sendfile.h>
352 +#include <sys/sysmacros.h>
353 #include <linux/random.h>
354 #include <linux/version.h>
355
356 --- a/tools/testing/selftests/wireguard/qemu/kernel.config
357 +++ b/tools/testing/selftests/wireguard/qemu/kernel.config
358 @@ -39,6 +39,7 @@ CONFIG_PRINTK=y
359 CONFIG_KALLSYMS=y
360 CONFIG_BUG=y
361 CONFIG_CC_OPTIMIZE_FOR_PERFORMANCE=y
362 +CONFIG_JUMP_LABEL=y
363 CONFIG_EMBEDDED=n
364 CONFIG_BASE_FULL=y
365 CONFIG_FUTEX=y
366 @@ -55,6 +56,7 @@ CONFIG_NO_HZ_IDLE=y
367 CONFIG_NO_HZ_FULL=n
368 CONFIG_HZ_PERIODIC=n
369 CONFIG_HIGH_RES_TIMERS=y
370 +CONFIG_COMPAT_32BIT_TIME=y
371 CONFIG_ARCH_RANDOM=y
372 CONFIG_FILE_LOCKING=y
373 CONFIG_POSIX_TIMERS=y