Subject: Snapshot Report - July 1st tar_files
To: None <current-users@NetBSD.ORG>
From: Alistair G. Crooks <agc@uts.amdahl.com>
List: current-users
Date: 07/05/1995 07:57:00
Thanks for all the feedback last week, folks. All were positive, so
I'll keep doing my best.
This week (July 1st tar_files):
1. options ISO in the kernel still won't compile.
(compilation fails in sys/netiso/tuba_usrreq.c)
2. before you make in /usr/src/share/termcap, copy termcap.src to termcap
(or to obj/termcap if you use the object directory hierarchy), otherwise
you won't get the new termcap file. You'll get warnings about duplicate
definitions during the cap_mkdb phase, but it'll work.
3. It seems Torsten Duwe has fixed the com.c problem:
> I found the flaw in the state machine: nothing changes the state of
> the com from "waiting on last char(s)" to "done". If I understood the code
> right the transmitter empty interrupt should do this calling comstart(),
> which doesn't work in v1.60. Here is the fix:
>
> --- src/sys/dev/isa/com.c Wed Jun 28 09:12:32 1995
> +++ /home/inf4/duwe/com.c Tue Jul 4 01:48:51 1995
> @@ -664,8 +664,7 @@
> if ((tp->t_cflag & CRTSCTS) != 0 &&
> (sc->sc_msr & MSR_CTS) == 0)
> goto out;
> - if (tp->t_outq.c_cc == 0)
> - goto out;
> + if (tp->t_outq.c_cc) {
> tp->t_state |= TS_BUSY;
> if (sc->sc_hwflags & COM_HW_FIFO) {
> u_char buffer[16], *cp = buffer;
> @@ -675,6 +674,7 @@
> } while (--n);
> } else
> outb(iobase + com_data, getc(&tp->t_outq));
> + }
> if (tp->t_outq.c_cc <= tp->t_lowat) {
> if (tp->t_state & TS_ASLEEP) {
> tp->t_state &= ~TS_ASLEEP;
>
> (I haven't re-indented the newly-braced region for brevity's sake)
[I'm just trying this out now, but I've seen one report that it works - agc].
An indented diff for the above follows:
*** com.c.old Wed Jul 5 15:51:52 1995
--- com.c Wed Jul 5 15:53:26 1995
***************
*** 664,680 ****
if ((tp->t_cflag & CRTSCTS) != 0 &&
(sc->sc_msr & MSR_CTS) == 0)
goto out;
! if (tp->t_outq.c_cc == 0)
! goto out;
! tp->t_state |= TS_BUSY;
! if (sc->sc_hwflags & COM_HW_FIFO) {
! u_char buffer[16], *cp = buffer;
! int n = q_to_b(&tp->t_outq, cp, sizeof buffer);
! do {
! outb(iobase + com_data, *cp++);
! } while (--n);
! } else
! outb(iobase + com_data, getc(&tp->t_outq));
if (tp->t_outq.c_cc <= tp->t_lowat) {
if (tp->t_state & TS_ASLEEP) {
tp->t_state &= ~TS_ASLEEP;
--- 664,680 ----
if ((tp->t_cflag & CRTSCTS) != 0 &&
(sc->sc_msr & MSR_CTS) == 0)
goto out;
! if (tp->t_outq.c_cc) {
! tp->t_state |= TS_BUSY;
! if (sc->sc_hwflags & COM_HW_FIFO) {
! u_char buffer[16], *cp = buffer;
! int n = q_to_b(&tp->t_outq, cp, sizeof buffer);
! do {
! outb(iobase + com_data, *cp++);
! } while (--n);
! } else
! outb(iobase + com_data, getc(&tp->t_outq));
! }
if (tp->t_outq.c_cc <= tp->t_lowat) {
if (tp->t_state & TS_ASLEEP) {
tp->t_state &= ~TS_ASLEEP;
4. I tried installing some of the i386/1.0 packages, and found a few
funnies:
a) The pdksh package references a manual page in the +CONTENTS file
which isn't in the tar archive. (Hi, Simon!)
b) the gcc-2.6.3 package puts a g++ executable into the bin directory,
which seems unable to exec the cc1plus executable that it needs. Either
the g++ file needs to be deleted from the package, or cc1plus needs to
be placed in ../libexec
And notable changes in the 1st July tar_files:
> mk files
update lint rules, but keep linting disabled
> rpcgen
Always distinguish client and server worker routines (used
to be the case only when compiling in ANSI (`-C') mode).
> rpcgen
Conform to rpcgen generated names and prototypes.
The server-side worker routines now have "_svc" appended to avoid
conflict with client-side prototypes.
> sup
- Don't use system(3) to fork processes. It is a big security hole.
- Encode the filenames in the scan files using strvis(3), so filenames
that contain newlines or other weird characters don't break the scanner.
> sys/compat/common
- Extracted all compat routines from the kern directory and moved here.
- Created compat_util.c and compat_util.h to be used by the compatibility
modules, so they don't duplicate the same code.
- Added prototypes to the stackgap allocation routines.
> Build libkern in the kernel compilation directory, like libcompat.
> bsd.lib.mk
fix more possibly-empty 'rm's, here. kill long-dead {profiled,...}/* cleans
> `arch`/include
define __BDEVSW_DUMP_OLD_TYPE for ports where it's true.
> `arch`/machdep
use new-style block device dump functions. (most intelligence here now.)
> i386/isa/clock.c
check CMOS time against base time, for sanity. if CMOS time invalid,
warn user and user base time. if base time < 1985, warn the user.
if base time 5 or more years different than clock time, warn user,
and if it's base time that's greater, use it. (The latter case is
handy if one has a machine in which the CMOS battery is dead... I do.)
> i386/locore.s
define and set PTDpaddr (pyhs addr of kernel PTD)
> src/share/termcap
Updated to latest termcap source
> sys/arch/sparc/dev
SMD disk driver, from Chuck Cranor.
> sys/miscfs/union
Fix null VP references (pr 1124) - from John Kohl
> sys/compat/svr4
Fixes for Solaris-2.4/sparc dynamically linked binaries.
We can now run them, but:
1. setcontext() causes a panic so binaries that receive signals
crash the machine [something is wrong with the register setup].
sleep 10 ==
Watchdog reset
Data Access Exception
Type help for more information
ok
2. csh says "unknown software trap a7".
3. ls gives us a bus error.
4. ldd works :-)
But I solved the problem that had been bothering me for weeks :-)
> sys/arch/alpha/isa
ISA and PCI support for DEC AlphaStations
> gnu.usr.bin/ld
Add `-R' to record internal library search paths.
Usage note: `cc -Xlinker -R<path>'.
[Note that the Solaris-2.4/sparc binary emulation gets an awful lot better
at the beginning of this week. - agc]
For those of you interested in dosemu, jtk@kolvir.blrc.ma.us (John Kohl) says:
> I sup'ed a new source tree this evening, fixed the bug in vfs_conf.c
> (just add #include <sys/fcntl.h>) and rebuilt a kernel to verify that my
> dosemu still works. It does.
>
> I've put updated kernel/libarch/gdb/fdformat source replacements into
> ftp://sipb.mit.edu/pub/netbsd/dosemu/netbsd-src-current.950703.tar.gz
> with instructions alongside that as README.
>
> I'm off-net for the rest of the week. If you have problems, hold off
> until Saturday.
That's all folks,
Alistair
--
Alistair G. Crooks (agc@uts.amdahl.com) +44 125 234 6377
Amdahl European HQ, Dogmersfield Park, Hartley Wintney, Hants RG27 8TE, UK.
[These are only my opinions, and certainly not those of Amdahl Corporation]