~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

TOMOYO Linux Cross Reference
Linux/tools/testing/selftests/kvm/Makefile

Version: ~ [ linux-6.12-rc7 ] ~ [ linux-6.11.7 ] ~ [ linux-6.10.14 ] ~ [ linux-6.9.12 ] ~ [ linux-6.8.12 ] ~ [ linux-6.7.12 ] ~ [ linux-6.6.60 ] ~ [ linux-6.5.13 ] ~ [ linux-6.4.16 ] ~ [ linux-6.3.13 ] ~ [ linux-6.2.16 ] ~ [ linux-6.1.116 ] ~ [ linux-6.0.19 ] ~ [ linux-5.19.17 ] ~ [ linux-5.18.19 ] ~ [ linux-5.17.15 ] ~ [ linux-5.16.20 ] ~ [ linux-5.15.171 ] ~ [ linux-5.14.21 ] ~ [ linux-5.13.19 ] ~ [ linux-5.12.19 ] ~ [ linux-5.11.22 ] ~ [ linux-5.10.229 ] ~ [ linux-5.9.16 ] ~ [ linux-5.8.18 ] ~ [ linux-5.7.19 ] ~ [ linux-5.6.19 ] ~ [ linux-5.5.19 ] ~ [ linux-5.4.285 ] ~ [ linux-5.3.18 ] ~ [ linux-5.2.21 ] ~ [ linux-5.1.21 ] ~ [ linux-5.0.21 ] ~ [ linux-4.20.17 ] ~ [ linux-4.19.323 ] ~ [ linux-4.18.20 ] ~ [ linux-4.17.19 ] ~ [ linux-4.16.18 ] ~ [ linux-4.15.18 ] ~ [ linux-4.14.336 ] ~ [ linux-4.13.16 ] ~ [ linux-4.12.14 ] ~ [ linux-4.11.12 ] ~ [ linux-4.10.17 ] ~ [ linux-4.9.337 ] ~ [ linux-4.4.302 ] ~ [ linux-3.10.108 ] ~ [ linux-2.6.32.71 ] ~ [ linux-2.6.0 ] ~ [ linux-2.4.37.11 ] ~ [ unix-v6-master ] ~ [ ccs-tools-1.8.12 ] ~ [ policy-sample ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

  1 # SPDX-License-Identifier: GPL-2.0-only
  2 include ../../../build/Build.include
  3 
  4 all:
  5 
  6 top_srcdir = ../../../..
  7 include $(top_srcdir)/scripts/subarch.include
  8 ARCH            ?= $(SUBARCH)
  9 
 10 ifeq ($(ARCH),x86)
 11         ARCH_DIR := x86_64
 12 else ifeq ($(ARCH),arm64)
 13         ARCH_DIR := aarch64
 14 else ifeq ($(ARCH),s390)
 15         ARCH_DIR := s390x
 16 else
 17         ARCH_DIR := $(ARCH)
 18 endif
 19 
 20 LIBKVM += lib/assert.c
 21 LIBKVM += lib/elf.c
 22 LIBKVM += lib/guest_modes.c
 23 LIBKVM += lib/io.c
 24 LIBKVM += lib/kvm_util.c
 25 LIBKVM += lib/memstress.c
 26 LIBKVM += lib/guest_sprintf.c
 27 LIBKVM += lib/rbtree.c
 28 LIBKVM += lib/sparsebit.c
 29 LIBKVM += lib/test_util.c
 30 LIBKVM += lib/ucall_common.c
 31 LIBKVM += lib/userfaultfd_util.c
 32 
 33 LIBKVM_STRING += lib/string_override.c
 34 
 35 LIBKVM_x86_64 += lib/x86_64/apic.c
 36 LIBKVM_x86_64 += lib/x86_64/handlers.S
 37 LIBKVM_x86_64 += lib/x86_64/hyperv.c
 38 LIBKVM_x86_64 += lib/x86_64/memstress.c
 39 LIBKVM_x86_64 += lib/x86_64/pmu.c
 40 LIBKVM_x86_64 += lib/x86_64/processor.c
 41 LIBKVM_x86_64 += lib/x86_64/sev.c
 42 LIBKVM_x86_64 += lib/x86_64/svm.c
 43 LIBKVM_x86_64 += lib/x86_64/ucall.c
 44 LIBKVM_x86_64 += lib/x86_64/vmx.c
 45 
 46 LIBKVM_aarch64 += lib/aarch64/gic.c
 47 LIBKVM_aarch64 += lib/aarch64/gic_v3.c
 48 LIBKVM_aarch64 += lib/aarch64/gic_v3_its.c
 49 LIBKVM_aarch64 += lib/aarch64/handlers.S
 50 LIBKVM_aarch64 += lib/aarch64/processor.c
 51 LIBKVM_aarch64 += lib/aarch64/spinlock.c
 52 LIBKVM_aarch64 += lib/aarch64/ucall.c
 53 LIBKVM_aarch64 += lib/aarch64/vgic.c
 54 
 55 LIBKVM_s390x += lib/s390x/diag318_test_handler.c
 56 LIBKVM_s390x += lib/s390x/processor.c
 57 LIBKVM_s390x += lib/s390x/ucall.c
 58 
 59 LIBKVM_riscv += lib/riscv/handlers.S
 60 LIBKVM_riscv += lib/riscv/processor.c
 61 LIBKVM_riscv += lib/riscv/ucall.c
 62 
 63 # Non-compiled test targets
 64 TEST_PROGS_x86_64 += x86_64/nx_huge_pages_test.sh
 65 
 66 # Compiled test targets
 67 TEST_GEN_PROGS_x86_64 = x86_64/cpuid_test
 68 TEST_GEN_PROGS_x86_64 += x86_64/cr4_cpuid_sync_test
 69 TEST_GEN_PROGS_x86_64 += x86_64/dirty_log_page_splitting_test
 70 TEST_GEN_PROGS_x86_64 += x86_64/get_msr_index_features
 71 TEST_GEN_PROGS_x86_64 += x86_64/exit_on_emulation_failure_test
 72 TEST_GEN_PROGS_x86_64 += x86_64/fix_hypercall_test
 73 TEST_GEN_PROGS_x86_64 += x86_64/hwcr_msr_test
 74 TEST_GEN_PROGS_x86_64 += x86_64/hyperv_clock
 75 TEST_GEN_PROGS_x86_64 += x86_64/hyperv_cpuid
 76 TEST_GEN_PROGS_x86_64 += x86_64/hyperv_evmcs
 77 TEST_GEN_PROGS_x86_64 += x86_64/hyperv_extended_hypercalls
 78 TEST_GEN_PROGS_x86_64 += x86_64/hyperv_features
 79 TEST_GEN_PROGS_x86_64 += x86_64/hyperv_ipi
 80 TEST_GEN_PROGS_x86_64 += x86_64/hyperv_svm_test
 81 TEST_GEN_PROGS_x86_64 += x86_64/hyperv_tlb_flush
 82 TEST_GEN_PROGS_x86_64 += x86_64/kvm_clock_test
 83 TEST_GEN_PROGS_x86_64 += x86_64/kvm_pv_test
 84 TEST_GEN_PROGS_x86_64 += x86_64/monitor_mwait_test
 85 TEST_GEN_PROGS_x86_64 += x86_64/nested_exceptions_test
 86 TEST_GEN_PROGS_x86_64 += x86_64/platform_info_test
 87 TEST_GEN_PROGS_x86_64 += x86_64/pmu_counters_test
 88 TEST_GEN_PROGS_x86_64 += x86_64/pmu_event_filter_test
 89 TEST_GEN_PROGS_x86_64 += x86_64/private_mem_conversions_test
 90 TEST_GEN_PROGS_x86_64 += x86_64/private_mem_kvm_exits_test
 91 TEST_GEN_PROGS_x86_64 += x86_64/set_boot_cpu_id
 92 TEST_GEN_PROGS_x86_64 += x86_64/set_sregs_test
 93 TEST_GEN_PROGS_x86_64 += x86_64/smaller_maxphyaddr_emulation_test
 94 TEST_GEN_PROGS_x86_64 += x86_64/smm_test
 95 TEST_GEN_PROGS_x86_64 += x86_64/state_test
 96 TEST_GEN_PROGS_x86_64 += x86_64/vmx_preemption_timer_test
 97 TEST_GEN_PROGS_x86_64 += x86_64/svm_vmcall_test
 98 TEST_GEN_PROGS_x86_64 += x86_64/svm_int_ctl_test
 99 TEST_GEN_PROGS_x86_64 += x86_64/svm_nested_shutdown_test
100 TEST_GEN_PROGS_x86_64 += x86_64/svm_nested_soft_inject_test
101 TEST_GEN_PROGS_x86_64 += x86_64/tsc_scaling_sync
102 TEST_GEN_PROGS_x86_64 += x86_64/sync_regs_test
103 TEST_GEN_PROGS_x86_64 += x86_64/ucna_injection_test
104 TEST_GEN_PROGS_x86_64 += x86_64/userspace_io_test
105 TEST_GEN_PROGS_x86_64 += x86_64/userspace_msr_exit_test
106 TEST_GEN_PROGS_x86_64 += x86_64/vmx_apic_access_test
107 TEST_GEN_PROGS_x86_64 += x86_64/vmx_close_while_nested_test
108 TEST_GEN_PROGS_x86_64 += x86_64/vmx_dirty_log_test
109 TEST_GEN_PROGS_x86_64 += x86_64/vmx_exception_with_invalid_guest_state
110 TEST_GEN_PROGS_x86_64 += x86_64/vmx_msrs_test
111 TEST_GEN_PROGS_x86_64 += x86_64/vmx_invalid_nested_guest_state
112 TEST_GEN_PROGS_x86_64 += x86_64/vmx_set_nested_state_test
113 TEST_GEN_PROGS_x86_64 += x86_64/vmx_tsc_adjust_test
114 TEST_GEN_PROGS_x86_64 += x86_64/vmx_nested_tsc_scaling_test
115 TEST_GEN_PROGS_x86_64 += x86_64/apic_bus_clock_test
116 TEST_GEN_PROGS_x86_64 += x86_64/xapic_ipi_test
117 TEST_GEN_PROGS_x86_64 += x86_64/xapic_state_test
118 TEST_GEN_PROGS_x86_64 += x86_64/xcr0_cpuid_test
119 TEST_GEN_PROGS_x86_64 += x86_64/xss_msr_test
120 TEST_GEN_PROGS_x86_64 += x86_64/debug_regs
121 TEST_GEN_PROGS_x86_64 += x86_64/tsc_msrs_test
122 TEST_GEN_PROGS_x86_64 += x86_64/vmx_pmu_caps_test
123 TEST_GEN_PROGS_x86_64 += x86_64/xen_shinfo_test
124 TEST_GEN_PROGS_x86_64 += x86_64/xen_vmcall_test
125 TEST_GEN_PROGS_x86_64 += x86_64/sev_init2_tests
126 TEST_GEN_PROGS_x86_64 += x86_64/sev_migrate_tests
127 TEST_GEN_PROGS_x86_64 += x86_64/sev_smoke_test
128 TEST_GEN_PROGS_x86_64 += x86_64/amx_test
129 TEST_GEN_PROGS_x86_64 += x86_64/max_vcpuid_cap_test
130 TEST_GEN_PROGS_x86_64 += x86_64/triple_fault_event_test
131 TEST_GEN_PROGS_x86_64 += x86_64/recalc_apic_map_test
132 TEST_GEN_PROGS_x86_64 += access_tracking_perf_test
133 TEST_GEN_PROGS_x86_64 += coalesced_io_test
134 TEST_GEN_PROGS_x86_64 += demand_paging_test
135 TEST_GEN_PROGS_x86_64 += dirty_log_test
136 TEST_GEN_PROGS_x86_64 += dirty_log_perf_test
137 TEST_GEN_PROGS_x86_64 += guest_memfd_test
138 TEST_GEN_PROGS_x86_64 += guest_print_test
139 TEST_GEN_PROGS_x86_64 += hardware_disable_test
140 TEST_GEN_PROGS_x86_64 += kvm_create_max_vcpus
141 TEST_GEN_PROGS_x86_64 += kvm_page_table_test
142 TEST_GEN_PROGS_x86_64 += max_guest_memory_test
143 TEST_GEN_PROGS_x86_64 += memslot_modification_stress_test
144 TEST_GEN_PROGS_x86_64 += memslot_perf_test
145 TEST_GEN_PROGS_x86_64 += rseq_test
146 TEST_GEN_PROGS_x86_64 += set_memory_region_test
147 TEST_GEN_PROGS_x86_64 += steal_time
148 TEST_GEN_PROGS_x86_64 += kvm_binary_stats_test
149 TEST_GEN_PROGS_x86_64 += system_counter_offset_test
150 TEST_GEN_PROGS_x86_64 += pre_fault_memory_test
151 
152 # Compiled outputs used by test targets
153 TEST_GEN_PROGS_EXTENDED_x86_64 += x86_64/nx_huge_pages_test
154 
155 TEST_GEN_PROGS_aarch64 += aarch64/aarch32_id_regs
156 TEST_GEN_PROGS_aarch64 += aarch64/arch_timer_edge_cases
157 TEST_GEN_PROGS_aarch64 += aarch64/debug-exceptions
158 TEST_GEN_PROGS_aarch64 += aarch64/hypercalls
159 TEST_GEN_PROGS_aarch64 += aarch64/page_fault_test
160 TEST_GEN_PROGS_aarch64 += aarch64/psci_test
161 TEST_GEN_PROGS_aarch64 += aarch64/set_id_regs
162 TEST_GEN_PROGS_aarch64 += aarch64/smccc_filter
163 TEST_GEN_PROGS_aarch64 += aarch64/vcpu_width_config
164 TEST_GEN_PROGS_aarch64 += aarch64/vgic_init
165 TEST_GEN_PROGS_aarch64 += aarch64/vgic_irq
166 TEST_GEN_PROGS_aarch64 += aarch64/vgic_lpi_stress
167 TEST_GEN_PROGS_aarch64 += aarch64/vpmu_counter_access
168 TEST_GEN_PROGS_aarch64 += aarch64/no-vgic-v3
169 TEST_GEN_PROGS_aarch64 += access_tracking_perf_test
170 TEST_GEN_PROGS_aarch64 += arch_timer
171 TEST_GEN_PROGS_aarch64 += coalesced_io_test
172 TEST_GEN_PROGS_aarch64 += demand_paging_test
173 TEST_GEN_PROGS_aarch64 += dirty_log_test
174 TEST_GEN_PROGS_aarch64 += dirty_log_perf_test
175 TEST_GEN_PROGS_aarch64 += guest_print_test
176 TEST_GEN_PROGS_aarch64 += get-reg-list
177 TEST_GEN_PROGS_aarch64 += kvm_create_max_vcpus
178 TEST_GEN_PROGS_aarch64 += kvm_page_table_test
179 TEST_GEN_PROGS_aarch64 += memslot_modification_stress_test
180 TEST_GEN_PROGS_aarch64 += memslot_perf_test
181 TEST_GEN_PROGS_aarch64 += rseq_test
182 TEST_GEN_PROGS_aarch64 += set_memory_region_test
183 TEST_GEN_PROGS_aarch64 += steal_time
184 TEST_GEN_PROGS_aarch64 += kvm_binary_stats_test
185 
186 TEST_GEN_PROGS_s390x = s390x/memop
187 TEST_GEN_PROGS_s390x += s390x/resets
188 TEST_GEN_PROGS_s390x += s390x/sync_regs_test
189 TEST_GEN_PROGS_s390x += s390x/tprot
190 TEST_GEN_PROGS_s390x += s390x/cmma_test
191 TEST_GEN_PROGS_s390x += s390x/debug_test
192 TEST_GEN_PROGS_s390x += s390x/shared_zeropage_test
193 TEST_GEN_PROGS_s390x += s390x/ucontrol_test
194 TEST_GEN_PROGS_s390x += demand_paging_test
195 TEST_GEN_PROGS_s390x += dirty_log_test
196 TEST_GEN_PROGS_s390x += guest_print_test
197 TEST_GEN_PROGS_s390x += kvm_create_max_vcpus
198 TEST_GEN_PROGS_s390x += kvm_page_table_test
199 TEST_GEN_PROGS_s390x += rseq_test
200 TEST_GEN_PROGS_s390x += set_memory_region_test
201 TEST_GEN_PROGS_s390x += kvm_binary_stats_test
202 
203 TEST_GEN_PROGS_riscv += riscv/sbi_pmu_test
204 TEST_GEN_PROGS_riscv += riscv/ebreak_test
205 TEST_GEN_PROGS_riscv += arch_timer
206 TEST_GEN_PROGS_riscv += coalesced_io_test
207 TEST_GEN_PROGS_riscv += demand_paging_test
208 TEST_GEN_PROGS_riscv += dirty_log_test
209 TEST_GEN_PROGS_riscv += get-reg-list
210 TEST_GEN_PROGS_riscv += guest_print_test
211 TEST_GEN_PROGS_riscv += kvm_binary_stats_test
212 TEST_GEN_PROGS_riscv += kvm_create_max_vcpus
213 TEST_GEN_PROGS_riscv += kvm_page_table_test
214 TEST_GEN_PROGS_riscv += set_memory_region_test
215 TEST_GEN_PROGS_riscv += steal_time
216 
217 SPLIT_TESTS += arch_timer
218 SPLIT_TESTS += get-reg-list
219 
220 TEST_PROGS += $(TEST_PROGS_$(ARCH_DIR))
221 TEST_GEN_PROGS += $(TEST_GEN_PROGS_$(ARCH_DIR))
222 TEST_GEN_PROGS_EXTENDED += $(TEST_GEN_PROGS_EXTENDED_$(ARCH_DIR))
223 LIBKVM += $(LIBKVM_$(ARCH_DIR))
224 
225 OVERRIDE_TARGETS = 1
226 
227 # lib.mak defines $(OUTPUT), prepends $(OUTPUT)/ to $(TEST_GEN_PROGS), and most
228 # importantly defines, i.e. overwrites, $(CC) (unless `make -e` or `make CC=`,
229 # which causes the environment variable to override the makefile).
230 include ../lib.mk
231 
232 INSTALL_HDR_PATH = $(top_srcdir)/usr
233 LINUX_HDR_PATH = $(INSTALL_HDR_PATH)/include/
234 LINUX_TOOL_INCLUDE = $(top_srcdir)/tools/include
235 ifeq ($(ARCH),x86_64)
236 LINUX_TOOL_ARCH_INCLUDE = $(top_srcdir)/tools/arch/x86/include
237 else
238 LINUX_TOOL_ARCH_INCLUDE = $(top_srcdir)/tools/arch/$(ARCH)/include
239 endif
240 CFLAGS += -Wall -Wstrict-prototypes -Wuninitialized -O2 -g -std=gnu99 \
241         -Wno-gnu-variable-sized-type-not-at-end -MD -MP -DCONFIG_64BIT \
242         -fno-builtin-memcmp -fno-builtin-memcpy \
243         -fno-builtin-memset -fno-builtin-strnlen \
244         -fno-stack-protector -fno-PIE -I$(LINUX_TOOL_INCLUDE) \
245         -I$(LINUX_TOOL_ARCH_INCLUDE) -I$(LINUX_HDR_PATH) -Iinclude \
246         -I$(<D) -Iinclude/$(ARCH_DIR) -I ../rseq -I.. $(EXTRA_CFLAGS) \
247         $(KHDR_INCLUDES)
248 ifeq ($(ARCH),s390)
249         CFLAGS += -march=z10
250 endif
251 ifeq ($(ARCH),x86)
252         CFLAGS += -march=x86-64-v2
253 endif
254 ifeq ($(ARCH),arm64)
255 tools_dir := $(top_srcdir)/tools
256 arm64_tools_dir := $(tools_dir)/arch/arm64/tools/
257 
258 ifneq ($(abs_objdir),)
259 arm64_hdr_outdir := $(abs_objdir)/tools/
260 else
261 arm64_hdr_outdir := $(tools_dir)/
262 endif
263 
264 GEN_HDRS := $(arm64_hdr_outdir)arch/arm64/include/generated/
265 CFLAGS += -I$(GEN_HDRS)
266 
267 $(GEN_HDRS): $(wildcard $(arm64_tools_dir)/*)
268         $(MAKE) -C $(arm64_tools_dir) OUTPUT=$(arm64_hdr_outdir)
269 endif
270 
271 no-pie-option := $(call try-run, echo 'int main(void) { return 0; }' | \
272         $(CC) -Werror $(CFLAGS) -no-pie -x c - -o "$$TMP", -no-pie)
273 
274 # On s390, build the testcases KVM-enabled
275 pgste-option = $(call try-run, echo 'int main(void) { return 0; }' | \
276         $(CC) -Werror -Wl$(comma)--s390-pgste -x c - -o "$$TMP",-Wl$(comma)--s390-pgste)
277 
278 LDLIBS += -ldl
279 LDFLAGS += -pthread $(no-pie-option) $(pgste-option)
280 
281 LIBKVM_C := $(filter %.c,$(LIBKVM))
282 LIBKVM_S := $(filter %.S,$(LIBKVM))
283 LIBKVM_C_OBJ := $(patsubst %.c, $(OUTPUT)/%.o, $(LIBKVM_C))
284 LIBKVM_S_OBJ := $(patsubst %.S, $(OUTPUT)/%.o, $(LIBKVM_S))
285 LIBKVM_STRING_OBJ := $(patsubst %.c, $(OUTPUT)/%.o, $(LIBKVM_STRING))
286 LIBKVM_OBJS = $(LIBKVM_C_OBJ) $(LIBKVM_S_OBJ) $(LIBKVM_STRING_OBJ)
287 SPLIT_TEST_GEN_PROGS := $(patsubst %, $(OUTPUT)/%, $(SPLIT_TESTS))
288 SPLIT_TEST_GEN_OBJ := $(patsubst %, $(OUTPUT)/$(ARCH_DIR)/%.o, $(SPLIT_TESTS))
289 
290 TEST_GEN_OBJ = $(patsubst %, %.o, $(TEST_GEN_PROGS))
291 TEST_GEN_OBJ += $(patsubst %, %.o, $(TEST_GEN_PROGS_EXTENDED))
292 TEST_DEP_FILES = $(patsubst %.o, %.d, $(TEST_GEN_OBJ))
293 TEST_DEP_FILES += $(patsubst %.o, %.d, $(LIBKVM_OBJS))
294 TEST_DEP_FILES += $(patsubst %.o, %.d, $(SPLIT_TEST_GEN_OBJ))
295 -include $(TEST_DEP_FILES)
296 
297 $(shell mkdir -p $(sort $(OUTPUT)/$(ARCH_DIR) $(dir $(LIBKVM_C_OBJ) $(LIBKVM_S_OBJ))))
298 
299 $(filter-out $(SPLIT_TEST_GEN_PROGS), $(TEST_GEN_PROGS)) \
300 $(TEST_GEN_PROGS_EXTENDED): %: %.o
301         $(CC) $(CFLAGS) $(CPPFLAGS) $(LDFLAGS) $(TARGET_ARCH) $< $(LIBKVM_OBJS) $(LDLIBS) -o $@
302 $(TEST_GEN_OBJ): $(OUTPUT)/%.o: %.c
303         $(CC) $(CFLAGS) $(CPPFLAGS) $(TARGET_ARCH) -c $< -o $@
304 
305 $(SPLIT_TEST_GEN_PROGS): $(OUTPUT)/%: $(OUTPUT)/%.o $(OUTPUT)/$(ARCH_DIR)/%.o
306         $(CC) $(CFLAGS) $(CPPFLAGS) $(LDFLAGS) $(TARGET_ARCH) $^ $(LDLIBS) -o $@
307 $(SPLIT_TEST_GEN_OBJ): $(OUTPUT)/$(ARCH_DIR)/%.o: $(ARCH_DIR)/%.c
308         $(CC) $(CFLAGS) $(CPPFLAGS) $(TARGET_ARCH) -c $< -o $@
309 
310 EXTRA_CLEAN += $(GEN_HDRS) \
311                $(LIBKVM_OBJS) \
312                $(SPLIT_TEST_GEN_OBJ) \
313                $(TEST_DEP_FILES) \
314                $(TEST_GEN_OBJ) \
315                cscope.*
316 
317 $(LIBKVM_C_OBJ): $(OUTPUT)/%.o: %.c $(GEN_HDRS)
318         $(CC) $(CFLAGS) $(CPPFLAGS) $(TARGET_ARCH) -c $< -o $@
319 
320 $(LIBKVM_S_OBJ): $(OUTPUT)/%.o: %.S $(GEN_HDRS)
321         $(CC) $(CFLAGS) $(CPPFLAGS) $(TARGET_ARCH) -c $< -o $@
322 
323 # Compile the string overrides as freestanding to prevent the compiler from
324 # generating self-referential code, e.g. without "freestanding" the compiler may
325 # "optimize" memcmp() by invoking memcmp(), thus causing infinite recursion.
326 $(LIBKVM_STRING_OBJ): $(OUTPUT)/%.o: %.c
327         $(CC) $(CFLAGS) $(CPPFLAGS) $(TARGET_ARCH) -c -ffreestanding $< -o $@
328 
329 $(shell mkdir -p $(sort $(dir $(TEST_GEN_PROGS))))
330 $(SPLIT_TEST_GEN_OBJ): $(GEN_HDRS)
331 $(TEST_GEN_PROGS): $(LIBKVM_OBJS)
332 $(TEST_GEN_PROGS_EXTENDED): $(LIBKVM_OBJS)
333 $(TEST_GEN_OBJ): $(GEN_HDRS)
334 
335 cscope: include_paths = $(LINUX_TOOL_INCLUDE) $(LINUX_HDR_PATH) include lib ..
336 cscope:
337         $(RM) cscope.*
338         (find $(include_paths) -name '*.h' \
339                 -exec realpath --relative-base=$(PWD) {} \;; \
340         find . -name '*.c' \
341                 -exec realpath --relative-base=$(PWD) {} \;) | sort -u > cscope.files
342         cscope -b

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

kernel.org | git.kernel.org | LWN.net | Project Home | SVN repository | Mail admin

Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.

sflogo.php