mirror of
				https://github.com/eledio-devices/thirdparty-littlefs.git
				synced 2025-10-31 00:32:38 +01:00 
			
		
		
		
	This is caused by dir->head not being updated when dir->m.pair may be. This causes the two to fall out of sync and later dir rewinds to fail. This bug stems all the way back from the first commits of littlefs, so it's surprising it has avoided detection for this long. Perhaps because lfs_dir_rewind is not used often.
		
			
				
	
	
		
			88 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Makefile
		
	
	
	
	
	
			
		
		
	
	
			88 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Makefile
		
	
	
	
	
	
| TARGET = lfs.a
 | |
| ifneq ($(wildcard test.c main.c),)
 | |
| override TARGET = lfs
 | |
| endif
 | |
| 
 | |
| CC ?= gcc
 | |
| AR ?= ar
 | |
| SIZE ?= size
 | |
| 
 | |
| SRC += $(wildcard *.c emubd/*.c)
 | |
| OBJ := $(SRC:.c=.o)
 | |
| DEP := $(SRC:.c=.d)
 | |
| ASM := $(SRC:.c=.s)
 | |
| 
 | |
| TEST := $(patsubst tests/%.sh,%,$(wildcard tests/test_*))
 | |
| 
 | |
| SHELL = /bin/bash -o pipefail
 | |
| 
 | |
| ifdef DEBUG
 | |
| override CFLAGS += -O0 -g3
 | |
| else
 | |
| override CFLAGS += -Os
 | |
| endif
 | |
| ifdef WORD
 | |
| override CFLAGS += -m$(WORD)
 | |
| endif
 | |
| ifdef TRACE
 | |
| override CFLAGS += -DLFS_YES_TRACE
 | |
| endif
 | |
| override CFLAGS += -I.
 | |
| override CFLAGS += -std=c99 -Wall -pedantic
 | |
| override CFLAGS += -Wextra -Wshadow -Wjump-misses-init -Wundef
 | |
| # Remove missing-field-initializers because of GCC bug
 | |
| override CFLAGS += -Wno-missing-field-initializers
 | |
| 
 | |
| 
 | |
| all: $(TARGET)
 | |
| 
 | |
| asm: $(ASM)
 | |
| 
 | |
| size: $(OBJ)
 | |
| 	$(SIZE) -t $^
 | |
| 
 | |
| .SUFFIXES:
 | |
| test: \
 | |
| 	test_format \
 | |
| 	test_dirs \
 | |
| 	test_files \
 | |
| 	test_seek \
 | |
| 	test_truncate \
 | |
| 	test_entries \
 | |
| 	test_interspersed \
 | |
| 	test_alloc \
 | |
| 	test_paths \
 | |
| 	test_attrs \
 | |
| 	test_move \
 | |
| 	test_orphan \
 | |
| 	test_relocations \
 | |
| 	test_corrupt
 | |
| 	@rm test.c
 | |
| test_%: tests/test_%.sh
 | |
| 
 | |
| ifdef QUIET
 | |
| 	@./$< | sed -nu '/^[-=]/p'
 | |
| else
 | |
| 	./$<
 | |
| endif
 | |
| 
 | |
| -include $(DEP)
 | |
| 
 | |
| lfs: $(OBJ)
 | |
| 	$(CC) $(CFLAGS) $^ $(LFLAGS) -o $@
 | |
| 
 | |
| %.a: $(OBJ)
 | |
| 	$(AR) rcs $@ $^
 | |
| 
 | |
| %.o: %.c
 | |
| 	$(CC) -c -MMD $(CFLAGS) $< -o $@
 | |
| 
 | |
| %.s: %.c
 | |
| 	$(CC) -S $(CFLAGS) $< -o $@
 | |
| 
 | |
| clean:
 | |
| 	rm -f $(TARGET)
 | |
| 	rm -f $(OBJ)
 | |
| 	rm -f $(DEP)
 | |
| 	rm -f $(ASM)
 |