Subject: Snapshot report - 12 Feb tar_files
To: None <>
From: Alistair G. Crooks <>
List: current-users
Date: 02/15/1994 03:27:13
Snapshot report.

Me: (Alistair G. Crooks)

Source: tar_files, 12th February 1994, from

Base version of NetBSD: 0.9.

Upgrade from previous -current: yes, 5 Feb tar_files from

Machine specifics: 486DX2/66, 16MB RAM, 340 MB IDE (Conner), VGA card

Other software: Havard Eidnes' shared XFree86 2.0, from 9 February 1994.

Tar files integrity: good.

Additional things to do during upgrade:
as noted by many people, the new fdlibm header file (/usr/include/math.h)
doesn't have quite the correct cpp control-flow construct. After doing a
"make install" in /usr/src/include, edit math.h by hand to change:

#ifndef _MATH_H_
#define _MATH_H


#ifndef _MATH_H_
#define _MATH_H_

Remember also to recompile libkvm.  And you'll need Thomas Eberhardt's
fix for libm to include some functions, and to stop some others being
multiply defined. Thomas' patches are included after my signature below.

Any warnings during compilation: various, not noted

Any problems during make:

Pumpy's undergone major surgery - actually it only took two hours to
switch over the two motherboards, and put both machines back together
again, but it's made a world of difference to pumpy - "make && make
install" in /usr/src/lib/libc used to take well over two hours, and
it's now just over 1 hour.  In addition, "make tests" in Havard
Eidnes' tcl archive used to dump core in "expr.test" with a floating
exception - it now completes fine - no core dump.

Changes from 05 Feb tar_files:
(This is taken from the CHANGES file on agate - last update on 11 Feb 94)
        update tsort with a version from Christos Zoulas, and convert
                it to use new err() and warn() functions. (cgd)
        add pidentd (written by Peter Eriksson <>)    
                as /usr/libexec/identd. (cgd)
        fix to uname(1) from Matthieu Herrb <> to handle
                multiple arguments. (cgd)
        fix sigismember() in libc (proven)
        add more stuff for the implementation of the POSIX 1003.4a Draft 7
                thread standard. This is version 1.18 from my tree. (proven)
        fix bug that prevented unmounting of read-only MS-DOS fs's. (cgd)
        got rid of some cruft from 'othersrc' -- an old version of tcsh,
                and ttcp.  also, cleaned up the Makefile.  (cgd)
        fixed "cat /kern -> panic" bug (cgd)
        remove bogus 'install -d's from system makefiles and from
                other places in /usr/src. (cgd)
        add quot utility as /usr/sbin/quot (ws)


0.  Mark Weaver thinks he's solved the Gateway 2000 keyboard problem
with the following diff:

diff -u  src/sys/arch/i386/isa/pccons.c.mhw1 src/sys/arch/i386/isa/pccons.c
--- src/sys/arch/i386/isa/pccons.c.mhw1 Tue Feb  1 05:25:16 1994
+++ src/sys/arch/i386/isa/pccons.c      Wed Feb  9 13:50:12 1994
@@ -241,7 +241,7 @@
        if (kbd_cmd(KBC_RESET) != 0)
                printf("Timeout for keyboard reset command\n");

