Skip to content

Commit

Permalink
Original 4.3BSD-Quasijarus0 release notes
Browse files Browse the repository at this point in the history
4.3BSD-Quasijarus0 was released on 1998-12-27.

This release exists only as a historical artifact (see Quasijarus Project History). It is practically unusable. Use 4.3BSD-Quasijarus0c instead. For anyone currently running 4.3BSD-Quasijarus0 the upgrade to 4.3BSD-Quasijarus0c is MANDATORY.

4.3BSD-Quasijarus0 and 4.3BSD-Quasijarus0a contain a serious bug in c2, the peephole optimiser, which causes it under certain circumstances to throw out instructions loading registers which are later used in deferred or indexed addressing modes. The resulting misoptimised code thus dereferences bogus addresses, dumping core or even worse, behaving unpredictably. Since all system binaries are compiled with -O this potentially affects every binary in the system. This bug has been fixed in 4.3BSD-Quasijarus0b.

@(#)0.html 1.2 04/02/15

Michael Sokolov
[email protected]
  • Loading branch information
abs0 committed Jan 3, 2017
0 parents commit 0ed28e2
Show file tree
Hide file tree
Showing 9,085 changed files with 1,457,933 additions and 0 deletions.
The diff you're trying to view is too large. We only load the first 3000 changed files.
165 changes: 165 additions & 0 deletions Makefile
Original file line number Diff line number Diff line change
@@ -0,0 +1,165 @@
#
# Copyright (c) 1986, 1988 Regents of the University of California.
# All rights reserved.
#
# Redistribution and use in source and binary forms are permitted
# provided that the above copyright notice and this paragraph are
# duplicated in all such forms and that any documentation,
# advertising materials, and other materials related to such
# distribution and use acknowledge that the software was developed
# by the University of California, Berkeley. The name of the
# University may not be used to endorse or promote products derived
# from this software without specific prior written permission.
# THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
# IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
# WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
#
# @(#)Makefile 4.18 (Berkeley) 6/30/88
#
# This makefile is designed to be run in one of three ways:
#
# make clean
# make depend
# make build
# make installsrc
# This is the most rigorous way to rebuild the source tree.
# The first two steps will clean the source tree and remake the dependencies.
# The `make build' will compile and install the libraries and the compiler
# twice before building the rest of the sources. The `make installsrc' will
# then install the remaining binaries.
#
# make libthenall
# make installsrc
# The `make libthenall' will compile and install the libraries, compile
# and install the compiler and then compile everything else. Note,
# however, that the libraries will have been built with the old compiler.
# The `make installsrc' will then install the remaining binaries.
#
# make all
# make install
# The `make all' (the default) will compile everything, and install
# nothing. The `make install' will then install everything.
#
# C library options: passed to libc makefile.
# See lib/libc/Makefile for explanation.
#
# HOSTLOOKUP must be either named or hosttable.
# DFLMON must be either mon.o or gmon.o.
# DEFS may include -DLIBC_SCCS, -DSYSLIBC_SCCS, both, or neither.
#
DEFS= -DLIBC_SCCS
DFLMON= mon.o
HOSTLOOKUP= named
LIBCDEFS= HOSTLOOKUP=${HOSTLOOKUP} DFLMON=${DFLMON} DEFS="${DEFS}"

# global flags
# SRC_MFLAGS are used on makes in command source directories,
# but not in library or compiler directories that will be installed
# for use in compiling everything else.
#
DESTDIR=
CFLAGS= -O
SRC_MFLAGS= -k

LIBDIR= lib usr.lib
# order is important, old and man must be #1 and #2
SRCDIR= old man bin usr.bin etc ucb new games local

all: ${LIBDIR} ${SRCDIR}

libthenall: buildlib1 buildlib3 src

build: buildlib1 buildlib2 buildlib3 src

src: ${SRCDIR}

lib: FRC
cd lib/libc; make ${MFLAGS} ${LIBCDEFS}
cd lib; make ${MFLAGS} pcc cpp c2

usr.lib ${SRCDIR}: FRC
@echo
@echo === compiling $@
cd $@; make ${MFLAGS} ${SRC_MFLAGS}

buildlib1: FRC
@echo === installing /usr/include
cd include; make ${MFLAGS} DESTDIR=${DESTDIR} install
@echo
@echo === compiling libc.a
cd lib/libc; make ${MFLAGS} ${LIBCDEFS}
@echo === installing /lib/libc.a
cd lib/libc; make ${MFLAGS} DESTDIR=${DESTDIR} install
@echo
@echo === compiling C compiler
cd lib; make ${MFLAGS} pcc cpp c2
@echo
@echo === installing C compiler
cd lib/pcc; make ${MFLAGS} DESTDIR=${DESTDIR} install
cd lib/cpp; make ${MFLAGS} DESTDIR=${DESTDIR} install
cd lib/c2; make ${MFLAGS} DESTDIR=${DESTDIR} install
@echo

buildlib2: FRC
@echo === cleaning lib
cd lib; make ${MFLAGS} clean
@echo === re-compiling libc.a
cd lib/libc; make ${MFLAGS} ${LIBCDEFS}
@echo === re-installing /lib/libc.a
cd lib/libc; make ${MFLAGS} DESTDIR=${DESTDIR} install
@echo
@echo === re-compiling C compiler
cd lib; make ${MFLAGS} pcc cpp c2
@echo === re-installing C compiler
cd lib/pcc; make ${MFLAGS} DESTDIR=${DESTDIR} install
cd lib/cpp; make ${MFLAGS} DESTDIR=${DESTDIR} install
cd lib/c2; make ${MFLAGS} DESTDIR=${DESTDIR} install
@echo

buildlib3: FRC
@echo === compiling usr.lib
cd usr.lib; make ${MFLAGS} ${SRC_MFLAGS}
@echo === installing /usr/lib
cd usr.lib; make ${MFLAGS} ${SRC_MFLAGS} DESTDIR=${DESTDIR} install
@echo === done with libraries
@echo

install: FRC
-for i in ${LIBDIR} ${SRCDIR}; do \
echo; \
echo === installing $$i; \
(cd $$i; \
make ${MFLAGS} ${SRC_MFLAGS} DESTDIR=${DESTDIR} install); \
done

installsrc: FRC
-for i in ${SRCDIR}; do \
echo; \
echo === installing $$i; \
(cd $$i; \
make ${MFLAGS} ${SRC_MFLAGS} DESTDIR=${DESTDIR} install); \
done

depend: FRC
for i in ${LIBDIR} ${SRCDIR}; do \
echo; \
echo === doing dependencies for $$i; \
(cd $$i; make ${MFLAGS} depend); \
done

tags: FRC
for i in include lib usr.lib; do \
echo; \
echo === making tags for $$i; \
(cd $$i; make ${MFLAGS} TAGSFILE=../tags tags); \
done
sort -u +0 -1 -o tags tags

clean: FRC
for i in ${LIBDIR} ${SRCDIR}; do \
echo; \
echo === cleaning $$i; \
(cd $$i; make -k ${MFLAGS} clean); \
done

FRC:
60 changes: 60 additions & 0 deletions bin/.MAP
Original file line number Diff line number Diff line change
@@ -0,0 +1,60 @@
D ADB adb
F AR.C;1 ar.c
D AS as
D AWK awk
F CAT.C;1 cat.c
F CC.C;1 cc.c
F CHMOD.C;1 chmod.c
F CMP.C;1 cmp.c
F CP.C;1 cp.c
D CPIO cpio
D CSH csh
F DATE.C;1 date.c
F DD.C;1 dd.c
F DF.C;1 df.c
D DIFF diff
F DU.C;1 du.c
F ECHO.C;1 echo.c
F ED.C;1 ed.c
F EXPR.Y;1 expr.y
F FALSE.SH;1 false.sh
F HOSTID.C;1 hostid.c
F HOSTNAME.C;1 hostname.c
F KILL.C;1 kill.c
F LD.C;1 ld.c
F LN.C;1 ln.c
F LOGIN.C;1 login.c
F LS.C;1 ls.c
F MACHINE.C;1 machine.c
D MAKE make
F MAKEFILE.;1 Makefile
F MKDIR.C;1 mkdir.c
F MT.C;1 mt.c
F MV.C;1 mv.c
F NICE.C;1 nice.c
F NM.C;1 nm.c
F OD.C;1 od.c
F PAGESIZE.C;1 pagesize.c
D PASSWD passwd
F PR.C;1 pr.c
F PS.C;1 ps.c
F PWD.C;1 pwd.c
F RCP.C;1 rcp.c
F RM.C;1 rm.c
F RMDIR.C;1 rmdir.c
D SED sed
D SH sh
F SIZE.C;1 size.c
F STRIP.C;1 strip.c
F STTY.C;1 stty.c
F SU.C;1 su.c
F SYNC.C;1 sync.c
F TAR.C;1 tar.c
F TEE.C;1 tee.c
F TEST.C;1 test.c
F TIME.C;1 time.c
D TP tp
F TRUE.SH;1 true.sh
F WALL.C;1 wall.c
F WHO.C;1 who.c
F WRITE.C;1 write.c
Loading

0 comments on commit 0ed28e2

Please sign in to comment.