summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorrsc <rsc>2007-08-08 08:38:55 +0000
committerrsc <rsc>2007-08-08 08:38:55 +0000
commit349ee132f0c7060ad04c5667da24d8cb40654be8 (patch)
tree84813d17068b36ecf2169e698020dc9e17c88919
parenta7d18bb6f081e1520af7eeed4e3a633aafc81124 (diff)
downloadxv6-labs-349ee132f0c7060ad04c5667da24d8cb40654be8.tar.gz
xv6-labs-349ee132f0c7060ad04c5667da24d8cb40654be8.tar.bz2
xv6-labs-349ee132f0c7060ad04c5667da24d8cb40654be8.zip
add zombie program
-rw-r--r--Makefile16
-rw-r--r--zombie.c12
2 files changed, 23 insertions, 5 deletions
diff --git a/Makefile b/Makefile
index 22bd1e8..a564add 100644
--- a/Makefile
+++ b/Makefile
@@ -33,7 +33,8 @@ CC = $(TOOLPREFIX)gcc
LD = $(TOOLPREFIX)ld
OBJCOPY = $(TOOLPREFIX)objcopy
OBJDUMP = $(TOOLPREFIX)objdump
-CFLAGS = -fno-builtin -O2 -Wall -MD
+# On newer gcc you may need to add -fno-stack-protector to $(CFLAGS)
+CFLAGS = -fno-builtin -O2 -Wall -MD -fno-stack-protector
AS = $(TOOLPREFIX)gas
xv6.img : bootblock kernel fs.img
@@ -99,19 +100,24 @@ _rm : rm.o $(ULIB)
$(LD) -N -e main -Ttext 0 -o _rm rm.o $(ULIB)
$(OBJDUMP) -S _rm > rm.asm
+_zombie: zombie.o $(ULIB)
+ $(LD) -N -e main -Ttext 0 -o _zombie zombie.o $(ULIB)
+ $(OBJDUMP) -S _zombie > zombie.asm
+
mkfs : mkfs.c fs.h
cc -o mkfs mkfs.c
-fs.img : mkfs usertests _echo _cat README _init _sh _ls _mkdir _rm
- ./mkfs fs.img usertests _echo _cat README _init _sh _ls _mkdir _rm
+UPROGS=usertests _echo _cat _init _sh _ls _mkdir _rm _zombie
+fs.img : mkfs README $(UPROGS)
+ ./mkfs fs.img README $(UPROGS)
-include *.d
clean :
rm -f *.ps *.tex *.dvi *.idx *.aux *.log *.ind *.ilg \
*.o *.d *.asm vectors.S parport.out \
- bootblock kernel xv6.img usertests \
- fs.img _cat _echo _init _sh _ls _rm _mkdir mkfs
+ bootblock kernel xv6.img fs.img mkfs \
+ $(UPROGS)
# make a printout
PRINT = \
diff --git a/zombie.c b/zombie.c
new file mode 100644
index 0000000..0f3b4a3
--- /dev/null
+++ b/zombie.c
@@ -0,0 +1,12 @@
+// Create a zombie process.
+
+#include "types.h"
+#include "stat.h"
+#include "user.h"
+
+int
+main(void)
+{
+ fork();
+ exit();
+}