1 # SPDX-License-Identifier: GPL-2.0
3 # Memblock simulator requires AddressSanitizer (libasan) and liburcu development
5 CFLAGS
+= -I.
-I..
/..
/include -Wall
-O2
-fsanitize
=address \
6 -fsanitize
=undefined
-D CONFIG_PHYS_ADDR_T_64BIT
7 LDFLAGS
+= -fsanitize
=address
-fsanitize
=undefined
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 tests
/alloc_exact_nid_api.o
11 DEP_OFILES
= memblock.o lib
/slab.o mmzone.o slab.o cmdline.o
12 OFILES
= main.o
$(DEP_OFILES
) $(TEST_OFILES
)
13 EXTR_SRC
= ..
/..
/..
/mm
/memblock.c
20 # Process user parameters
21 include scripts
/Makefile.
include
27 include: ..
/..
/..
/include/linux
/memblock.h ..
/..
/include/linux
/*.h \
31 test -L linux
/memblock.h || ln
-s ..
/..
/..
/..
/include/linux
/memblock.h linux
/memblock.h
32 test -L asm
/asm.h || ln
-s ..
/..
/..
/arch
/x86
/include/asm
/asm.h asm
/asm.h
33 test -L asm
/cmpxchg.h || ln
-s ..
/..
/..
/arch
/x86
/include/asm
/cmpxchg.h asm
/cmpxchg.h
35 memblock.c
: $(EXTR_SRC
)
36 test -L memblock.c || ln
-s
$(EXTR_SRC
) memblock.c
39 $(RM
) $(TARGETS
) $(OFILES
) linux
/memblock.h memblock.c asm
/asm.h asm
/cmpxchg.h
42 @echo
'Memblock simulator'
44 @echo
'Available targets:'
45 @echo
' main - Build the memblock simulator'
46 @echo
' clean - Remove generated files and symlinks in the directory'
48 @echo
'Configuration:'
49 @echo
' make MEMBLOCK_DEBUG=1 - enable memblock_dbg() messages'
50 @echo
' make NUMA=1 - simulate enabled NUMA'
51 @echo
' make 32BIT_PHYS_ADDR_T=1 - Use 32 bit physical addresses'
55 .PHONY
: clean include help