diff --git a/Makefile b/Makefile index 4821c34..38ba861 100644 --- a/Makefile +++ b/Makefile @@ -15,7 +15,7 @@ BOCHS_RUNNER ?= ${FAIL_BIN}/bochs-experiment-runner EXPERIMENTS := $(patsubst %.c,%,$(shell echo *.c)) -CFLAGS := -I. -include arch/${ARCH}/lib.c -O2 -std=c11 +CFLAGS += -I. -include arch/${ARCH}/lib.c -O2 -std=c11 include arch/${ARCH}.mk diff --git a/arch/posix.mk b/arch/posix.mk new file mode 100644 index 0000000..3ebd5d2 --- /dev/null +++ b/arch/posix.mk @@ -0,0 +1,28 @@ +FAIL_DOWNLOAD_URL = NOTAVAILABLE + +CFLAGS += +LDFLAGS += + +################################################################ +# Build Targets +${BUILD_DIR}/%/system.o: %.c + mkdir -p $(shell dirname $@) + ${CC} ${CFLAGS} -c $< -o $@ + +${BUILD_DIR}/%/system.elf: ${BUILD_DIR}/%/system.o + ${CC} ${LDFLAGS} $< -o $@ + +${BUILD_DIR}/%/trace.pb: ${BUILD_DIR}/%/system.elf + $< + +define arch-make-targets + +build-$1: ${BUILD_DIR}/$1/system.elf + +trace-$1: ${BUILD_DIR}/$1/trace.pb + + +endef + + + diff --git a/arch/posix/lib.c b/arch/posix/lib.c new file mode 100644 index 0000000..31d1d69 --- /dev/null +++ b/arch/posix/lib.c @@ -0,0 +1,7 @@ +#include + +#define MARKER(str) printf(QUOTE(str) "\n") + +#define POSIX_PRINTF(...) printf(__VA_ARGS__) + +#define MAIN() int main(int argc, char** argv) diff --git a/arch/riscv32.mk b/arch/riscv32.mk index f5f6900..793b97e 100644 --- a/arch/riscv32.mk +++ b/arch/riscv32.mk @@ -1,4 +1,4 @@ -FAIL_DOWNLOAD_URL = ${FAIL_DOWNLOAD_BASE}?job=build-riscv-generic-tools%3A+%5Briscv32%5D +FAIL_DOWNLOAD_URL = ${FAIL_DOWNLOAD_BASE}?job=build-riscv-generic-tools%3A+%5Briscv32%2C+true%5D include arch/riscv-common.mk diff --git a/arch/riscv64.mk b/arch/riscv64.mk index dc97817..5c89395 100644 --- a/arch/riscv64.mk +++ b/arch/riscv64.mk @@ -1,4 +1,5 @@ -FAIL_DOWNLOAD_URL = ${FAIL_DOWNLOAD_BASE}?job=build-riscv-generic-tools%3A+%5Briscv64%5D +FAIL_DOWNLOAD_URL = ${FAIL_DOWNLOAD_BASE}?job=build-riscv-generic-tools%3A+%5Briscv64%2C+true%5D + include arch/riscv-common.mk diff --git a/lib.c b/lib.c index 9c248f8..9e0345d 100644 --- a/lib.c +++ b/lib.c @@ -6,19 +6,27 @@ #define __QUOTE(x) #x #define QUOTE(x) __QUOTE(x) +#ifndef MARKER #define MARKER(str) __asm__ volatile(QUOTE(str) ":" \ : /* no inputs */ \ : /* no outputs */ \ : "memory", ARCH_ASM_CLOBBER_ALL \ ) - -#ifndef DEBUG -#define MAIN() void os_main(void) -#define PRINT_DEBUG(...) -#else -#include -#define MARKER(str) printf(QUOTE(str) "\n") -#define DEBUG 1 -#define PRINT_DEBUG(...) printf(__VA_ARGS__) -#define MAIN() void main(int argc, char** argv) #endif + +#ifndef MAIN +#define MAIN() void os_main(void) +#endif + +#ifndef POSIX_PRINTF +#define POSIX_PRINTF(...) +#endif + + +typedef __UINT8_TYPE__ uint8_t; +typedef __UINT16_TYPE__ uint16_t; +typedef __UINT32_TYPE__ uint32_t; + +typedef __INT8_TYPE__ int8_t; +typedef __INT16_TYPE__ int16_t; +typedef __INT32_TYPE__ int32_t; diff --git a/main.c b/main.c index 45834ef..ffb2ed4 100644 --- a/main.c +++ b/main.c @@ -12,10 +12,13 @@ MAIN() { } MARKER(stop_trace); + POSIX_PRINTF("SUM: %d\n", sum); + if (sum != 1270) - MARKER(fail_marker); + MARKER(fail_marker); else MARKER(ok_marker); + }