-#if 0
+#if 1
        /* Wait for the first response to reset and handle retries */
        while ((response = kbd_response()) != KBR_ACK) {
                if (response < 0) {

1.  I was getting errors from g++ whenever I tried to compile any
C++ source (notably groff, but also ical). This was fixed with some
advice from Chris Demetriou to nuke the old /usr/include/g++ files
and re-install them - that worked fine. Thanks, Chris.

2.  Dirk Steinberg's had problems with his IDE drive. (I was having
them a lot, and - thankfully - haven't had so many recently). I think
my problems were a property of the drive. I've had a lot fewer just
recently, but I have been taking more care.

3.  J.T.Conklin's redone the fdlibm library (from Sun), and it's
in the tar_files. Note the additional things to do above.

4.  In answer to my plea last week, two people have remade the XFree86
2.0 for -current.  Havard Eidnes has redone the libraries, and they're on  Thanks, Havard.  Oh, and while you're there, pick up tcl
and tk from the same directory (pub/netbsd, I think) - they're well
worth the time.
In addition, Matthieu Herrb ( has made the
libraries and the clients and servers for -current at  Note that he's anchored the
version numbers of the shared object libraries to 2.0 to mirror the
XFree86 version number, so if you pick up these libraries and/or
binaries, nuke your old shared libraries which were version 5.0, and
will be picked up first by  (Thanks to Mark Weaver for the

5.  There's a new version of the if_ed driver, which has made its way
over from the magnum branch. Any funnies about it please (apart from the
seven warnings on compilation) to Charles Hannum (

6.  The current list of supported SCSI boards looks like:

bt742   eisa                    bt742a.c
bt747   eisa (modified driver)  bt742a.c
aha1742 eisa                    aha1742.c  
aha1742 eisa                    aha1742.c
aha1542 isa                     aha1742.c
34f     vlb                     uha.c           jkreska@hpmail2.fwrdc.rtsg.mot.c
bt542   isa (modified driver)   aha1542.c
bt545   isa (old ones only)     aha1542.c
bt445   vlb                     bt742a.c
          need v3.37 bios4.47         
          need v3.63 bios4.72         
aha1542b isa                    aha1542.c
ultra14f isa                    ultra14f.c
*** Specifically, the BIOS levels on the bt445 look to be important. ***

If anyone has any more to add to this list, please drop me a line.

5.  The current list of supported Ethernet cards looks like:
(thanks, Theo - you were the only one to give me any input on this).

3c509  isa  if_ep   bnc/aui. utp might work.
3c579 (eisa) doesn't work yet.
otherwise the answers are simple: any card that uses the dp8390.

(If anyone wants to add to this list, please drop me a line, Come on,
it's not that difficult, and I'm not going to get the firelighters out or
anything. How many of you have any hope of going into Fry's (for example)
and getting a decent response when you ask someone who's "helping" you
"Does this card have a dp8390 on it?")

6.  Thanks to Havard for getting rxvt to work - it works, but I find
that the scrolling's a bit jumpy, and (subjectively) slower than
xterm.  (This is rxvt's fault, not Havard's) If anyone wants the fix,
drop me a line.

7. Rob Kolstad of BSDi has announced that BSDi will ship the following
kernel files as binaries only (following the settlement of the USL/Novell
vs. BSDi lawsuit)

       kern/init_main.c        kern/subr_rmap.c        ufs/ufs_bmap.c
       kern/kern_clock.c       kern/sys_generic.c      ufs/ufs_disksubr.c
       kern/kern_exit.c        kern/sys_process.c      ufs/ufs_inode.c
       kern/kern_physio.c      kern/tty.c              ufs/ufs_vnops.c
       kern/kern_sig.c         kern/tty_subr.c
       kern/kern_synch.c       kern/vfs_syscalls.c

It's expected that 4.4lite will ship in about 1 month.

8.  Two new SUP servers have appeared, which should be used in preference
to sun-lamp - it'll ease the load on -lamp, and that'll let you get fixes
and this mailing list a bit quicker if you do. (6 connections), and (6 connections)
Thanks to Andrew Wheadon and Michael Graff (respectively) for these.

9.  Keith Moore has NetBSD running on a ThinkPad 750, but is having
problems with the boot code, so could someone please check that the
boot code compiles from scratch, please?

10.  Charles Hannum's looking for someone to test an NE2100 driver.

11.  If you get a huge (possibly negative) number of Oerrs reported in
netstat - well, recompile netstat and its buddies.

General verdict: Quite a lot seems to have changed.  As always, be
careful when you upgrade - there're some gotchas in there.  Again,
probably worth it for the new if_ed and libm - and to stay -current. 
Just remember to remake everything in the correct order, and to apply
the patches.

And the usual afterthoughts:

1.  I put my version of postgres onto agate, for anyone who wants to
hack at it - it compiles, but doesn't work. It's in

2.  I tried a Sather benchmark, and ran it on a NeXT, a SPARCcentre
2000, and two NetBSD-current boxes (a 386DX/40 and a 486DX2/66). Guess
which one won? Yup, a 486DX2/66, running NetBSD-current outperformed
a 4 CPU SPARCcentre 2000, with 128MB RAM, running Solaris 2.3.

3.  I occasionally get a funny error when I run a curses-based program
such as more from a shell escape inside nvi. After a few keystrokes,
more will terminate with what vi tells me is an error code 37. No time
to find out any more.

4.  If anyone's interested in getting GNAT, the GNU Ada Translator
running under NetBSD-current, drop me a line.

Alistair G. Crooks (                      +44 252 346377
Amdahl European HQ, Dogmersfield Park, Hartley Wintney, Hants RG27 8TE, UK.

>From Thomas Eberhardt:
The new math library is missing some entry points that were in the old one:
drem, cabs and z_abs.  IMHO z_abs was only there for the Fortran compiler.
Also there are some functions (fabs, frexp, isnan, ldex and modf) that
are already in the c library.  Below are some patches to add back cabs
and drem and remove the functions that are already in libc.

*** include/math.h-     Sat Feb 12 11:10:11 1994
--- include/math.h      Sat Feb 12 21:27:47 1994
*** 125,130 ****
--- 125,131 ----
  extern double fmod __P((double, double));

  #if !defined(_ANSI_SOURCE) && !defined(_POSIX_SOURCE)
+ extern double cabs(); /* we can't describe cabs()'s argument properly */
  extern double erf __P((double));
  extern double erfc __P((double));
  extern double gamma __P((double));
*** 145,150 ****
--- 146,152 ----
  extern double asinh __P((double));
  extern double atanh __P((double));
  extern double cbrt __P((double));
+ extern double drem __P((double, double));
  extern double logb __P((double));
  extern double nextafter __P((double, double));
  extern double remainder __P((double, double));
*** lib/libm/Makefile-  Sat Feb 12 11:12:16 1994
--- lib/libm/Makefile   Sat Feb 12 21:21:12 1994
*** 68,78 ****
        w_log.o w_log10.o w_pow.o w_remainder.o \
        w_scalb.o w_sinh.o w_sqrt.o \
        s_asinh.o s_atan.o s_cbrt.o s_ceil.o s_copysign.o \
!       s_cos.o s_erf.o s_expm1.o s_fabs.o s_finite.o s_floor.o \
!       s_frexp.o s_ilogb.o s_isnan.o s_ldexp.o s_lib_version.o \
!       s_log1p.o s_logb.o s_matherr.o s_modf.o s_nextafter.o \
        s_rint.o s_scalbn.o s_signgam.o s_significand.o s_sin.o \
        s_tan.o s_tanh.o

  MAN3+=        acos.0 acosh.0 asin.0 asinh.0 atan.0 atan2.0 atanh.0 ceil.0 \
--- 68,80 ----
        w_log.o w_log10.o w_pow.o w_remainder.o \
        w_scalb.o w_sinh.o w_sqrt.o \
        s_asinh.o s_atan.o s_cbrt.o s_ceil.o s_copysign.o \
!       s_cos.o s_erf.o s_expm1.o s_finite.o s_floor.o \
!       s_ilogb.o s_lib_version.o \
!       s_log1p.o s_logb.o s_matherr.o s_nextafter.o \
        s_rint.o s_scalbn.o s_signgam.o s_significand.o s_sin.o \
        s_tan.o s_tanh.o
+ #     s_fabs.o s_frexp.o s_isnan.o s_ldexp.o s_modf.o
+ # The uncommented files/functions above are already in libc

  MAN3+=        acos.0 acosh.0 asin.0 asinh.0 atan.0 atan2.0 atanh.0 ceil.0 \
*** lib/libm/src/fdlibm.h-      Fri Feb 11 18:52:18 1994
--- lib/libm/src/fdlibm.h       Sat Feb 12 21:28:13 1994
*** 143,148 ****
--- 143,150 ----
   * BSD math library entry points
+ extern double cabs(); /* we can't describe cabs()'s argument properly */
+ extern double drem __P((double, double));
  extern double expm1 __P((double));
  extern double log1p __P((double));

*** lib/libm/src/w_hypot.c-     Fri Feb 11 19:10:02 1994
--- lib/libm/src/w_hypot.c      Sat Feb 12 20:58:21 1994
*** 12,18 ****

!  * wrapper hypot(x,y)

  #include <math.h>
--- 12,18 ----  
!  * wrappers hypot(x,y) and BSD cabs(z)
  #include <math.h>
*** 36,39 ****
--- 36,53 ----
            return z;
+ }
+ struct complex {
+       double x, y;
+ };
+ #ifdef __STDC__
+       double cabs(struct complex z)   /* wrapper cabs */
+ #else
+       double cabs(z)                  /* wrapper cabs */
+       struct complex z;
+ #endif
+ {
+       return hypot(z.x,z.y);
*** lib/libm/src/w_remainder.c- Fri Feb 11 19:10:13 1994
--- lib/libm/src/w_remainder.c  Sat Feb 12 20:58:32 1994
*** 12,18 ****
!  * wrapper remainder(x,p)

  #include <math.h>
--- 12,18 ----   

!  * wrappers remainder(x,p) and BSD drem(x,p)
  #include <math.h>
*** 35,38 ****
--- 35,48 ----
            return z;
+ }
+ #ifdef __STDC__
+       double drem(double x, double y)         /* wrapper drem */
+ #else
+       double drem(x,y)                        /* wrapper drem */
+       double x,y;
+ #endif
+ {
+       return remainder(x,y);