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) all:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   3) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   4) include ../lib.mk
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   5) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   6) .PHONY: all all_32 all_64 warn_32bit_failure clean
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   7) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   8) UNAME_M := $(shell uname -m)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   9) CAN_BUILD_I386 := $(shell ./check_cc.sh "$(CC)" trivial_32bit_program.c -m32)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  10) CAN_BUILD_X86_64 := $(shell ./check_cc.sh "$(CC)" trivial_64bit_program.c)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  11) CAN_BUILD_WITH_NOPIE := $(shell ./check_cc.sh "$(CC)" trivial_program.c -no-pie)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  12) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  13) TARGETS_C_BOTHBITS := single_step_syscall sysret_ss_attrs syscall_nt test_mremap_vdso \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  14) 			check_initial_reg_state sigreturn iopl ioperm \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  15) 			test_vdso test_vsyscall mov_ss_trap \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  16) 			syscall_arg_fault fsgsbase_restore
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  17) TARGETS_C_32BIT_ONLY := entry_from_vm86 test_syscall_vdso unwind_vdso \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  18) 			test_FCMOV test_FCOMI test_FISTTP \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  19) 			vdso_restorer
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  20) TARGETS_C_64BIT_ONLY := fsgsbase sysret_rip syscall_numbering
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  21) # Some selftests require 32bit support enabled also on 64bit systems
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  22) TARGETS_C_32BIT_NEEDED := ldt_gdt ptrace_syscall
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  23) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  24) TARGETS_C_32BIT_ALL := $(TARGETS_C_BOTHBITS) $(TARGETS_C_32BIT_ONLY) $(TARGETS_C_32BIT_NEEDED)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  25) TARGETS_C_64BIT_ALL := $(TARGETS_C_BOTHBITS) $(TARGETS_C_64BIT_ONLY)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  26) ifeq ($(CAN_BUILD_I386)$(CAN_BUILD_X86_64),11)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  27) TARGETS_C_64BIT_ALL += $(TARGETS_C_32BIT_NEEDED)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  28) endif
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  29) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  30) BINARIES_32 := $(TARGETS_C_32BIT_ALL:%=%_32)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  31) BINARIES_64 := $(TARGETS_C_64BIT_ALL:%=%_64)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  32) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  33) BINARIES_32 := $(patsubst %,$(OUTPUT)/%,$(BINARIES_32))
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  34) BINARIES_64 := $(patsubst %,$(OUTPUT)/%,$(BINARIES_64))
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  35) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  36) CFLAGS := -O2 -g -std=gnu99 -pthread -Wall
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  37) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  38) # call32_from_64 in thunks.S uses absolute addresses.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  39) ifeq ($(CAN_BUILD_WITH_NOPIE),1)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  40) CFLAGS += -no-pie
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  41) endif
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  42) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  43) define gen-target-rule-32
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  44) $(1) $(1)_32: $(OUTPUT)/$(1)_32
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  45) .PHONY: $(1) $(1)_32
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  46) endef
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  47) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  48) define gen-target-rule-64
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  49) $(1) $(1)_64: $(OUTPUT)/$(1)_64
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  50) .PHONY: $(1) $(1)_64
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  51) endef
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  52) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  53) ifeq ($(CAN_BUILD_I386),1)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  54) all: all_32
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  55) TEST_PROGS += $(BINARIES_32)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  56) EXTRA_CFLAGS += -DCAN_BUILD_32
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  57) $(foreach t,$(TARGETS_C_32BIT_ALL),$(eval $(call gen-target-rule-32,$(t))))
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  58) endif
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  59) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  60) ifeq ($(CAN_BUILD_X86_64),1)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  61) all: all_64
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  62) TEST_PROGS += $(BINARIES_64)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  63) EXTRA_CFLAGS += -DCAN_BUILD_64
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  64) $(foreach t,$(TARGETS_C_64BIT_ALL),$(eval $(call gen-target-rule-64,$(t))))
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  65) endif
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  66) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  67) all_32: $(BINARIES_32)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  68) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  69) all_64: $(BINARIES_64)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  70) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  71) EXTRA_CLEAN := $(BINARIES_32) $(BINARIES_64)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  72) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  73) $(BINARIES_32): $(OUTPUT)/%_32: %.c helpers.h
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  74) 	$(CC) -m32 -o $@ $(CFLAGS) $(EXTRA_CFLAGS) $^ -lrt -ldl -lm
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  75) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  76) $(BINARIES_64): $(OUTPUT)/%_64: %.c helpers.h
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  77) 	$(CC) -m64 -o $@ $(CFLAGS) $(EXTRA_CFLAGS) $^ -lrt -ldl
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  78) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  79) # x86_64 users should be encouraged to install 32-bit libraries
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  80) ifeq ($(CAN_BUILD_I386)$(CAN_BUILD_X86_64),01)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  81) all: warn_32bit_failure
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  82) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  83) warn_32bit_failure:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  84) 	@echo "Warning: you seem to have a broken 32-bit build" 2>&1; 	\
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  85) 	echo "environment.  This will reduce test coverage of 64-bit" 2>&1; \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  86) 	echo "kernels.  If you are using a Debian-like distribution," 2>&1; \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  87) 	echo "try:"; 2>&1; \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  88) 	echo "";							\
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  89) 	echo "  apt-get install gcc-multilib libc6-i386 libc6-dev-i386"; \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  90) 	echo "";							\
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  91) 	echo "If you are using a Fedora-like distribution, try:";	\
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  92) 	echo "";							\
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  93) 	echo "  yum install glibc-devel.*i686";				\
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  94) 	exit 0;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  95) endif
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  96) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  97) # Some tests have additional dependencies.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  98) $(OUTPUT)/sysret_ss_attrs_64: thunks.S
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  99) $(OUTPUT)/ptrace_syscall_32: raw_syscall_helper_32.S
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 100) $(OUTPUT)/test_syscall_vdso_32: thunks_32.S
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 101) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 102) # check_initial_reg_state is special: it needs a custom entry, and it
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 103) # needs to be static so that its interpreter doesn't destroy its initial
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 104) # state.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 105) $(OUTPUT)/check_initial_reg_state_32: CFLAGS += -Wl,-ereal_start -static
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 106) $(OUTPUT)/check_initial_reg_state_64: CFLAGS += -Wl,-ereal_start -static