提交 eab5dac8 创建 作者: Nickolai Zeldovich's avatar Nickolai Zeldovich

keep .S files around

上级 71d0a8c6
......@@ -51,10 +51,15 @@ $(O)/%.o: %.c
$(Q)mkdir -p $(@D)
$(Q)$(CC) $(CFLAGS) -c -o $@ $<
$(O)/%.o: %.cc
$(O)/%.S: %.cc
@echo " CXX $@"
$(Q)mkdir -p $(@D)
$(Q)$(CXX) $(CXXFLAGS) -c -o $@ $<
$(Q)$(CXX) $(CXXFLAGS) -S -o $@ $<
$(O)/%.o: $(O)/%.S
@echo " AS $@"
$(Q)mkdir -p $(@D)
$(Q)$(CC) $(ASFLAGS) -c -o $@ $<
$(O)/%.o: %.S
@echo " CC $@"
......@@ -70,7 +75,7 @@ $(O)/fs.img: $(O)/tools/mkfs README $(UPROGS)
@echo " MKFS $@"
$(Q)$(O)/tools/mkfs $@ README $(UPROGS)
.PRECIOUS: $(O)/%.o
.PRECIOUS: $(O)/%.o $(O)/%.S
.PHONY: clean qemu gdb rsync
##
......
#pragma once
#define E_RETRY -3
......@@ -9,6 +9,7 @@
#include "syscall.h"
#include "cpu.hh"
#include "kmtrace.hh"
#include "errno.h"
extern "C" int __uaccess_mem(void* dst, const void* src, u64 size);
extern "C" int __uaccess_str(char* dst, const char* src, u64 size);
......@@ -83,6 +84,7 @@ syscall(u64 a0, u64 a1, u64 a2, u64 a3, u64 a4, u64 num)
u64 r;
mt_ascope ascope("syscall(%lx,%lx,%lx,%lx,%lx,%lx)", num, a0, a1, a2, a3, a4);
retry:
if(num < SYS_ncount && syscalls[num]) {
mtstart(syscalls[num], myproc());
mtrec();
......@@ -95,5 +97,7 @@ syscall(u64 a0, u64 a1, u64 a2, u64 a3, u64 a4, u64 num)
r = -1;
}
if (r == E_RETRY)
goto retry;
return r;
}
$(O)/lib/%.o: CFLAGS:=$(CFLAGS) -DXV6_USER
$(O)/lib/%.o: CXXFLAGS:=$(CXXFLAGS) -DXV6_USER
$(O)/lib/%.S: CFLAGS:=$(CFLAGS) -DXV6_USER
$(O)/lib/%.S: CXXFLAGS:=$(CXXFLAGS) -DXV6_USER
ULIB = ulib.o usys.o printf.o umalloc.o uthread.o fmt.o stream.o ipc.o \
threads.o crt.o wqlib.o wquser.o perf.o wqalloc.o
......
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论