56 lines · plain
1# SPDX-License-Identifier: GPL-2.02 3# Memblock simulator requires AddressSanitizer (libasan) and liburcu development4# packages installed5CFLAGS += -I. -I../../include -Wall -O2 -fsanitize=address \6 -fsanitize=undefined -D CONFIG_PHYS_ADDR_T_64BIT7LDFLAGS += -fsanitize=address -fsanitize=undefined8TARGETS = main9TEST_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.o11DEP_OFILES = memblock.o lib/slab.o mmzone.o slab.o cmdline.o12OFILES = main.o $(DEP_OFILES) $(TEST_OFILES)13EXTR_SRC = ../../../mm/memblock.c14 15ifeq ($(BUILD), 32)16 CFLAGS += -m3217 LDFLAGS += -m3218endif19 20# Process user parameters21include scripts/Makefile.include22 23main: $(OFILES)24 25$(OFILES): include26 27include: ../../../include/linux/memblock.h ../../include/linux/*.h \28 ../../include/asm/*.h29 30 @mkdir -p linux31 test -L linux/memblock.h || ln -s ../../../../include/linux/memblock.h linux/memblock.h32 test -L asm/asm.h || ln -s ../../../arch/x86/include/asm/asm.h asm/asm.h33 test -L asm/cmpxchg.h || ln -s ../../../arch/x86/include/asm/cmpxchg.h asm/cmpxchg.h34 35memblock.c: $(EXTR_SRC)36 test -L memblock.c || ln -s $(EXTR_SRC) memblock.c37 38clean:39 $(RM) $(TARGETS) $(OFILES) linux/memblock.h memblock.c asm/asm.h asm/cmpxchg.h40 41help:42 @echo 'Memblock simulator'43 @echo ''44 @echo 'Available targets:'45 @echo ' main - Build the memblock simulator'46 @echo ' clean - Remove generated files and symlinks in the directory'47 @echo ''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'52 53vpath %.c ../../lib54 55.PHONY: clean include help56