Index: Makefile
===================================================================
--- Makefile (revision 1581708902331ee97e832b4c9189e7bbff9ec789)
+++ Makefile (revision fd608dcf23fddc6d2ba03c8127a3289923af802a)
@@ -31,17 +31,15 @@
CSCOPE = cscope
-STANSE = stanse
+CONFIG = tools/config.py
-.PHONY: all config config_default distclean clean cscope stanse
+.PHONY: all config config_default distclean clean cscope precheck
all: Makefile.config config.h config.defs
- $(MAKE) -C kernel
- $(MAKE) -C uspace
- $(MAKE) -C boot
+ $(MAKE) -C kernel PRECHECK=$(PRECHECK)
+ $(MAKE) -C uspace PRECHECK=$(PRECHECK)
+ $(MAKE) -C boot PRECHECK=$(PRECHECK)
-stanse: Makefile.config config.h config.defs
- $(MAKE) -C kernel clean
- $(MAKE) -C kernel EXTRA_TOOL=stanse
- $(STANSE) --checker ReachabilityChecker --jobfile kernel/kernel.job
+precheck: clean
+ $(MAKE) all PRECHECK=y
cscope:
@@ -55,8 +53,8 @@
config_default: HelenOS.config
- tools/config.py HelenOS.config default
+ $(CONFIG) HelenOS.config default
config: HelenOS.config
- tools/config.py HelenOS.config
+ $(CONFIG) HelenOS.config
distclean: clean
Index: boot/Makefile.common
===================================================================
--- boot/Makefile.common (revision 1581708902331ee97e832b4c9189e7bbff9ec789)
+++ boot/Makefile.common (revision fd608dcf23fddc6d2ba03c8127a3289923af802a)
@@ -27,4 +27,6 @@
#
+-include ../Makefile.config
+
TMP = distroot
INITRD = initrd
@@ -45,29 +47,30 @@
RD_SRVS = \
- $(USPACEDIR)/srv/fb/fb \
- $(USPACEDIR)/srv/kbd/kbd \
- $(USPACEDIR)/srv/console/console \
+ $(USPACEDIR)/srv/bd/file_bd/file_bd \
+ $(USPACEDIR)/srv/bd/part/mbr_part/mbr_part \
$(USPACEDIR)/srv/clip/clip \
+ $(USPACEDIR)/srv/hid/fb/fb \
+ $(USPACEDIR)/srv/hid/kbd/kbd \
+ $(USPACEDIR)/srv/hid/console/console \
$(USPACEDIR)/srv/fs/devfs/devfs \
$(USPACEDIR)/srv/fs/tmpfs/tmpfs \
- $(USPACEDIR)/srv/fs/fat/fat \
- $(USPACEDIR)/srv/bd/file_bd/file_bd \
- $(USPACEDIR)/srv/part/mbr_part/mbr_part
+ $(USPACEDIR)/srv/fs/fat/fat
RD_APPS = \
+ $(USPACEDIR)/app/bdsh/bdsh \
$(USPACEDIR)/app/edit/edit \
$(USPACEDIR)/app/getterm/getterm \
+ $(USPACEDIR)/app/klog/klog \
+ $(USPACEDIR)/app/mkfat/mkfat \
$(USPACEDIR)/app/redir/redir \
+ $(USPACEDIR)/app/tester/tester \
$(USPACEDIR)/app/tetris/tetris \
- $(USPACEDIR)/app/tester/tester \
- $(USPACEDIR)/app/trace/trace \
- $(USPACEDIR)/app/klog/klog \
- $(USPACEDIR)/app/bdsh/bdsh
+ $(USPACEDIR)/app/trace/trace
COMPONENTS = \
$(KERNELDIR)/kernel.bin \
$(USPACEDIR)/srv/ns/ns \
+ $(USPACEDIR)/srv/loader/loader \
$(USPACEDIR)/app/init/init \
- $(USPACEDIR)/srv/loader/loader \
$(USPACEDIR)/srv/devmap/devmap \
$(USPACEDIR)/srv/bd/rd/rd \
Index: boot/arch/amd64/Makefile.inc
===================================================================
--- boot/arch/amd64/Makefile.inc (revision 1581708902331ee97e832b4c9189e7bbff9ec789)
+++ boot/arch/amd64/Makefile.inc (revision fd608dcf23fddc6d2ba03c8127a3289923af802a)
@@ -30,6 +30,8 @@
RD_SRVS += \
- $(USPACEDIR)/srv/pci/pci \
- $(USPACEDIR)/srv/bd/ata_bd/ata_bd
+ $(USPACEDIR)/srv/bd/ata_bd/ata_bd \
+ $(USPACEDIR)/srv/hw/char/i8042/i8042 \
+ $(USPACEDIR)/srv/hw/bus/pci/pci \
+ $(USPACEDIR)/srv/hid/c_mouse/c_mouse
MODULES := $(notdir $(COMPONENTS))
Index: boot/arch/arm32/Makefile.inc
===================================================================
--- boot/arch/arm32/Makefile.inc (revision 1581708902331ee97e832b4c9189e7bbff9ec789)
+++ boot/arch/arm32/Makefile.inc (revision fd608dcf23fddc6d2ba03c8127a3289923af802a)
@@ -30,5 +30,5 @@
$(BASE)/image.boot:
- $(MAKE) -C arch/$(BARCH)/loader
+ $(MAKE) -C arch/$(BARCH)/loader PRECHECK=$(PRECHECK)
cp arch/$(BARCH)/loader/image.boot $@
Index: boot/arch/arm32/loader/Makefile
===================================================================
--- boot/arch/arm32/loader/Makefile (revision 1581708902331ee97e832b4c9189e7bbff9ec789)
+++ boot/arch/arm32/loader/Makefile (revision fd608dcf23fddc6d2ba03c8127a3289923af802a)
@@ -34,5 +34,5 @@
all: ../../../../version ../../../../Makefile.config ../../../../config.h ../../../../config.defs
-[ -f $(DEPEND) ] && mv -f $(DEPEND) $(DEPEND_PREV)
- $(MAKE) -f Makefile.build
+ $(MAKE) -f Makefile.build PRECHECK=$(PRECHECK)
clean:
@@ -43,5 +43,5 @@
rm -f $(USPACEDIR)/dist/app/`basename $$file` ; \
done
- rm -f $(DEPEND) $(DEPEND_PREV) $(OUTPUT) $(COMPS).h $(COMPS).c $(LINK) $(INITRD).img $(INITRD).fs
+ rm -f $(DEPEND) $(DEPEND_PREV) $(JOB) $(OUTPUT) $(COMPS).h $(COMPS).c $(LINK) $(INITRD).img $(INITRD).fs
find . -name '*.o' -follow -exec rm \{\} \;
find . -name '*.co' -follow -exec rm \{\} \;
Index: boot/arch/arm32/loader/Makefile.build
===================================================================
--- boot/arch/arm32/loader/Makefile.build (revision 1581708902331ee97e832b4c9189e7bbff9ec789)
+++ boot/arch/arm32/loader/Makefile.build (revision fd608dcf23fddc6d2ba03c8127a3289923af802a)
@@ -65,7 +65,13 @@
%.o: %.S $(DEPEND)
$(CC) $(DEFS) $(CFLAGS) -D__ASM__ -c $< -o $@
+ifeq ($(PRECHECK),y)
+ $(JOBFILE) $(JOB) $< $@ as asm/preproc $(DEFS) $(CFLAGS) -D__ASM__
+endif
%.o: %.c $(DEPEND)
$(CC) $(DEFS) $(CFLAGS) -c $< -o $@
+ifeq ($(PRECHECK),y)
+ $(JOBFILE) $(JOB) $< $@ cc core $(DEFS) $(CFLAGS)
+endif
$(DEPEND):
Index: boot/arch/arm32/loader/Makefile.common
===================================================================
--- boot/arch/arm32/loader/Makefile.common (revision 1581708902331ee97e832b4c9189e7bbff9ec789)
+++ boot/arch/arm32/loader/Makefile.common (revision fd608dcf23fddc6d2ba03c8127a3289923af802a)
@@ -35,4 +35,5 @@
DEPEND = Makefile.depend
DEPEND_PREV = $(DEPEND).prev
+JOB = image.job
OUTPUT = image.boot
Index: boot/arch/arm32/loader/Makefile.toolchain
===================================================================
--- boot/arch/arm32/loader/Makefile.toolchain (revision 1581708902331ee97e832b4c9189e7bbff9ec789)
+++ boot/arch/arm32/loader/Makefile.toolchain (revision fd608dcf23fddc6d2ba03c8127a3289923af802a)
@@ -39,4 +39,6 @@
TOOLCHAIN_DIR = $(CROSS_PREFIX)/arm32/bin
+JOBFILE = ../../../../tools/jobfile.py
+
ifeq ($(COMPILER),gcc_native)
CC = gcc
Index: boot/arch/ia64/Makefile.inc
===================================================================
--- boot/arch/ia64/Makefile.inc (revision 1581708902331ee97e832b4c9189e7bbff9ec789)
+++ boot/arch/ia64/Makefile.inc (revision fd608dcf23fddc6d2ba03c8127a3289923af802a)
@@ -30,5 +30,5 @@
$(BASE)/image.boot:
- $(MAKE) -C arch/$(BARCH)/loader
+ $(MAKE) -C arch/$(BARCH)/loader PRECHECK=$(PRECHECK)
cp arch/$(BARCH)/loader/image.boot $@
Index: boot/arch/ia64/loader/Makefile
===================================================================
--- boot/arch/ia64/loader/Makefile (revision 1581708902331ee97e832b4c9189e7bbff9ec789)
+++ boot/arch/ia64/loader/Makefile (revision fd608dcf23fddc6d2ba03c8127a3289923af802a)
@@ -29,4 +29,5 @@
include Makefile.common
+include ../../../../Makefile.config
.PHONY: all clean
@@ -34,5 +35,5 @@
all: ../../../../version ../../../../Makefile.config ../../../../config.h ../../../../config.defs
-[ -f $(DEPEND) ] && mv -f $(DEPEND) $(DEPEND_PREV)
- $(MAKE) -f Makefile.build
+ $(MAKE) -f Makefile.build PRECHECK=$(PRECHECK)
clean:
@@ -45,5 +46,5 @@
rm -f $(USPACEDIR)/dist/app/`basename $$file` ; \
done
- rm -f $(DEPEND) $(DEPEND_PREV) $(OUTPUT) $(HELLO) $(COMPS).h $(COMPS).c $(LINK) $(INITRD).img $(INITRD).fs
+ rm -f $(DEPEND) $(DEPEND_PREV) $(JOB) $(OUTPUT) $(HELLO) $(COMPS).h $(COMPS).c $(LINK) $(INITRD).img $(INITRD).fs
find . -name '*.o' -follow -exec rm \{\} \;
find . -name '*.co' -follow -exec rm \{\} \;
Index: boot/arch/ia64/loader/Makefile.build
===================================================================
--- boot/arch/ia64/loader/Makefile.build (revision 1581708902331ee97e832b4c9189e7bbff9ec789)
+++ boot/arch/ia64/loader/Makefile.build (revision fd608dcf23fddc6d2ba03c8127a3289923af802a)
@@ -66,7 +66,13 @@
%.o: %.S $(DEPEND)
$(CC) $(DEFS) $(CFLAGS) -D__ASM__ -c $< -o $@
+ifeq ($(PRECHECK),y)
+ $(JOBFILE) $(JOB) $< $@ as asm/preproc $(DEFS) $(CFLAGS) -D__ASM__
+endif
%.o: %.c $(DEPEND)
$(CC) $(DEFS) $(CFLAGS) -c $< -o $@
+ifeq ($(PRECHECK),y)
+ $(JOBFILE) $(JOB) $< $@ cc core $(DEFS) $(CFLAGS)
+endif
$(DEPEND):
Index: boot/arch/ia64/loader/Makefile.common
===================================================================
--- boot/arch/ia64/loader/Makefile.common (revision 1581708902331ee97e832b4c9189e7bbff9ec789)
+++ boot/arch/ia64/loader/Makefile.common (revision fd608dcf23fddc6d2ba03c8127a3289923af802a)
@@ -31,8 +31,10 @@
#
+include ../../../../Makefile.config
include ../../../Makefile.common
DEPEND = Makefile.depend
DEPEND_PREV = $(DEPEND).prev
+JOB = image.job
OUTPUT = image.boot
HELLO = hello.efi
@@ -43,2 +45,8 @@
KERNELDIR = ../../../../kernel
USPACEDIR = ../../../../uspace
+
+ifeq ($(MACHINE),i460GX)
+ RD_SRVS += \
+ $(USPACEDIR)/srv/hw/char/i8042/i8042 \
+ $(USPACEDIR)/srv/hid/c_mouse/c_mouse
+endif
Index: boot/arch/ia64/loader/Makefile.toolchain
===================================================================
--- boot/arch/ia64/loader/Makefile.toolchain (revision 1581708902331ee97e832b4c9189e7bbff9ec789)
+++ boot/arch/ia64/loader/Makefile.toolchain (revision fd608dcf23fddc6d2ba03c8127a3289923af802a)
@@ -39,4 +39,6 @@
TOOLCHAIN_DIR = $(CROSS_PREFIX)/ia64/bin
+JOBFILE = ../../../../tools/jobfile.py
+
ifeq ($(COMPILER),gcc_native)
CC = gcc
Index: boot/arch/mips32/Makefile.inc
===================================================================
--- boot/arch/mips32/Makefile.inc (revision 1581708902331ee97e832b4c9189e7bbff9ec789)
+++ boot/arch/mips32/Makefile.inc (revision fd608dcf23fddc6d2ba03c8127a3289923af802a)
@@ -30,5 +30,5 @@
$(BASE)/image.boot:
- $(MAKE) -C arch/$(BARCH)/loader
+ $(MAKE) -C arch/$(BARCH)/loader PRECHECK=$(PRECHECK)
cp arch/$(BARCH)/loader/image.boot $@
Index: boot/arch/mips32/loader/Makefile
===================================================================
--- boot/arch/mips32/loader/Makefile (revision 1581708902331ee97e832b4c9189e7bbff9ec789)
+++ boot/arch/mips32/loader/Makefile (revision fd608dcf23fddc6d2ba03c8127a3289923af802a)
@@ -34,5 +34,5 @@
all: ../../../../version ../../../../Makefile.config ../../../../config.h ../../../../config.defs
-[ -f $(DEPEND) ] && mv -f $(DEPEND) $(DEPEND_PREV)
- $(MAKE) -f Makefile.build
+ $(MAKE) -f Makefile.build PRECHECK=$(PRECHECK)
clean:
@@ -43,5 +43,5 @@
rm -f $(USPACEDIR)/dist/app/`basename $$file` ; \
done
- rm -f $(DEPEND) $(DEPEND_PREV) $(OUTPUT) $(RAW) $(COMPS).h $(COMPS).c $(LINK) $(INITRD).img $(INITRD).fs
+ rm -f $(DEPEND) $(DEPEND_PREV) $(JOB) $(OUTPUT) $(RAW) $(COMPS).h $(COMPS).c $(LINK) $(INITRD).img $(INITRD).fs
find . -name '*.o' -follow -exec rm \{\} \;
find . -name '*.co' -follow -exec rm \{\} \;
Index: boot/arch/mips32/loader/Makefile.build
===================================================================
--- boot/arch/mips32/loader/Makefile.build (revision 1581708902331ee97e832b4c9189e7bbff9ec789)
+++ boot/arch/mips32/loader/Makefile.build (revision fd608dcf23fddc6d2ba03c8127a3289923af802a)
@@ -66,7 +66,13 @@
%.o: %.S $(DEPEND)
$(CC) $(DEFS) $(CFLAGS) -D__ASM__ -c $< -o $@
+ifeq ($(PRECHECK),y)
+ $(JOBFILE) $(JOB) $< $@ as asm/preproc $(DEFS) $(CFLAGS) -D__ASM__
+endif
%.o: %.c $(DEPEND)
$(CC) $(DEFS) $(CFLAGS) -c $< -o $@
+ifeq ($(PRECHECK),y)
+ $(JOBFILE) $(JOB) $< $@ cc core $(DEFS) $(CFLAGS)
+endif
$(DEPEND):
Index: boot/arch/mips32/loader/Makefile.common
===================================================================
--- boot/arch/mips32/loader/Makefile.common (revision 1581708902331ee97e832b4c9189e7bbff9ec789)
+++ boot/arch/mips32/loader/Makefile.common (revision fd608dcf23fddc6d2ba03c8127a3289923af802a)
@@ -36,4 +36,5 @@
DEPEND_PREV = $(DEPEND).prev
RAW = image.raw
+JOB = image.job
OUTPUT = image.boot
Index: boot/arch/mips32/loader/Makefile.toolchain
===================================================================
--- boot/arch/mips32/loader/Makefile.toolchain (revision 1581708902331ee97e832b4c9189e7bbff9ec789)
+++ boot/arch/mips32/loader/Makefile.toolchain (revision fd608dcf23fddc6d2ba03c8127a3289923af802a)
@@ -37,4 +37,6 @@
TARGET = mipsel-linux-gnu
TOOLCHAIN_DIR = $(CROSS_PREFIX)/mips32/bin
+
+JOBFILE = ../../../../tools/jobfile.py
ifeq ($(MACHINE),lgxemul)
Index: boot/arch/ppc32/Makefile.inc
===================================================================
--- boot/arch/ppc32/Makefile.inc (revision 1581708902331ee97e832b4c9189e7bbff9ec789)
+++ boot/arch/ppc32/Makefile.inc (revision fd608dcf23fddc6d2ba03c8127a3289923af802a)
@@ -42,5 +42,5 @@
arch/$(BARCH)/loader/image.boot:
- $(MAKE) -C arch/$(BARCH)/loader
+ $(MAKE) -C arch/$(BARCH)/loader PRECHECK=$(PRECHECK)
clean: generic_clean
Index: boot/arch/ppc32/loader/Makefile
===================================================================
--- boot/arch/ppc32/loader/Makefile (revision 1581708902331ee97e832b4c9189e7bbff9ec789)
+++ boot/arch/ppc32/loader/Makefile (revision fd608dcf23fddc6d2ba03c8127a3289923af802a)
@@ -34,5 +34,5 @@
all: ../../../../version ../../../../Makefile.config ../../../../config.h ../../../../config.defs
-[ -f $(DEPEND) ] && mv -f $(DEPEND) $(DEPEND_PREV)
- $(MAKE) -f Makefile.build
+ $(MAKE) -f Makefile.build PRECHECK=$(PRECHECK)
clean:
@@ -43,5 +43,5 @@
rm -f $(USPACEDIR)/dist/app/`basename $$file` ; \
done
- rm -f $(DEPEND) $(DEPEND_PREV) $(OUTPUT) $(COMPS).h $(COMPS).c $(LINK) $(INITRD).img $(INITRD).fs
+ rm -f $(DEPEND) $(DEPEND_PREV) $(JOB) $(OUTPUT) $(COMPS).h $(COMPS).c $(LINK) $(INITRD).img $(INITRD).fs
find . -name '*.o' -follow -exec rm \{\} \;
find . -name '*.co' -follow -exec rm \{\} \;
Index: boot/arch/ppc32/loader/Makefile.build
===================================================================
--- boot/arch/ppc32/loader/Makefile.build (revision 1581708902331ee97e832b4c9189e7bbff9ec789)
+++ boot/arch/ppc32/loader/Makefile.build (revision fd608dcf23fddc6d2ba03c8127a3289923af802a)
@@ -66,7 +66,13 @@
%.o: %.S $(DEPEND)
$(CC) $(DEFS) $(CFLAGS) -D__ASM__ -c $< -o $@
+ifeq ($(PRECHECK),y)
+ $(JOBFILE) $(JOB) $< $@ as asm/preproc $(DEFS) $(CFLAGS) -D__ASM__
+endif
%.o: %.c $(DEPEND)
$(CC) $(DEFS) $(CFLAGS) -c $< -o $@
+ifeq ($(PRECHECK),y)
+ $(JOBFILE) $(JOB) $< $@ cc core $(DEFS) $(CFLAGS)
+endif
$(DEPEND):
Index: boot/arch/ppc32/loader/Makefile.common
===================================================================
--- boot/arch/ppc32/loader/Makefile.common (revision 1581708902331ee97e832b4c9189e7bbff9ec789)
+++ boot/arch/ppc32/loader/Makefile.common (revision fd608dcf23fddc6d2ba03c8127a3289923af802a)
@@ -35,4 +35,5 @@
DEPEND = Makefile.depend
DEPEND_PREV = $(DEPEND).prev
+JOB = image.job
OUTPUT = image.boot
Index: boot/arch/ppc32/loader/Makefile.toolchain
===================================================================
--- boot/arch/ppc32/loader/Makefile.toolchain (revision 1581708902331ee97e832b4c9189e7bbff9ec789)
+++ boot/arch/ppc32/loader/Makefile.toolchain (revision fd608dcf23fddc6d2ba03c8127a3289923af802a)
@@ -39,4 +39,6 @@
TOOLCHAIN_DIR = $(CROSS_PREFIX)/ppc32/bin
+JOBFILE = ../../../../tools/jobfile.py
+
ifeq ($(COMPILER),gcc_native)
CC = gcc
Index: boot/arch/sparc64/Makefile.inc
===================================================================
--- boot/arch/sparc64/Makefile.inc (revision 1581708902331ee97e832b4c9189e7bbff9ec789)
+++ boot/arch/sparc64/Makefile.inc (revision fd608dcf23fddc6d2ba03c8127a3289923af802a)
@@ -55,5 +55,5 @@
arch/$(BARCH)/loader/image.boot:
- $(MAKE) -C arch/$(BARCH)/loader
+ $(MAKE) -C arch/$(BARCH)/loader PRECHECK=$(PRECHECK)
clean: generic_clean
Index: boot/arch/sparc64/loader/Makefile
===================================================================
--- boot/arch/sparc64/loader/Makefile (revision 1581708902331ee97e832b4c9189e7bbff9ec789)
+++ boot/arch/sparc64/loader/Makefile (revision fd608dcf23fddc6d2ba03c8127a3289923af802a)
@@ -34,5 +34,5 @@
all: ../../../../version ../../../../Makefile.config ../../../../config.h ../../../../config.defs
-[ -f $(DEPEND) ] && mv -f $(DEPEND) $(DEPEND_PREV)
- $(MAKE) -f Makefile.build
+ $(MAKE) -f Makefile.build PRECHECK=$(PRECHECK)
clean:
@@ -43,5 +43,5 @@
rm -f $(USPACEDIR)/dist/app/`basename $$file` ; \
done
- rm -f $(DEPEND) $(DEPEND_PREV) $(OUTPUT) $(COMPS).h $(COMPS).c $(LINK) $(INITRD).img $(INITRD).fs
+ rm -f $(DEPEND) $(DEPEND_PREV) $(JOB) $(OUTPUT) $(COMPS).h $(COMPS).c $(LINK) $(INITRD).img $(INITRD).fs
find . -name '*.o' -follow -exec rm \{\} \;
find . -name '*.co' -follow -exec rm \{\} \;
Index: boot/arch/sparc64/loader/Makefile.build
===================================================================
--- boot/arch/sparc64/loader/Makefile.build (revision 1581708902331ee97e832b4c9189e7bbff9ec789)
+++ boot/arch/sparc64/loader/Makefile.build (revision fd608dcf23fddc6d2ba03c8127a3289923af802a)
@@ -77,7 +77,13 @@
%.o: %.S $(DEPEND)
$(CC) $(DEFS) $(CFLAGS) -D__ASM__ -c $< -o $@
+ifeq ($(PRECHECK),y)
+ $(JOBFILE) $(JOB) $< $@ as asm/preproc $(DEFS) $(CFLAGS) -D__ASM__
+endif
%.o: %.c $(DEPEND)
$(CC) $(DEFS) $(CFLAGS) -c $< -o $@
+ifeq ($(PRECHECK),y)
+ $(JOBFILE) $(JOB) $< $@ cc core $(DEFS) $(CFLAGS)
+endif
$(DEPEND):
Index: boot/arch/sparc64/loader/Makefile.common
===================================================================
--- boot/arch/sparc64/loader/Makefile.common (revision 1581708902331ee97e832b4c9189e7bbff9ec789)
+++ boot/arch/sparc64/loader/Makefile.common (revision fd608dcf23fddc6d2ba03c8127a3289923af802a)
@@ -35,4 +35,5 @@
DEPEND = Makefile.depend
DEPEND_PREV = $(DEPEND).prev
+JOB = image.job
OUTPUT = image.boot
@@ -45,6 +46,6 @@
RD_SRVS_GENERIC = \
$(USPACEDIR)/srv/fs/fat/fat \
- $(USPACEDIR)/srv/cir/fhc/fhc \
- $(USPACEDIR)/srv/cir/obio/obio
+ $(USPACEDIR)/srv/hw/cir/fhc/fhc \
+ $(USPACEDIR)/srv/hw/cir/obio/obio
RD_APPS_GENERIC = \
Index: boot/arch/sparc64/loader/Makefile.toolchain
===================================================================
--- boot/arch/sparc64/loader/Makefile.toolchain (revision 1581708902331ee97e832b4c9189e7bbff9ec789)
+++ boot/arch/sparc64/loader/Makefile.toolchain (revision fd608dcf23fddc6d2ba03c8127a3289923af802a)
@@ -39,4 +39,6 @@
TOOLCHAIN_DIR = $(CROSS_PREFIX)/sparc64/bin
+JOBFILE = ../../../../tools/jobfile.py
+
ifeq ($(COMPILER),gcc_native)
CC = gcc
Index: ntrib/stanse/ThreadChecker.xml
===================================================================
--- contrib/stanse/ThreadChecker.xml (revision 1581708902331ee97e832b4c9189e7bbff9ec789)
+++ (revision )
@@ -1,52 +1,0 @@
-
-
-
-
-
-
-
-
-
- _mutex_lock_timeout
-
-
-
-
-
-
-
- mutex_unlock
-
-
-
-
-
-
Index: ntrib/toolchain.sh
===================================================================
--- contrib/toolchain.sh (revision 1581708902331ee97e832b4c9189e7bbff9ec789)
+++ (revision )
@@ -1,243 +1,0 @@
-#!/bin/bash
-
-# Cross-compiler toolchain build script
-# by Martin Decky
-#
-# GPL'ed, copyleft
-#
-
-check_error() {
- if [ "$1" -ne "0" ]; then
- echo
- echo "Script failed: $2"
- exit 1
- fi
-}
-
-check_md5() {
- FILE="$1"
- SUM="$2"
-
- COMPUTED="`md5sum "${FILE}" | cut -d' ' -f1`"
- if [ "${SUM}" != "${COMPUTED}" ] ; then
- echo
- echo "Checksum of ${FILE} does not match."
- exit 2
- fi
-}
-
-show_usage() {
- echo "Cross-compiler toolchain build script"
- echo
- echo "Syntax:"
- echo " $0 "
- echo
- echo "Possible target platforms are:"
- echo " amd64 AMD64 (x86-64, x64)"
- echo " arm32 ARM"
- echo " ia32 IA-32 (x86, i386)"
- echo " ia64 IA-64 (Itanium)"
- echo " mips32 MIPS little-endian"
- echo " mips32eb MIPS big-endian"
- echo " ppc32 32-bit PowerPC"
- echo " ppc64 64-bit PowerPC"
- echo " sparc64 SPARC V9"
- echo " all build all targets"
- echo
-
- exit 3
-}
-
-download_check() {
- SOURCE="$1"
- FILE="$2"
- CHECKSUM="$3"
-
- if [ ! -f "${FILE}" ]; then
- wget -c "${SOURCE}${FILE}"
- check_error $? "Error downloading ${FILE}."
- fi
-
- check_md5 "${FILE}" "${CHECKSUM}"
-}
-
-cleanup_dir() {
- DIR="$1"
-
- if [ -d "${DIR}" ]; then
- echo " >>> Removing ${DIR}"
- rm -fr "${DIR}"
- fi
-}
-
-create_dir() {
- DIR="$1"
- DESC="$2"
-
- echo ">>> Creating ${DESC}"
-
- mkdir -p "${DIR}"
- test -d "${DIR}"
- check_error $? "Unable to create ${DIR}."
-}
-
-unpack_tarball() {
- FILE="$1"
- DESC="$2"
-
- echo " >>> ${DESC}"
-
- tar -xjf "${FILE}"
- check_error $? "Error unpacking ${DESC}."
-}
-
-patch_binutils() {
- PLATFORM="$1"
-
- if [ "${PLATFORM}" == "arm32" ] ; then
- patch -p1 <tc_frag_data.first_map == NULL);
- frag->tc_frag_data.first_map = symbolP;
- }
-- if (frag->tc_frag_data.last_map != NULL)
-+ if (frag->tc_frag_data.last_map != NULL) {
- know (S_GET_VALUE (frag->tc_frag_data.last_map) < S_GET_VALUE (symbolP));
-+ }
- frag->tc_frag_data.last_map = symbolP;
- }
-EOF
- check_error $? "Error patching binutils"
- fi
-}
-
-build_target() {
- PLATFORM="$1"
- TARGET="$2"
-
- BINUTILS_VERSION="2.20"
- GCC_VERSION="4.4.2"
-
- BINUTILS="binutils-${BINUTILS_VERSION}.tar.bz2"
- GCC_CORE="gcc-core-${GCC_VERSION}.tar.bz2"
- GCC_OBJC="gcc-objc-${GCC_VERSION}.tar.bz2"
- GCC_CPP="gcc-g++-${GCC_VERSION}.tar.bz2"
-
- BINUTILS_SOURCE="ftp://ftp.gnu.org/gnu/binutils/"
- GCC_SOURCE="ftp://ftp.gnu.org/gnu/gcc/gcc-${GCC_VERSION}/"
-
- WORKDIR="`pwd`"
- BINUTILSDIR="${WORKDIR}/binutils-${BINUTILS_VERSION}"
- GCCDIR="${WORKDIR}/gcc-${GCC_VERSION}"
- OBJDIR="${WORKDIR}/gcc-obj"
-
- if [ -z "${CROSS_PREFIX}" ] ; then
- CROSS_PREFIX="/usr/local"
- fi
-
- PREFIX="${CROSS_PREFIX}/${PLATFORM}"
-
- echo ">>> Downloading tarballs"
- download_check "${BINUTILS_SOURCE}" "${BINUTILS}" "ee2d3e996e9a2d669808713360fa96f8"
- download_check "${GCC_SOURCE}" "${GCC_CORE}" "d50ec5af20508974411d0c83c5f4e396"
- download_check "${GCC_SOURCE}" "${GCC_OBJC}" "d8d26187d386a0591222a580b5a5b3d3"
- download_check "${GCC_SOURCE}" "${GCC_CPP}" "43b1e4879eb282dc4b05e4c016d356d7"
-
- echo ">>> Removing previous content"
- cleanup_dir "${PREFIX}"
- cleanup_dir "${OBJDIR}"
- cleanup_dir "${BINUTILSDIR}"
- cleanup_dir "${GCCDIR}"
-
- create_dir "${PREFIX}" "destination directory"
- create_dir "${OBJDIR}" "GCC object directory"
-
- echo ">>> Unpacking tarballs"
- unpack_tarball "${BINUTILS}" "binutils"
- unpack_tarball "${GCC_CORE}" "GCC Core"
- unpack_tarball "${GCC_OBJC}" "Objective C"
- unpack_tarball "${GCC_CPP}" "C++"
-
- echo ">>> Compiling and installing binutils"
- cd "${BINUTILSDIR}"
- check_error $? "Change directory failed."
- patch_binutils "${PLATFORM}"
- ./configure "--target=${TARGET}" "--prefix=${PREFIX}" "--program-prefix=${TARGET}-" "--disable-nls"
- check_error $? "Error configuring binutils."
- make all install
- check_error $? "Error compiling/installing binutils."
-
- echo ">>> Compiling and installing GCC"
- cd "${OBJDIR}"
- check_error $? "Change directory failed."
- "${GCCDIR}/configure" "--target=${TARGET}" "--prefix=${PREFIX}" "--program-prefix=${TARGET}-" --with-gnu-as --with-gnu-ld --disable-nls --disable-threads --enable-languages=c,objc,c++,obj-c++ --disable-multilib --disable-libgcj --without-headers --disable-shared
- check_error $? "Error configuring GCC."
- PATH="${PATH}:${PREFIX}/bin" make all-gcc install-gcc
- check_error $? "Error compiling/installing GCC."
-
- cd "${WORKDIR}"
- check_error $? "Change directory failed."
-
- echo ">>> Cleaning up"
- cleanup_dir "${OBJDIR}"
- cleanup_dir "${BINUTILSDIR}"
- cleanup_dir "${GCCDIR}"
-
- echo
- echo ">>> Cross-compiler for ${TARGET} installed."
-}
-
-if [ "$#" -lt "1" ]; then
- show_usage
-fi
-
-case "$1" in
- "amd64")
- build_target "amd64" "amd64-linux-gnu"
- ;;
- "arm32")
- build_target "arm32" "arm-linux-gnu"
- ;;
- "ia32")
- build_target "ia32" "i686-pc-linux-gnu"
- ;;
- "ia64")
- build_target "ia64" "ia64-pc-linux-gnu"
- ;;
- "ia64")
- build_target "ia64" "ia64-pc-linux-gnu"
- ;;
- "mips32")
- build_target "mips32" "mipsel-linux-gnu"
- ;;
- "mips32eb")
- build_target "mips32eb" "mips-linux-gnu"
- ;;
- "ppc32")
- build_target "ppc32" "ppc-linux-gnu"
- ;;
- "ppc64")
- build_target "ppc64" "ppc64-linux-gnu"
- ;;
- "sparc64")
- build_target "sparc64" "sparc64-linux-gnu"
- ;;
- "all")
- build_target "amd64" "amd64-linux-gnu"
- build_target "arm32" "arm-linux-gnu"
- build_target "ia32" "i686-pc-linux-gnu"
- build_target "ia64" "ia64-pc-linux-gnu"
- build_target "ia64" "ia64-pc-linux-gnu"
- build_target "mips32" "mipsel-linux-gnu"
- build_target "mips32eb" "mips-linux-gnu"
- build_target "ppc32" "ppc-linux-gnu"
- build_target "ppc64" "ppc64-linux-gnu"
- build_target "sparc64" "sparc64-linux-gnu"
- ;;
- *)
- show_usage
- ;;
-esac
Index: kernel/Makefile
===================================================================
--- kernel/Makefile (revision 1581708902331ee97e832b4c9189e7bbff9ec789)
+++ kernel/Makefile (revision fd608dcf23fddc6d2ba03c8127a3289923af802a)
@@ -33,8 +33,7 @@
all: ../version ../Makefile.config ../config.h ../config.defs
-[ -f $(DEPEND) ] && mv -f $(DEPEND) $(DEPEND_PREV)
- $(MAKE) -f Makefile.build EXTRA_TOOL=$(EXTRA_TOOL)
+ $(MAKE) -f Makefile.build PRECHECK=$(PRECHECK)
clean:
rm -f $(DEPEND) $(DEPEND_PREV) $(RAW) $(BIN) $(MAP) $(JOB) $(MAP_PREV) $(DISASM) $(DUMP) $(REAL_MAP).* $(ARCH_INCLUDE) $(GENARCH_INCLUDE) arch/*/_link.ld
find generic/src/ arch/*/src/ genarch/src/ test/ -name '*.o' -follow -exec rm \{\} \;
- find generic/src/ arch/*/src/ genarch/src/ test/ -name '*.o.preproc' -follow -exec rm \{\} \;
Index: kernel/Makefile.build
===================================================================
--- kernel/Makefile.build (revision 1581708902331ee97e832b4c9189e7bbff9ec789)
+++ kernel/Makefile.build (revision fd608dcf23fddc6d2ba03c8127a3289923af802a)
@@ -376,7 +376,13 @@
%.o: %.S $(DEPEND)
$(GCC) $(DEFS) $(GCC_CFLAGS) -D__ASM__ -c $< -o $@
+ifeq ($(PRECHECK),y)
+ $(JOBFILE) $(JOB) $< $@ as asm/preproc $(DEFS) $(GCC_CFLAGS) -D__ASM__
+endif
%.o: %.s $(DEPEND)
$(AS) $(AFLAGS) $< -o $@
+ifeq ($(PRECHECK),y)
+ $(JOBFILE) $(JOB) $< $@ as asm $(DEFS) $(CFLAGS) $(EXTRA_FLAGS)
+endif
#
@@ -386,6 +392,6 @@
test/fpu/%.o: test/fpu/%.c $(DEPEND)
$(CC) $(DEFS) $(CFLAGS) $(EXTRA_FLAGS) -c $< -o $@
-ifeq ($(EXTRA_TOOL),stanse)
- ../tools/jobfile.py $(JOB) $< $@ $(DEFS) $(CFLAGS) $(EXTRA_FLAGS)
+ifeq ($(PRECHECK),y)
+ $(JOBFILE) $(JOB) $< $@ cc test $(DEFS) $(CFLAGS) $(EXTRA_FLAGS)
endif
@@ -395,6 +401,6 @@
%.o: %.c $(DEPEND)
$(CC) $(DEFS) $(CFLAGS) $(EXTRA_FLAGS) $(FPU_NO_CFLAGS) -c $< -o $@
-ifeq ($(EXTRA_TOOL),stanse)
- ../tools/jobfile.py $(JOB) $< $@ $(DEFS) $(CFLAGS) $(EXTRA_FLAGS) $(FPU_NO_CFLAGS)
+ifeq ($(PRECHECK),y)
+ $(JOBFILE) $(JOB) $< $@ cc core $(DEFS) $(CFLAGS) $(EXTRA_FLAGS) $(FPU_NO_CFLAGS)
endif
@@ -406,5 +412,5 @@
$(LD) -T $(LINK) $(LFLAGS) $(ARCH_OBJECTS) $(GENARCH_OBJECTS) $(GENERIC_OBJECTS) $(EXTRA_OBJECTS) $(EMPTY_MAP) -o $@ -Map $(MAP_PREV)
$(OBJDUMP) -t $(ARCH_OBJECTS) $(GENARCH_OBJECTS) $(GENERIC_OBJECTS) > $(DUMP)
- tools/genmap.py $(MAP_PREV) $(DUMP) $@
+ $(GENMAP) $(MAP_PREV) $(DUMP) $@
# Do it once again, this time to get correct even the symbols
@@ -414,5 +420,5 @@
$(LD) -T $(LINK) $(LFLAGS) $(ARCH_OBJECTS) $(GENARCH_OBJECTS) $(GENERIC_OBJECTS) $(EXTRA_OBJECTS) $(SIZEOK_MAP) -o $@ -Map $(MAP_PREV)
$(OBJDUMP) -t $(ARCH_OBJECTS) $(GENARCH_OBJECTS) $(GENERIC_OBJECTS) > $(DUMP)
- tools/genmap.py $(MAP_PREV) $(DUMP) $@
+ $(GENMAP) $(MAP_PREV) $(DUMP) $@
$(DEPEND): $(ARCH_INCLUDE) $(GENARCH_INCLUDE)
Index: kernel/Makefile.common
===================================================================
--- kernel/Makefile.common (revision 1581708902331ee97e832b4c9189e7bbff9ec789)
+++ kernel/Makefile.common (revision fd608dcf23fddc6d2ba03c8127a3289923af802a)
@@ -44,2 +44,5 @@
ARCH_INCLUDE = generic/include/arch
GENARCH_INCLUDE = generic/include/genarch
+
+GENMAP = tools/genmap.py
+JOBFILE = ../tools/jobfile.py
Index: kernel/arch/amd64/_link.ld.in
===================================================================
--- kernel/arch/amd64/_link.ld.in (revision 1581708902331ee97e832b4c9189e7bbff9ec789)
+++ kernel/arch/amd64/_link.ld.in (revision fd608dcf23fddc6d2ba03c8127a3289923af802a)
@@ -44,4 +44,5 @@
*(COMMON); /* global variables */
+ . = ALIGN(8);
symbol_table = .;
*(symtab.*); /* Symbol table, must be LAST symbol!*/
Index: kernel/arch/amd64/src/amd64.c
===================================================================
--- kernel/arch/amd64/src/amd64.c (revision 1581708902331ee97e832b4c9189e7bbff9ec789)
+++ kernel/arch/amd64/src/amd64.c (revision fd608dcf23fddc6d2ba03c8127a3289923af802a)
@@ -212,4 +212,5 @@
i8042_wire(i8042_instance, kbrd);
trap_virtual_enable_irqs(1 << IRQ_KBD);
+ trap_virtual_enable_irqs(1 << IRQ_MOUSE);
}
}
@@ -219,9 +220,10 @@
* self-sufficient.
*/
- sysinfo_set_item_val("kbd", NULL, true);
- sysinfo_set_item_val("kbd.inr", NULL, IRQ_KBD);
- sysinfo_set_item_val("kbd.address.physical", NULL,
+ sysinfo_set_item_val("i8042", NULL, true);
+ sysinfo_set_item_val("i8042.inr_a", NULL, IRQ_KBD);
+ sysinfo_set_item_val("i8042.inr_b", NULL, IRQ_MOUSE);
+ sysinfo_set_item_val("i8042.address.physical", NULL,
(uintptr_t) I8042_BASE);
- sysinfo_set_item_val("kbd.address.kernel", NULL,
+ sysinfo_set_item_val("i8042.address.kernel", NULL,
(uintptr_t) I8042_BASE);
#endif
Index: kernel/arch/amd64/src/boot/boot.S
===================================================================
--- kernel/arch/amd64/src/boot/boot.S (revision 1581708902331ee97e832b4c9189e7bbff9ec789)
+++ kernel/arch/amd64/src/boot/boot.S (revision fd608dcf23fddc6d2ba03c8127a3289923af802a)
@@ -333,11 +333,11 @@
extended_cpuid_msg:
- .asciz "Extended CPUID not supported. System halted."
+ .asciz "Error: Extended CPUID not supported -- CPU is not 64-bit. System halted."
long_mode_msg:
- .asciz "64 bit long mode not supported. System halted."
+ .asciz "Error: 64-bit long mode not supported. System halted."
noexecute_msg:
- .asciz "No-execute pages not supported. System halted."
+ .asciz "Error: No-execute pages not supported. System halted."
fx_msg:
- .asciz "FXSAVE/FXRESTORE instructions not supported. System halted."
+ .asciz "Error: FXSAVE/FXRESTORE instructions not supported. System halted."
sse2_msg:
- .asciz "SSE2 instructions not supported. System halted."
+ .asciz "Error: SSE2 instructions not supported. System halted."
Index: kernel/arch/arm32/_link.ld.in
===================================================================
--- kernel/arch/arm32/_link.ld.in (revision 1581708902331ee97e832b4c9189e7bbff9ec789)
+++ kernel/arch/arm32/_link.ld.in (revision fd608dcf23fddc6d2ba03c8127a3289923af802a)
@@ -34,4 +34,5 @@
*(.sdata);
*(.reginfo);
+ . = ALIGN(8);
symbol_table = .;
*(symtab.*);
Index: kernel/arch/ia32/_link.ld.in
===================================================================
--- kernel/arch/ia32/_link.ld.in (revision 1581708902331ee97e832b4c9189e7bbff9ec789)
+++ kernel/arch/ia32/_link.ld.in (revision fd608dcf23fddc6d2ba03c8127a3289923af802a)
@@ -42,4 +42,5 @@
hardcoded_unmapped_kdata_size = .;
LONG(unmapped_kdata_end - unmapped_kdata_start);
+ . = ALIGN(8);
symbol_table = .;
*(symtab.*); /* Symbol table, must be LAST symbol! */
Index: kernel/arch/ia32/src/ia32.c
===================================================================
--- kernel/arch/ia32/src/ia32.c (revision 1581708902331ee97e832b4c9189e7bbff9ec789)
+++ kernel/arch/ia32/src/ia32.c (revision fd608dcf23fddc6d2ba03c8127a3289923af802a)
@@ -170,4 +170,5 @@
i8042_wire(i8042_instance, kbrd);
trap_virtual_enable_irqs(1 << IRQ_KBD);
+ trap_virtual_enable_irqs(1 << IRQ_MOUSE);
}
}
@@ -177,9 +178,10 @@
* self-sufficient.
*/
- sysinfo_set_item_val("kbd", NULL, true);
- sysinfo_set_item_val("kbd.inr", NULL, IRQ_KBD);
- sysinfo_set_item_val("kbd.address.physical", NULL,
+ sysinfo_set_item_val("i8042", NULL, true);
+ sysinfo_set_item_val("i8042.inr_a", NULL, IRQ_KBD);
+ sysinfo_set_item_val("i8042.inr_b", NULL, IRQ_MOUSE);
+ sysinfo_set_item_val("i8042.address.physical", NULL,
(uintptr_t) I8042_BASE);
- sysinfo_set_item_val("kbd.address.kernel", NULL,
+ sysinfo_set_item_val("i8042.address.kernel", NULL,
(uintptr_t) I8042_BASE);
#endif
Index: kernel/arch/ia64/_link.ld.in
===================================================================
--- kernel/arch/ia64/_link.ld.in (revision 1581708902331ee97e832b4c9189e7bbff9ec789)
+++ kernel/arch/ia64/_link.ld.in (revision fd608dcf23fddc6d2ba03c8127a3289923af802a)
@@ -37,4 +37,5 @@
*(COMMON);
+ . = ALIGN(8);
symbol_table = .;
*(symtab.*); /* Symbol table, must be LAST symbol!*/
Index: kernel/arch/ia64/include/mm/asid.h
===================================================================
--- kernel/arch/ia64/include/mm/asid.h (revision 1581708902331ee97e832b4c9189e7bbff9ec789)
+++ kernel/arch/ia64/include/mm/asid.h (revision fd608dcf23fddc6d2ba03c8127a3289923af802a)
@@ -50,14 +50,16 @@
* but those extra bits are not used by the kernel.
*/
-#define RIDS_PER_ASID 7
+#define RIDS_PER_ASID 8
#define RID_MAX 262143 /* 2^18 - 1 */
-#define RID_KERNEL 0
-#define RID_INVALID 1
+#define RID_KERNEL7 7
-#define ASID2RID(asid, vrn) (((asid)>RIDS_PER_ASID)?(((asid)*RIDS_PER_ASID)+(vrn)):(asid))
-#define RID2ASID(rid) ((rid)/RIDS_PER_ASID)
+#define ASID2RID(asid, vrn) \
+ ((asid) * RIDS_PER_ASID + (vrn))
-#define ASID_MAX_ARCH (RID_MAX/RIDS_PER_ASID)
+#define RID2ASID(rid) \
+ ((rid) / RIDS_PER_ASID)
+
+#define ASID_MAX_ARCH (RID_MAX / RIDS_PER_ASID)
#endif
Index: kernel/arch/ia64/src/ia64.c
===================================================================
--- kernel/arch/ia64/src/ia64.c (revision 1581708902331ee97e832b4c9189e7bbff9ec789)
+++ kernel/arch/ia64/src/ia64.c (revision fd608dcf23fddc6d2ba03c8127a3289923af802a)
@@ -203,10 +203,10 @@
}
- sysinfo_set_item_val("kbd", NULL, true);
- sysinfo_set_item_val("kbd.inr", NULL, IRQ_KBD);
- sysinfo_set_item_val("kbd.type", NULL, KBD_LEGACY);
- sysinfo_set_item_val("kbd.address.physical", NULL,
+ sysinfo_set_item_val("i8042", NULL, true);
+ sysinfo_set_item_val("i8042.inr_a", NULL, IRQ_KBD);
+ sysinfo_set_item_val("i8042.inr_b", NULL, IRQ_MOUSE);
+ sysinfo_set_item_val("i8042.address.physical", NULL,
(uintptr_t) I8042_BASE);
- sysinfo_set_item_val("kbd.address.kernel", NULL,
+ sysinfo_set_item_val("i8042.address.kernel", NULL,
(uintptr_t) I8042_BASE);
#endif
Index: kernel/arch/ia64/src/mm/page.c
===================================================================
--- kernel/arch/ia64/src/mm/page.c (revision 1581708902331ee97e832b4c9189e7bbff9ec789)
+++ kernel/arch/ia64/src/mm/page.c (revision fd608dcf23fddc6d2ba03c8127a3289923af802a)
@@ -71,26 +71,12 @@
/*
- * First set up kernel region register.
- * This is redundant (see start.S) but we keep it here just for sure.
- */
- rr.word = rr_read(VRN_KERNEL);
- rr.map.ve = 0; /* disable VHPT walker */
- rr.map.ps = PAGE_WIDTH;
- rr.map.rid = ASID2RID(ASID_KERNEL, VRN_KERNEL);
- rr_write(VRN_KERNEL, rr.word);
- srlz_i();
- srlz_d();
-
- /*
- * And setup the rest of region register.
+ * Set up kernel region registers.
+ * VRN_KERNEL has already been set in start.S.
+ * For paranoia reasons, we set it again.
*/
for(i = 0; i < REGION_REGISTERS; i++) {
- /* skip kernel rr */
- if (i == VRN_KERNEL)
- continue;
-
rr.word = rr_read(i);
rr.map.ve = 0; /* disable VHPT walker */
- rr.map.rid = RID_KERNEL;
+ rr.map.rid = ASID2RID(ASID_KERNEL, i);
rr.map.ps = PAGE_WIDTH;
rr_write(i, rr.word);
Index: kernel/arch/ia64/src/start.S
===================================================================
--- kernel/arch/ia64/src/start.S (revision 1581708902331ee97e832b4c9189e7bbff9ec789)
+++ kernel/arch/ia64/src/start.S (revision fd608dcf23fddc6d2ba03c8127a3289923af802a)
@@ -74,5 +74,5 @@
movl r10 = (RR_MASK)
and r9 = r10, r9
- movl r10 = ((RID_KERNEL << RID_SHIFT) | (KERNEL_PAGE_WIDTH << PS_SHIFT))
+ movl r10 = (((RID_KERNEL7) << RID_SHIFT) | (KERNEL_PAGE_WIDTH << PS_SHIFT))
or r9 = r10, r9
Index: kernel/arch/mips32/_link.ld.in
===================================================================
--- kernel/arch/mips32/_link.ld.in (revision 1581708902331ee97e832b4c9189e7bbff9ec789)
+++ kernel/arch/mips32/_link.ld.in (revision fd608dcf23fddc6d2ba03c8127a3289923af802a)
@@ -38,4 +38,5 @@
*(.bss); /* uninitialized static variables */
*(COMMON); /* global variables */
+ . = ALIGN(8);
symbol_table = .;
*(symtab.*);
Index: kernel/arch/ppc32/_link.ld.in
===================================================================
--- kernel/arch/ppc32/_link.ld.in (revision 1581708902331ee97e832b4c9189e7bbff9ec789)
+++ kernel/arch/ppc32/_link.ld.in (revision fd608dcf23fddc6d2ba03c8127a3289923af802a)
@@ -51,4 +51,5 @@
*(COMMON); /* global variables */
+ . = ALIGN(8);
symbol_table = .;
*(symtab.*); /* Symbol table, must be LAST symbol!*/
Index: kernel/arch/sparc64/_link.ld.in
===================================================================
--- kernel/arch/sparc64/_link.ld.in (revision 1581708902331ee97e832b4c9189e7bbff9ec789)
+++ kernel/arch/sparc64/_link.ld.in (revision fd608dcf23fddc6d2ba03c8127a3289923af802a)
@@ -36,4 +36,5 @@
*(COMMON); /* global variables */
+ . = ALIGN(8);
symbol_table = .;
*(symtab.*); /* Symbol table, must be LAST symbol!*/
Index: tools/checkers/jobfile.py
===================================================================
--- tools/checkers/jobfile.py (revision fd608dcf23fddc6d2ba03c8127a3289923af802a)
+++ tools/checkers/jobfile.py (revision fd608dcf23fddc6d2ba03c8127a3289923af802a)
@@ -0,0 +1,64 @@
+#
+# Copyright (c) 2010 Martin Decky
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions
+# are met:
+#
+# - Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+# - Redistributions in binary form must reproduce the above copyright
+# notice, this list of conditions and the following disclaimer in the
+# documentation and/or other materials provided with the distribution.
+# - The name of the author may not be used to endorse or promote products
+# derived from this software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+# OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+# IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+# NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+# THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+#
+"""
+Helper routines for parsing jobfiles
+"""
+
+def parse_arg(record):
+ "Parse jobfile line arguments"
+
+ arg = []
+ i = 0
+ current = ""
+ nil = True
+ inside = False
+
+ while (i < len(record)):
+ if (inside):
+ if (record[i] == "}"):
+ inside = False
+ else:
+ current = "%s%s" % (current, record[i])
+ else:
+ if (record[i] == "{"):
+ nil = False
+ inside = True
+ elif (record[i] == ","):
+ arg.append(current)
+ current = ""
+ nil = True
+ else:
+ print "Unexpected '%s'" % record[i]
+ return False
+
+ i += 1
+
+ if (not nil):
+ arg.append(current)
+
+ return arg
Index: tools/checkers/stanse.py
===================================================================
--- tools/checkers/stanse.py (revision fd608dcf23fddc6d2ba03c8127a3289923af802a)
+++ tools/checkers/stanse.py (revision fd608dcf23fddc6d2ba03c8127a3289923af802a)
@@ -0,0 +1,135 @@
+#!/usr/bin/env python
+#
+# Copyright (c) 2010 Martin Decky
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions
+# are met:
+#
+# - Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+# - Redistributions in binary form must reproduce the above copyright
+# notice, this list of conditions and the following disclaimer in the
+# documentation and/or other materials provided with the distribution.
+# - The name of the author may not be used to endorse or promote products
+# derived from this software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+# OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+# IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+# NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+# THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+#
+"""
+Wrapper for Stanse static checker
+"""
+
+import sys
+import os
+import subprocess
+import jobfile
+
+jobs = [
+ "kernel/kernel.job",
+ "uspace/srv/clip/clip.job"
+]
+
+def usage(prname):
+ "Print usage syntax"
+ print prname + " "
+
+def stanse(root, job):
+ "Run Stanse on a jobfile"
+
+ # Convert generic jobfile to Stanse-specific jobfile format
+
+ inname = os.path.join(root, job)
+ outname = os.path.join(root, "_%s" % os.path.basename(job))
+
+ if (not os.path.isfile(inname)):
+ print "Unable to open %s" % inname
+ print "Did you run \"make precheck\" on the source tree?"
+ return False
+
+ inf = file(inname, "r")
+ records = inf.read().splitlines()
+ inf.close()
+
+ output = []
+ for record in records:
+ arg = jobfile.parse_arg(record)
+ if (not arg):
+ return False
+
+ if (len(arg) < 6):
+ print "Not enought jobfile record arguments"
+ return False
+
+ srcfname = arg[0]
+ tgtfname = arg[1]
+ base = arg[4]
+ options = arg[5]
+
+ srcfqname = os.path.join(base, srcfname)
+ if (not os.path.isfile(srcfqname)):
+ print "Source %s not found" % srcfqname
+ return False
+
+ # Only C files are interesting for us
+ if (arg[2] != "cc"):
+ continue
+
+ output.append([srcfname, tgtfname, base, options])
+
+ outf = file(outname, "w")
+ for record in output:
+ outf.write("{%s},{%s},{%s},{%s}\n" % (record[0], record[1], record[2], record[3]))
+ outf.close()
+
+ # Run Stanse
+
+ retval = subprocess.Popen(['stanse', '--checker', 'ReachabilityChecker', '--jobfile', outname]).wait()
+
+ # Cleanup
+
+ os.remove(outname)
+ for record in output:
+ tmpfile = os.path.join(record[2], "%s.preproc" % record[1])
+ if (os.path.isfile(tmpfile)):
+ os.remove(tmpfile)
+
+ if (retval == 0):
+ return True
+
+ return False
+
+def main():
+ if (len(sys.argv) < 2):
+ usage(sys.argv[0])
+ return
+
+ rootdir = os.path.abspath(sys.argv[1])
+ config = os.path.join(rootdir, "HelenOS.config")
+
+ if (not os.path.isfile(config)):
+ print "%s not found." % config
+ print "Please specify the path to HelenOS build tree root as the first argument."
+ return
+
+ for job in jobs:
+ if (not stanse(rootdir, job)):
+ print
+ print "Failed job: %s" % job
+ return
+
+ print
+ print "All jobs passed"
+
+if __name__ == '__main__':
+ main()
Index: tools/checkers/stanse/ThreadChecker.xml
===================================================================
--- tools/checkers/stanse/ThreadChecker.xml (revision fd608dcf23fddc6d2ba03c8127a3289923af802a)
+++ tools/checkers/stanse/ThreadChecker.xml (revision fd608dcf23fddc6d2ba03c8127a3289923af802a)
@@ -0,0 +1,52 @@
+
+
+
+
+
+
+
+
+
+ _mutex_lock_timeout
+
+
+
+
+
+
+
+ mutex_unlock
+
+
+
+
+
+
Index: tools/checkers/vcc.py
===================================================================
--- tools/checkers/vcc.py (revision fd608dcf23fddc6d2ba03c8127a3289923af802a)
+++ tools/checkers/vcc.py (revision fd608dcf23fddc6d2ba03c8127a3289923af802a)
@@ -0,0 +1,166 @@
+#!/usr/bin/env python
+#
+# Copyright (c) 2010 Martin Decky
+# Copyright (c) 2010 Ondrej Sery
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions
+# are met:
+#
+# - Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+# - Redistributions in binary form must reproduce the above copyright
+# notice, this list of conditions and the following disclaimer in the
+# documentation and/or other materials provided with the distribution.
+# - The name of the author may not be used to endorse or promote products
+# derived from this software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+# OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+# IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+# NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+# THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+#
+"""
+Wrapper for Vcc checker
+"""
+
+import sys
+import os
+import subprocess
+import jobfile
+
+jobs = [
+ "kernel/kernel.job",
+ "uspace/srv/clip/clip.job"
+]
+
+def usage(prname):
+ "Print usage syntax"
+ print prname + " "
+
+def cygpath(upath):
+ "Convert Unix (Cygwin) path to Windows path"
+
+ return subprocess.Popen(['cygpath', '--windows', '--absolute', upath], stdout = subprocess.PIPE).communicate()[0].strip()
+
+def preprocess(srcfname, tmpfname, base, options):
+ "Preprocess source using GCC preprocessor and compatibility tweaks"
+
+ args = ['gcc', '-E']
+ args.extend(options.split())
+ args.append(srcfname)
+
+ # Change working directory
+
+ cwd = os.getcwd()
+ os.chdir(base)
+
+ preproc = subprocess.Popen(args, stdout = subprocess.PIPE).communicate()[0]
+
+ tmpf = file(tmpfname, "w")
+
+ for line in preproc.splitlines():
+ # Ignore preprocessor directives
+ if (line.startswith('#')):
+ continue
+
+ tmpf.write("%s\n" % line)
+
+ tmpf.close()
+
+ os.chdir(cwd)
+
+ return True
+
+def vcc(root, job):
+ "Run Vcc on a jobfile"
+
+ # Parse jobfile
+
+ inname = os.path.join(root, job)
+
+ if (not os.path.isfile(inname)):
+ print "Unable to open %s" % inname
+ print "Did you run \"make precheck\" on the source tree?"
+ return False
+
+ inf = file(inname, "r")
+ records = inf.read().splitlines()
+ inf.close()
+
+ for record in records:
+ arg = jobfile.parse_arg(record)
+ if (not arg):
+ return False
+
+ if (len(arg) < 6):
+ print "Not enought jobfile record arguments"
+ return False
+
+ srcfname = arg[0]
+ tgtfname = arg[1]
+ base = arg[4]
+ options = arg[5]
+
+ srcfqname = os.path.join(base, srcfname)
+ if (not os.path.isfile(srcfqname)):
+ print "Source %s not found" % srcfqname
+ return False
+
+ tmpfname = "%s.preproc" % srcfname
+ tmpfqname = os.path.join(base, tmpfname)
+
+ # Only C files are interesting for us
+ if (arg[2] != "cc"):
+ continue
+
+ # Preprocess sources
+
+ if (not preprocess(srcfname, tmpfname, base, options)):
+ return False
+
+ # Run Vcc
+
+ retval = subprocess.Popen(['vcc', cygpath(tmpfqname)]).wait()
+
+ # Cleanup
+
+ if (os.path.isfile(tmpfqname)):
+ os.remove(tmpfqname)
+
+ if (retval != 0):
+ return False
+
+ return True
+
+def main():
+ if (len(sys.argv) < 2):
+ usage(sys.argv[0])
+ return
+
+ rootdir = os.path.abspath(sys.argv[1])
+ config = os.path.join(rootdir, "HelenOS.config")
+
+ if (not os.path.isfile(config)):
+ print "%s not found." % config
+ print "Please specify the path to HelenOS build tree root as the first argument."
+ return
+
+ for job in jobs:
+ if (not vcc(rootdir, job)):
+ print
+ print "Failed job: %s" % job
+ return
+
+ print
+ print "All jobs passed"
+
+if __name__ == '__main__':
+ main()
Index: tools/jobfile.py
===================================================================
--- tools/jobfile.py (revision 1581708902331ee97e832b4c9189e7bbff9ec789)
+++ tools/jobfile.py (revision fd608dcf23fddc6d2ba03c8127a3289923af802a)
@@ -28,5 +28,5 @@
#
"""
-Add a source/object file pair to a Stanse jobfile
+Add a source/object file pair to a checker jobfile
"""
@@ -37,8 +37,8 @@
def usage(prname):
"Print usage syntax"
- print prname + "