From e97c8c469db0aa27985dab2879dc1f14905c7387 Mon Sep 17 00:00:00 2001 From: Nicholas Date: Sat, 20 Nov 2021 11:55:55 -0800 Subject: chore: simplify makefiles --- sys/linux/src/write.c | 2 +- sys/rt/boot.c | 2 ++ sys/rt/stack.c | 6 ++++-- sys/rules.mk | 12 ++++++++---- 4 files changed, 15 insertions(+), 7 deletions(-) (limited to 'sys') diff --git a/sys/linux/src/write.c b/sys/linux/src/write.c index 7863673..4e09d82 100644 --- a/sys/linux/src/write.c +++ b/sys/linux/src/write.c @@ -4,5 +4,5 @@ int sys·write(int fd, uintptr len, void *buf, intptr *ret) { long err = *ret = syscall(·Write, fd, buf, len); - return err; + return error(err); } diff --git a/sys/rt/boot.c b/sys/rt/boot.c index 76f5599..320a596 100644 --- a/sys/rt/boot.c +++ b/sys/rt/boot.c @@ -4,6 +4,7 @@ /* tell linker to go find */ int __libc_start_main(int (*main)(int,char **,char **), int argc, char **argv); +void rt·guardstack(void); #define NAUX 38 static void @@ -19,6 +20,7 @@ rt·init(char **env, char *program) rt·context.sysinfo = aux[AT_SYSINFO]; rt·context.pagesize = aux[AT_PAGESZ]; + rt·guardstack(); } int diff --git a/sys/rt/stack.c b/sys/rt/stack.c index 5ab7a8a..0785760 100644 --- a/sys/rt/stack.c +++ b/sys/rt/stack.c @@ -2,7 +2,8 @@ #include /* unprefixed names determined by gcc */ -uintptr __stack_chk_guard; +uintptr rt·stackguard; +weakalias(rt·stackguard, __stack_chk_guard); void rt·guardstack(void) @@ -11,7 +12,8 @@ rt·guardstack(void) } void -__stack_chk_fail(void) +rt·stackfail(void) { atomic·crash(); } +weakalias(rt·stackfail, __stack_chk_fail); diff --git a/sys/rules.mk b/sys/rules.mk index 3113915..4bba9aa 100644 --- a/sys/rules.mk +++ b/sys/rules.mk @@ -1,9 +1,11 @@ # rules for rt +# -- rt1 initialization -- RT1 := $(OBJ_DIR)/rt/rt1.a RTI := $(OBJ_DIR)/rt/rti.o -# rt2 = user program +# -- rt2 = user program -- RTN := $(OBJ_DIR)/rt/rtn.o RT3 := $(OBJ_DIR)/rt/rt3.a +# -- rt3 finalization -- RUNTIME := $(RT1) $(RTI) $(RTN) $(RT3) RT1_SRC := \ @@ -12,12 +14,14 @@ RT1_SRC := \ $(SYS_DIR)/rt/boot.c\ $(SYS_DIR)/rt/thunk.c +RT1_OBJ := $(filter %.o, $(RT1_SRC:.c=.o)) +RT1_OBJ := $(patsubst $(SYS_DIR)/rt/%, $(OBJ_DIR)/rt/%, $(RT1_OBJ)) + RT3_SRC := \ + $(SYS_DIR)/rt/stack.c\ $(SYS_DIR)/rt/dummy.c\ - $(SYS_DIR)/rt/exit.c\ + $(SYS_DIR)/rt/exit.c -RT1_OBJ := $(filter %.o, $(RT1_SRC:.c=.o)) -RT1_OBJ := $(patsubst $(SYS_DIR)/rt/%, $(OBJ_DIR)/rt/%, $(RT1_OBJ)) RT3_OBJ := $(filter %.o, $(RT3_SRC:.c=.o)) RT3_OBJ := $(patsubst $(SYS_DIR)/rt/%, $(OBJ_DIR)/rt/%, $(RT3_OBJ)) -- cgit v1.2.1