4cd968ef42
This adds a test of the switch_endian() syscall we added in the previous commit. We test it by calling the endian switch syscall, and then executing some code in the other endian to check everything went as expected. That code checks registers we expect to be maintained are. If the endian switch failed to happen that code sequence will be illegal and cause the test to abort. We then switch back to the original endian, do the same checks and finally write a success message and exit(0). Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
40 lines
839 B
Makefile
40 lines
839 B
Makefile
# Makefile for powerpc selftests
|
|
|
|
# ARCH can be overridden by the user for cross compiling
|
|
ARCH ?= $(shell uname -m)
|
|
ARCH := $(shell echo $(ARCH) | sed -e s/ppc.*/powerpc/)
|
|
|
|
ifeq ($(ARCH),powerpc)
|
|
|
|
GIT_VERSION = $(shell git describe --always --long --dirty || echo "unknown")
|
|
|
|
CC := $(CROSS_COMPILE)$(CC)
|
|
CFLAGS := -Wall -O2 -flto -Wall -Werror -DGIT_VERSION='"$(GIT_VERSION)"' -I$(CURDIR) $(CFLAGS)
|
|
|
|
export CC CFLAGS
|
|
|
|
SUB_DIRS = pmu copyloops mm tm primitives stringloops vphn switch_endian
|
|
|
|
endif
|
|
|
|
all: $(SUB_DIRS)
|
|
|
|
$(SUB_DIRS):
|
|
$(MAKE) -k -C $@ all
|
|
|
|
run_tests: all
|
|
@for TARGET in $(SUB_DIRS); do \
|
|
$(MAKE) -C $$TARGET run_tests; \
|
|
done;
|
|
|
|
clean:
|
|
@for TARGET in $(SUB_DIRS); do \
|
|
$(MAKE) -C $$TARGET clean; \
|
|
done;
|
|
rm -f tags
|
|
|
|
tags:
|
|
find . -name '*.c' -o -name '*.h' | xargs ctags
|
|
|
|
.PHONY: all run_tests clean tags $(SUB_DIRS)
|