Commit | Line | Data |
---|---|---|
16802e55 KD |
1 | # SPDX-License-Identifier: GPL-2.0 |
2 | ||
3 | # Memblock simulator requires AddressSanitizer (libasan) and liburcu development | |
4 | # packages installed | |
5 | CFLAGS += -I. -I../../include -Wall -O2 -fsanitize=address \ | |
6 | -fsanitize=undefined -D CONFIG_PHYS_ADDR_T_64BIT | |
7 | LDFLAGS += -fsanitize=address -fsanitize=undefined | |
8 | TARGETS = main | |
8f98435d KD |
9 | TEST_OFILES = tests/alloc_nid_api.o tests/alloc_helpers_api.o tests/alloc_api.o \ |
10 | tests/basic_api.o tests/common.o | |
f3252a22 KD |
11 | DEP_OFILES = memblock.o lib/slab.o mmzone.o slab.o |
12 | OFILES = main.o $(DEP_OFILES) $(TEST_OFILES) | |
16802e55 KD |
13 | EXTR_SRC = ../../../mm/memblock.c |
14 | ||
15 | ifeq ($(BUILD), 32) | |
16 | CFLAGS += -m32 | |
17 | LDFLAGS += -m32 | |
18 | endif | |
19 | ||
20 | # Process user parameters | |
21 | include scripts/Makefile.include | |
22 | ||
23 | main: $(OFILES) | |
24 | ||
25 | $(OFILES): include | |
26 | ||
27 | include: ../../../include/linux/memblock.h ../../include/linux/*.h \ | |
28 | ../../include/asm/*.h | |
29 | ||
30 | @mkdir -p linux | |
31 | test -L linux/memblock.h || ln -s ../../../../include/linux/memblock.h linux/memblock.h | |
32 | test -L asm/cmpxchg.h || ln -s ../../../arch/x86/include/asm/cmpxchg.h asm/cmpxchg.h | |
33 | ||
34 | memblock.c: $(EXTR_SRC) | |
35 | test -L memblock.c || ln -s $(EXTR_SRC) memblock.c | |
36 | ||
37 | clean: | |
38 | $(RM) $(TARGETS) $(OFILES) linux/memblock.h memblock.c asm/cmpxchg.h | |
39 | ||
40 | help: | |
41 | @echo 'Memblock simulator' | |
42 | @echo '' | |
43 | @echo 'Available targets:' | |
44 | @echo ' main - Build the memblock simulator' | |
45 | @echo ' clean - Remove generated files and symlinks in the directory' | |
46 | @echo '' | |
47 | @echo 'Configuration:' | |
946dccb3 | 48 | @echo ' make MEMBLOCK_DEBUG=1 - enable memblock_dbg() messages' |
16802e55 | 49 | @echo ' make NUMA=1 - simulate enabled NUMA' |
16802e55 KD |
50 | @echo ' make 32BIT_PHYS_ADDR_T=1 - Use 32 bit physical addresses' |
51 | ||
52 | vpath %.c ../../lib | |
53 | ||
54 | .PHONY: clean include help |