From a550833c70541ca909fc3d07771680b4162b6b41 Mon Sep 17 00:00:00 2001 From: Jakob Kaivo Date: Tue, 11 Jun 2024 11:38:32 -0400 Subject: separate SIGSEGV handler from jkmalloc() so it can be installed without requiring dynamic memory use --- mk/__jkmalloc.d | 1 - mk/__segv.d | 11 +++++++++++ mk/all.mk | 1 + mk/deps.mk | 4 ++++ 4 files changed, 16 insertions(+), 1 deletion(-) create mode 100644 mk/__segv.d (limited to 'mk') diff --git a/mk/__jkmalloc.d b/mk/__jkmalloc.d index 6436cbcf..5d4a1e77 100644 --- a/mk/__jkmalloc.d +++ b/mk/__jkmalloc.d @@ -4,7 +4,6 @@ libc.a(__jkmalloc.o): $(OBJDIR)/__jkmalloc.o $(OBJDIR)/__jkmalloc.o: src/stdlib/__jkmalloc.c $(OBJDIR)/__jkmalloc.o: src/_safety.h -$(OBJDIR)/__jkmalloc.o: src/_forced/sigaction.h $(OBJDIR)/__jkmalloc.o: src/_forced/mmap.h $(OBJDIR)/__jkmalloc.o: src/_forced/munmap.h $(OBJDIR)/__jkmalloc.o: src/_forced/mprotect.h diff --git a/mk/__segv.d b/mk/__segv.d new file mode 100644 index 00000000..ac2464a9 --- /dev/null +++ b/mk/__segv.d @@ -0,0 +1,11 @@ +libc_C.0: libc.a(__segv.o) +libc.a(__segv.o): $(OBJDIR)/__segv.o + @$(AR) $(ARFLAGS) $@ $(OBJDIR)/$% + +$(OBJDIR)/__segv.o: src/signal/__segv.c +$(OBJDIR)/__segv.o: src/_safety.h +$(OBJDIR)/__segv.o: src/_forced/sigaction.h +$(OBJDIR)/__segv.o: src/stdlib/_jkmalloc.h +$(OBJDIR)/__segv.o: + @mkdir -p $(@D) + $(CC) -c -o $@ $(CFLAGS) src/signal/__segv.c diff --git a/mk/all.mk b/mk/all.mk index 66e9e1e0..dcca93a1 100644 --- a/mk/all.mk +++ b/mk/all.mk @@ -372,6 +372,7 @@ include mk/raise.d include mk/__signal_handler.d include mk/__sigsegv.d include mk/__signal_h.d +include mk/__segv.d include mk/frexp.d include mk/erfc.d include mk/rint.d diff --git a/mk/deps.mk b/mk/deps.mk index b32ecabd..a3963021 100644 --- a/mk/deps.mk +++ b/mk/deps.mk @@ -1498,6 +1498,10 @@ all: mk/__signal_h.d mk/__signal_h.d: src/signal/__signal_h.c sh mk/deps.sh src/signal/__signal_h.c +all: mk/__segv.d +mk/__segv.d: src/signal/__segv.c + sh mk/deps.sh src/signal/__segv.c + all: mk/frexp.d mk/frexp.d: src/math/frexp.c sh mk/deps.sh src/math/frexp.c -- cgit v1.2.1