Orange Pi5 kernel

Deprecated Linux kernel 5.10.110 for OrangePi 5/5B/5+ boards

3 Commits   0 Branches   0 Tags
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   1) # SPDX-License-Identifier: GPL-2.0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   2) # Makefile for vm selftests
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   3) uname_M := $(shell uname -m 2>/dev/null || echo not)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   4) MACHINE ?= $(shell echo $(uname_M) | sed -e 's/aarch64.*/arm64/' -e 's/ppc64.*/ppc64/')
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   5) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   6) # Without this, failed build products remain, with up-to-date timestamps,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   7) # thus tricking Make (and you!) into believing that All Is Well, in subsequent
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   8) # make invocations:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   9) .DELETE_ON_ERROR:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  10) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  11) # Avoid accidental wrong builds, due to built-in rules working just a little
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  12) # bit too well--but not quite as well as required for our situation here.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  13) #
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  14) # In other words, "make userfaultfd" is supposed to fail to build at all,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  15) # because this Makefile only supports either "make" (all), or "make /full/path".
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  16) # However,  the built-in rules, if not suppressed, will pick up CFLAGS and the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  17) # initial LDLIBS (but not the target-specific LDLIBS, because those are only
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  18) # set for the full path target!). This causes it to get pretty far into building
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  19) # things despite using incorrect values such as an *occasionally* incomplete
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  20) # LDLIBS.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  21) MAKEFLAGS += --no-builtin-rules
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  22) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  23) CFLAGS = -Wall -I ../../../../usr/include $(EXTRA_CFLAGS)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  24) LDLIBS = -lrt
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  25) TEST_GEN_FILES = compaction_test
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  26) TEST_GEN_FILES += gup_benchmark
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  27) TEST_GEN_FILES += hmm-tests
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  28) TEST_GEN_FILES += hugepage-mmap
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  29) TEST_GEN_FILES += hugepage-shm
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  30) TEST_GEN_FILES += map_hugetlb
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  31) TEST_GEN_FILES += map_fixed_noreplace
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  32) TEST_GEN_FILES += map_populate
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  33) TEST_GEN_FILES += mlock-random-test
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  34) TEST_GEN_FILES += mlock2-tests
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  35) TEST_GEN_FILES += mremap_dontunmap
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  36) TEST_GEN_FILES += on-fault-limit
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  37) TEST_GEN_FILES += thuge-gen
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  38) TEST_GEN_FILES += transhuge-stress
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  39) TEST_GEN_FILES += userfaultfd
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  40) TEST_GEN_FILES += khugepaged
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  41) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  42) ifeq ($(MACHINE),x86_64)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  43) CAN_BUILD_I386 := $(shell ./../x86/check_cc.sh "$(CC)" ../x86/trivial_32bit_program.c -m32)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  44) CAN_BUILD_X86_64 := $(shell ./../x86/check_cc.sh "$(CC)" ../x86/trivial_64bit_program.c)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  45) CAN_BUILD_WITH_NOPIE := $(shell ./../x86/check_cc.sh "$(CC)" ../x86/trivial_program.c -no-pie)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  46) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  47) TARGETS := protection_keys
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  48) BINARIES_32 := $(TARGETS:%=%_32)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  49) BINARIES_64 := $(TARGETS:%=%_64)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  50) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  51) ifeq ($(CAN_BUILD_WITH_NOPIE),1)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  52) CFLAGS += -no-pie
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  53) endif
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  54) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  55) ifeq ($(CAN_BUILD_I386),1)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  56) TEST_GEN_FILES += $(BINARIES_32)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  57) endif
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  58) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  59) ifeq ($(CAN_BUILD_X86_64),1)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  60) TEST_GEN_FILES += $(BINARIES_64)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  61) endif
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  62) else
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  63) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  64) ifneq (,$(findstring $(MACHINE),ppc64))
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  65) TEST_GEN_FILES += protection_keys
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  66) endif
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  67) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  68) endif
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  69) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  70) ifneq (,$(filter $(MACHINE),arm64 ia64 mips64 parisc64 ppc64 riscv64 s390x sh64 sparc64 x86_64))
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  71) TEST_GEN_FILES += va_128TBswitch
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  72) TEST_GEN_FILES += virtual_address_range
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  73) TEST_GEN_FILES += write_to_hugetlbfs
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  74) endif
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  75) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  76) TEST_PROGS := run_vmtests
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  77) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  78) TEST_FILES := test_vmalloc.sh
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  79) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  80) KSFT_KHDR_INSTALL := 1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  81) include ../lib.mk
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  82) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  83) $(OUTPUT)/hmm-tests: LDLIBS += -lhugetlbfs -lpthread
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  84) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  85) ifeq ($(MACHINE),x86_64)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  86) BINARIES_32 := $(patsubst %,$(OUTPUT)/%,$(BINARIES_32))
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  87) BINARIES_64 := $(patsubst %,$(OUTPUT)/%,$(BINARIES_64))
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  88) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  89) define gen-target-rule-32
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  90) $(1) $(1)_32: $(OUTPUT)/$(1)_32
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  91) .PHONY: $(1) $(1)_32
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  92) endef
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  93) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  94) define gen-target-rule-64
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  95) $(1) $(1)_64: $(OUTPUT)/$(1)_64
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  96) .PHONY: $(1) $(1)_64
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  97) endef
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  98) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  99) ifeq ($(CAN_BUILD_I386),1)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 100) $(BINARIES_32): CFLAGS += -m32
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 101) $(BINARIES_32): LDLIBS += -lrt -ldl -lm
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 102) $(BINARIES_32): $(OUTPUT)/%_32: %.c
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 103) 	$(CC) $(CFLAGS) $(EXTRA_CFLAGS) $(notdir $^) $(LDLIBS) -o $@
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 104) $(foreach t,$(TARGETS),$(eval $(call gen-target-rule-32,$(t))))
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 105) endif
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 106) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 107) ifeq ($(CAN_BUILD_X86_64),1)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 108) $(BINARIES_64): CFLAGS += -m64
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 109) $(BINARIES_64): LDLIBS += -lrt -ldl
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 110) $(BINARIES_64): $(OUTPUT)/%_64: %.c
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 111) 	$(CC) $(CFLAGS) $(EXTRA_CFLAGS) $(notdir $^) $(LDLIBS) -o $@
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 112) $(foreach t,$(TARGETS),$(eval $(call gen-target-rule-64,$(t))))
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 113) endif
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 114) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 115) # x86_64 users should be encouraged to install 32-bit libraries
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 116) ifeq ($(CAN_BUILD_I386)$(CAN_BUILD_X86_64),01)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 117) all: warn_32bit_failure
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 118) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 119) warn_32bit_failure:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 120) 	@echo "Warning: you seem to have a broken 32-bit build" 2>&1;		\
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 121) 	echo  "environment. This will reduce test coverage of 64-bit" 2>&1;	\
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 122) 	echo  "kernels. If you are using a Debian-like distribution," 2>&1;	\
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 123) 	echo  "try:"; 2>&1;							\
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 124) 	echo  "";								\
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 125) 	echo  "  apt-get install gcc-multilib libc6-i386 libc6-dev-i386";	\
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 126) 	echo  "";								\
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 127) 	echo  "If you are using a Fedora-like distribution, try:";		\
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 128) 	echo  "";								\
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 129) 	echo  "  yum install glibc-devel.*i686";				\
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 130) 	exit 0;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 131) endif
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 132) endif
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 133) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 134) $(OUTPUT)/userfaultfd: LDLIBS += -lpthread
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 135) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 136) $(OUTPUT)/mlock-random-test: LDLIBS += -lcap