Fixed Clang testing in CI, removed override vars in Makefile
Two flags introduced: -fcallgraph-info=su for stack analysis, and -ftrack-macro-expansions=0 for cleaner prettyassert.py warnings, are unfortunately not supported in Clang. The override vars in the Makefile meant it wasn't actually possible to remove these flags for Clang testing, so this commit changes those vars to normal, non-overriding vars. This means `make CFLAGS=-Werror` and `CFLAGS=-Werror make` behave _very_ differently, but this is just an unfortunate quirk of make that needs to be worked around.
This commit is contained in:
@@ -67,91 +67,92 @@ BENCH_GCDA := $(BENCH_BAC:%.b.a.c=%.b.a.gcda)
|
||||
BENCH_PERF := $(BENCH_RUNNER:%=%.perf)
|
||||
BENCH_TRACE := $(BENCH_RUNNER:%=%.trace)
|
||||
|
||||
CFLAGS += -fcallgraph-info=su
|
||||
CFLAGS += -g3
|
||||
CFLAGS += -I.
|
||||
CFLAGS += -std=c99 -Wall -Wextra -pedantic
|
||||
CFLAGS += -ftrack-macro-expansion=0
|
||||
ifdef DEBUG
|
||||
override CFLAGS += -O0
|
||||
CFLAGS += -O0
|
||||
else
|
||||
override CFLAGS += -Os
|
||||
CFLAGS += -Os
|
||||
endif
|
||||
ifdef TRACE
|
||||
override CFLAGS += -DLFS_YES_TRACE
|
||||
CFLAGS += -DLFS_YES_TRACE
|
||||
endif
|
||||
override CFLAGS += -g3
|
||||
override CFLAGS += -I.
|
||||
override CFLAGS += -std=c99 -Wall -Wextra -pedantic
|
||||
override CFLAGS += -ftrack-macro-expansion=0
|
||||
ifdef YES_COV
|
||||
override CFLAGS += --coverage
|
||||
CFLAGS += --coverage
|
||||
endif
|
||||
ifdef YES_PERF
|
||||
override CFLAGS += -fno-omit-frame-pointer
|
||||
CFLAGS += -fno-omit-frame-pointer
|
||||
endif
|
||||
ifdef YES_PERFBD
|
||||
override CFLAGS += -fno-omit-frame-pointer
|
||||
CFLAGS += -fno-omit-frame-pointer
|
||||
endif
|
||||
|
||||
ifdef VERBOSE
|
||||
override CODEFLAGS += -v
|
||||
override DATAFLAGS += -v
|
||||
override STACKFLAGS += -v
|
||||
override STRUCTFLAGS += -v
|
||||
override COVFLAGS += -v
|
||||
override PERFFLAGS += -v
|
||||
override PERFBDFLAGS += -v
|
||||
CODEFLAGS += -v
|
||||
DATAFLAGS += -v
|
||||
STACKFLAGS += -v
|
||||
STRUCTFLAGS += -v
|
||||
COVFLAGS += -v
|
||||
PERFFLAGS += -v
|
||||
PERFBDFLAGS += -v
|
||||
endif
|
||||
# forward -j flag
|
||||
override PERFFLAGS += $(filter -j%,$(MAKEFLAGS))
|
||||
override PERFBDFLAGS += $(filter -j%,$(MAKEFLAGS))
|
||||
PERFFLAGS += $(filter -j%,$(MAKEFLAGS))
|
||||
PERFBDFLAGS += $(filter -j%,$(MAKEFLAGS))
|
||||
ifneq ($(NM),nm)
|
||||
override CODEFLAGS += --nm-path="$(NM)"
|
||||
override DATAFLAGS += --nm-path="$(NM)"
|
||||
CODEFLAGS += --nm-path="$(NM)"
|
||||
DATAFLAGS += --nm-path="$(NM)"
|
||||
endif
|
||||
ifneq ($(OBJDUMP),objdump)
|
||||
override CODEFLAGS += --objdump-path="$(OBJDUMP)"
|
||||
override DATAFLAGS += --objdump-path="$(OBJDUMP)"
|
||||
override STRUCTFLAGS += --objdump-path="$(OBJDUMP)"
|
||||
override PERFFLAGS += --objdump-path="$(OBJDUMP)"
|
||||
override PERFBDFLAGS += --objdump-path="$(OBJDUMP)"
|
||||
CODEFLAGS += --objdump-path="$(OBJDUMP)"
|
||||
DATAFLAGS += --objdump-path="$(OBJDUMP)"
|
||||
STRUCTFLAGS += --objdump-path="$(OBJDUMP)"
|
||||
PERFFLAGS += --objdump-path="$(OBJDUMP)"
|
||||
PERFBDFLAGS += --objdump-path="$(OBJDUMP)"
|
||||
endif
|
||||
ifneq ($(PERF),perf)
|
||||
override PERFFLAGS += --perf-path="$(PERF)"
|
||||
PERFFLAGS += --perf-path="$(PERF)"
|
||||
endif
|
||||
|
||||
override TESTFLAGS += -b
|
||||
override BENCHFLAGS += -b
|
||||
TESTFLAGS += -b
|
||||
BENCHFLAGS += -b
|
||||
# forward -j flag
|
||||
override TESTFLAGS += $(filter -j%,$(MAKEFLAGS))
|
||||
override BENCHFLAGS += $(filter -j%,$(MAKEFLAGS))
|
||||
TESTFLAGS += $(filter -j%,$(MAKEFLAGS))
|
||||
BENCHFLAGS += $(filter -j%,$(MAKEFLAGS))
|
||||
ifdef YES_PERF
|
||||
override TESTFLAGS += -p$(TEST_PERF)
|
||||
override BENCHFLAGS += -p$(BENCH_PERF)
|
||||
TESTFLAGS += -p$(TEST_PERF)
|
||||
BENCHFLAGS += -p$(BENCH_PERF)
|
||||
endif
|
||||
ifdef YES_PERFBD
|
||||
override TESTFLAGS += -t$(TEST_TRACE) --trace-backtrace --trace-freq=100
|
||||
TESTFLAGS += -t$(TEST_TRACE) --trace-backtrace --trace-freq=100
|
||||
endif
|
||||
ifndef NO_PERFBD
|
||||
override BENCHFLAGS += -t$(BENCH_TRACE) --trace-backtrace --trace-freq=100
|
||||
BENCHFLAGS += -t$(BENCH_TRACE) --trace-backtrace --trace-freq=100
|
||||
endif
|
||||
ifdef VERBOSE
|
||||
override TESTFLAGS += -v
|
||||
override TESTCFLAGS += -v
|
||||
override BENCHFLAGS += -v
|
||||
override BENCHCFLAGS += -v
|
||||
TESTFLAGS += -v
|
||||
TESTCFLAGS += -v
|
||||
BENCHFLAGS += -v
|
||||
BENCHCFLAGS += -v
|
||||
endif
|
||||
ifdef EXEC
|
||||
override TESTFLAGS += --exec="$(EXEC)"
|
||||
override BENCHFLAGS += --exec="$(EXEC)"
|
||||
TESTFLAGS += --exec="$(EXEC)"
|
||||
BENCHFLAGS += --exec="$(EXEC)"
|
||||
endif
|
||||
ifneq ($(GDB),gdb)
|
||||
override TESTFLAGS += --gdb-path="$(GDB)"
|
||||
override BENCHFLAGS += --gdb-path="$(GDB)"
|
||||
TESTFLAGS += --gdb-path="$(GDB)"
|
||||
BENCHFLAGS += --gdb-path="$(GDB)"
|
||||
endif
|
||||
ifneq ($(VALGRIND),valgrind)
|
||||
override TESTFLAGS += --valgrind-path="$(VALGRIND)"
|
||||
override BENCHFLAGS += --valgrind-path="$(VALGRIND)"
|
||||
TESTFLAGS += --valgrind-path="$(VALGRIND)"
|
||||
BENCHFLAGS += --valgrind-path="$(VALGRIND)"
|
||||
endif
|
||||
ifneq ($(PERF),perf)
|
||||
override TESTFLAGS += --perf-path="$(PERF)"
|
||||
override BENCHFLAGS += --perf-path="$(PERF)"
|
||||
TESTFLAGS += --perf-path="$(PERF)"
|
||||
BENCHFLAGS += --perf-path="$(PERF)"
|
||||
endif
|
||||
|
||||
|
||||
@@ -189,13 +190,13 @@ help:
|
||||
## Build the test-runner
|
||||
.PHONY: test-runner build-test
|
||||
ifndef NO_COV
|
||||
test-runner build-test: override CFLAGS+=--coverage
|
||||
test-runner build-test: CFLAGS+=--coverage
|
||||
endif
|
||||
ifdef YES_PERF
|
||||
test-runner build-test: override CFLAGS+=-fno-omit-frame-pointer
|
||||
test-runner build-test: CFLAGS+=-fno-omit-frame-pointer
|
||||
endif
|
||||
ifdef YES_PERFBD
|
||||
test-runner build-test: override CFLAGS+=-fno-omit-frame-pointer
|
||||
test-runner build-test: CFLAGS+=-fno-omit-frame-pointer
|
||||
endif
|
||||
# note we remove some binary dependent files during compilation,
|
||||
# otherwise it's way to easy to end up with outdated results
|
||||
@@ -223,13 +224,13 @@ test-list: test-runner
|
||||
## Build the bench-runner
|
||||
.PHONY: bench-runner build-bench
|
||||
ifdef YES_COV
|
||||
bench-runner build-bench: override CFLAGS+=--coverage
|
||||
bench-runner build-bench: CFLAGS+=--coverage
|
||||
endif
|
||||
ifdef YES_PERF
|
||||
bench-runner build-bench: override CFLAGS+=-fno-omit-frame-pointer
|
||||
bench-runner build-bench: CFLAGS+=-fno-omit-frame-pointer
|
||||
endif
|
||||
ifndef NO_PERFBD
|
||||
bench-runner build-bench: override CFLAGS+=-fno-omit-frame-pointer
|
||||
bench-runner build-bench: CFLAGS+=-fno-omit-frame-pointer
|
||||
endif
|
||||
# note we remove some binary dependent files during compilation,
|
||||
# otherwise it's way to easy to end up with outdated results
|
||||
@@ -361,7 +362,7 @@ $(BUILDDIR)/runners/bench_runner: $(BENCH_OBJ)
|
||||
# our main build rule generates .o, .d, and .ci files, the latter
|
||||
# used for stack analysis
|
||||
$(BUILDDIR)/%.o $(BUILDDIR)/%.ci: %.c
|
||||
$(CC) -c -MMD -fcallgraph-info=su $(CFLAGS) $< -o $(BUILDDIR)/$*.o
|
||||
$(CC) -c -MMD $(CFLAGS) $< -o $(BUILDDIR)/$*.o
|
||||
|
||||
$(BUILDDIR)/%.s: %.c
|
||||
$(CC) -S $(CFLAGS) $< -o $@
|
||||
|
||||
Reference in New Issue
Block a user