Imported Upstream version 4.89
[platform/upstream/lsof.git] / 00DIST
1
2             Notes for the distribution of lsof version 4
3
4 ********************************************************************
5 | The latest release of lsof is always available via anonymous ftp |
6 | from lsof.itap.purdue.edu.  Look in pub/tools/unix/lsof.         |
7 ********************************************************************
8
9                 Contents
10
11             Dialects Supported
12             How Lsof Works
13             Lsof Output
14             Getting Started Quickly
15             Limiting, Filtering, and Selecting Lsof Output
16             Parsing Lsof Output with Another Program
17             Repeat Mode
18             Distribution Restrictions
19             Cautions
20             Distribution Contents
21             Warranty
22             Bug Reports
23             The lsof-l Mailing List
24             Version 3 Release Notes
25                 3.0,  May 24, 1994
26                 ...
27                 3.88, February 17, 1997
28             What's New in Version 4
29             Version 4 Release Notes
30                 4.0, February 24, 1997
31                 4.01, March 3, 1997
32                 4.02, March 21, 1997
33                 4.03, April 7, 1997
34                 4.04, April 17, 1997
35                 4.04 supplement, April 18, 1997
36                 4.05, April 24, 1997
37                 4.06, April 30, 1997
38                 4.07, May 12, 1997
39                 4.08, May 23, 1997
40                 4.09, June 1, 1997
41                 4.10, June 8, 1997
42                 4.11, June 12, 1997
43                 4.12, June 24, 1997
44                 4.13, July 9, 1997
45                 4.14, July 22, 1997
46                 4.15, August 15, 1997
47                 4.16, September 25, 1997
48                 4.17, October 14, 1997
49                 4.18, October 25, 1997
50                 4.19, October 30, 1997
51                 4.20, November 11, 1997
52                 4.21, December 1, 1997
53                 4.22, December 15, 1997
54                 4.23, January 16, 1998
55                 4.24, January 28, 1998
56                 4.25, February 7, 1998
57                 4.26, February 17, 1998
58                 4.27, March 6, 1998
59                 4.28, March 10, 1998
60                 4.29, March 26, 1998
61                 4.30, April 9, 1998
62                 4.31, April 21, 1998
63                 4.32, May 13, 1998
64                 4.33, May 22, 1998
65                 4.34, June 26, 1998
66                 4.35, July 17, 1998
67                 4.36, August 4, 1998
68                 4.37, September 15, 1998
69                 4.38, November 25, 1998
70                 4.39, December 29, 1998
71                 4.40, January 25, 1999
72                 4.41, February 27, 1999
73                 4.42, March 30, 1999
74                 4.43, May 11, 1999
75                 4.44, June 24, 1999
76                 4.45, July 30, 1999
77                 4.46, October 23, 1999
78                 4.47, November 29, 1999
79                 4.48, January 14, 2000
80                 4.49, April 3, 2000
81                 4.50, June 29, 2000
82                 4.51, August 21, 2000
83                 4.52, November 8, 2000
84                 4.53, December 6, 2000
85                 4.54, January 19, 2001
86                 4.55, February 15, 2001
87                 4.56, May 3, 2001
88                 4.57, July 19, 2001
89                 4.58, September 13, 2001
90                 4.59, October 20, 2001
91                 4.60, November 9, 2001
92                 4.61, January 22, 2002
93                 4.62, March 7, 2002
94                 4.63, April 23, 2002
95                 4.64, June 26, 2002
96                 4.65, October 10, 2002
97                 4.66, December 22, 2002
98                 4.67, March 27, 2003
99                 4.68, June 18, 2003
100                 4.69, October 16, 2003
101                 4.70, January 16, 2004
102                 4.71, March 11, 2004
103                 4.72, July 13, 2004
104                 4.73, October 21, 2004
105                 4.74, January 17, 2005
106                 4.75, May 16, 2005
107                 4.76, August 30, 2005
108                 4.77, April 10, 2006
109                 4.78, April 24, 2007
110                 4.79, April 15, 2008
111                 4.80, May 12, 2008
112                 4.81, October 21, 2008
113                 4.82, March 25, 2009
114                 4.83, January 18, 2010
115                 4.84, July 29, 2010
116                 4.85, September 27, 2011
117                 4.86, April 10, 2012
118                 4.87, January 2, 2013
119                 4.88, October 13, 2014
120                 4.89, July 7, 2015
121
122
123 Dialects Supported
124 ==================
125
126 Lsof (for LiSt Open Files) lists files opened by processes on
127 selected Unix systems.  Version 4 is a source reorganization of
128 version 3, itself a major revision of version 2.  Version 4 has
129 been tested on:
130
131         Apple Darwin 9 and Mac OS X 10.[567]
132         FreeBSD 8.[234], 9.0, 10.0 and 11.0 for AMD64-based systems
133         Linux 2.1.72 and above for x86-based systems
134         Solaris 9, 10 and 11
135
136 (The pub/tools/unix/lsof/contrib directory on lsof.itap.purdue.edu
137 contains information on other ports.)
138
139 If your favorite Unix dialect is not in the list, or if your version
140 of it is more recent than the ones listed, please contact me at
141 <abe@purdue.edu>.
142
143 Version 3 of lsof was tested on:
144
145         AIX 3.2.5, 4.1[.[1234]], and 4.2
146         BSDI BSD/OS 2.0, 2.0.1, and 2.1 for x86-based systems
147         DC/OSx 1.1 for Pyramid systems
148         Digital UNIX (DEC OSF/1) 2.0, 3.0, 3.2, and 4.0
149         EP/IX 2.1.1 for the CDC 4680
150         FreeBSD 1.1.5.1, 2.0, 2.0.5, 2.1, 2.1.5 for x86-based
151                 systems
152         HP-UX 8.x, 9.x, 10.01, 10.10, and 10.20
153         IRIX 5.2, 5.3, 6.0, 6.0.1, and 6.[124]
154         Linux through 2.0.27 for x86-based systems
155         NetBSD 1.0, 1.1, and 1.2 for x86 and SPARC-based
156                 systems
157         NEXTSTEP 2.1 and 3.[0123]
158         OpenBSD 1.2 and 2.0 for x86-based systems
159         Reliant UNIX 5.43 for Pyramid systems
160         RISC/os 4.52 for MIPS R2000-based systems
161         SCO OpenServer Release 1.1, 3.0, and 5.0.x for x86-based 
162                 systems
163         SCO UnixWare 2.1 and 2.1.1 for x86-based systems
164         Sequent PTX 2.1.[1569], 4.0.[23], 4.1.[024], 4.2[.1],
165                 and 4.3
166         Solaris 2.[12345], 2.5.1, and 2.6-Beta
167         SunOS 4.1.x
168         Ultrix 4.2, 4.3, 4.4, and 4.5
169
170 Version 3 and its predecessor, version 2, may be found at:
171
172         ftp://lsof.itap.purdue.edu/pub/tools/unix/lsof/OLD
173
174
175 How Lsof Works
176 ==============
177
178 Using available kernel data access methods -- getproc(), getuser(),
179 kvm_*(), nlist(), pstat(), read(), readx(), /proc -- lsof reads
180 process table entries, task table entries, user areas and file
181 pointers to reach the underlying structures that describe files
182 opened by processes.
183
184 Lsof interprets most file node structures -- advfsnodes, autonodes,
185 cnodes, cdrnodes, devnodes, fifonodes, gnodes, hsnodes, inodes,
186 mfsnodes, pcnodes, procnodes, rnodes, snodes, specnodes, s5inodes,
187 tmpnodes.  It understands NFS connections.  It recognizes FIFOs,
188 multiplexed files, Unix and Internet sockets.  It knows about
189 streams.  It understands /proc file systems for some dialects.  On
190 many dialects it recognizes execution text and library references.
191 It knows about AFS on some Unix dialects.
192
193
194 Lsof Output
195 ===========
196
197 The lsof output describes:
198
199     * the identification number of the process (PID) that has opened
200       the file;
201
202     * the process group identification number (PGID) of the process
203       (optional);
204
205     * the process identification number of the parent process (PPID)
206       (optional);
207
208     * the command the process is executing;
209
210     * the owner of the process;
211
212     * for all files in use by the process, including the executing
213       text file and the shared libraries it is using:
214
215       * the file descriptor number of the file, if applicable;
216
217       * the file's access mode;
218
219       * the file's lock status;
220
221       * the file's device numbers;
222
223       * the file's inode number;
224
225       * the file's size or offset;
226
227       * the name of the file system containing the file;
228
229       * any available components of the file's path name;
230
231       * the names of the file's stream components;
232
233       * the file's local and remote network addresses;
234
235       * the TLI network (typically UDP) state of the file;
236
237       * the TCP state, read queue length, and write queue length
238         of the file;
239
240       * the file's TCP window read and write lengths (Solaris
241         only);
242
243       * other file or dialect-specific values.
244
245
246 Getting Started Quickly
247 =======================
248
249 If you want to get started using lsof quickly, or see some examples
250 of how lsof can be used, consult the 00QUICKSTART file of the lsof
251 distribution.
252
253 The 00QUICKSTART file won't help you build or install lsof, but it
254 will cut through the density of the lsof man page, giving you more
255 readily an idea of what you can do with lsof.
256
257 For information on building and installing lsof, consult the 00README
258 file of the lsof distribution.
259
260
261 Limiting, Filtering, and Selecting Lsof Output
262 ==============================================
263
264 Lsof accepts options to limit, filter, and select its output.
265 These are the possible criteria:
266
267     * Process ID (PID) number -- to list the open files for a given
268       process;
269
270     * Process Group ID (PGID) -- to list the open files for all
271       the processes of a given process group;
272
273     * User ID number or login name -- to list the open files for
274       all the processes of a given user;
275
276     * Internet address -- to list the open files using a given
277       Internet address (host name), protocol, or port (number or
278       name); or to list all open Internet files;
279
280     * command name;
281
282     * file descriptor name or number;
283
284     * list all open NFS files;
285
286     * list all open Unix domain socket files;
287
288     * list all uses of a specific file;
289
290     * list all open files on a file system.
291
292 Selection options are normally ORed -- i.e., an open file meeting
293 any of the criteria is listed.  The selection options may be ANDed
294 so that an open file will be listed only if it meets all the
295 criteria.
296
297 In the absence of any selection criteria, lsof lists files open to
298 all processes.
299
300
301 Parsing Lsof Output with Another Program
302 ========================================
303
304 The lsof -F option directs it to produce "field" output that can
305 easily be parsed by another program.  The lsof distribution contains
306 sample awk, perl 4, and perl 5 scripts in its scripts subdirectory
307 that show how to post-process field output.
308
309
310 Repeat Mode
311 ===========
312
313 Lsof can be directed to produce output, delay for a specified time,
314 then repeat the output, cycling until stopped by an interrupt or
315 quit signal.  This mode is useful for monitoring the status of some
316 file operation -- e.g., an ftp transfer or a tape backup operation.
317
318 Repeat mode is more efficient when combined with lsof's selection
319 options, since they limit lsof overhead.
320
321 It's possible to use lsof's field output options to supply repeat
322 mode output to another process for its manipulation.  The scripts
323 subdirectory of the lsof distribution has sample Perl scripts
324 showing how to consume lsof repeat mode output from a pipe.
325
326
327 Distribution Restrictions
328 =========================
329
330 Lsof may be used and distributed freely, subject to these limitations:
331
332 1. Neither the author nor Purdue University is responsible for
333    any consequences of the use of this software.
334
335 2. The origin of this software must not be misrepresented, either
336    by explicit claim or by omission.  Credit to the author and
337    Purdue University must appear in documentation and sources.
338
339 3. Altered versions must be plainly marked as such, and must not
340    be misrepresented as being the original software.
341
342 4. This notice may not be removed from or altered in the lsof source
343    files.
344
345
346 Cautions
347 ========
348
349 Lsof is a tool that is closely tied to the Unix operating system
350 version.  It uses header files that describe kernel structures and
351 reads kernel structures that typically change from OS version to
352 OS version.
353
354 DON'T TRY TO USE AN LSOF BINARY, COMPILED FOR ONE UNIX OS VERSION,
355 ON ANOTHER.
356
357 On some Unix dialects, notably SunOS and Solaris, lsof versions
358 may be even more restricted by architecture type.  An lsof binary,
359 compiled for SunOS 4.1.3 on a sun4c machine, for example, won't
360 work on a sun4m machine.
361
362 AN LSOF BINARY, COMPILED FOR ONE SOLARIS 1.X ARCHITECTURE, ISN'T
363 GUARANTEED TO WORK ON A DIFFERENT SOLARIS 1.X ARCHITECTURE.
364
365
366 Distribution Contents
367 =====================
368
369 The lsof distribution is checked for completeness when it is
370 constructed and by the Inventory script when you run the Configure
371 script.  (See The Inventory Script section of the 00README file of
372 this distribution.)
373
374 Lsof is organized in these parts:
375
376     *  The main lsof directory, containing common sources,
377        configuration and setup scripts and three subdirectories:
378        dialects/, lib/, and scripts/.
379
380        Lsof is compiled in the main lsof directory after configuration.
381        The selected dialect sources are copied or linked from the
382        specified subdirectory.  (Symbolic linking is the standard
383        method.)
384
385        Common lsof definitions may be found in lsof.h; common
386        function prototypes, proto.h; and common storage, store.c.
387
388     *  The dialects/ subdirectory contains subdirectories with
389        sources specific to UNIX dialect implementations -- e.g.,
390        the dialects/sun/ subdirectory contains sources for the
391        SunOS (Solaris 1.x) and Solaris (2.x) implementations of
392        lsof.  The dialects subdirectories also contain Makefiles
393        and scripts for assisting dialect source configuration.
394
395        Dialect configuration definitions may be found in dlsof.h;
396        other dialect definitions, dlsof.h; dialect prototypes,
397        dproto.h; and dialect storage, dstore.c.
398
399     *  The lib/ subdirectory contains sources for common lsof
400        functions.  Not all dialects use the functions -- some have
401        their own versions of them.  The lib/ functions are enabled
402        and customized with #define's in the dialect machine.h header
403        files.
404
405     *  The scripts/ subdirectory contains sample scripts for
406        processing lsof field (-F) output.  The scripts are written
407        in AWK, Perl 4, and Perl 5.
408
409 The 00PORTING file of the lsof distribution has more information
410 on lsof components, configuration, and construction.
411
412
413 Warranty
414 ========
415
416 Lsof is provided as-is without any warranty of any kind, either
417 expressed or implied, including, but not limited to, the implied
418 warranties of merchantability and fitness for a particular purpose.
419 The entire risk as to the quality and performance of lsof is with
420 you.  Should lsof prove defective, you assume the cost of all
421 necessary servicing, repair, or correction.
422
423
424 Bug Reports
425 ===========
426
427 Now that the obligatory disclaimer is out of the way, let me hasten
428 to add that I accept lsof bug reports and try hard to respond to
429 them.  I will also consider and discuss requests for new features,
430 ports to new dialects, or ports to new OS versions.
431
432 PLEASE DON'T SEND A BUG REPORT ABOUT LSOF TO THE UNIX DIALECT
433 VENDOR.
434
435 At worst such a bug report will confuse the vendor; at best, the
436 vendor will forward the bug report to me.
437
438 Please send all bug reports, requests, etc. to me via email at
439 <abe@purdue.edu>.
440
441
442 The lsof-l Mailing List
443 =======================
444
445 Information about lsof, including notices about the availability
446 of new revisions, may be found in mailings of the lsof-l listserv.
447 For more information about it, including instructions on how to
448 subscribe, read the 00LSOF-L file of the lsof distribution.
449
450
451 Version 3 Release Notes
452 =======================
453
454 See 00DIST in the last lsof 3 revision 3.88, for its complete
455 set of release notes.  Lsof revision 3.88 may be found at:
456
457         ftp://lsof.itap.purdue.edu/pub/tools/unix/lsof/OLD
458
459 3.0             May 24, 1994
460                 This is the first official release of lsof 3.
461
462 ...
463
464 3.88            February 17, 1997
465
466                 +======================================+
467                 | This is the last version 3 revision. |
468                 +======================================+
469
470                 Added documentation files -- 00.README.FIRST[_<version>]
471                 and 00RELEASE.SUMMARY_<version> -- to the distribution.
472
473
474 What's new in Version 4
475 =======================
476
477 The main goal of version 4 was to eliminate the confusing common/
478 fragment source file technique.  Changing the version number also
479 provided an opportunity to restart the numbering, which at 3.88
480 had risen to a large value.
481
482 The sources that appeared in the dialects/common subdirectory of
483 version 3 in fragment files have been incorporated into the version
484 4 liblsof.a library as *.c files.  This results in significant
485 changes to many source files, scripts, and Makefiles of all dialect
486 versions.  It allows elimination of some source files -- ddev.c,
487 dfile.c, dmnt.c -- for dialects now obtaining functions from
488 liblsof.a that formerly came from making dialect source files by
489 combining fragment files.
490
491 The version 4 liblsof.a sources are stored in the lib/ subdirectory
492 of the main lsof directory.  The liblsof.a functions are activated
493 and conditioned in their source files by values #define'd in the
494 dialect dlsof.h and machine.h header files.
495
496 Dialects that provide a private version of a library function refrain
497 from #define'ing the symbol that would activate the library function
498 code.
499
500
501 Version 4 Release Notes
502 =======================
503
504 4.0             February 24, 1997
505
506                 +====================================+
507                 | This is the first lsof 4 revision. |
508                 +====================================+
509
510                 Reorganized sources: eliminated code fragment files
511                 and created a library in their place.  Modified or
512                 deleted many dialect source and header files.
513                 Changed documentation accordingly.
514
515                 Added a warning to sgi/Makefile and 00FAQ that advises
516                 against using the IRIX C compiler -n32 option when
517                 compiling lsof.  Thanks go to Peter Ilieve
518                 <peter@memex.co.uk> for bringing this to my attention.
519
520                 Dropped IRIX 5.2 in mid-stream, because my 5.2 test
521                 system was upgraded to 5.3.
522
523 4.01            March 3, 1997
524                 Added TFS support for Pyramid dialects.
525
526                 Added test to Configure and to the IRIX dnode.c
527                 for the different cnode struct that appears in
528                 <cachefs/cachefs_fs.h> on the 6.2 IMPACT distribution.
529                 Heddy Boubaker <boubaker@amfou.cenatls.cena.dgac.fr>
530                 alerted me to the cnode change and helped test this
531                 lsof adjustment.
532
533                 Shut down the lsof child process before doing a -r
534                 sleep().  A comment from Dan Mercer <dam@mmm.com>
535                 prompted this.
536
537 4.02            March 21, 1997
538
539                 Based on a report from Pasi Kaara <Pasi.Kaara@atk.tpo.fi>,
540                 disabled HP-UX CCIT support in lsof for HP-UX
541                 versions 10 and above.  Pasi's report also led to
542                 changes in the HP-UX machine.h to support use of
543                 gcc to compile lsof for HP-UX 10.20 and warnings
544                 against using `cc -Aa` or `gcc -ansi` to compile
545                 lsof under HP-UX 10.x.
546
547                 With help from Richard Allen <ra@hp.is> taught
548                 HP-UX 10.x lsof to name file systems better by
549                 using the virtual file system device number.  Elias
550                 Halldor Agustsson <elias@rhi.hi.is> provided a test
551                 system.
552
553                 Changed NEXTSTEP and UNIXWARE Makefiles to use
554                 safer quoting when generating version.h.  The change
555                 was suggested by Bob Farmer <ucs_brf@unx1.shsu.edu>.
556
557                 Added SHELL=/bin/sh string to all Makefiles.
558
559                 Added support for Linux 2.1.28 on a test system,
560                 kindly provided by Jonathan Sergent <sergent@purdue.edu>.
561                 Configure tests the Linux 2.1.x's C library lseek()
562                 function for proper handling of kernel offsets.
563                 If lseek() appears suspect, Configure activates
564                 the use of a private lseek() function.  Changed
565                 the private nlist() function to nlist_private()
566                 and taught it to use the query_module() syscall in
567                 place of the deprecated get_kernel_syms() one.
568                 Added rudimentary AX.25 support for Pierfrancesco
569                 Caci <ik5pvx@infogroup.it> who helped test it.
570                 Updated the old get_kernel_syms() code to recognize
571                 and skip module name entries.
572
573                 Prompted by Marty Leisner <leisner@sdsp.mc.xerox.com>,
574                 eased the requirement that service name lookup for
575                 the -i option be accompanied by a protocol name.  The
576                 name is not needed if both TCP and UDP names yield the
577                 same port number.
578
579                 Added xusers.awk script from Dan Mercer <damercer@mmm.com>
580                 to the distribution scripts/ subdirectory.
581
582                 Changed Configure script to use LSOF_VERS for all
583                 UNIX dialect version numbers and to pass LSOF_VERS
584                 to the dialect Mksrc functions.  Also added the
585                 ability for a dialect stanza to declare a different
586                 dialect Makefile source.  Modified dialect Mksrc
587                 files -- e.g., linux and sun -- accordingly.
588
589                 Added support for BSD/OS 3.0 with help from Jim
590                 Reid <jim@mpn.cp.philips.com>.  Terry Kennedy
591                 <TERRY@spcvxa.spc.edu> kindly provided a test
592                 system.  During the port corrected a bug that
593                 prevented proper handling of revoked files.
594
595 4.03            April 7, 1997
596                 At the suggestion of Dan Mercer <damercer@mmm.com>,
597                 made HP-UX building of lsof aware of differences
598                 between the HP-UX bundled and unbundled C compilers.
599
600                 Added the ability for the lsof builder to define the
601                 default warning message issuance state.  By default the
602                 issuance of warning messages is disabled; defining
603                 WARNINGSTATE in machine.h disables it.  The Customize
604                 script was updated to handle WARNINGSTATE.  Dan Mercer
605                 suggested this.
606
607                 Eliminated compiler complaint about improperly cast
608                 get_Nl_value() argument in ncache_load() in lib/rnch.c.
609
610                 Corrected zeromem() argument error in SCO dproc.c.
611                 Sped up parent directory cache lookup slightly.
612
613                 Updated for PTX 4.4, including additional VxFS (EFS)
614                 file system support.
615
616 4.04            April 17, 1997
617                 At the suggestion of Bela Lubkin <belal@sco.COM>
618                 changed device cache handling to be more tolerant
619                 of a device cache file whose [cm]times are older
620                 than the ones on /dev or /devices.  The change
621                 required adding information to Solaris device cache
622                 file clone lines, so the first time lsof 4.04 is
623                 run under Solaris it will complain about a bad
624                 cached clone device in a previous device cache
625                 file, then regenerate it.
626
627                 Added boot file path detection for SCO OSR 5 and
628                 above, based on information supplied by Bela.
629
630                 Fixed two bugs in DEC OSF/1 lsof -- an error in
631                 reporting locks and a missing continue statement
632                 in readdev() after a failure to open a directory.
633                 Jan Ole Suhr <josuhr@informatik.tu-clausthal.de>
634                 reported the second bug and supplied a fix.
635
636                 Fixed XFS problems with IRIX 6.2 by abandoning the
637                 idea that SGI will distribute XFS header files and
638                 defining an lsof-private xfs_inode structure.  John
639                 Paul Morrison <John.Paul.Morrison@MultiActive.com>
640                 helped develop and test the 5.3 definition.  John
641                 R. Vanderpool <fish@daacdev1.gsfc.nasa.gov> helped
642                 develop and test the 6.2 definition.
643
644                 Remove obsolete comments about common/*.frag files.
645
646                 Updated Linux lsof for Linux version 2.1.35.
647
648 4.04            April 18, 1997
649 Supplement      Regenerated the 4.04 distribution to correct a non-
650                 device-cache #define misplacement in the Solaris and
651                 SunOS dlsof.h.  Alexandre Oliva <oliva@dcc.unicamp.br>
652                 reported the problem.
653
654 4.05            April 24, 1997
655                 Corrected an error in 00DCACHE.
656
657                 Made sure SCO /etc/ps/booted.systems is closed.
658
659                 Based on an observation by Bela Lubkin <belal@sco.COM>
660                 that the lsof child had needless file descriptors
661                 open, closed all but the open pipes between the
662                 lsof parent and child.
663
664                 Decommissioned CDC EP/IX support; I no longer have a
665                 test system.
666
667                 Based on a suggestion from Patrick Connor
668                 <connor@phreak.csd.sgi.com>, added -xansi to CFLAGS
669                 for IRIX 5.3 and 6.[234].
670
671                 Also at Patrick's suggestion changed Configure to
672                 propagate exact SunOS 4.1.x version to the main
673                 and library Makefiles.  This allowed the sunos413
674                 and sunos413cc Configure abbreviations to be
675                 shortened to sunos and sunoscc.
676
677                 Updated obsolete argument uses (-H changed to -n)
678                 in count_pf.perl* and watch_a_file.perl scripts.
679
680                 Adjusted Solaris 2.6 lsof for Beta_Update with tips
681                 from Casper Dik <casper@holland.Sun.COM>.
682
683                 Fixed a Solaris 2.4 TCP address reporting bug.
684
685 4.06            April 30, 1997
686                 Added a step to the Makefile clean rules that does
687                 a make clean in the lib subdirectory; suggested by
688                 Casper Dik <casper@holland.Sun.COM>.  (Configure's
689                 -clean argument already did this.)
690
691                 Fixed an incorrect awk argument in the sunos*)
692                 Configure stanza, reported by Alexandre Oliva
693                 <oliva@dcc.unicamp.br>.
694
695                 Added CD9660 (aka ISO) file system support to
696                 FreeBSD, NetBSD, and OpenBSD with mods and help
697                 from Kenneth Stailey <kstailey@disclosure.com>.
698                 (BSDI already had CD9660 support.)  While at it,
699                 added file descriptor system support to BSDI and
700                 FreeBSD.
701
702                 Added /kern file system support to OpenBSD.  The
703                 support wasn't extended to BSDI, FreeBSD, or NetBSD,
704                 because it requires Kenneth Stailey's changes to
705                 /sys/miscfs/kernfs/kernfs.h.
706
707                 Updated IRIX 6.3 support after getting access to
708                 a test system, provided by John Paul Morrison
709                 <John.Paul.Morrison@MultiActive.com>.  Improved
710                 the handling of IRIX 5.1 and greater FIFOs.
711
712 4.07            May 12, 1997
713                 Based on AIX problem reports from David Capshaw
714                 <David.Capshaw@SEMATECH.Org>, changed the aix*
715                 Configure script stanza to avoid -bnolibpath for
716                 gcc (which the GNU loader doesn't grok) and AIX
717                 below 4.1.4 (where -bnolibpath hasn't been tested
718                 or is known to be unimplemented), and to refuse to
719                 use gcc for compiling lsof in AIX versions below
720                 4.1 (because of possible structure alignment
721                 problems).  Updated 00FAQ appropriately.
722
723                 Added OpenBSD support for EXT2FS.  This support
724                 has yet to be tested.
725                 
726                 Tested lsof under OpenBSD 2.1.
727
728                 Activated /kern file system support for NetBSD when
729                 Configure senses that /sys/miscfs/kernfs/kernfs.h
730                 defines the kern_target structure.  This support
731                 has not been tested under NetBSD, although it has
732                 been tested under OpenBSD.
733
734                 Made some simple changes to the BSDI machine.h,
735                 suggested by Jeffrey C. Honig <jch@bsdi.com>.
736
737                 Improved handling of alternate dialect Configure
738                 abbreviations -- aix and aixgcc, hpux and hpuxgcc,
739                 solaris and solariscc, and sunos and sunoscc.
740
741 4.08            May 23, 1997
742                 Cleaned up dialect Makefile's, staring with a suggestion
743                 from Christopher Schanzle <chris@cam.nist.gov>.
744
745                 Improved Configure's -clean processing.
746
747                 Corrected bugs in Solaris lock reporting.
748
749                 Changed NetBSD Configure stanza to put -I/usr/include
750                 before -I/sys.
751
752 4.09            June 1, 1997
753                 Adjusted for latest FreeBSD 3.0 release.  This
754                 required adding a new kernel name cache module for
755                 reading BSD-form hashed kernel name cache entries,
756                 rnmh.c, to the lsof library, and adding a #define
757                 to each machine.h to select it.
758
759                 Activated rnmh.c for BSDI 2.1, BSDI 3.0, NetBSD
760                 1.2, and OpenBSD 2.1.
761
762 4.10            June 8, 1997
763                 Adjusted for Linux 2.1.x (x > 35) kernels with
764                 hashed task structure pointers.  Marty Leisner
765                 <leisner@sdsp.mc.xerox.com> and Jonathan Sergent
766                 <sergent@io.com> tested the adjustment.
767
768                 Replaced readdev() stat() calls with lstat() to
769                 reduce device table and cache entries with the same
770                 device number and inode values.  Added code to
771                 remove all remaining duplicates.  This fixes a
772                 Linux problem reported by Jonathan Sergent and
773                 makes device node name output predictable.
774
775                 Corrected a bug in UnixWare stream file handling
776                 that prevented searching for the stream file by
777                 its associated character device name.
778
779                 Added Pyramid code to determine Reliant UNIX clone
780                 major device number differently from that of DC/OSx.
781
782 4.11            June 12, 1997
783                 Changed Configure to sense that the PTX inp_[fl]addr
784                 members of the inpcb structure of <netinet/in_pcb.h>
785                 have a struct type and set HASINADDRSTR for use in
786                 PTX dnode.c and dsock.c tests.
787
788                 Changed PTX version 4.1.4 tests to use 4.1.3 instead.
789                 Carson Wilson <carson@mcs.com> reported the need
790                 to do this and tested the change.
791
792                 Fixed a block device table indexing bug in lib/rdev.c,
793                 reported by Carson Wilson.  The same bug was squashed
794                 in pyramid/ddev.c.
795
796                 Added code to the Pyramid Reliant UNIX kread()
797                 function to compensate for an address boundary
798                 error in the kernel's /dev/kmem driver.
799
800                 Verified that lsof compiles and works under AIX
801                 4.2.1.  Added an AIX test for the presence of NFS
802                 header files, defined HAS_NFS and adjusted AIX
803                 dialect sources accordingly.
804
805                 Based on a suggestion from Gaylord Holder
806                 <holder@phy.ucsf.EDU>, added DEC OSF/1 code to
807                 auto-detect the booted file, whence kernel symbol
808                 addresses are obtained.
809
810 4.12            June 24, 1997
811                 Corrected a device number sign extension problem
812                 in the reading and writing of device cache file.
813                 The problem was reported by Bela Lubkin <belal@sco.com>
814                 and he suggested a fix.
815
816                 Fixed an SCO stream device lookup problem.  The
817                 report and solution came from Bela Lubkin
818
819                 Enhanced the Configure script to enable cross-
820                 configuration of lsof, based on suggestions from
821                 Marty Leisner <leisner@sdsp.mc.xerox.com>.  A new
822                 documentation file, 00XCONFIG, describes the process.
823
824                 Made Pyramid OBJFS support conditional on the
825                 presence of supporting header files.  Corrected
826                 the Pyramid MkKernOpts script so it generates the
827                 necessary -D's for the Nile/Jolt architecture.
828                 Richard Coley <rcoley@pyra.co.uk> helped.
829
830                 Added another IRIX xfs_inode variant for 6.2, 32
831                 bits, no XFS rollup patch.
832
833                 Tested under UnixWare 2.1.2.
834
835 4.13            July 9, 1997
836                 Taught Pyramid lsof to grok ttyfs vnodes with help
837                 from Richard Coley <rcoley@pyra.co.uk>.  Fixed some
838                 minor bugs in Pyramid FIFO reporting.  Eliminated
839                 use of the Pyramid UCB compatibility library at
840                 Richard's suggestion.
841
842                 Eliminated reporting of "strange" inode numbers
843                 for SCO OSR 3.2v5.0.x HPPS files with help from
844                 Bela Lubkin <belal@sco.com>
845
846                 Modified port to service name lookup to use a small
847                 number of getservbyport() calls before reading the
848                 entire map with getservent().  Changed port reporting
849                 to represent a zero as `*' to be consistent with
850                 other prt number reporting tools like netstat.
851                 Casper Dik <casper@holland.Sun.COM> suggested these
852                 changes -- the getserv*() one to improve performance
853                 for large NIS service name maps.
854
855                 Changed all readdev() functions to make the absence
856                 of block devices a warning instead of a fatal error
857                 after Brian Redman <ber@ms.com> reported his IRIX
858                 6.4 system had no block devices.  (It really did
859                 have block devices, but readdev()'s lstat() use
860                 caused it to miss them in a directory symbolically
861                 linked from /dev/dsk->/hw/disk.)  Fixed Brian's
862                 real problem by changing the IRIX readdev() to use
863                 stat() on /dev nodes if a Configure test shows /hw
864                 is readable.  Extended the potential to do the same
865                 to all readdev() functions.
866
867                 For consistency and convenience changed some
868                 Configure abbreviations and dialect subdirectory
869                 names:  "decosf" abbreviation and "osf" dialect
870                 subdirectory name to "du"; "netbsd" dialect
871                 subdirectory name to "n+obsd"; "next3" abbreviation
872                 and "next" dialect subdirectory name to "ns"; "sco"
873                 abbreviation and dialect subdirectory name to "osr";
874                 "sgi" dialect subdirectory name to "irix"; and
875                 "unixware" abbreviation and dialect subdirectory
876                 name to "uw".
877
878                 Added #if/#endif clauses to the AIX rmdupdev()
879                 function to avoid clone processing for AIX versions
880                 less than 4.1.4.  The problem was reported by Toralf
881                 Foerster <toralf.foerster@io-warnemuende.de>, who
882                 supplied corrective code.
883
884                 Added support for new style NetBSD inode with i_ffs
885                 and i_e2fs union members.
886
887                 Improved Configure and 00FAQ information on Digital
888                 UNIX configuration subdirectory with suggestions
889                 from Brad Krebs <brad@EECS.Berkeley.EDU>.
890
891 4.14            July 22, 1997
892                 Reorganized the Solaris handling of the inode
893                 structure header file, ufs_inode.h, to eliminate
894                 VxFS structure definition conflicts for Solaris
895                 2.4, based on information from Greg Earle
896                 <earle@netbsd4me.jpl.nasa.gov>.
897
898                 Cleaned up some typos and confusion in Configure's
899                 help output, based on comments from Bela Lubkin
900                 <belal@sco.com>
901
902                 Added a 00DIALECTS file, containing UNIX dialect
903                 version numbers, that can be used by Configure and
904                 the man page.
905
906 4.15            August 15, 1997
907                 Aligned `Configure -help` output better.  Removed
908                 Configure's 2.6 Beta test adjustments.
909
910                 Added improved Solaris VxFS configuration and
911                 handling, based on information from Greg Earle
912                 <earle@netbsd4me.jpl.nasa.gov>.
913
914                 Added socket state -- TCO or TPI -- for socket
915                 files at the suggestion of Ian Fitchet
916                 <I.D.Fitchet@ftel.co.uk>.
917
918 4.16            September 25, 1997
919                 Added reporting of TCP/TPI queue lengths and window
920                 sizes ala netstat to NAME column.  Added -T option
921                 to select or de-select TCP/TPI info reporting.
922                 (Window sizes are only reported for Solaris.)
923                 Fixed anomalies along the way in SIZE/OFF processing
924                 for some dialects.
925
926                 Fixed service name argument processor to allow
927                 minus signs as part of the name.  Consequently this
928                 disallows names with embedded minus signs from
929                 being specified as the start of a range.
930
931                 Added 00FAQ entries explaining why lsof won't find
932                 a file being edited with vi, why window sizes aren't
933                 reported for all dialects, and what the "no more
934                 information" message means.
935
936                 Forced Pyramid CC to be /usr/ccs/bin/cc to avoid
937                 accidental use of the BSD variant in /usr/ucb/cc.
938
939                 Added support for Linux glibc2, including a Configure
940                 test; cross-Configure support (00XCONFIG); and much
941                 unfortunate and risky sleight-of-hand in lsof Linux
942                 dialect header and source files, forced upon lsof
943                 by incompatibilities between Linux kernel and glibc2
944                 header files.
945
946                 Included in scripts/identd.perl5 a Perl 5 implementation
947                 of an identd server, using lsof, provided by Kapil
948                 Chowksey <kchowksey@hss.hns.com>.
949
950                 Updated IRIX 6.4 xfs_inode guess.
951
952 4.17            October 14, 1997
953                 Added -V option for verbose search result reporting.
954                 Verbose reports are prepared for failure to locate
955                 file names, command names, Internet addresses or
956                 files, login names, NFS files, PIDs, PGIDs, and UIDs.
957
958                 Augmented Linux NFS file test to cope with kernels
959                 whose NFS code is in a loadable module.  Need for
960                 the test was pointed out by Jonathan Sergent
961                 <sergent@csociety.ecn.purdue.edu>.  The change
962                 required that Linux have private dmnt.c source,
963
964                 Completed a Linux 2.1.57 port on a system provided
965                 by Jonathan Sergent.
966
967 4.18            October 25, 1997
968                 Eliminated memory leaks in alloc_lfile(), lkup_port(),
969                 and NEXTSTEP's process_text() function.
970
971                 Added recognition of OpenBSD 2.2 in Configure,
972                 supplied by Kenneth Stailey <kstailey@disclosure.com>.
973
974                 Consolidated print_file() functions to use the one
975                 in lib/prtf.c.  Made it configurable and changed
976                 it to size print columns dynamically.
977
978                 !!! WARNING !!!
979
980                 WITH DYNAMICALLY SIZED PRINT COLUMNS LSOF 4.18
981                 PRODUCES OUTPUT SIGNIFICANTLY DIFFERENT FROM THAT
982                 OF PREVIOUS REVISIONS.  LINES ARE GENERALLY SHORTER
983                 AND THERE IS GENERALLY LESS BLANK SPACE BETWEEN
984                 COLUMNS AND THE ITEMS IN THEM.  THERE ARE NO LONGER
985                 ANY SPACES BETWEEN DEVICE NUMBER ELEMENTS, ONLY
986                 COMMAS.
987
988                 !!! WARNING !!!
989
990                 Added special types and print specification modifiers
991                 for file size and offset to handle UNIX dialects
992                 with 64 bit sizes and offsets.  Paul Eggert
993                 <eggert@twinsun.com> reported the need for this
994                 addition.
995
996                 With Paul Eggert's help picked lint from the lsof
997                 library, the main level lsof sources, and the Sun
998                 dialect sources.
999
1000                 Added documentation, including the file 00LSOF-L,
1001                 about the lsof-l LISTSERV.
1002
1003                 Added support for Reliant UNIX on the RM600.  Bob
1004                 Passarella <rmpassar@pyramid.com> supplied the
1005                 changes.  Kevin Smith <kevin@pyramid.com> helped
1006                 arrange test systems.  While incorporating Bob's
1007                 changes, modified lib/rnch.c to handle kernel ncache
1008                 structs whose name is accessed via a char *, rather
1009                 than in a char array.
1010
1011                 Changed #include order of <sys/socketvar.h> for
1012                 Solaris 2.x.  W. Richard Stevens <rstevens@kohala.com>
1013                 pointed out the need to do this.
1014
1015 4.19            October 30, 1997
1016                 Changed Pyramid Reliant RM600 proc scan to skip
1017                 SSYS (p_flag) processes, since they don't seem to
1018                 have a readable u_cdir vnode.
1019
1020                 Enabled Pyramid Reliant UNIX kread() work-around
1021                 for DC/OSx, too, since its read(/dev/kmem) kernel
1022                 driver seems to share the page boundary bug this
1023                 work-around circumvents.
1024
1025                 Changed SzOffFtm_d and SzOffFtm_dv (new formats at
1026                 4.18 to print size and offset) from signed to
1027                 unsigned.  Setting them signed at 4.18 was an
1028                 oversight.
1029
1030                 Plugged a memory leak that caused the loss of 130
1031                 bytes per repeat-mode pass.  Fixed it with a simple
1032                 work-around in main().  Lionel Cons <Lionel.Cons@cern.ch>
1033                 reported the leak.
1034
1035 4.20            November 11, 1997
1036                 Tested under BSDI 3.1.
1037
1038                 Added support for Reliant UNIX Mesh IPC files with
1039                 help from Billy Ho <bho@pyramid.com>.
1040
1041                 Added support to Digital UNIX lsof that uses the
1042                 libmsfs tag_to_path() function (when it exists) to
1043                 look up AdvFS path names.  The idea and sample code
1044                 came from Dean Brock <brock@cs.unca.edu>.  Converted
1045                 Dean's code into more general purpose support for
1046                 private name cache lookups via the HASPRIVNMCACHE
1047                 #define in the dialect machine.h file and code
1048                 conditional on it in the printname() function.
1049
1050                 Taught Digital UNIX lsof to recognize NFS3 file
1051                 systems.  Corrected Digital UNIX lsof DEVICE column
1052                 alignment.
1053
1054 4.21            December 1, 1997
1055                 Squashed bug, introduced at revision 4.18, that
1056                 resulted in double reporting of each selected PID
1057                 when terse mode (-t) was specified.
1058
1059                 Corrected minor bug, also introduced at 4.18, that
1060                 might cause an extra print_proc() pass when one
1061                 PID has been specified.
1062
1063                 Added -R to lsof options in scripts/idrlogin.perl*.
1064                 The option should have been there -- it was supposed
1065                 to be mandatory for PGID reporting -- but a bug,
1066                 corrected in revision 4.18, previously made -R
1067                 unnecessary.
1068
1069                 Enabled configuring for BSDI BSD/OS 4.0 per a
1070                 suggestion from Jeff Honig <jch@bsdi.com>.
1071
1072                 Enabled replacement of scoff_t with off64_t (scoff_t
1073                 is used to type r_size and r_localsize in the rnode
1074                 struct) for IRIX 5.3 systems that have the NFS
1075                 kernel rollup patch (1477).  This compensates for
1076                 SGI's failure to distribute an updated <sys/fs/rnode.h>
1077                 with their patch.
1078
1079                 Validated under Linux 2.0.3[12], Linux 2.1.64, and
1080                 NetBSD 1.3.
1081
1082                 Added FreeBSD root directory reporting, courtesy
1083                 of Dan Nelson <dnelson@emsphone.com>.
1084
1085 4.22            December 15, 1997
1086                 Made adjustments for Linux 2.1.7[02].
1087
1088                 Improved NAME information for Linux UNIX domain
1089                 sockets.
1090
1091                 Added option +|-M to control the reporting of
1092                 portmapper registration information in square
1093                 brackets after the TCP or UDP port or service name.
1094                 Kenneth Stailey <kstailey@disclosure.com> suggested
1095                 the feature and provided sample code from OpenBSD.
1096                 Reporting is disabled by default in the distribution
1097                 and may be enabled with +M; if lsof is compiled
1098                 with HASPMAPENABLED (e.g., from machine.h), reporting
1099                 will be enabled by default and can be disabled with
1100                 -M.
1101
1102                 Changed the -w option to +|-w to match the syntax
1103                 of the +|-M option and to eliminate any options
1104                 that flip meaning when a symbol is defined at
1105                 compile time.  For both +|-M and +|-w, specifying
1106                 `-' when the default state is disabled or specifying
1107                 `+' when the default state is enabled causes no
1108                 problems.
1109
1110         !!!WARNING  The -w option has changed in lsof 4.22.  WARNING!!!
1111
1112                 Made the +|- prefix legal for most options, but
1113                 didn't document it in the man page or help panel.
1114                 Most options that disable something -- e.g., -b,
1115                 -C, -n, -P -- now disable when the prefix is `-'
1116                 and enable when it is `+'.  Since the states these
1117                 options disable are enabled by default, I chose to
1118                 avoid documentation complexity and confusion by
1119                 not mentioning that they can be used with the `+'
1120                 prefix.
1121
1122                 Condensed the help panel.
1123
1124                 Made sure Digital UNIX Configure stanza puts normal
1125                 include path (e.g., /usr/include) before system
1126                 include paths.
1127
1128                 Added IPX socket information reporting to Linux
1129                 with help from Jonathan Sergent <sergent@purdue.edu>.
1130
1131 4.23            January 16, 1998
1132                 Fixed conflict arising from the quondam replacement
1133                 of the Sun Solaris <netdb.h> with a BIND/BSD version.
1134
1135                 With help from Jonathan Sergent <sergent@purdue.edu>
1136                 developed a /proc file system based Linux lsof.
1137                 It needs some Linux 2.1.x release to work -- I'm
1138                 not sure which, but I tested under 2.1.72, 2.1.76,
1139                 and 2.1.79.  The Configure script selects special
1140                 sources for this lsof, so the full lsof distribution
1141                 now contains both /dev/kmem and /proc based sources
1142                 for Linux lsof.  An optional kernel mod, written
1143                 by Jonathan, enhances the /proc-based lsof ability
1144                 to recognize IPX socket files.  Reorganized and
1145                 augmented the Linux sections in 00FAQ to explain
1146                 the two types of Linux lsof.
1147
1148                 Defined DOSTAT_FUNCTION for dostat() in misc.c to
1149                 select the function, stat() or lstat(), it will use.
1150                 DOSTAT_FUNCTION is normally undefined, defaults to
1151                 lstat(), and is only defined for the /proc-based
1152                 Linux lsof in its dlsof.h.
1153
1154                 Made conditional on the presence of IRIX 6.4 XFS
1155                 rollup patch #6 an XFS node change introduced in
1156                 revision 4.16.   Identified the patch with help
1157                 from John R. Vanderpool <fish@daacdev1.gsfc.nasa.gov>.
1158
1159                 Added NFS node compensation for NetBSD 1.3.  The
1160                 code and suggestion for it was supplied by Jean-Luc
1161                 Richier <richier@imag.fr>.
1162
1163                 Added diagnostic messages to the /dev/kmem-based
1164                 Linux Mksrc script to report errors during the
1165                 construction of the kernel name cache header file,
1166                 kncache.h.  Added 00FAQ information on kncache.h.
1167
1168                 Added a new Linux test host, running 2.0.33 and
1169                 GlibC, provided by Steve Logue <stevel@mail.cdsnet.net>.
1170
1171                 Ported to PTX 4.1.3 and 4.4.2.  Adjusted lib/rnch.c
1172                 for 4.4.2 to allow customization f additional ncache
1173                 struct element names.
1174
1175 4.24            January 28, 1998
1176                 Changed /proc-based Linux lsof offset test to use "/"
1177                 instead of "/etc/passwd".
1178
1179                 To assist Jim Mintha <jim@geog.ubc.ca> with the
1180                 packaging of lsof for Debian Linux, added a
1181                 DEBIAN_LINUX_LSOF #define to trigger the activation
1182                 of special system map file location code in the
1183                 /dev/kmem-based dproc.c.
1184
1185                 Applied modification to dialects/bsdi/dlsof.h from
1186                 Ingimar Robertson <iar@skyrr.is>, enabling lsof to
1187                 compile for BSDI BSD/OS 2.0.
1188
1189                 Corrected a documentation error in 00DCACHE, pointed
1190                 out by Thomas Anders <anders@hmi.de>.  The error was
1191                 created when the -V option was added at lsof 4.17.
1192
1193                 Made IRIX 5.3 through 6.3 lsof aware of IRIX SCSI
1194                 tape devices (e.g., /dev/tape).  Dave Olson of SGI
1195                 and Randolph J. Herber of FNAL provided valuable
1196                 advice, and Igor Schein <ischein@air-boston.com>
1197                 helped test.
1198
1199                 Added a machine.h symbol (NEVER_HASDCACHE) that
1200                 prevents Customize from offering to change HASDCACHE.
1201                 The symbol may appear anywhere in machine.h --
1202                 e.g., in a comment.  Included the symbol in a
1203                 comment of the HASDCACHE section of the /proc-based
1204                 Linux lsof machine.h, and accompanied it with
1205                 warnings against #define'ing HASDCACHE.  Did the
1206                 same thing for WARNDEVACCESS (NEVER_WARNDEVACCESS
1207                 is the suppressant.)
1208
1209 4.25            February 7, 1998
1210                 Corrected an IRIX mis-cast of file offset (position).
1211                 Igor Schein <ischein@air-boston.com> reported the
1212                 problem.  This was offered as a patch to 4.24.
1213                 Picked some lint Igor pointed out.
1214
1215                 At Igor's suggestion added an optional decimal
1216                 digit size argument to the -o option.  This argument
1217                 specifies how many file offset decimal digits can
1218                 follow "0t" before lsof switches to a "0x..." form.
1219                 The argument size specification doesn't count the
1220                 two characters of the "0t".  A size of 0 means
1221                 unlimited.  The default is OFFDECDIG (8), preserving
1222                 compatibility with existing lsof output; it can be
1223                 changed by the lsof builder.  When size is specified
1224                 with -o it does not force offset display; -o without
1225                 a size still must be used to do that.
1226
1227                 Added an IRIX 6.2, 32 bit system, XFS node patch,
1228                 courtesy of Ulrich Bernhard <rzubu@rzu.unizh.ch>.
1229
1230                 For my own convenience enabled Configure to use
1231                 /usr/local/bin/gcc for NEXTSTEP.  This allows
1232                 circumvention of a gcc 2.8.0 ranlib problem on
1233                 my test 3.1 `040 cube.
1234
1235                 Added flags recommended by the RISC/os and Ultrix
1236                 compilers for the updated (and longer) main.c.
1237
1238                 Updated FreeBSD cd9660_node.h Configure test.
1239
1240 4.26            February 17, 1998
1241                 Added shared process group processing for IRIX 5.3,
1242                 and IRIX 6.1 and above, based on investigation of
1243                 a bug report from Igor Schein <ischein@air-boston.com>.
1244                 Igor helped test this addition.
1245
1246                 Improved handling of file system name arguments.
1247                 It's now done in a manner similar to fuser.  The
1248                 -f argument forces path names to be considered as
1249                 simple files, rather than as file system names.
1250                 The +f flag forces them to be considered as file
1251                 system names.  Normally path arguments are considered
1252                 file system names when they match a mounted-on
1253                 directory in the system's mount table, or when they
1254                 match a mounted file system's block device.  Igor
1255                 Schein helped test this change.
1256
1257                 Igor also suggests that the proper compilation of
1258                 the IRIX 6.4 proc structure after patch 2536 has
1259                 been installed may need -DPIOMEMOPS.  So lsof's
1260                 MkKernOpts script was updated to propagate that
1261                 option from CCOPTS in /var/sysgen/system/irix.sm,
1262                 even though patch 2536 doesn't add -DPIOMEMOPS to
1263                 it.  Added a 00FAQ item on this patch.
1264
1265                 Added a fatal warning message about names forced
1266                 to be file system names (with +f) that have no
1267                 match in the mount table.
1268
1269                 Improved the -V message for files and file systems
1270                 for which no open files were found.  Added reporting
1271                 of /proc file and file system search failures.
1272
1273                 Did some code reorganization to combine the multiple
1274                 ck_file_arg() functions into one.  Moved the new
1275                 function from the library to the top level and put
1276                 it in arg.c; moved the usage function from arg.c
1277                 to a new top-level source file, usage.c, to balance
1278                 top-level source file size.  The new usage.c depends
1279                 on version.h; arg.c no longer does.
1280
1281                 Added flag recommended by the DU compiler for the
1282                 updated (and longer) main.c.
1283
1284 4.27            March 6, 1998
1285                 At the request of Igor Schein <ischein@air-boston.com>
1286                 added a conditional repeat mode option, using the
1287                 `+' prefix to the `r' option.  +r operates as does
1288                 -r with the exception that it exits the first time
1289                 no open files have been listed during a cycle.
1290                 The exit code will be zero when any open files have
1291                 been listed; one, if none were ever listed.
1292
1293                 Ported lsof to HP-UX 11.0 with the help of Richard
1294                 Allen.  This port hasn't been tested on a 64 bit
1295                 kernel; I'm sure it won't work there without more
1296                 mods.  It may not work on PA 2 architectures; I've
1297                 only tested it under PA 1 and a separate, busy
1298                 tester reported PA 2 problems that I've been unable
1299                 to investigate.
1300
1301                 In anticipation of getting access to a 64 bit HP-UX
1302                 kernel and the pending start of the Solaris 2.7
1303                 Beta test (It will have 64 bit kernel addressing.),
1304                 started adding support for 64 bit kernel pointers.
1305                 This includes: ubiquitous use of the KA_T cast
1306                 for kernel pointers; a format to print them,
1307                 KA_T_FMT_X; a function to print them, print_kptr();
1308                 and modifications to most kernel-related functions
1309                 -- e.g., process_file(), process_node(),
1310                 process_socket(), readvfs() -- to process kernel
1311                 addresses as KA_T types.
1312
1313                 Fixed minor bug in handling path name arguments
1314                 that end with a `/'.
1315
1316                 Removed support for RISC/os; its test system is no
1317                 longer available.
1318
1319                 Made modifications to insure that lsof output
1320                 doesn't contain non-printable characters.  All such
1321                 characters are now printed in the printf form
1322                 "\x%02x".  Several new common functions were
1323                 installed in misc.c to support "safe" printing.
1324                 This second major modification in 4.27 to common
1325                 and dialect code could have introduced bugs not
1326                 yet detected.
1327
1328 4.28            March 10, 1998
1329                 Refined unprintable format to use \b, \f, \r, \n,
1330                 \t, and ^* (for CTRL) forms.  Corrected omission
1331                 of safestrprt() use for field output command name.
1332                 These changes were offered as patches to 4.27.
1333
1334                 Made space an unprintable character (\x20) in the
1335                 COMMAND column; printable elsewhere, including the
1336                 NAME column, field output, and error messages.
1337
1338                 Made sure FD column is parseable as a single entity
1339                 -- i.e., has no embedded space.  Thus, if the access
1340                 mode is unknown but there is a known lock mode, (a
1341                 very rare case) the access mode will be printed as
1342                 `-'.
1343
1344                 Picked lint with gcc 2.8.0 under Solaris 2.6.
1345
1346                 With the help of Dave Olson of SGI identified a
1347                 proc struct element that should have been added to
1348                 <sys/proc.h> by IRIX 6.4 patch 2536.  Added a
1349                 work-around for it to the lsof Configure script.
1350                 Igor Schein <ischein@air-boston.com> identified
1351                 that the patch caused a proc structure length
1352                 complaint from lsof.  Removed an obsolete 00FAQ
1353                 item on the patch, installed at lsof 4.26, explaining
1354                 that no solution was yet available.
1355
1356                 Added a 00FAQ item on how BIND installs its own
1357                 header files, including <netdb.h>, which may cause
1358                 the rpcent struct definition to vanish.  Solaris
1359                 has an automatic lsof work-around, but that hasn't
1360                 been (and probably can't be) propagated to all
1361                 dialects supported by lsof.  The 00FAQ item recommends
1362                 re-installation of the vendor header files that
1363                 BIND has replaced.  (Others include <rpcent.h>,
1364                 <sys/bitypes.h>, and <sys/ctypes.h>.)
1365
1366                 Made AIX AFS fixes.
1367
1368 4.29            March 26, 1998
1369                 Corrected bug in Internet address matching.  The
1370                 matching formerly stopped if the foreign address
1371                 matched, thus failing to check the local address
1372                 for a match.  That led to a possible false "Internet
1373                 address not located" warning (i.e., in response to
1374                 -V) about the local address, when both foreign and
1375                 local addresses were specified with -i.  This
1376                 correction was offered as a patch to 4.28.
1377
1378                 Changed readmnt() usage in an attempt to defer
1379                 mount readlink() and stat() delays until they are
1380                 necessary.
1381
1382                 Corrected two bugs in the Digital UNIX readdev()
1383                 function.  Made the correction available as a patch
1384                 to 4.28 and regenerated the 4.28 DU binaries.
1385
1386                 Added a missing argument to a print-kptr() call in
1387                 the HP-UX dsock.c.  The missing argument causes a
1388                 fatal gcc error.  The problem was reported by Eyal
1389                 Shaynis <eyal.shaynis@telrad.co.il>.  The fix was
1390                 offered as a 4.28 patch.
1391
1392                 Adjusted for Digital UNIX 4.0D; the spec_node
1393                 structure is now defined in <sys/specdev.h>.  Kris
1394                 Chandrasekhar <Kris.Chandrasekhar@digital.com>
1395                 identified the need for the adjustment.
1396
1397                 Incorporated a bug fix from Brian McAllister
1398                 <mcallister@mit.edu> to the DU readmnt() function.
1399                 This fix was offered as a patch to 4.28.
1400
1401                 Added "safe" printing to a SunOS clone device error
1402                 message.
1403
1404                 Corrected bug in tabling of Linux /proc-based lock
1405                 info.
1406
1407                 Corrected bug in handling of SunOS TLI streams.
1408                 Dan Farmer <zen@trouble.org> reported the problem.
1409
1410                 Added a Solaris 2.6 work-around to keep the BIND
1411                 <sys/bitypes.h> from colliding with the Solaris
1412                 <sys/int_types.h>.
1413
1414                 Strengthened the Configure test for /proc-based
1415                 Linux lsof, based on a report from Marty Leisner
1416                 <leisner@sdsp.mc.xerox.com>.
1417
1418                 Tested on OpenBSD 2.3.
1419
1420                 Made AIX changes that allow use with 3.2.5.  The
1421                 changes were suggested and tested by Brett Hogden
1422                 <hogden@rge.com>.
1423
1424                 Added Solaris 2.6 AFS support.  Disabled reporting
1425                 of some node numbers for Solaris 2.5 and above open
1426                 AFS files.  The node number computation algorithms
1427                 used for SunOS 4.1.x and Solaris less than 2.5 no
1428                 longer always work under Solaris 2.5 and above.
1429
1430 4.30            April 9, 1998
1431                 Corrected a pid structure member naming error for
1432                 UnixWare < 2.1.2.  The problem was reported by
1433                 Richard van Meurs <vanmeurs.anva@atriserv.nl>.  He
1434                 supplied the correction.  This was offered as a
1435                 patch to 4.29.
1436
1437                 Had a report from Igor Schein <ischein@air-boston.com>
1438                 that IRIX 6.4 patch 2839 is another SGI kernel
1439                 patch, along with 2536, that changes the size of
1440                 the proc structure in the kernel without changing
1441                 the proc structure in <sys/proc.h>.  Upon further
1442                 investigation found that the effect of these patches
1443                 on the proc structure is not consistent.  Therefore,
1444                 dropped the Configure patch test for IRIX 6.4 and
1445                 made the code in irix/dproc.c slightly more tolerant
1446                 of proc structure size differences for IRIX 6.4.
1447                 Igor help test the change.
1448
1449                 Corrected Solaris >= 2.5 AFS inode number generation.
1450                 Craig Everhart <Craig_Everhart@transarc.com> helped
1451                 find the cause of the problem.  This was offered as
1452                 a patch to 4.29.
1453
1454                 Refined the Linux /dev/kmem-based glibc evasion
1455                 for the timeval structure to make it work with
1456                 glibc version 2.0.7.  This required defining a new
1457                 global symbol, TIMEVAL_LSOF, default timeval, that
1458                 the /dev/kmem-based Linux lsof can set to its
1459                 private glibc timeval name, distinct from the kernel
1460                 timeval name.
1461
1462                 Added support for Alpha to the /dev/kmem-based
1463                 Linux lsof.  Alexandre Oliva <oliva@dcc.unicamp.br>
1464                 provided a test system.  Added an item to 00FAQ
1465                 about lsof, the Alpha processor, and Linux.
1466
1467                 Added a 00FAQ item about lsof year 2000 compliance.
1468                 Basically it says lsof is probably compliant,
1469                 because its only date or time computations are done
1470                 with time_t values, but I haven't done any specific
1471                 Y2K validation.  I don't have plans to do any.
1472
1473                 Added support for UnixWare 7.  Chris Daniels
1474                 <chrisd@dlpco.com> provided a test system and Don
1475                 Draper <dond@sco.COM> provided technical information.
1476                 Added BFS and SFS file system support to lsof for
1477                 UW 2.1.[12] and 7.
1478
1479                 Updated Solaris VxFS support for VxFS 3.2.1.  Greg
1480                 Earle <earle@netbsd4me.jpl.nasa.gov> reported the
1481                 need for the update.  Greg and Roger Klorese
1482                 <rogerk@veritas.com> provided technical information.
1483                 Scott McClung <mcclung@primenet.com> tested.
1484
1485                 Changed IRIX XFS patch detection in anticipation of
1486                 learning there are multiple XFS patches for IRIX 6.4
1487                 that require different versions of the lsof-invented
1488                 xfs_inode structure.
1489
1490 4.31            April 21, 1998
1491                 Added a VxFS #if/#endif wrap to a section of the
1492                 HP-UX dnode.c that wasn't properly protected.  The
1493                 problem was reported by  Peter Klosky <PKlosky@bdm.com>.
1494                 This was offered as a patch to 4.30.
1495
1496                 Added support for Solaris 2.7 (first Beta release).
1497                 Mike Sullivan <Mike.Sullivan@Eng.Sun.COM> provided
1498                 technical advice and helped test.  Charles Stephens
1499                 <cfs@jurassic.eng.Sun.COM> also helped test.
1500
1501                 Fixed bug in /proc-based Linux that caused it to
1502                 access /proc/mounts excessively.  Marty Leisner
1503                 <leisner@sdsp.mc.xerox.com> provided a syscall
1504                 trace that identified the bug.  The fix was offered
1505                 as a patch to 4.30.
1506
1507                 Adjusted the IRIX 6.4 private structure definition
1508                 for the XFS node to accommodate patch 2970.  Igor
1509                 Schein <ischein@air-boston.com> identified the
1510                 patch and the required adjustment.
1511         
1512 4.32            May 11, 1998
1513                 Corrected Solaris 2.7 code for reporting PCFS
1514                 (floppy disk) node numbers.  Casper Dik
1515                 <casper@holland.sun.com> supplied the fix.  The
1516                 fix was offered as a patch to 4.31.
1517
1518                 Corrected a bug in conditional repeat mode handling
1519                 pointed out by Igor Schein <ischein@air-boston.com>.
1520                 This was offered as a patch to 4.31.
1521
1522                 Improved reporting of AIX open(/dev/memory device)
1523                 errors.
1524
1525                 Corrected a Solaris < 2.5 KA_T declaration error,
1526                 pointed out by Robert Kiessling <robert@easynet.de>.
1527                 Changed KA_T from a #define to a typedef for all
1528                 dialects to prevent future problems of this kind.
1529
1530                 Changed the sample Perl 5 script big_brother.perl5
1531                 to report a four digit year from localtime().
1532
1533                 Added support for AIX 4.3[.1].  Bill Pemberton
1534                 <wfp5p@tigger.itc.virginia.edu> provided a test
1535                 system.  Andrew Kephart <akephart@austin.ibm.com>
1536                 and Tom Weaver <tvweaver@austin.ibm.com> provided
1537                 technical assistance.  Niklas Edmundsson
1538                 <nikke@ing.umu.se> did 4.3.1 testing.
1539
1540                 Added -qmaxmem option to CFLAGs for an AIX compilation
1541                 with an xlc version 4.x compiler.
1542
1543                 Adjusted Linux socket handling for changes in the
1544                 AX25 members of the sock struct.   Richard Green
1545                 <rtg@tir.com> pointed out the problem.  Tested
1546                 /dev/kmem-based lsof under Linux 2.0.34.
1547
1548 4.33            May 22, 1998
1549                 Added generic IPv6 support to common lsof sources
1550                 and specific IPv6 support to AIX sources.  Andrew
1551                 Kephart <akephart@austin.ibm.com> supplied the
1552                 additions and helped with testing.  Bill Pemberton
1553                 <wfp5p@tigger.itc.virginia.edu> provided a test
1554                 system.  The modification affected sources for
1555                 every dialect, whether it supports IPv6 or not, by
1556                 changing the interfaces to the common Internet
1557                 address function ent_inaddr().
1558
1559                 Added support for the NetBSD UVM virtual memory
1560                 system.  Paul Kranenburg <pk@cs.few.eur.nl> supplied
1561                 technical details.
1562
1563                 Bracketed HP-UX 11 use of <sys/spinlock.h> with
1564                 #if/#endif _KERNEL.
1565
1566                 Corrected printing of PCB address in DEVICE column
1567                 for IRIX.
1568
1569 4.34            June 26, 1998
1570                 Updated 00FAQ to discuss TCP and UDP ports private
1571                 to the AIX kernel and 00README to describe how ACLs
1572                 can be used to give lsof permission to read the
1573                 kernel memory devices.  Add information to 00FAQ
1574                 and 00README about other OpenBSD architectures
1575                 where lsof is reported to compile and run.  Added
1576                 section to 00FAQ discussing how an incorrect loader
1577                 path environment variable value can prevent lsof
1578                 from loading correctly.
1579
1580                 Improved Solaris namefs and doorfs support so that
1581                 it is now possible to search for an open VDOOR file
1582                 by the path name of its fattached file system
1583                 object.  Igor Schein <igor@txc.com> requested the
1584                 ability to do such a search.  Even with the change,
1585                 lsof can't always identify path names for open
1586                 VDOOR files.
1587
1588                 Also at Igor's request, improved reporting of
1589                 information on open Solaris VCHR files that share
1590                 a common vnode, and Solaris UNIX domain socket
1591                 files.
1592
1593                 Corrected print_kptr() argument error in PTX dnode.c,
1594                 reported by Mark Price <mprice@sequent.com>.
1595                 Compensated for ncache element naming differences,
1596                 introduced at PTX 4.4.2; Kurtis D. Rader
1597                 <krader@sequent.com> reported the problem.
1598
1599                 Changed output column title from INODE to NODE to
1600                 better reflect the column's contents of node IDs
1601                 for more than just inodes.
1602
1603                 Improved Configuration and processing for Solaris
1604                 AFS.  Corrected AIX AFS 3.4 afs_rwlock_t simulation.
1605
1606                 Corrected a cast problem with two AIX knlist()
1607                 calls, thus quieting an AIX 4.2.1 compiler argument
1608                 type warning.  Jon Champlin <champlin@us.ibm.com>
1609                 reported the problem.
1610
1611                 Added support to most dialect versions (exception:
1612                 /proc-based Linux) to warn when the identity of
1613                 the kernel where lsof was compiled doesn't match
1614                 the running identity.  The warning can be suppressed
1615                 with -w.  Note: determining AIX state requires
1616                 calling oslevel, a potentially slow operation.
1617                 Jon Champlin <champlin@us.ibm.com> suggested this
1618                 addition.
1619
1620         !!!! WARNING !!!!    !!!! WARNING !!!!    !!!! WARNING !!!!
1621
1622                 Those using the lsof cross-configuration capability
1623                 (see 00XCONFIG), should be aware that the kernel
1624                 identity test feature introduces two new basic
1625                 cross configuration environment variables, LSOF_ARCH
1626                 and LSOF_VSTR.
1627
1628         !!!! WARNING !!!!    !!!! WARNING !!!!    !!!! WARNING !!!!
1629
1630                 Identified a situation where a Solaris UNIX domain
1631                 socket name is known and can be searched for by
1632                 name; added the necessary code.
1633
1634 4.35            July 17, 1998
1635                 Made the kernel identity check an option with the
1636                 HASKERNIDCK #define in machine.h.  Enabled altering
1637                 of HASKERNIDCK with the Customize script.  Added
1638                 a clause to the help output that indicates the
1639                 build-time HASKERNIDCK status.
1640
1641                 Added more information to the NAME column for
1642                 Solaris UNIX domain sockets.  Made them searchable
1643                 by their clone device path name.  Igor Schein
1644                 <igor@txc.com> requested this.
1645
1646                 Completed the HP-UX 11 port with support for its
1647                 optional 64 bit kernel.  Rich Rauenzahn
1648                 <rrauenza@cup.hp.com> provided a test system.
1649                 Corrected errors with HP-UX 11 lock reporting and
1650                 private kernel structure and type definitions.
1651                 Added support for HP-UX NFS3 files.
1652
1653                 Limited mount table warnings -- e.g., when -b is
1654                 used -- to one set per mount point.
1655
1656                 Fixed some mount table scanning and usage bugs,
1657                 including one in Solaris, reported by Kjetil Torgrim
1658                 Homme <kjetilho@ifi.uio.no>.
1659
1660 4.36            August 4, 1998
1661                 Made corrections and additions to IPv6 support and
1662                 to AF_ROUTE socket handling, supplied by Jean-Luc
1663                 Richier <Jean-Luc.Richier@imag.fr>.  Jean-Luc's
1664                 additions provide IPv6 support for the Inria IPv6
1665                 implementations on FreeBSD and NetBSD.
1666
1667                 Fixed two Solaris 2.5, 2.5.1, 2.6 and 2.7 TCP and
1668                 UDP host name or IP address reporting bugs, reported
1669                 by James Mathiesen <James-Mathiesen@deshaw.com>.
1670                 This fix was offered as a patch to 4.35.
1671
1672                 Updated the Customize script to cause ENTER to use
1673                 all defaults.  Amir J. Katz <amir@ndsoft.com>
1674                 suggested this and helped test the changes.
1675
1676                 Updated Solaris ICMP and IP stream handling, based
1677                 on a report from Igor Schein <igor@txc.com>.
1678
1679                 Fixed a bug in the Digital UNIX mount table handling,
1680                 reported by Bob Ward <bward@thehartford.com>.
1681                 While working on the bug, found and updated some
1682                 obsolete AdvFS code.  This fix was offered as a
1683                 patch to 4.35.
1684
1685 4.37            September 15, 1998
1686                 Deactivated SGI IRIX support and archived revision
1687                 4.36 sources and binaries in pub/tools/unix/lsof/OLD.
1688
1689                 Improved performance of FD searching.  This was
1690                 offered as a patch to 4.36.
1691
1692                 Amir J. Katz <amir@ndsoft.com> pointed out that
1693                 ranlib isn't needed for AIX or Solaris.  Made
1694                 appropriate Configure script changes.
1695
1696                 Fixed a file offset reporting bug for HP-UX VCHR
1697                 and VBLK device nodes located on a VxFS root.  Doug
1698                 Siebert <douglas-siebert@iowa.edu> reported the
1699                 bug.  The fix was offered as a patch to 4.36.
1700
1701                 Resolved an HP-UX root device name reporting bug,
1702                 partly caused by an out-dated local copy of the
1703                 <sys/mount.h> mount structure, by generating a
1704                 local header file with the structure that can be
1705                 compiled without needing _KERNEL defined.  Doug
1706                 Siebert also reported this bug.
1707
1708                 Changed some dialect source code -- Digital UNIX,
1709                 Solaris, SunOS, and UnixWare -- to make more
1710                 consistent with ps the user ID lsof reports in the
1711                 USER column.  Added a 00FAQ entry about it.  Igor
1712                 Schein <igor@txc.com> reported the Solaris and
1713                 SunOS lsof inconsistencies with what ps(1) reports.
1714
1715                 Ported lsof to Pyramid ReliantUNIX 5.44.
1716
1717                 Added brackets as comments to case, do, done, else,
1718                 endif, esac, if, and while statements in Configure
1719                 to assist in navigating its clauses.
1720
1721                 Added more Linux 2.0.x glibc work-arounds.
1722
1723                 Added support for UnixWare 7.0.1.
1724
1725                 Ralph Forsythe <ralph@contact-paging.com> provided
1726                 a new FreeBSD test system.
1727
1728 4.38            November 25, 1998
1729                 Added support for recent FreeBSD 3.0 distributions.
1730                 A 3.0 test system was provided by David O'Brien
1731                 <obrien@NUXI.com>.  This was offered as a patch
1732                 to 4.37.
1733
1734                 Updated the scripts/idrlogin.perl* files to look
1735                 for sshd processes in addition to rlogind and
1736                 telnetd ones.
1737
1738                 Added support for DU 5.0 Beta.  Berkley Shands
1739                 <berkley@cs.wustl.edu> provided a test system.
1740
1741                 Added support for OpenBSD 2.4 with changes supplied
1742                 by Kenneth Stailey <kstailey@disclosure.com>.
1743
1744                 Changed the Solaris 2.7 tests and documentation to
1745                 Solaris 7.
1746
1747                 Made some changes to the header files for NEXTSTEP
1748                 3.3 and added support for OPENSTEP 4.x with help
1749                 from Michael A. Hovan III <mhovan@BLaCKSMITH.com>
1750                 and Carl Lindberg <Carl_Lindberg@BLaCKSMITH.com>.
1751                 The combined dialect subdirectory is named n+os.
1752                 One of Carl's changes propagates RC_CFLAGS to the
1753                 library Makefile.  Timothy J. Luoma <luomat@peak.org>
1754                 helped test under NEXTSTEP 3.3 and OPENSTEP 4.2.
1755
1756                 Made UW 7.x version sensitive to the presence of
1757                 ptf7038.  Added peer PCB address to Unix domain
1758                 socket Name column, even when a path name has been
1759                 located.  Information for these changes was supplied
1760                 by Francis Le Bourse <flebourse@intelcom.fr>.  Lee
1761                 Penn <lee@dlpco.com> provided a test system.
1762
1763                 Tested lsof under OSR 5.0.5 on a test system also
1764                 provided by Lee Penn.
1765
1766                 Made path name argument processing more tolerant
1767                 of errors per a suggestion from Julian Gordon
1768                 <julian@cadence.com>.
1769
1770                 Acquired a new UnixWare 2.x test system, generously
1771                 provided by Computer Classroom, Inc. -- Matthew
1772                 Thurmaier <matt@compclass.com>, Ken Laing
1773                 <ken@compclass.com>, and Andrew Merril
1774                 <andrew@compclass.com>. Updated Configure to accept
1775                 a UnixWare version of 2.1.3.
1776
1777                 Updated kmem-based lsof for Linux 2.0.36.
1778
1779                 Updated NetBSD sources for a change in a UVM virtual
1780                 mapping header file.
1781
1782                 Corrected a cache allocation bug in Sun format
1783                 kernel name cache handling.  The bug only shows up
1784                 when the kernel name cache is inaccessible.
1785
1786 4.39            December 29, 1998
1787                 Corrected problems with large device number handling
1788                 for 64 bit Solaris 7.  The problems were reported
1789                 by Steve Bellenot <bellenot@math.fsu.edu>.  Steve
1790                 helped test the fixes.  The fixes were offered as
1791                 two patches to lsof 4.38.
1792
1793                 Improved FreeBSD Configure operations for header
1794                 files that must be obtained from the kernel source
1795                 tree, based on a suggestion from David O'Brien
1796                 <obrien@NUXI.com>.
1797
1798                 For Bela Lubkin <filbo@deepthought.armory.com> made
1799                 optional with +f[cfn] the display of file structure
1800                 address, shared use count, and node structure
1801                 address.  /proc-based Linux doesn't implement this
1802                 feature, because it doesn't read kernel structures
1803                 from kernel memory.  Modified the PTX -X option to
1804                 take advantage of the new file structure display
1805                 option.  Added shared.perl5 to the scripts/
1806                 subdirectory to provide an example of how +f[fn]
1807                 might be used to track shared file descriptors and
1808                 files.
1809
1810                 Added more /dev/kmem-based Linux glibc evasions,
1811                 provided by Jeff Johnson <jbj@redhat.com> and Maciej
1812                 Lesniewski <nimir@kis.p.lodz.pl>.  Jeff helped test
1813                 them on various Linux architectures.
1814
1815                 Tested on AIX 4.3.2; no changes were required.
1816                 Doug Crabill <dgc@purdue.edu> provided a test
1817                 system.
1818
1819                 Fixed -c option to detect missing command name when
1820                 following option begins with `+'.
1821
1822 4.40            January 25, 1999
1823                 Added support for using the CDS compiler for Reliant
1824                 Unix 5.44 and above.  Made Reliant Unix MIPC support
1825                 optional, dependent on the presence of <sys/mipc.h>.
1826
1827                 Based on a report from Michael Schmitz <MSchmitz@lbl.gov>
1828                 that /dev/kmem-based lsof misbehaves on a Linux
1829                 2.0.x m68k kernel without module support, made the
1830                 absence of query_module() or get_kernel_syms()
1831                 Linux kernel support a fatal error.  Updated relevant
1832                 sections of 00FAQ to reflect the change.
1833
1834                 Added the ability to force the Linux Configure
1835                 stanza to use the /proc or /dev/kmem source base
1836                 via a LINUX_BASE environment variable specification.
1837                 This is a cross-configuration assist.
1838
1839                 Added "+D <dir>" and "+d <dir>" options for directory
1840                 searching.  +D searches the entire tree, starting
1841                 at <dir>, including <dir>, its contents, and its
1842                 subdirectory branches; +d searches only <dir> and
1843                 its contents, but not its subdirectory branches.
1844                 Improved lsof's searching of the specified name
1845                 list to compensate for anticipated long lists from
1846                 +d and +D.
1847
1848                 Made an egrep in the Solaris Configure stanza usable
1849                 by the standard and XPG4 egrep's.  Kenneth Stailey
1850                 <kstailey@disclosure.com> pointed out the improvement.
1851
1852                 Fixed bugs in /dev/kmem-based Linux and UnixWare
1853                 Unix domain socket name searching.
1854
1855                 Changed a Linux Alpha #include to be conditional
1856                 on the presence of its named header file, so that
1857                 lsof will compile on Red Hat 5.1 and 5.2 (Linux
1858                 kernel 2.0.35) where the header file is absent.
1859                 The problem was reported by Alexandre Oliva
1860                 <oliva@dcc.unicamp.br>.
1861
1862                 Fixed an AIX 4.3+ bug in procinfo struct space
1863                 allocation, reported by Jeff Stewart <jws@purdue.edu>.
1864                 This was offered as a patch to 4.39.
1865
1866                 Added an lstatsafely() function to offer the same
1867                 isolation for lstat() calls that statsafely() offers
1868                 for stat() calls.  This made DOSTAT_FUNCTION no
1869                 longer necessary, so deleted it.
1870
1871                 With help from Laurent P. Montaron <lpm@sequent.com>
1872                 ported lsof to PTX 4.4.4.  Laurent did a monumental
1873                 job of identifying TCP/IP changes by their TCP
1874                 version, rather than by their PTX (With mix 'n
1875                 match PTX and TCP/IP versions, the PTX version
1876                 often has no bearing on the TCP/IP version.), and
1877                 changed the Configure script and pre-processor
1878                 #if/#else/#endif blocks to match.  He also updated
1879                 Unix domain socket handling for PTX TCP/IP versions
1880                 4.5 and above.
1881
1882                 Updated CLIENT handle acquisition of fill_portmap()
1883                 in print.c to use the more modern RPC function
1884                 clnt_create() in place of clnttcp_create() where
1885                 possible.  PTX 4.4.4 requires clnt_create().
1886
1887 4.41            February 27, 1999
1888                 Added FreeBSD 3.1 and and 4.0 support with help
1889                 from Sheldon Hearn <axl@iafrica.com>, David O'Brien
1890                 <obrien@NUXI.com>, and John Polstra <jdp@polstra.com>.
1891
1892                 Corrected bungled AIX 4.3+ patch that went into
1893                 lsof 4.40.
1894
1895                 Reorganized the Configure script to improve Makefile
1896                 construction.  A specific impetus for this was to
1897                 allow FreeBSD system-wide make flags to be propagated
1898                 to the lsof Makefiles, but other goals were to make
1899                 sure that the DEBUG= make entry can over-ride
1900                 standard CFLAGS values, and to better manage the
1901                 identification of compilers and their versions.
1902                 Two compiler-related values may now be supplied in
1903                 environment variables: 1) the compiler path in
1904                 LSOF_CC; and 2) the compiler version in LSOF_CCV.
1905                 00XCONFIG documents them.
1906
1907                 Added support for Pyramid Reliant Unix bsdsfs,
1908                 msockfs, and sockfs file systems.
1909
1910                 Added an optional LSOF_CINFO string to Configure,
1911                 producing a CINFO string in selected Makefiles,
1912                 producing a #define LSOF_CINFO in selected version.h
1913                 header files.  The purpose of this is to allow
1914                 Configure the option to propagate information to
1915                 the lsof -v output.  It is now used for Linux to
1916                 identify the code base, and for HP-UX 10.30 and
1917                 11.0 and Solaris 7 to identify the kernel bit size.
1918
1919                 Added system information to NEXTSTEP and OPENSTEP
1920                 -v output, from the second line of hostinfo's
1921                 output.
1922
1923                 Fixed a login name buffer overflow problem in the
1924                 processing of -u option values.  This was offered
1925                 as a patch to 4.40.  !!!THIS IS A SERIOUS STACK
1926                 OVERFLOW BUG; A LINUX EXPLOIT EXISTS FOR IT THAT
1927                 OPENS A BASH SHELL WITH LSOF'S AUTHORITY -- E.G,
1928                 SETGID(KMEM) POWER!!!
1929
1930                 Improved the Solaris mount table filter so the
1931                 volume manager's fake mount point, "/vol", is
1932                 ignored and doesn't supplant "/" in NAME column
1933                 path assemblies.  Igor Schein <igor@txc.com> reported
1934                 this bug and provided important help in finding
1935                 it.  This was offered as a patch to 4.40.
1936
1937                 Changed the Linux /dev/kmem-based lock ownership
1938                 test to answer a problem reported by Tom Christiansen
1939                 <tchrist@jhereg.perl.com>.  This was offered as a
1940                 patch to 4.40.
1941
1942                 Installed an HP-UX 11 patch, suggested by Kevin
1943                 Vajk <kvajk@cup.hp.com>, that adjusts a private
1944                 lsof kernel header file, derived via Q4, to correspond
1945                 to an HP-UX patch bundle.
1946
1947                 Made NetBSD 1.3I sockproto structure adjustment.
1948
1949 4.42            March 30, 1999
1950                 Fixed a typo in the HP-UX dfile.c that caused +fF
1951                 and +fN output controls to swap effect.
1952
1953                 Enabled for OpenBSD 2.5 per notice from Kenneth
1954                 Stailey <kstailey@kstailey.tzo.com>
1955
1956                 Made more VM accommodations for FreeBSD 4.0.
1957
1958                 Improved file system search reporting to include
1959                 path name components when they're available, instead
1960                 of mindlessly reporting the file system name in
1961                 the NAME column.  Guy Dallaire <gdallair@geocities.com>
1962                 brought the need for this change to my attention.
1963
1964                 Updated Solaris 2.6 VxFS for Veritas Oracle Database
1965                 Edition 2.0, VxFS version 3.3, and VxVm version
1966                 2.5.4, based on a report from Chris Kordish
1967                 <chris.kordish@East.Sun.COM>.  Chris kindly provided
1968                 a test system.
1969
1970                 Improved HP-UX ipc_s patch detection in Configure,
1971                 response in .../dialects/hpux/hpux11/ipc_s.h, and
1972                 documentation in 00FAQ, Kevin Vajk <kvajk@cup.hp.com>
1973                 helped test.
1974
1975                 Added to Customize the option to suppress HASKERNIDCK
1976                 selection for specified dialects.  Suppressed it
1977                 for /proc-based Linux lsof, and removed its test
1978                 and code from there.  Tin Le <tin@netimages.com>
1979                 alerted me to the need for this update.
1980
1981                 Ported to official Digital UNIX 5.0 release.
1982
1983                 Changed DU lsof to use the knlist(3) function when
1984                 no kernel file has been specified with -k.  This
1985                 change was suggested by Erich Wimmer
1986                 <Erich.Wimmer@digital.com>.
1987
1988                 Updated Configure for latest NetBSD (1.3I?) with
1989                 UVM support the default.
1990
1991 4.43            May 11, 1999
1992                 Corrected a typo in the Solaris gcc discussion in
1993                 00FAQ.  Made changes to the Solaris 2.5[.1] private
1994                 tcp_s structure.  Both changes were done in response
1995                 to reports from Igor Schein <igor@txc.com>, who
1996                 tested the Solaris 2.5 change.
1997
1998                 Made more IPv6 adjustments to lsof for Tru64 UNIX
1999                 (Digital UNIX) 5.0, based on information obtained
2000                 from Compaq by Berkley Shands <berkley@cs.wustl.edu>.
2001
2002                 Corrected HP-UX error message about HP-UX 11 q4 usage.
2003                 Amir Katz <amir@ndsoft.com> reported the correction.
2004
2005                 Fixed a GlibC 2.1 conflict in /proc-based Linux lsof.
2006
2007                 Fixed a man page typo reported by Vlad Harchev
2008                 <hvv@hippo.ru>.
2009
2010                 Changed some Solaris 2.7 references to Solaris 7
2011                 in Configure and 00XPORTING.
2012
2013                 Added a Solaris example to the echo statements that
2014                 are the install rule in the SunOS/Solaris Makefile.
2015
2016                 Added a field to the file structure output --
2017                 FILE-FLAG (file structure open flags, f_flag[s],
2018                 and process file flags, typically u_pofile)) --
2019                 enabled with +f[gG].  Its field output character
2020                 is 'G'.
2021
2022                 Figured out another piece of the HP-UX 11 patched
2023                 ipc_s structure puzzle with the help of Keith Kalet
2024                 <KEITH_KALET@HP-USA-om41.om.hp.com>.
2025
2026                 Fixed a PTX real vnode to real inode interpretation
2027                 bug.
2028
2029                 Added link count to lsof output.  Eric Dumazet
2030                 <dumazet@risgw.ris.fr> requested and helped test
2031                 it.  The new +L option enables and filters it.
2032                 Its field output character is `k'.
2033
2034                 Updated Configure script to recognize NetBSD 1.4.
2035
2036                 Updated AFSConfig to handle default answers to
2037                 questions.
2038
2039                 Incorporated patch from Jonathan Sergent <sergent@io.com>
2040                 that enables /proc-based Linux lsof to run on both
2041                 32 and 64 bit kernels.
2042
2043                 Updated Configure script with a patch from David
2044                 O'Brien <obrien@NUXI.com> that recognizes FreeBSD 3.2.
2045
2046 4.44            June 24, 1999
2047                 Corrected use of nlink member of hsnode for SunOS
2048                 4.1.x High Sierra File System files.  John Dzubera
2049                 <zube@tlaloc.stat.colostate.edu> reported the
2050                 problem and helped test the fix.  Also fixed a
2051                 SunOS segmentation fault bug.  These fixes were
2052                 offered as a patch to 4.43.
2053
2054                 Improved handling of /proc-based Linux UNIX PCB
2055                 address.
2056
2057                 Fixed a NEXTSTEP and OPENSTEP bug that made repeat
2058                 option (-r) processing malfunction.  This fix was
2059                 offered as a patch to 4.43.
2060
2061                 Fixed Configure so it doesn't use -O in the Cflags
2062                 for the bundled HP-UX C compiler.  Jim Ankenbrandt
2063                 <jankenbrandt@penton.com> reported the problem.
2064
2065                 Corrected output ordering of parent PID and process
2066                 group ID when both -R and -g are specified.
2067
2068                 Enhanced the pdev.c and pdvn.c library modules for
2069                 wider use.  These dialect versions use the new
2070                 library modules: DEC OSF/1, Digital UNIX, and Tru64
2071                 UNIX; Pyramid DC/OSx and Reliant UNIX; SCO OSR and
2072                 UnixWare; and Sequent PTX.
2073
2074                 Added basic clone device support to /dev/kmem-based
2075                 HP-UX lsof for HP-UX 10.30 and higher.
2076
2077                 Added raw socket support to /proc-based Linux lsof.
2078
2079                 Changed NODE-ADDR column title to NODE-ID in
2080                 anticipation of using more general identification
2081                 information in the column.
2082
2083                 Ported to UnixWare 7.1, using a test system kindly
2084                 provided by Matt Thurmaier <matt@compclass.com>
2085                 and Don Draper <dond@sco.com>.
2086
2087                 Updated for NetBSD 1.4C VM changes, and a new
2088                 current and root working directory structure.
2089
2090                 Made minor adjustment for latest Tru64 UNIX 5.0
2091                 Beta release.
2092
2093 4.45            July 30, 1999
2094                 Fixed quoting problem in DEC OSF/1, Digital Unix,
2095                 and Tru64 UNIX Makefile's install rule.  The problem
2096                 was reported by Berkley Shands <berkley@cs.wustl.edu>.
2097                 Fixed bug in Tru64 UNIX 4 lsof that caused FDs to
2098                 be skipped.  These fixes were offered in a patch
2099                 to 4.44.
2100
2101                 Fixed a repeat-mode /proc-based Linux lsof bug,
2102                 reported by Sami Farin <sfarin@ratol.fi>.  This
2103                 was offered as a patch to 4.44.
2104
2105                 Picked lint, some reported by Sami Farin.
2106
2107                 Corrected a 00DCACHE documentation error in a sample
2108                 shell script.  The problem was reported by Chad R.
2109                 Larson <chad@larsons.org>.  Changed commented-out
2110                 entries in machine.h files so they require more
2111                 thought and work when the comments are removed,
2112                 based on a remark by Chad.
2113
2114                 Compensated for the practice of Solaris 7 and above
2115                 to record the dev= value in /etc/mnttab in 32 bit
2116                 mode, even on 64 bit systems.  This was offered as
2117                 a patch to 4.44.
2118
2119                 Added a C library test for /proc-based Linux lsof,
2120                 so that the #include files can be adjusted for a
2121                 non-GlibC environment.  The need for this was
2122                 reported by Andrew Hill <andrewh@tirin.openworld.co.uk>.
2123                 This was offered as a patch to 4.44.
2124
2125                 Added support for Auspex LFS 1.8.1 and 1.9.2 to
2126                 SunOS 4.1.4 lsof.  The support was requested by
2127                 Quentin Fennessy <quentin@dvorak.amd.com>, who
2128                 provided information and did testing.
2129
2130                 Enabled IPv6 support code for NetBSD and OpenBSD,
2131                 conditional on Configure script tests.  Wolfgang
2132                 Rupprecht <wolfgang@wsrcc.com> supplied the NetBSD
2133                 code and tested it.  The OpenBSD code I constructed
2134                 has been compiled but not tested.
2135
2136                 Updated the identd Perl 5 script, based on a report
2137                 from Wendy Lin <af5@taiyang.cc.purdue.edu> that
2138                 the space in its response line in front of the user
2139                 name violates RFC 1413.
2140
2141                 Added IPv6 support to /proc-based Linux lsof.
2142                 Jonathan Sergent <sergent@ETLA.NET> and Andrew
2143                 Thomas Sydelko <sydelko@ecn.purdue.edu> kindly
2144                 provided a test system.
2145
2146                 Updated man page description of AIX multiplexed
2147                 files to indicate that they might be /dev/ptc or
2148                 /dev/pts, depending on the AIX version.  The
2149                 correction was suggested by Onno van der Linden
2150                 <onno@simplex.nl>.
2151
2152                 Sylvain Robitaille <syl@alcor.concordia.ca> reports
2153                 lsof passes his Y2K tests.
2154
2155 4.46            October 23, 1999
2156                 Corrected /proc-based Linux lsof to detect that an
2157                 IPv6 address is a mapped IPv4 address.  The problem
2158                 was reported and analyzed by Arkadiusz Miskiewicz
2159                 <misiek@misiek.eu.org>, who also tested the fix.
2160
2161                 Added a libc5 library /dev/kmem-based Linux lsof
2162                 circumvention, supplied by Jason Lingohr
2163                 <lingman@lucid.net.au>.
2164
2165                 Corrected a bug in -t (terse) AIX output, reported
2166                 by Wendy Lin <af5@taiyang.cc.purdue.edu>.  I
2167                 introduced the bug at revision 4.43 when adding
2168                 FILE_FLAG reporting.  This was offered as a patch
2169                 to 4.45.
2170
2171                 Added a work-around for a problem in the OpenBSD
2172                 2.3 <sys/pipe.h> header file.  Volker Borchert
2173                 <bt@teknon.de> provided and tested it.
2174
2175                 Improved description of cross-building lsof for a
2176                 64 bit Solaris 7 system on a 32 bit system with
2177                 suggestions from Phillip Edwards
2178                 <Philip.Edwards@sn.wpafb.af.mil>.
2179
2180                 Fixed a gawk POSIX-mode pattern error in the Linux
2181                 /dev/kmem-based Mksrc script, based on a tip from
2182                 Ambrose C. Li <acli@mingpaoxpress.com>.
2183
2184                 Fixed a bug in the Tru64 UNIX IPv6 handling, courtesy
2185                 of a report from Casper Dik <casper@holland.sun.com>.
2186
2187                 Enabled support for OpenBSD 2.6.
2188
2189                 Enabled support for BSDI BSD/OS 4.1, based on a
2190                 report from Jeffrey C Honig <jch@bsdi.com> that
2191                 only a Configure script change is necessary.
2192
2193                 Enabled Configure script to use gcc for building
2194                 lsof for a 64 bit Solaris 7 and 8 kernels, if the
2195                 gcc version is 2.95 or above.
2196
2197                 Improved -i option handling for systems with IPv6
2198                 support so that it will search for a host name in
2199                 both IPv4 and IPv6 families, when that is possible.
2200                 As a companion modification, changed -V processing
2201                 to report a single error when a multiple host name
2202                 match is requested.  Casper Dik <casper@holland.Sun.COM>
2203                 helped test.
2204
2205                 Fixed a DEC OSF/1, Digital UNIX, Tru64 UNIX repeat
2206                 mode bug, reported by Mayer Ilovitz <mayer@cooper.edu>.
2207                 Mayer helped test the fix.  The fix was offered as a
2208                 patch to 4.45.
2209
2210                 Changed Solaris socket file recognition scheme, so it
2211                 is (nearly) the same through Solaris 8, where the
2212                 previous clone device scheme no longer works.
2213
2214                 With significant assistance from Casper Dik, added
2215                 support for Solaris 8 Beta and Beta refresh.  The
2216                 IPv6 support in Solaris 8 is still in some flux,
2217                 so there are temporary compensations for the
2218                 differences between Beta IPv6 support and Beta
2219                 refresh IPv6 support.  Casper and I hope those
2220                 differences disappear by FCS.
2221
2222                 Improved the delivery of information on Solaris
2223                 2.5.1, 2.6, 7, and 8 door files.
2224
2225                 Fixed a repeat mode bug that surfaces when /etc/passwd
2226                 changes between cycles.  The bug report and diagnostic
2227                 help were supplied by Igor Schein <igor@txc.com>.
2228                 The fix was offered as a patch to 4.45.
2229
2230                 Added support for INRIA IPv6 to NetBSD.  Jean-Luc
2231                 Richier <Jean-Luc.Richier@imag.fr> provided patches
2232                 and a test system on which to verify them.
2233
2234                 Added support for AIX 4.3.3.  Jeff W. Stewart
2235                 <jws@anaconda.cc.purdue.edu> provided a test system.
2236
2237                 Made adjustments for FreeBSD 4.0-current.
2238
2239                 Improved reporting of information for AIX sockets that
2240                 lack protocol control blocks.
2241
2242 4.47            November 29, 1999
2243                 Based on a query from Jean-Pierre Radley <jpr@jpr.com>,
2244                 changed the lsof top-level Makefile to propagate
2245                 CFGF to the library Makefile.  (DEBUG was already
2246                 being propagated.)  Added osrgcc and scogcc Configure
2247                 abbreviations (to use gcc) for Jean-Pierre.
2248
2249                 In response to a query from Igor Schein <igor@txc.com>,
2250                 improved the Configure script test for Solaris 7
2251                 and 8 that decides if the compiler can produce 64
2252                 bit executables.
2253
2254                 Made an ugly hack, based on making a private rnode
2255                 structure definition from q4 output, to compensate
2256                 for HP-UX 10.20 and lower recent NFS3 patches.  HP
2257                 didn't supply an updated <nfs/rnode.h> with the
2258                 patches.  The problem was reported by Will Partain
2259                 <partain@mekb2.sps.mot.com>.  Elias Halldor Agustsson
2260                 <elias@hi.is> helped identify the patches as
2261                 PHNE_18173, PHNE_19426, PHNE_19937, and PHNE_20091,
2262                 and provided a test system.
2263
2264                 Switched BSDI test system from 2.1 and 3.1 to 4.0.1,
2265                 courtesy of Terry Kennedy <terry@tmk.com>.
2266
2267                 Added some more dev_t hacks for Alpha FreeBSD 4.0.
2268
2269                 Added support for IPv6 on BSD 4.x.  The support hasn't
2270                 yet been tested, just compiled.
2271
2272                 Added support for the mnt file system (mntfs or
2273                 /etc/mnttab) on Solaris 8.  Tested on Solaris 8
2274                 BETA-Refresh.
2275
2276                 Made selection of optional fields (e.g., PPID with
2277                 -FR) in a field output specification select the
2278                 optional field, too, so that the option selector
2279                 for the field (e.g., -R) isn't also required.  This
2280                 change was made in response to an inquiry from John
2281                 DuBois <spcecdt@armory.com>.  This may require some
2282                 revision to scripts that parse all field output;
2283                 two scripts in the lsof distribution's scripts/
2284                 subdirectory had to be updated.
2285
2286                 Corrected handling of Linux IPv4 addresses mapped
2287                 in IPv6 addresses.
2288
2289                 Tested under OpenBSD 2.6.
2290
2291 4.48            January 14, 2000
2292                 Modified -i argument processing of colon-separated
2293                 IPv6 addresses to recognize an IPv4 address mapped
2294                 in an IPv6 address and handle it as an IPv4 address.
2295                 This was offered as a patch to 4.47.
2296
2297                 Added a defined symbol (NOWARNBLKDEV) to control
2298                 (inhibit) the issuance of a warning when no block
2299                 devices are found.  This was done anticipating its
2300                 need in FreeBSD 4.x, but that dialect version no
2301                 longer has any block devices, so HASBLKDEV was
2302                 disabled for it instead.  NOWARNBLKDEV was left in
2303                 place for possible use in the future.
2304
2305                 Enabled KAME IPv6 Configure support for FreeBSD
2306                 when <netinet6/in6.h> is found.
2307
2308                 Disabled use of gcc to compile lsof for 64 bit
2309                 HP-UX 11.
2310
2311                 Updated Configure to recognized FreeBSD 3.4.
2312
2313                 Based on suggestions from Bernt Christandl
2314                 <beb@MPA-Garching.MPG.DE> improved AFS configuration
2315                 for AIX and Solaris, and updated AIX AFS 3.5 support.
2316                 Johannes Tax <tax@bluedog.oit.unc.edu>, Hung T.
2317                 Pham <hung_pham@unc.edu>, and Curt Freeland
2318                 <curt@grumpy.cse.nd.edu> provided test systems.
2319
2320                 Updated lsof's private rnode definition for AIX
2321                 4.3.3, since IBM still doesn't ship the
2322                 <oncplus/nfs/rnode.h> header file and the rnode
2323                 structure definition in <nfs/rnode.h> doesn't match
2324                 what the kernel uses.  This was offered as a patch
2325                 to 4.47.
2326
2327                 Weakened the test in the Linux /proc-based lsof of
2328                 the field count of data lines in /proc/net/{tcp,udp}.
2329                 It appears that recent 2.3.x Linux kernels have
2330                 added untitled fields to these files.  The bug
2331                 report came from Gabor Liptak <gaborliptak@usa.net>.
2332
2333                 Adjusted for a FreeBSD 4.0 change in the definition
2334                 of [_]KERNEL.  David O'Brien <obrien@NUXI.com> reported
2335                 the problem and provided a test system.
2336
2337                 Removed the HASPPID bracket from Fppid (the -R
2338                 option state variable) so that the field select
2339                 table will compile even when HASPPID is not defined.
2340                 This problem was introduced at revision 4.47 with
2341                 code that causes some field output characters to
2342                 set option states.  The problem was reported by
2343                 David Bacon <bacon@birch.eecs.lehigh.edu>.
2344
2345 4.49            April 3, 2000
2346                 Made clearer in man page that "Lxx" FDs are AIX
2347                 loader table references.  Also updated the 00FAQ
2348                 discussion of the Stale Segment ID bug to include
2349                 AIX 4.3.x.
2350
2351                 Modified support for NetBSD 1.4Q to include the
2352                 <sys/buf.h> header file to cope with an MFS change.
2353
2354                 Added support for OpenBSD UVM virtual memory.
2355
2356                 Added support for AIX systems with > 2GB of memory.
2357                 Chris Sylvain <csylvain@itg.ummc.umaryland.edu>
2358                 reported the problem and provided the solution.
2359                 Chris also supplied some minor code cleanup.  This
2360                 was offered as a patch to 4.48.
2361
2362                 Based on new information from Igor Schein <igor@txc.com>
2363                 made additional compensation in Configure script
2364                 for 64 bit Solaris 7 and 8 gcc.
2365
2366                 Added some 00FAQ info on the effect ordering of
2367                 the +fg and -FG options has on output format.
2368
2369                 Improved NetBSD IPv6 configuration, based on a
2370                 suggestion from Thomas Klausner
2371                 <wiz@danbala.ifoer.tuwien.ac.at>.  Added code to
2372                 convert IPv4-mapped-in-IPv6 addresses to IPv4
2373                 addresses.
2374
2375                 Updated the information in 00FAQ and the HP-UX 11
2376                 binary directory README files on the HP-UX 11 ipis_s
2377                 patch with new information supplied by Eric McWhorter
2378                 <emcwhorter@xsis.xerox.com>.
2379
2380                 Added documentation on changes to HASFSTYPE and
2381                 HASNCACHE, and the new HASPRIVPRIPP.
2382
2383                 Adjusted Configure for FreeBSD 5.0.  Made additional,
2384                 necessary changes to Configure and the BSDI sources
2385                 to eliminate load errors.
2386
2387                 Added KAME IPv6 support to FreeBSD at the request
2388                 of Ollivier Robert <roberto@eurocontrol.fr>, who
2389                 provided a test system.
2390
2391                 Corrected the script that generates the CHECKSUMS
2392                 files for binaries to correctly name the detached
2393                 PGP certificate.  The documentation bug was reported
2394                 by Michael Hennecke <hennecke@rz.uni-karlsruhe.de>.
2395
2396 4.50            June 29, 2000
2397                 Added a NetBSD alpha test host, courtesy of Ray
2398                 Phillips <r.phillips@mailbox.uq.edu.au>.  An lsof
2399                 4.49 binary, built on Ray's 1.4.1 system was made
2400                 available prior to the 3.50 release.
2401
2402                 Upgraded the system map file tests in /dev/kmem-based
2403                 Linux lsof, making the use of DEBIAN_LINUX_LSOF
2404                 unnecessary.  Tested the changes on a system made
2405                 available by Vincent Kujala <kujala@geog.ubc.ca>
2406                 and Jim Mintha <jim@ic.uva.nl>.
2407
2408                 Forced AIX to use the large-file-enabled versions
2409                 of lstat (lstat64) and stat (stat64) if <sys/stat.h>
2410                 contains stat64.  This should allow lsof to stat()
2411                 AIX files > 2GB even when the builder has not
2412                 defined the "large file enabled programming
2413                 environment."  Configure tests <sys/stat.h> and
2414                 puts -DHASSTAT64 in the Makefile's CFLAGS to make
2415                 this happen.  Fernando A.B. Whitaker
2416                 <whitaker@cenapad.unicamp.br> reported the problem.
2417                 This was offered as a patch to 4.48.
2418
2419                 Enabled Configure script to handle OpenBSD 2.7.
2420                 Angelos D. Keromytis <angelos@dsl.cis.upenn.edu>
2421                 reported the availability of OpenBSD 2.7 and supplied
2422                 the Configure script patch.
2423
2424                 Improved handling of DOOR and fattach()'d files in
2425                 Solaris.
2426
2427                 Changed message about missing kernel symbol file
2428                 from "not yet determined" to "none found".
2429
2430                 Updated FreeBSD, NetBSD, NEXTSTEP, OpenBSD, and
2431                 OPENSTEP support to report "no PCB" and the values
2432                 of the SO_CANTSENDMORE and SO_CANTRCVMORE state
2433                 flags when a socket structure has no inpcb pointer.
2434                 This modification was made to AIX lsof at revision
2435                 4.46.  Added an entry to 00FAQ about sockets that
2436                 have no inpcb pointer.
2437
2438                 Upgraded support for FreeBSD 5.0-CURRENT.  Ben
2439                 Smithurst <ben@scientia.demon.co.uk> supplied
2440                 patches and did testing.  David O'Brien <obrien@NUXI.com>
2441                 supplied a test system.  The update included dropping
2442                 the Fctty part of file descriptor file system
2443                 support, conditional on a Configure script test.
2444                 I propagated those changes to BSDI, NetBSD, and
2445                 OpenBSD in anticipation of their having the
2446                 modification in the future.  David also arranged
2447                 with Michael Haro <mharo@area51.fremont.ca.us> for
2448                 a FreeBSD 3.4 test system.
2449
2450                 In response to an lsof 3.72 bug report from Jim Mewes
2451                 <jim@corp.phone.com>, added more kernel address
2452                 filtering to the lsof function, kread(), that reads
2453                 Solaris kernel data.
2454
2455                 In response to a report from Marc Duponcheel
2456                 <marc@offline.be>, added tests to the /proc-based
2457                 Linux lsof to ignore file systems of types "autofs"
2458                 and "pipfs".
2459
2460                 Based on a report and information supplied by Casper
2461                 Dik <casper@holland.Sun.COM>, updated the ncache_load()
2462                 function in lib/rnch.c with new code that deals
2463                 with a post Solaris 8 change in kernel name cache
2464                 (DNLC) handling.  Casper tested the update, which
2465                 should be invisible to Solaris versions without
2466                 the new DNLC code.
2467
2468                 Added support for Solaris VxFS QIO files, based on
2469                 a report from Kieran Broadfoot <kieran.broadfoot@gs.com>.
2470                 Kieran help test the support.
2471
2472                 Added support for PTX 4.4.6 and 4.5[.1] with help
2473                 from the usual cast of good people at Sequent.
2474
2475                 Added support for 64 bit file sizes and offsets on
2476                 BSDI, FreeBSD, NetBSD, and OpenBSD, based on a
2477                 report from Dan Nelson <dnelson@emsphone.com>.
2478                 Dan supplied a patch and did FreeBSD testing.
2479
2480                 Added Configure script recognition of NetBSD 1.5,
2481                 based on a report from Andrew Brown <atatat@atatdot.net>.
2482                 Thomas Klausner <wiz@danbala.ifoer.tuwien.ac.at> updated
2483                 the NetBSD port package to use a pre-release of this
2484                 addition.
2485
2486                 At the last minute saw a notice via deja.com's
2487                 UseNet search service that FreeBSD 3.5 had been
2488                 released and lsof didn't grok it.  Added recognition
2489                 of 3.5 to lsof's Configure script, but didn't have
2490                 the opportunity to test lsof on 3.5.
2491
2492 4.51            August 21, 2000
2493                 Added Configure script support for the upcoming
2494                 Solaris 9 release based on suggestions from Casper
2495                 Dik <Casper.Dik@holland.sun.com>.
2496
2497                 Changed sample Perl scripts to assume that
2498                 /usr/local/bin/perl is Perl 5 and Perl 4 may be
2499                 found in /usr/local/bin/perl4.
2500
2501                 Updated Configure to recognize FreeBSD 4.1 and made
2502                 a FreeBSD pre-release distribution available.
2503
2504                 Bela Lubkin <belal@sco.COM> tested lsof on the
2505                 upcoming SCO OSR 5.0.6 release and reports that
2506                 lsof appears to work properly.
2507
2508                 Updated the AIX compiler test in Configure to
2509                 recognize its version 5.
2510
2511                 Updated AIX 4.3.3 support with automatic recognition
2512                 of the proper rnode structure, based on machine
2513                 bit width.  Also added code to detect when processing
2514                 the -X option that lsof has been compiled with the
2515                 "other" AIX 4.3.3 user structure and to apply
2516                 compensations.  When a compensation method works,
2517                 it's applied during subsequent -X processing; when
2518                 none works, further -X processing is disabled.
2519
2520                 Added Tru64 UNIX 5.1 support.  Updated Tru64 UNIX
2521                 library text file support to recognize new kernel
2522                 support for AdvFS library files.  Berkley Shands
2523                 <berkley@cs.wustl.edu> and Klaus Saggerer USG
2524                 [saggerer@zk3.dec.com> helped put me in contact
2525                 with Chang Song <song@zk3.dec.com>, the developer
2526                 of 5.1's new kernel name cache and he helped me
2527                 develop new code in lsof to access it.
2528
2529                 Corrected reporting of PTX fattach()'d address.
2530
2531                 Changed Configure and dlsof.h for NetBSD and OpenBSD
2532                 to use /usr/include/uvm header files when available.
2533                 Andrew Brown <atatat@atatdot.net>, Thomas Klausner
2534                 <wiz@danbala.ifoer.tuwien.ac.at>, and Wolfgang
2535                 Rupprecht <wolfgang@wsrcc.com> pointed out the need
2536                 to do this for NetBSD.  Andrew provided access to
2537                 a NetBSD 1.5 system for verifying the changes.
2538
2539                 Installed snprintf() support, including a private
2540                 version in the lsof library for those UNIX dialects
2541                 without the function.  Changed all sources to use
2542                 it instead of sprintf() and strcpy().
2543
2544                 Fixed a memory leak in the readvfs() functions of
2545                 BSDI, DEC/OSF1, Digital UNIX, FreeBSD, NetBSD,
2546                 OpenBSD, and Tru64 UNIX.
2547
2548                 Tested on Linux 2.4.
2549
2550                 Modified the Pyramid MkKernOpts script to compensate
2551                 for `uname -s` configuration alternatives.  Robert
2552                 Dahlem <Robert.Dahlem@ffm2.siemens.de> supplied
2553                 the modification.
2554
2555                 Obtained access to an FCS Solaris 8 64 bit system
2556                 and built lsof on it, using Sun Workshop C 5.0 and
2557                 gcc 2.96 20000814 (experimental).  Both compilers
2558                 produce a working lsof.
2559
2560
2561 4.52            November 8, 2000
2562                 Completed work on an HP-UX 11.11 port that uses a
2563                 pstat(2) interface provided by HP.  To distinguish
2564                 it from its predecessors for HP-UX, this lsof
2565                 version is called PSTAT-based and the predecessor
2566                 versions are now called /dev/kmem-based.  I am
2567                 indebted to the far-sightedness and support of
2568                 these good people at HP for making PSTAT-based lsof
2569                 possible: Carl Davidson, Louis Huemiller, Rich
2570                 Rauenzahn, and Sailu Yallapragada.  The PSTAT-based
2571                 sources are in lsof_4.52/dialects/hpux/pstat, the
2572                 /dev/kmem-based ones in lsof_4.52/dialects/hpux/kmem.
2573
2574                 Ported to IBM Monterey for Merced|Itanium, aka AIX
2575                 5L.  It configures via the Configure script's "aix"
2576                 abbreviation and has been tested on AIX 5L Beta 3.
2577                 Jay Beck, Steve Dibbell, Loc Le, Nasser Momtaheni,
2578                 and Malcom Zung of IBM provided generous support.
2579                 Since AIX 5L is still in Beta testing, this port
2580                 can't be considered complete.
2581
2582                 Added Configure support for OpenBSD 2.8.  David
2583                 Mazieres <dm@cs.nyu.edu> provided a test system.
2584
2585                 Based on a report from Marc Christensen
2586                 <marc@mecworks.com> added sockfs to the mount scan
2587                 exemption list for /proc-based Linux lsof.
2588
2589                 Added large file, CDFS, and DOSFS for UnixWare 7.x.
2590                 Added UnixWare device memory mapping support.  All
2591                 UnixWare changes were supplied by Eric Dumazet
2592                 <edumazet@cosmosbay.com>  Eric also supplied some
2593                 miscellaneous bug fixes.
2594
2595                 Deferred name cache loading until printname() needs
2596                 to use the name cache.
2597
2598                 Terminated Pyramid, SunOS 4.1.x, and Ultrix support,
2599                 because test systems are no longer available.
2600                 Final Pyramid and Ultrix source code distributions
2601                 for lsof revision 4.51 may be found on lsof.itap.purdue.edu
2602                 in pub/tools/unix/lsof/OLD/src.  The no longer
2603                 supported SunOS 4.1.x source code is still distributed
2604                 with the Solaris source code.
2605
2606                 Added code to set Solaris node address to real vnode
2607                 address, when applicable.
2608
2609                 John Speno <speno@lopan.isc-net.upenn.edu> provided
2610                 information that enabled me to update the Tru64
2611                 AdvFS (MSFS) node definition for AdvFS version 5.
2612
2613                 Added Tru64 5.x CFS support with help from Kris
2614                 Chandrasekhar <Kris.Chandrasekhar@compaq.com>,
2615                 Diane Lebel <lebel@zk3.dec.com>, and John Speno.
2616                 The support only provides information about cached
2617                 file attributes.
2618
2619                 Installed a Configure patch for HP-UX 11 supplied by
2620                 Kenneth Stailey <kstailey@disclosure.com> that adds
2621                 another command to q4 input.
2622
2623                 Tested on FreeBSD 4.2.
2624
2625                 Will Day <willday@rom.oit.gatech.edu> and Frank
2626                 Winkler <frank.winkler@germany.sun.com> graciously
2627                 supplied Solaris 8 binaries.
2628
2629                 Added Solaris 9 text file support, supplied by
2630                 Casper Dik <Casper.Dik@holland.sun.com>.
2631
2632 4.53            December 6, 2000
2633                 Added the AIX 5L j2_lock.h to the distribution with
2634                 a Configure script step to use it when it's missing
2635                 from /usr/include/j2.
2636
2637                 Removed SunOS 4.1.x support.
2638
2639                 Removed Linux 2.0.x /dev/kmem support.
2640
2641                 Fixed VBLK and VCHR special device file reporting
2642                 to handle /dev information more accurately.
2643
2644                 Added a Apple Darwin / Mac OS X 1.2 port, provided
2645                 by Allan Nathanson <ajn@apple.com>.  Allan also
2646                 arranged for a test system so I can maintain this
2647                 port.  An additional test system was provided by
2648                 Dale Talcott.
2649
2650                 Dropped claims of support for all UnixWare versions
2651                 except 7.1.0, since that is the only version on
2652                 which I can test lsof.  Even though lsof 4.53 is
2653                 deprecated for UnixWare 2.1.3, installed a patch
2654                 for it with testing done by A. Channing Clark
2655                 <clark.channing@heb.com>.
2656
2657                 Dropped claims of support for all SCO OpenServer
2658                 versions except 5.0.5, since that is the only
2659                 version on which I can test lsof.
2660
2661 4.54            January 19, 2001
2662                 Added compensation for a change that made the
2663                 FreeBSD mount structure invisible.  I can only test
2664                 back to 3.2 and the compensation works there, so
2665                 it's been #ifdef'd for 3.2 and above.  David O'Brien
2666                 <obrien@FreeBSD.org> provided the necessary clue.
2667
2668                 Based on a report from Valdis Kletnieks
2669                 <Valdis.Kletnieks@vt.edu>, changed all IPv6 support
2670                 to report a TYPE of IPv6 for sockets with IPv4
2671                 addresses mapped in IPv6 addresses.  The previous
2672                 lsof behavior was to report their TYPE as IPv4.
2673
2674                 Restored the Linux GlibC test to Configure, removed
2675                 at revision 4.53, based on a report from John Dzubera
2676                 <zube@cs.colostate.edu>, that RedHat Linux 6.0 still
2677                 needs the test.
2678
2679                 Made setting of link count for Solaris more selective.
2680
2681                 Limited Readlink() recursion to MAXSYMLINKS.  The bug
2682                 was reported by Jan Dvorak <johnydog@go.cz>.
2683
2684                 Dropped the *claim* that lsof runs on Solaris 2.5.1.
2685                 It may well do so, but I no longer have access to a
2686                 test system.
2687
2688                 Fixed an #endif comment typo, reported by Igor Schein.
2689
2690                 Fixed a typo in a cast for a Tru64 UNIX 5.1 function
2691                 and updated Configure for Tru64 UNIX 5.0 and 5.1 with
2692                 information from Jesse Perry <jesse.perry@compaq.com>.
2693
2694                 Corrected non-fatal typos in the AdvFS support in
2695                 dnode.c for Tru64 UNIX.
2696
2697                 Added msdos file system support for NetBSD and OpenBSD.
2698                 Andrew Brown <atatat@atatdot.net> requested and helped
2699                 test it.
2700
2701 4.55            February 15, 2001
2702                 Based on a report from Bernd Eckenfels <ecki@lina.inka.de>
2703                 added support in lsof for files in /proc/<PID>/maps
2704                 that have been deleted.
2705
2706                 Changed PGRP output title to PGID, conforming to
2707                 the most common current abbreviation for Process
2708                 Group ID (PGID).  While some systems continue to
2709                 use *pgrp for internal kernel variable names, most
2710                 systems that support the display of PGID via ps(1)
2711                 now title it PGID.  The lsof -g and -Fg options
2712                 operations are unchanged in function; only titles
2713                 and descriptions have changed.  Also changed internal
2714                 variable names from *PGRP and *pgrp to *PGID and
2715                 *pgid where possible.
2716
2717                 Dropped the *claim* that lsof runs on HP-UX 9.x.
2718                 It may well do so, but I no longer have access to
2719                 a test system.
2720
2721                 In response to a suggestion from Jeff Howie
2722                 <jeff.howie@federated.ca> added support for command
2723                 name selection by regular expression.  A new form
2724                 of the -c option value is use to identify and
2725                 specify a regular expression.
2726
2727                 Restore the *claim* that lsof works on UnixWare
2728                 7.0, since I re-acquired a test system.
2729
2730 4.56            May 3, 2001
2731                 Corrected some problems Amir Katz <Amir_Katz@bmc.com>
2732                 found with Insure++, one in lib/dvch.c, the rest
2733                 in Solaris sources.  Amir's report also helped me
2734                 find an error in an snpf() call that caused (the
2735                 unsupported) Solaris 2.5.1 lsof to crash.  Wally
2736                 Winzer, Jr. <wally.winzer@ChampUSA.COM> helped test.
2737
2738                 Added support for UnixWare 7.1.1 and above in-kernel
2739                 UNIX sockets.  John Hughes <john@Calva.COM> kindly
2740                 provided code and access to a test system.  John
2741                 also provided a test system and advice for adding
2742                 UnixWare 7.1.1 NonStop Cluster and CFS support.
2743                 More help with that effort came from Kurt Gollhardt
2744                 (SCO), Barbara Howe (SCO), Bela Lubkin (SCO), and
2745                 Dewan Rashid <Dewan.Rashid@ir.com>.
2746
2747                 Archived a set of compilation hints (patches) from
2748                 Bill Melvin <Bill.Melvin@esc.edu> that make it
2749                 possible to compile the old, unsupported lsof 3.08
2750                 sources on UnixWare 1.x without NFS or CDFS support.
2751
2752                 Installed support supplied by Allan Nathanson
2753                 <ajn@apple.com> for the Darwin "Gold Master" release,
2754                 Mac OS X 10.0 (aka Darwin 1.3 in its public source
2755                 version).  Added Allan's CVS repository suggestions
2756                 to the script that gets additional header files
2757                 from an open source repository.
2758
2759                 Tested an HP-UX 11.11 kernel patch from Sailu
2760                 Yallapragada that enables reporting of TCP/IP
2761                 information for telnetd processes that use the
2762                 telnet multiplexor.  I don't yet know the kernel
2763                 patch ID.
2764
2765                 Made the Solaris inclusion of <inet/mi.h> conditional
2766                 on the Solaris version.  (It's apparently not needed
2767                 at 2.6 and above.)  Bill Watson <bill.watson@uk.sun.com>
2768                 brought this to my attention.
2769
2770                 Added alternate Linux 2.4.x lock extent test, supplied
2771                 by Jim Mintha <jim@ic.uva.nl>.
2772
2773                 Rearranged the lines and pre-processor tests in
2774                 regex.h, lib/regex.c, and lib/snpf.c so that unifdef
2775                 can be used to eliminate copyright and GPL statements
2776                 when the files aren't being used for a particular
2777                 dialect.  (USE_LIB_* definitions in a dialect's
2778                 machine.h header file determine if one or more of
2779                 those three files are to be used.)
2780
2781                 Added preliminary support for Solaris 8 with VxFS
2782                 3.4.  This support will be refined as I get
2783                 information from Veritas about how they will
2784                 distribute the kernel header files lsof needs.
2785                 Those header files were omitted from the standard
2786                 VxFS 3.4 distribution.  Technical assistance and
2787                 testing were provided by Calle Dybedahl <cdy@algonet.se>,
2788                 Gary Millen <gary.millen@veritas.com>, Rainer Orth
2789                 <ro@TechFak.Uni-Bielefeld.DE>, Peter C. Vernam
2790                 <pvernam@draper.com>, and Donna Yobs
2791                 <Donna.Yobs@veritas.com>
2792
2793                 Tested on FreeBSD 4.3-STABLE.
2794
2795                 Dropped the *claim* that lsof works on UNIX dialects
2796                 where I no longer have test systems: BSDI 2.1,
2797                 3.[01] and 4.0; DEC OSF/1, Digital UNIX and True
2798                 64 UNIX 2.0 and 3.2; FreeBSD 2.1.[67], 2.2[.x],
2799                 3.[012345] and 4.[01]; HP-UX 10.20; NetBSD 1.[234];
2800                 SCO OpenServer 5.0.5; and SCO UnixWare 7.0
2801
2802                 Tested on Solaris 9 BETA, s81_36.
2803
2804 4.57            July 19, 2001
2805                 Help (-h) and version (-v) output now have URLs
2806                 for the newly created and timeliest lsof FAQ
2807                 (00FAQ in the lsof distribution) at:
2808
2809                   ftp://lsof.itap.purdue.edu/pub/tools/unix/lsof/FAQ
2810
2811                 and the man page for the current lsof distribution
2812                 at:
2813
2814                   ftp://lsof.itap.purdue.edu/pub/tools/unix/lsof/lsof_man
2815
2816                 Based on a report from Steve Laubscher
2817                 <slaubs@woodward.com>, modified dlsof.h for PTX
2818                 4.6[.1] to avoid a temporary dnlc_t definition
2819                 needed at PTX 4.5.1.
2820
2821                 Corrected test for old Linux kernels in Configure.
2822                 Henri Karrenbeld <ishtar@cal044202.student.utwente.nl>
2823                 brought the error to my attention.  Limited Linux
2824                 claims to 2.1.72 and above in the documentation.
2825
2826                 Improved HP-UX 11 Configure stanza and stream socket
2827                 handling.
2828
2829                 Constructed a work-around for the HP-UX 11 optional
2830                 OnlineJFS package.  The work-around sadly requires
2831                 lsof to have a private version of the vx_inode
2832                 structure, since the OnlineJFS package doesn't
2833                 update <sys/fs/vx_inode.h>.  Troyan Krastev
2834                 <Troyan.Krastev@ricoh-usa.com> brought the bug to
2835                 my attention and Michael Bracewell
2836                 <michael@ra.TSS.PeachNet.EDU> provided a test system
2837                 where I developed the work-around.
2838
2839                 Added locale support to lsof's isprint() test,
2840                 based on a suggestion from Dan Mercer <damercer@mmm.com>.
2841                 Lsof will use setlocale(), when that function and
2842                 its supporting <locale.h> header file are available.
2843
2844                 Added OpenBSD 2.9 support.
2845
2846                 Based on a report from Aaron Rhodes <arhodes@psionic.com>
2847                 and with testing help from Aaron, made the lsof
2848                 4.56 revision compile and work on OpenBSD 2.6.
2849                 While that OpenBSD version is no longer supported,
2850                 Aaron's report exposed a Configure script bug
2851                 affecting OpenBSD versions lsof does support.
2852
2853                 Updated for FreeBSD 5.0-CURRENT.  Szilveszter Adam
2854                 <sziszi@petra.hos.u-szeged.hu> help test.  The lsof
2855                 FreeBSD ports packager, David O'Brien <obrien@FreeBSD.org>,
2856                 assisted.
2857
2858                 Tested on AIX 5.1.  Loc Le and Nasser Momtaheni of
2859                 IBM provided test systems.
2860
2861 4.58            September 13, 2001
2862                 Added options to safestrprt() and safestrprtn() to
2863                 surround the string with '"' and to suppress the
2864                 printing of an ending '\n'.  Use of these functions
2865                 in device cache file error message reporting answers
2866                 a suggestion for better error reporting from John
2867                 Jackson <jrj@purdue.edu>.
2868
2869                 Fixed a Solaris 2.6 and above problem related to
2870                 searching for "large" (O_LARGEFILE) files by name;
2871                 lsof was using the wrong version of [l]stat(2).
2872                 The bug was reported by Daniel Trinkle
2873                 <trinkle@cs.purdue.edu>.
2874
2875                 Added AIX 4.1.4 and above XTI socket support.
2876
2877                 Added OSR Xenix Shared Data and Semaphore file type
2878                 support with modifications supplied by Bela Lubkin.
2879
2880                 Updated OPENSTEP support with modifications from Carl
2881                 E. Lindberg <lindberg@clindberg.org>.  The changes
2882                 enable the correct reporting of executable and
2883                 library open files ("txt" type).
2884
2885                 Limited claims of OpenServer support to the versions
2886                 where I currently test, 5.0.4 and 5.0.6.  (Lsof
2887                 probably works on 5.0.5.)
2888
2889                 Enabled processing of -C option for PSTAT-based HP-UX
2890                 lsof.
2891
2892                 Enabled and tested on FreeBSD 4.4.
2893
2894                 Corrected a file system test example in 00QUICKSTART,
2895                 based on a report from Jun Biao WANG <wangjunb@cn.ibm.com>.
2896
2897                 Made available for re-distribution a user-contributed
2898                 port of lsof 4.51 to Reliant UNIX 5.45.  Thomas
2899                 Mauterer <Thomas.Mauterer@philosys.de> contributed
2900                 the port.
2901
2902 4.59            October 20, 2001
2903                 With the closing of the Sequent Synergy Links Lab
2904                 by IBM, terminated lsof support for PTX.  The last
2905                 tested PTX lsof revision, 4.58, is available on
2906                 lsof.itap.purdue.edu in .../lsof/OLD/src.
2907
2908                 Adjusted for FreeBSD 5.0-CURRENT NFS header file
2909                 changes, based on a report from Jos Backus
2910                 <josb@cncdsl.com>.
2911
2912                 Corrected a bug in the way Linux lsof identifies
2913                 the owner of a process.  Lionel Cons <lionel.cons@cern.ch>
2914                 reported the problem and tested the fix.  Added
2915                 code to avoid stat(2) calls on regular Linux files
2916                 whenever possible.  Lionel reported the need to do
2917                 this (AFS files) and tested the new code.
2918
2919                 Added new output field for raw device number in
2920                 hex.  The field is identified with 'r'.  This field
2921                 is NOT selected when -F or -F0 is specified so that
2922                 its appearance won't disturb existing scripts that
2923                 process field output.
2924
2925                 Added support for OpenUNIX 8.  A test system was
2926                 provided by Larry Rosenman <ler@lerctr.org>.
2927                 Matthew Thurmaier <matt@compclass.com> and many
2928                 people from Caldera provided technical assistance.
2929
2930                 Added an additional UVM test to the NetBSD Configure
2931                 stanza.  Andrew Brown <atatat@atatdot.net> supplied
2932                 the test; it recognizes NetBSD 1.5Y UVM changes to
2933                 the vnode structure recently committed by Chuck
2934                 Silvers.
2935
2936                 Applied Configure and get-xnu-headers.sh script
2937                 changes suppled by Allan Nathanson <ajn@apple.com>
2938                 for Darwin 1.4.
2939
2940                 Added for Bela Lubkin <belal@mammoth.ca.caldera.com>
2941                 OSR-specific environment variables to supply values
2942                 to the Configure script.  The variables are described
2943                 in 00XCONFIG.
2944
2945                 Added an IP version selector to the -i option
2946                 parameters.
2947
2948 4.60            November 9, 2001
2949                 Added special handling to and corrected bugs in
2950                 the matching of IPv4 in IPv6 addresses to -i6:<...>
2951                 selectors.
2952
2953                 Made 00FAQ corrections and updates, based on
2954                 discussions with Igor Schein <igor@txc.com>.
2955
2956                 Modified Configure script to detect a 64 bit capable
2957                 gcc compiler and permit it to be used to build 64
2958                 bit (PA-RISC 2) lsof for HP-UX 11.00.  Tested with
2959                 HP's gcc package, which Rich Rauenzahn of HP kindly
2960                 installed on a test system at HP.  Stefan Marquardt
2961                 <stefan.marquardt@hagebau.de> helped test.
2962
2963                 Made lsof's method of killing its child process
2964                 more robust, based on a suggestion from Bela Lubkin
2965                 <belal@caldera.com>.
2966
2967                 Modified all dialect Makefile segments to accept
2968                 select -v #define's from the environment -- a
2969                 builder's comment, host, logname, system information
2970                 and user name.  This was done for Bela Lubkin, so
2971                 he can "tune" the -v output when he packages lsof
2972                 in the upcoming Caldera OSR 5.0.7 release.
2973
2974                 Changed Perl scripts in scripts/ to put the lsof
2975                 path consistently in $LSOF.  Also added a fix from
2976                 Bela Lubkin to scripts/big_brother.perl5 that allows
2977                 it to tolerate SCO OSR "ago" clauses in open UDP
2978                 file information.  Strengthened emphasis in
2979                 scripts/00README that the scripts are examples that
2980                 shouldn't be expected to run on all UNIX dialects
2981                 without modification.
2982
2983                 At Bela Lubkin's suggestion changed the device
2984                 cache file format examples in 00DCACHE and 00FAQ
2985                 to avoid "%U%".  That's an SCCS escape sequence.
2986
2987                 Added support for OpenBSD 3.0.
2988
2989                 Added +DAportable to CFLAGS for 32 bit HP-UX 11.
2990                 Amir Katz <Amir_Katz@bmc.com> suggested the addition.
2991
2992 4.61            January 22, 2002
2993                 Updated field output example Perl scripts in the
2994                 scripts/ subdirectory to discover the lsof path,
2995                 starting at .. and proceeding through the PATH
2996                 environment variable's directories.
2997
2998                 Added minor OSR Configure script fixes, provided
2999                 by Bela Lubkin <belal@caldera.com>.
3000
3001                 In response to a report from Joshua Wright
3002                 <Joshua.Wright@jwu.edu> modified NetBSD and OpenBSD
3003                 Configure stanzas and sources so that lsof can be
3004                 built when there is no system source tree (e.g.,
3005                 /usr/src/sys).
3006
3007                 In response to a report from Peter Valchev
3008                 <pvalchev@openbsd.org> improved the UVM test in
3009                 the OpenBSD Configure stanza.
3010
3011                 Updated Configure script to recognize FreeBSD 4.5.
3012                 Updated for FreeBSD 5.0 procfs and pseudofs changes.
3013
3014                 Updated HP-UX stanza to see if the compiler named
3015                 in the LSOF_CC environment variable is the bundled
3016                 compiler.  If it is, "-O" is omitted from the
3017                 compiler flags.
3018
3019                 Updated Digital UNIX 4.x and Tru64 UNIX error message
3020                 related to kernel name list failures.  Added an FAQ
3021                 section about how a kloadsrv daemon failure can cause
3022                 knlist(3) to fail.  The condition was reported by
3023                 Douglas B. Jones <douglas@gpc.peachnet.edu>
3024
3025                 Based on a report from Mark W. Eichin <eichin@thok.org>
3026                 made Linux lsof capable of handling and reporting
3027                 file sizes greater than 32 bits.
3028
3029                 Tested on Solaris 9 BETA-Refresh.
3030
3031                 Corrected a bug in the matching of IPv4 addresses,
3032                 mapped in IPv6 addresses, to an IPv4 parameter to
3033                 an -i option.
3034
3035                 Ported to 64 bit Power AIX 5.1 kernel with advice
3036                 from David Clissold <cliss@austin.ibm.com> and Marc
3037                 Stephenson <marc@austin.ibm.com>, and on a test
3038                 system provided by Loc Le <lple@us.ibm.com>.
3039
3040 4.62            March 7, 2002
3041                 Updated 00README to reflect the usefulness of gcc
3042                 for building AIX lsof.  Documented a report from
3043                 Brian L. Gentry <BGentry@nationsrent.com> of success
3044                 on AIX 4.3.3.  I documented my success on 32 bit
3045                 Power AIX 5.1 and my lack of success on ia64 AIX
3046                 5.1 and 64 bit Power AIX 5.1.
3047
3048                 Improved UnixWare >=7.1.1 reporting of UNIX socket
3049                 NAME field information for NonStop Cluster systems
3050                 with a patch provided by John Hughes <john@Calva.COM>.
3051                 Offered John's improvement as a patch to lsof 4.61.
3052
3053                 Corrected bugs in handling of open files on block
3054                 devices by OSR lsof.  The bugs were reported by
3055                 Bela Lubkin <filbo@deepthought.armory.com>.
3056
3057                 Fixed bug in writing >32 bit device numbers for
3058                 block devices to the device cache file.
3059
3060                 Added support for reporting block special nodes
3061                 not in /dev (or /devices).  That required "like
3062                 device special" be changed to "like block special"
3063                 and "like character special".  (00FAQ was updated.)
3064
3065                 Based on a report from Peter Valchev <pvalchev@openbsd.org>
3066                 improved the definition of the source for NetBSD
3067                 and OpenBSD kernel symbols (the nlist() source
3068                 file).  NetBSD now defaults to getbootfile(3) if
3069                 it is available, /netbsd otherwise.  OpenBSD now
3070                 defaults to /dev/ksyms if it is available, /bsd
3071                 otherwise.
3072
3073                 Made possible compilation under BSD/OS (BSDI) 5.0
3074                 with changes to Configure, dialects/bsdi/dlsof,
3075                 dialects/bsdi/dproc.c and lib/rnmh.c.  The changes
3076                 were suggested by Steven Hinkle <hinkle@bsdi.com>.
3077                 Note that these changes do not substantiate a claim
3078                 that lsof works on BSDI 5.0, because I haven't
3079                 tested it there.
3080
3081                 Updated OpenUNIX private <sys/fs/memfs_mnode.h>,
3082                 based on a report from Larry Rosenman <ler@lerctr.org>
3083                 that it had been updated by Caldera patch OU800PK3.
3084                 Unfortunately the patch only corrects some of the
3085                 problems with the header file, so it is still
3086                 necessary to distribute a private patched version
3087                 of it with the lsof sources.
3088
3089                 Applied a man page correction reported by Frederic
3090                 Delanoy <max_ok@yahoo.com>.
3091
3092                 Corrected cast bugs related to using the HP-UX
3093                 bundled C compiler on HP-UX 11.11.
3094
3095 4.63            April 23, 2002
3096                 Added HPUX_BOOTFILE environment variable for use
3097                 by the Configure script in determining HP-UX kernel
3098                 configuration information -- e.g., the state of
3099                 the ipis_s structure in the HP-UX 11 kernel.  The
3100                 change was suggested by Marc Bejarano <beej@alum.mit.edu>.
3101                 Marc also suggested some changes to the HP-UX
3102                 section in 00FAQ that discusses Configure's use of
3103                 q4 for HP-UX 11.
3104
3105                 Fixed a bug in the Solaris lsof file system matching
3106                 code.  It was not reporting that VCHR files in
3107                 /devices were in / when /devices was in /, too.
3108
3109                 Corrected bugs in device number, file size, file
3110                 offset, and raw device number field output generation.
3111
3112                 Added recognition of OpenBSD 3.1 to the Configure
3113                 script with a suggestion from Peter Valchev
3114                 <pvalchev@sightly.net>.  Note that this change does
3115                 not constitute a claim that lsof works on OpenBSD
3116                 3.1, because I haven't tested it there.
3117
3118                 Built an automated test suite.  (See 00TEST and
3119                 the tests/ sub-directory of the lsof main directory).
3120                 Bela Lubkin requested it.  Dale Talcott, John
3121                 Hughes, and Larry Rosenman helped me validate it
3122                 on their systems.
3123
3124                 During the development of the test suite I discovered
3125                 the following lsof bugs or missing features, and
3126                 corrected or supplied them.
3127
3128                 * Corrected the reporting of locks for:
3129                   o Digital UNIX 4.0d and Tru64 Unix 5.[01];
3130                   o HP-UX 10.30 and 11.00;
3131                   o OpenUNIX 8;
3132                   o UnixWare 7.1.1.
3133
3134                 * Enabled HP-UX 10.30 and 11.00 to report open NFS
3135                   file link counts.
3136
3137                 * Corrected the reporting of UNIX domain socket
3138                   names for Apple Darwin, FreeBSD 4.5 and above,
3139                   NetBSD 1.4.1 and above, and for OpenBSD 3.0 and
3140                   above.
3141
3142                 * Enabled HP-UX 11.11 to stat(2) large files.
3143
3144                 * Fixed handling of combination 32 and 64 bit
3145                   device numbers in AIX 64 bit architectures.
3146
3147                 Updated the AIX 4.3.3 NFS rnode recognition code,
3148                 first installed at revision 4.51.  It looks like
3149                 some IBM update has restored a single rnode structure
3150                 independent of the machine bit width.
3151
3152                 Updated the NetBSD and OpenBSD sources so NetBSD
3153                 can process DTYPE_PIPE files, as OpenBSD was already
3154                 able to do.
3155
3156                 Updated Darwin get-xnu-headers.sh script to reflect
3157                 information about a recent reorganization of the
3158                 Darwin CVS hierarchy, supplied by Allan Nathanson
3159                 <ajn@apple.com>.
3160
3161                 Added defense against the standard I/O descriptor
3162                 attack.
3163
3164 4.64            June 26, 2002
3165                 Corrected some FreeBSD pre-processor directives.
3166                 David O'Brien <obrien@NUXI.com> pointed them out.
3167
3168                 Updated lsof's main() function to: 1) close all
3169                 open file descriptors above 2 before starting; and
3170                 2) to set a non-interfering umask.  Moved GET_MAX_FD
3171                 test from misc.c to proto.h, so that main() could
3172                 use it.  Added multiple-include protection to
3173                 proto.h.
3174
3175                 Moved FAQ's test suite Q's & A's to a more appropriate
3176                 section.  Added a Q&A on HASSECURITY option and
3177                 its affect on searching for open files.  (That was
3178                 already in the man page.)
3179
3180                 Updated hpux/kmem/dnode.c for HP-UX < 11 compilation
3181                 with information from John Dzubera <Zube@CS.ColoState.EDU>.
3182                 While lsof doesn't support HP-UX < 11 any more, I
3183                 try to avoid disabling it there when possible, and
3184                 a locking fix for HP-UX >= 11 in lsof 4.63
3185                 inadvertently disabled compilation of lsof for
3186                 HP-UX < 11.  Fixed long-standing bug in HP-UX 10.20
3187                 lock reporting.
3188
3189                 Removed language from the test suite programs that
3190                 requires an ANSI-C compiler.  This allowed the test
3191                 suite to be validated with cc and gcc on the un-
3192                 supported HP-UX 10.20.
3193
3194                 At the suggestion of Manuel Bouyer <bouyer@antioche.eu.org>
3195                 switched NetBSD and OpenBSD lsof from using nlist()
3196                 to using kvm_nlist().  Made the same change for
3197                 BSDI, Darwin, and FreeBSD.
3198
3199                 Validated test suite on OPENSTEP 4.2.
3200
3201                 In response to a suggestion from Jeff Stoner
3202                 <jstoner@blackboard.com> enhanced support for the
3203                 FD list of the -d option to allow it to be either
3204                 an exclusion or inclusion list, using the '^' prefix
3205                 to denote exclusions.
3206
3207                 Made adjustments for FreeBSD 4.6 and 5.0-CURRENT.
3208                 Fixed a FreeBSD /etc/make.conf CFLAGS extraction
3209                 bug, reported by Kris Kennaway <kris@obsecurity.org>,
3210                 and new a bug in the fix, reported by Eric Cronin
3211                 <ecronin@eecs.umich.edu>
3212
3213                 Added nullfs support for FreeBSD, NetBSD, and OpenBSD
3214                 at the request of Andrew Brown <atatat@atatdot.net>.
3215
3216                 Modified all readmnt() functions to ignore mounted-on
3217                 directory names that don't begin with '/'.
3218
3219                 Tested on NetBSD 1.6A and OpenBSD 3.1.
3220
3221                 Upgraded to Solaris 9 FCS with two changes to the
3222                 BETA-Refresh support: 1) an adjustment to dnode.c
3223                 for a change in the so_so (sonode) structure; and
3224                 2) addition of Solaris 9 FCS specific DNLC code.
3225                 David Comay <David.Comay@Eng.Sun.COM> sent me the
3226                 dnode.c change and Casper Dik <Casper.Dik@sun.com>
3227                 helped with the new DNLC support code.
3228
3229                 Applied OpenUNIX changes that permit lsof to compile
3230                 and run on the upcoming 8.0.1 release.  The changes
3231                 were supplied by Robert Lipe <robertl@caldera.com>.
3232                 Larry Rosenman <ler@lerctr.org> provided a test
3233                 system.
3234
3235                 Added Solaris fd file system support.
3236
3237 4.65            October 10, 2002
3238                 Adjusted for change in FreeBSD 5.0-CURRENT inode
3239                 structure, reported by David O'Brien <obrien@NUXI.com>.
3240                 Adjusted for changes in FreeBSD 5.0-CURRENT <sys/vnode.h>.
3241                 One change was reported by Anders Nordby
3242                 <anders@FreeBSD.org>.  Adjusted for FreeBSD 5.0-CURRENT
3243                 on sparc64 architecture.
3244
3245                 Enhanced the error reporting of Solaris lsof when
3246                 it detects a kvm_open() failure, and added a 00FAQ
3247                 entry on the cause, based on a report from Peter
3248                 J. Bertoncini <pjb@anl.gov>.
3249
3250                 Enabled compiling of lsof for NetBSD 1.5 with the
3251                 NULL file system, using a patch from Andrew Brown
3252                 <atatat@atatdot.net>.
3253
3254                 Removed a hack in the LTbigf test program that was
3255                 once needed when it was compiled on Solaris 9 BETA-
3256                 Refresh with gcc.  The hack isn't needed on Solaris
3257                 9 FCS.  Janet Hempstead <jan@library.carleton.ca>
3258                 brought the need for this change to my attention.
3259
3260                 Applied a patch, supplied by Andrew Brown
3261                 <atatat@atatdot.net>, that updates lsof for NetBSD
3262                 version 1.6F.  Corrected handling of the NetBSD
3263                 nullfs.
3264
3265                 Updated to BSDI BSD/OS 4.3 on a test system kindly
3266                 provided by Terry Kennedy <terry@tmk.com>.
3267
3268                 Updated to FreeBSD 4.7.
3269
3270                 Updated to Apple Darwin 1.5, 5.x and 6.x with
3271                 patches supplied by Allan Nathanson <ajn@apple.com>.
3272                 The patches include IPv6 support.
3273
3274                 Updated Configure to use the -bnolibpath loader
3275                 option when building lsof on a PowerPC, running
3276                 AIX 5 or greater.  Valdis Kletnieks
3277                 <Valdis.Kletnieks@vt.edu> informed me this was
3278                 needed.  Lsof for AIX 5.x was initially developed
3279                 on the IA64, where -bnolibpath can't be used and
3280                 I didn't think to restore it to PowerPC loads when
3281                 AIX 5.x became available for that architecture.
3282
3283                 Updated to UnixWare 7.1.3 on a test system provided
3284                 by Larry Rosenman <ler@lerctr.org>.  Removed claims
3285                 that lsof works on OpenUNIX 8.0.1, because UnixWare
3286                 7.1.3 is the release name of OpenUNIX 8.0.1.
3287
3288                 Based on a comment that his e-mail address was
3289                 wrong in the lsof distribution from Kenneth Stailey
3290                 <kstailey@disclosure.com>, removed all e-mail
3291                 addresses from lsof documentation files except this
3292                 one, 00DIST.  The addresses in 00DIST are used to
3293                 send revision release notices to those who contributed
3294                 to a revision, but the addresses in this file for
3295                 previous revisions and in other documentation files
3296                 sometimes grow stale and are never validated.
3297
3298 4.66            December 22, 2002
3299                 Acquired Solaris 7 and 8 test systems, courtesy of
3300                 John Dzubera <Zube@CS.ColoState.EDU>.  Updated
3301                 00TEST and tests/TestDB accordingly.
3302
3303                 Clarified FreeBSD 5.0 architecture claims at the
3304                 suggestion of David O'Brien <obrien@NUXI.com>.
3305                 Also implemented David's suggestion to change
3306                 Intel to x86.
3307
3308                 Installed changes to DNLC handling in OSR lsof in
3309                 preparation for handling changes in the OSR 5.0.7
3310                 DNLC cache.  Information about the changes and
3311                 patches to handle them were supplied by Bela Lubkin
3312                 <filbo@deepthought.armory.com>.
3313
3314                 Upgraded True 64 UNIX support to the 5.1B release
3315                 on a test system provided by Berkley Shands
3316                 <berkley@cse.wustl.edu>  Had to used relaxed ANSI
3317                 compilation because of an error in a system header
3318                 file and other lsof source usages.
3319
3320                 Implemented the HASNOSOCKSECURITY compile-time
3321                 option.  When it and HASSECURITY are defined, lsof
3322                 will be built to list only the user's open files,
3323                 but will also list anyone else's open socket files,
3324                 provided the "-i" option selects their listing.
3325                 Updated the Customize script to ask about setting
3326                 HASNOSOCKSECURITY.  Left it undefined in all dialect
3327                 machine.h header files.  This change was requested
3328                 by Kenneth Stailey <kstailey@speakeasy.net> for
3329                 use with ntop.
3330
3331                 Added support for OpenBSD 3.2 and its kernel trace
3332                 file.
3333
3334                 Improved lsof help (-h) and version (-v) information
3335                 reporting.
3336
3337                 Fixed a FreeBSD 4.7 and above off-by-two UNIX domain
3338                 socket path termination bug, reported by Ken Stailey
3339                 <kstailey@speakeasy.net>
3340
3341 4.67            March 27, 2003
3342                 Began the transition of the lsof ftp server host
3343                 name from vic.cc.purdue.edu to lsof.itap.purdue.edu.
3344                 That reflects Purdue organizational changes.  This
3345                 first step makes the new name an alias to the old
3346                 one.   The old name, vic.cc.purdue.edu, will remain
3347                 usable for an extended period.
3348
3349                 Corrected a revision number reference in section
3350                 17.17 of 00FAQ on the appearance of Solaris negative
3351                 DNLC caching handing.
3352
3353                 Updated 00FAQ discussion of compilers for 64 bit
3354                 Solaris.
3355
3356                 Validated test suite for 64 bit Solaris 8 and gcc.
3357
3358                 At the request of Alek O. Komarnitsky <alek@komar.org>
3359                 added the "+c <width>" option to enable optional
3360                 changing of the COMMAND column output maximum width
3361                 from the default to <width>.  The default maximum
3362                 width remains CMDL, as defined in lsof.h.
3363
3364                 Fixed three AIX kernel bit size detection bugs,
3365                 one in the AIX Configure script stanza, the second
3366                 and third in the AIX dproc.c get_kernel_access()
3367                 function.  The bugs were reported by Pierre-Yves
3368                 Fontaniere <pyf@cc.in2p3.fr>, who tested the fixes.
3369
3370                 Added kernel event queue file support for FreeBSD,
3371                 NetBSD and OpenBSD.  Andrew Brown <atatat@atatdot.net>
3372                 supplied the code.
3373
3374                 Updated to AIX 5.2 on a test system provided by
3375                 Dale Talcott <dtalcott@purdue.edu>.  Had to build
3376                 work-arounds for two missing AIX 5.2 header files,
3377                 <j2/j2_snapshot> and <proc/proc_public.h>.  Corrected
3378                 an off-by-one UNIX socket addressing bug.  Taught
3379                 AIX lsof to handle both jfs and jfs2 files at the
3380                 same time.  Adjusted for an IBM mistake in the
3381                 sizing of the fdsinfo structure in <procinfo.h>
3382                 Toshiya Nakamura <TOSHIYAN@jp.ibm.com> helped test,
3383
3384                 Updated to FreeBSD 4.8.  Corrected another bug in
3385                 FreeBSD UNIX domain socket name handling.
3386
3387                 Corrected gcc build problems on HP-UX 11i, reported
3388                 by Yuliy Minchev <yuliy@mobiltel.bg>.
3389
3390                 Updated BSDI BSD/OS support to 4.3.1.
3391
3392                 Augmented a lock ID test on NetBSD to check if the
3393                 ID is an LWP pointer.
3394
3395 4.68            June 18, 2003
3396                 Enhanced Configure script's cleanup operations.
3397
3398                 Added support for OpenBSD 3.3, based on a report
3399                 from Peter Valchev <pvalchev@sightly.net>.
3400
3401                 Improved the description of the detached PGP
3402                 signature certificate file in the main lsof README
3403                 file, based on a suggestion from Diana Stockdale
3404                 <diana@mpl.ucsd.edu>.
3405
3406                 Installed a work-around for FreeBSD 5.0-CURRENT on
3407                 Alpha to avoid a compiler register use complaint.
3408
3409                 Corrected a 'c' option error message.  Gnele
3410                 <blaadeleng@yahoo.com> reported the problem.
3411
3412                 Upgraded EXT2FS and UFS support for NetBSD and
3413                 OpenBSD to handle new inode information, and the
3414                 fast UFS1 and UFS2 file systems.
3415                 
3416                 With the help of Andrew Brown <atatat@atatdot.net>
3417                 determined the NetBSD snapshot (1.6F) at which
3418                 <sys/mount.h> could be included under _KERNEL, thus
3419                 eliminating the lsof netexport.h hack.  The same
3420                 change applies to OpenBSD versions 3.3 and above.
3421
3422                 Applied a patch from Armin Gruner <ag@muc.de> that
3423                 corrects the use of the HASPROCFS definition in the
3424                 FreeBSD dialect sources.
3425
3426                 Corrected spelling errors in 00FAQ and in the
3427                 generated 00.README.FIRST_<version> file of the
3428                 distribution archive.  John Jackson <jrj@purdue.edu>
3429                 and Ray Phillips <r.phillips@jkmrc.uq.edu.au>
3430                 spotted and reported the errors.
3431
3432                 Corrected a spelling error in a comment and incorrect
3433                 use of an alarm function in the LTsock test program.
3434
3435                 At the suggestion of Stuart Anderson <sba@srl.caltech.edu>
3436                 added preliminary (and incomplete) SAM-FS file system
3437                 support to Solaris lsof.  Completion awaits availability
3438                 of SAM-FS internals.
3439
3440                 Fixed a Solaris device name printing bug, reported by
3441                 Ric Anderson <ric@tick.Telcom.Arizona.EDU>, only
3442                 visible when HASDCACHE is not defined.  Ric helped
3443                 test the fix.
3444
3445                 Fixed an AIX kernel bit size handling bug related
3446                 to the NFS node (rnode) structure.
3447
3448                 Corrected a print_kptr() function call error in the AIX
3449                 AFS code, reported by David Steiner
3450                 <david.r.steiner@Dartmouth.EDU>.  Upon further reflection
3451                 and because I no longer have appropriate AIX AFS test
3452                 systems, disabled AIX AFS support in the Configure script
3453                 for AIX versions above 4.3.3.0 or AIX AFS versions above 3.5.
3454
3455                 Added support for FreeBSD 5.1.
3456
3457                 With advice from Allan Nathanson <ajn@apple.com> adjusted
3458                 the Darwin get-xnu-headers.sh script to access the kernel
3459                 header files needed by lsof from a new form of the Apple
3460                 open source repository.
3461
3462                 Installed Linux and lsof library bug fixes and
3463                 improvements, supplied by Marian Jancar <mjancar@suse.cz>.
3464                 One Linux improvement handles mount strings that
3465                 have octal escapes in them, eg., \040 for embedded
3466                 blanks.  Marian tested the changes.
3467
3468 4.69            October 16, 2003
3469                 Received and applied an OpenBSD patch from Peter Valchev
3470                 <pvalchev@sightly.net> that replaces a ctob() call with
3471                 a sysconf() call.  Peter claims sysconf() is needed for
3472                 OpenBSD on SPARC.  (It is not needed for NetBSD on SPARC.)
3473
3474                 With the upgrade of my only Solaris 7 test system
3475                 to, Solaris 8, dropped the *claim* that lsof works
3476                 on Solaris 7.  That doesn't mean it won't work
3477                 there, so those who want lsof for Solaris 7 probably
3478                 should be able to build it there and it probably
3479                 will work there.
3480
3481                 Revised lsof's DNLC handling for BSD derivatives,
3482                 including: BSDI; Darwin, DEC OSF/1, Digital UNIX
3483                 and Tru64 UNIX; FreeBSD; NetBSD; and OpenBSD.  The
3484                 latest NetBSD distribution's dropping of the vnode
3485                 capability ID (v_id) required the revision.
3486
3487                 Adjusted to the latest FreeBSD 5.1-CURRENT.
3488
3489                 Added NetBSD support for using kvm_getproc2().
3490
3491                 Added a patch from Andrew Brown <atatat@atatdot.net>
3492                 to handle NetBSD enum conflicts and changes in the
3493                 <miscfs/kernfs/kernfs.h> and <miscfs/procfs/procfs.h>
3494                 header files.
3495
3496                 Added a "#define _KERNEL" to the AIX dnode2.c source
3497                 file for compatibility with a new <j2/j2_inode.h>
3498                 AIX 5.2 header file version.  The addition was
3499                 supplied by Dick Dunbar <Dick.Dunbar@Siebel.com>
3500                 and was offered as a patch to lsof 4.68/
3501
3502                 Added support for a second type of Solaris SAMFS.
3503                 Stuart Anderson <sba@srl.caltech.edu> provided the
3504                 support.  SAMFS support in lsof SOLARIS remains
3505                 scanty, because Sun won't release any details on
3506                 its kernel structures.
3507
3508                 Dropped the *claim* that lsof works on AIX 4.3.3,
3509                 because I was unable to test it there.  That doesn't
3510                 mean it won't work there, so those who want lsof
3511                 for AIX 4.3.3 probably should be able to build it
3512                 there and it probably will work there.
3513
3514                 Updated for Solaris 10 on test systems provided by
3515                 Mike Miscevic <miscevic@hotpop.com>.  Casper Dik
3516                 <casper@holland.sun.com> provided significant help.
3517                 During the Solaris 10 port found and fixed an lofs
3518                 handling bug that prevented reporting of open lofs
3519                 file lock status.
3520
3521                 Updated the DNLC test, LTdnlc, to provide a possible
3522                 explanation about file systems on which the test
3523                 might fail.
3524
3525                 Modified the procedure for obtaining missing Darwin
3526                 XNU kernel header files.  The new one requires more
3527                 manual intervention, but is the best that can be
3528                 done with the way Apple open sources are now
3529                 organized.  00FAQ explains the new procedures for
3530                 those not used to downloading Apple open source
3531                 files.
3532
3533                 Added support for Apple Darwin 7.0 (Mac OS X 10.3)
3534                 with patches supplied by Allan Nathanson <ajn@apple.com>.
3535                 Dropped the *claim* that lsof builds and works on
3536                 Apple Darwin below 6.0.
3537
3538                 Validated lsof on FreeBSD 4.9, using a test system
3539                 provided by Ben Lewis <bl@purdue.edu>.
3540
3541                 Validated lsof on FreeBSD 5.1-CURRENT for Amd64.
3542                 David O'Brien <obrien@FreeBSD.org> provided a test
3543                 system.
3544
3545                 Changed the NetBSD Configure stanza to do header
3546                 file searches in /usr/include by default.  The
3547                 LSOF_INCLUDE and NETBSD_SYS environment variables
3548                 may still be used to specify other search paths.
3549                 Discussions with Andrew Brown and Wolfgang S.
3550                 Rupprecht <wolfgang@wsrcc.com> led to the change.
3551
3552 4.70            January 16, 2004
3553                 Improved shell-portability of the linux stanza of
3554                 the Configure script with a patch from Paul Jarc
3555                 <prj@po.cwru.edu>.
3556
3557                 Added a "silent" rule to tests/Makefile for Paul.
3558                 Updated, extended and clarified the test suite
3559                 documentation in 00FAQ and 00TEST.
3560
3561                 Fixed Solaris 10 dlsof.h typo, reported by Mike
3562                 Miscevic <miscevic@hotpop.com>.  The typo prevents lsof
3563                 from loading cleanly in Solaris 10 builds past 40.
3564
3565                 Fixed a Solaris HSFS node number reporting bug and
3566                 added a structure definition work-around for Solaris
3567                 10.
3568
3569                 Converted PGP signing to GPG.  My previous PGP key can
3570                 be used, but the gpg "--allow-non-selfsigned-uid"
3571                 option may have to be used when it is imported into a
3572                 GPG key ring.
3573
3574                 Added bz2 compression.
3575
3576                 Updated for OpenBSD 3.4.
3577
3578                 Added a work-around for a missing header file in the
3579                 s10_44 Solaris 10 build.
3580
3581                 Added support for FreeBSD 5.2-BETA and 5.2-CURRENT.
3582
3583                 Updated Linux AX25 support with modifications supplied
3584                 by Lutz Poetschulat <dl9cu@db0zwi.de>.
3585
3586                 Added raw IPv6 support to Linux lsof.
3587
3588                 Improved handling of parameters after "-i@".
3589
3590                 Improved file name test in LTdnlc.c.
3591
3592                 Added loop count controls to the reading of Solaris
3593                 lock chains.  The change was implemented as a result of
3594                 a report from Steve Gonczi <steve@relicore.com>.
3595
3596                 Based on a report from John Jackson <jrj@purdue.edu>,
3597                 enabled a Solaris 10 <sys/lgrp.h> work-around for
3598                 Solaris 9, too.  (Patch 112233 installs an lgrp.h on
3599                 Solaris 9 that needs the work-around.)
3600
3601                 With help from Andrew Brown <atatat@atatdot.net> and
3602                 John Heasley <heas@netbsd.org> added log-structured
3603                 file system (LFS) support for NetBSD and OpenBSD.
3604
3605                 Added AMD64 to the list of FreeBSD 5.x-CURRENT
3606                 supported architectures.  FreeBSD.org provides a test
3607                 system, courtesy of (I believe) David O'Brien
3608                 <obrien@FreeBSD.org>.
3609
3610                 Added a cast to lseek() in the HP-UX /dev/kmem-based
3611                 kread() function to make it work properly with the
3612                 bundled HP C compiler.
3613
3614 4.71            March 11, 2004
3615                 Added text file support to Apple Darwin lsof and
3616                 enabled the lsof executable portion of the LTbasic
3617                 test.  Added support for Darwin kernel queue, POSIX
3618                 semaphore and POSIX shared memory files.  Tested on
3619                 Darwin 7.2 (aka Mac OS 10.3.2).
3620
3621                 Added process_kqueue() function prototypes for FreeBSD,
3622                 NetBSD and OpenBSD.
3623
3624                 Picked some lint in AIX sources, lib/rnmh.c and
3625                 tests/LTsock.c.
3626
3627                 Added "-x [fl]" cross-over option, which enables +d and
3628                 +D processing to cross over symbolic links and|or file
3629                 system mount points.  Discussion with Johan Lindquist
3630                 <johan@smilfinken.net> and Eric Williams (aka The Ghost
3631                 In The Machine) <ewill3@earthlink.net> on Linux news
3632                 groups revealed the need for the option.
3633
3634                 Updated support for UnixWare 7.1.4.
3635
3636                 Added support for the optional reporting of socket
3637                 options, socket states and TCP flags for most currently
3638                 supported dialects. John Smith <lbalbalba@hotmail.com>
3639                 and Tristan Nefzger <tn@bhtrader.com> requested the
3640                 information.  The dialects and their versions for which
3641                 this feature has become available include:
3642
3643                     AIX 4.3.2 and 5.[12]
3644                     Apple Darwin 7.2
3645                     BSDI BSD/OS 4.3.1
3646                     Digital UNIX and Tru64 UNIX 4.0
3647                     FreeBSD 4.9 and 5.2
3648                     HP-UX 11 and 11.11 (aka 11i)
3649                     NetBSD 1.6ZH
3650                     OpenBSD 3.4
3651                     OPENSTEP 4.2
3652                     OpenUNIX 8
3653                     SCO OpenServer Release 5.0.6
3654                     Solaris 2.6, 8, 9 and 10
3655                     UnixWare 7.1.[134]
3656
3657                 Modified the Configure stanza for HP-UX 11 with better
3658                 q4 detection.  Steve Bonds <3vhmxxm02@sneakemail.com>
3659                 supplied the modification.
3660
3661                 Applied a patch from Mike Miscevic <miscevic@hotpop.com>
3662                 to enable lsof to compile with the zone support in the
3663                 Solaris 10 s10_b51 release.  Added information on lsof
3664                 zone behavior to 00FAQ.
3665
3666                 Added a "-z [z]" option to Solaris 10 lsof.  It enables
3667                 the listing of zone name and can also be used to select
3668                 the listing of processes and their files from specified
3669                 zones.
3670
3671 4.72            July 13, 2004
3672                 Corrected Solaris 10 ZONE column title display bug with
3673                 a patch from Joep Vesseur <Joep.Vesseur@Sun.COM>.  Joep's
3674                 fix was offered as a patch to 4.71.
3675
3676                 Based on a report from Jean-Pierre Radley <jpr@jpr.com>
3677                 about an unexpected GNU uname Configure interaction on
3678                 OSR, and working from information received from Bela
3679                 Lubkin, changed the OSR Configure stanza to use
3680                 /bin/uname instead of uname.  Added an FAQ entry about
3681                 Configure version detection problems.
3682
3683                 Added the +m and "+m m" options in response to a dialog
3684                 with Robert T. Brown <rbrown@netmentor.com>.  The
3685                 options allow the creation of a mount table supplement
3686                 file which can be used on selected dialects to get
3687                 device numbers when stat(2) and lstat(2) can't deliver
3688                 them.  (That's generally the result of an inaccessible
3689                 NFS server.)  Currently the new options are supported
3690                 only on Linux.
3691
3692                 Made cpumask_t typedef _KERNEL compensation for FreeBSD
3693                 5.2-CURRENT.  Refined it for 5.2.1-RELEASE with testing
3694                 help from Scott Ellentuch <tuc@ttsg.com>.
3695
3696                 Added support for FreeBSD 4.10.  Larry Rosenmann
3697                 <ler@lerctr.org> kindly provided a test system.
3698
3699                 Added support for NetBSD 2.0 with patches supplied by
3700                 Andrew Brown <atatat@atatdot.net>.  Andrew also
3701                 provided two test systems.
3702
3703                 Made handling of Linux maps file more robust, based on
3704                 a report from Jan Blunck <J.Blunck@tu-harburg.de>.  As
3705                 a side benefit, made handling of generated stat(2)
3706                 information more flexible.
3707
3708                 As a result of a discussion with Jason Fortezzo
3709                 <fortezza@mechanicalism.net>, adjusted lsof for Solaris
3710                 to obtain the maximum user name length from ut_name of
3711                 the utmpx structure, if <utmpx.h> exists.
3712
3713                 Tested under OpenBSD 3.5.
3714
3715                 Updated 00README information about using gcc (via the
3716                 Configure aixgcc abbrevisiation) to compile lsof on
3717                 AIX.  Ann Janssen <ajanssen@nebook.com> made me aware
3718                 the information was out of date.
3719
3720                 Added an AIX SIGDANGER handler and some 00FAQ sections
3721                 on lsof memory usage after a discussion with Tom Qin
3722                 <tom.qin@citigroup.com> about lsof memory usage.
3723
3724                 Added scripts/sort_res.perl5, contributed by Fabian
3725                 Frederick <fabian.frederick@gmx.fr>.  The script
3726                 displays lsof output sorted by size and path name.
3727
3728                 Improved handling of files on Linux NFS mount points
3729                 that use the root_squash option, based on discussions
3730                 with Paul Szabo <psz@maths.usyd.edu.au>.
3731
3732                 Updated FreeBSD 5.2-CURRENT support, based on a problem
3733                 report from Filippo Natali <filippo@widestore.net>.
3734
3735                 Corrected improper FreeeBSD 5.x-CURRENT #if condition,
3736                 reported by Kim Culhan <kimc@kim.net>.
3737
3738                 Added a Configure script work-around for AIX 5.2 lsof
3739                 with JFS2, compiled by gcc >= 3.3.  The work-around
3740                 was supplied by Florian M. Weps <fmw@hactrn.ch>.
3741
3742 4.73            October 21, 2004
3743                 Added an __XPG4_CHAR_CLASS__ #define before
3744                 #include'ing <ctype.h> on Solaris to restore lsof's
3745                 ability to display special characters such as acute-e.
3746
3747                 Added wide-character (e.g., UTF-8) support where
3748                 possible, prompted by a request from Kyungjoon Lee
3749                 <kjoonlee@gmail.com>.  Some older dialects -- e.g.,
3750                 NetBSD 1.4.1 -- don't support wide characters, so the
3751                 wide character support is enabled by definitions in
3752                 each dialect's machine.h.  Dialects with wide-
3753                 character support are listed in 00FAQ.
3754
3755                 Make a FreeBSD 5.2-CURRENT adjustment for <sys/pipe.h>,
3756                 supplied by Sergey A. Osokin <osa@FreeBSD.ORG>.
3757
3758                 Implemented a Linux feature request made by Jakub
3759                 Jelinek <jakub@redhat.com> that enhances lsof's ability
3760                 to locate UNIX domain sockets whose paths are named as
3761                 arguments.  Jakub supplied suggested code.
3762
3763                 Dropped *claims* that lsof works on AIX below 5.1, SCO
3764                 Dropped *claims* that lsof works on AIX below 5.1, SCO
3765                 Openserver 5.0.4, Tru64 UNIX 5.0, and UnixWare below
3766                 7.1.4.  Lsof will probably build and work on those UNIX
3767                 dialect versions, but I no longer have any way to test
3768                 lsof on them.
3769
3770                 Added support for FreeBSD 5.3 and 6.0.  The FreeBSD
3771                 5.3 support hasn't been tested.
3772
3773                 Added FD test code that will allow dialect versions to
3774                 test FD option selections.  Used the new code in the
3775                 PSTAT-based HP-UX lsof to enable it to avoid scanning
3776                 the mount table when its information is not needed.
3777                 The addition was made in response to a query from
3778                 Harvey Garner <Harvey.Garner@championusa.com> about
3779                 lsof performance in a busy NFS environment.
3780
3781                 Upgraded lsof's AIX support level to AIX 5.3, based on
3782                 a report from Dick Dunbar <Dick.Dunbar@Siebel.com>.  (I
3783                 have not tested lsof under AIX 5.3.)  Based on Dick's
3784                 recommendation and local testing changed the C for AIX
3785                 version 6 and higher -qmaxmem option value to -1.
3786
3787                 Made LSOF_AR environment variable more useful and
3788                 documented it in 00XCONFIG.
3789
3790                 Corrected the use of sum(1) to generate signatures for
3791                 the lsof distribution and binaries to match the
3792                 documentation that claims it is sum -r output.  Jin
3793                 Guojun <jin@george.lbl.gov> noticed and reported the
3794                 problem.
3795
3796                 Tested under OpenBSD 3.6.
3797
3798                 Added checksum and GPG certificate files for the bz2,
3799                 gz and Z lsof distribution archives.  The new files
3800                 reside with the distribution archives and supplement
3801                 the signature information already inside the archives.
3802
3803                 Validated on Solaris 10, i8xpc, build s10_63.
3804
3805 4.74            January 17, 2005
3806                 Fixed a Solaris segment fault bug on systems that lack
3807                 a /dev/allkmem device.  Offered the fix as a patch to
3808                 lsof 4.73.  The bug was reported by Donald Zoch
3809                 <donald.zoch@amd.com>.
3810
3811                 Updated lsof for FreeBSD 6.0 and higher for a change in
3812                 <sys/vnode.h>, based on a report from Sergey A. Osokin
3813                 <osa@FreeBSD.ORG>.  Made the update available in a 4.74
3814                 'A' edition pre-release.
3815
3816                 Filed an HP bug report about missing pstat(2) CWD info
3817                 for LOFS on HP-UX 11.11 and higher.  The missing CWD
3818                 info was noticed by Ermin Borovac <e.borovac@bom.gov.au>.
3819                 Added info to 00FAQ about the problem, which can cause
3820                 the lsof test suite's LTbasic test to fail.
3821
3822                 Updated the q4-generated tcp_s.h in the lsof
3823                 distribution and added socket option support for HP-UX
3824                 11.00.  Erwin Reyns <ereyns@europarl.eu.int> helped
3825                 test.
3826
3827                 Updated for Solaris 10, build s10_69, with a patch
3828                 supplied by Mike Miscevic <miscevic@hotpop.com>.
3829
3830                 Added v_path support to Solaris 10 lsof.  That relieves
3831                 it of having to read and decode the kernel DNLC, and
3832                 delivers full paths more reliably.
3833
3834                 Added specialized NFS4 support to Solaris 10 lsof.
3835
3836                 Applied Solaris 10 patches to lsof supplied by Casper
3837                 Dik <casper@holland.sun.com>.
3838
3839                 Updated lsof for NetBSD 2.99.10 and tested it on a
3840                 system provided by Andrew Brown <atatat@atatdot.net>.
3841
3842                 Added support for the FreeBSD 6.0-CURRENT f_vnode
3843                 pointer in the file structure.
3844
3845                 Added BSDI, FreeBSD, NetBSD and OpenBSD support for the
3846                 *effnlink member of the inode structure.  This makes
3847                 the lsof LTnlink test run faster on all modified
3848                 dialects and correctly on OpenBSD.
3849
3850                 Added ptyfs support for NetBSD, using modifications
3851                 provided by Andrew Brown.
3852                 
3853                 Changed the netbsd Configure stanza to look by default
3854                 for system header files in both /usr/include and
3855                 /usr/src.  (The NETBSD_SYS environment variable can
3856                 still be used to select an alternate for /usr/src.)
3857
3858                 Corrects two FreeBSD 4.10 RPC/XDR type definitions.
3859
3860                 Added an FAQ Q&A about setuid and setgid restrictions
3861                 in HP-UX 11.11.  The information in the answer was
3862                 supplied by Frank Sanders <frank.sanders@siemens.com>.
3863
3864                 Added abbreviations for AXI FCIO and FSNAPSHOT file
3865                 flags.  Holger VanKoll <Holger.VanKoll@swisscom.com>
3866                 reported the missing FCIO.
3867
3868                 Adjusted lsof's private AIX 64 bit rnode structure for
3869                 64 bit AIX 5.2 systems.  (IBM doesn't distribute a
3870                 correct <nfs/rnode.h> for it.)
3871
3872                 Corrected a Linux socket inode printing bug reported by
3873                 Igor Schein <igor@txc.com>.
3874
3875                 Updated for FreeBSD 4.11.  The support compiles but
3876                 hasn't been tested.
3877
3878                 Back-ported a FreeBSD 6.0-CURRENT fix to FreeBSD
3879                 5.3-RELEASE-p1.  That was done to solve a compilation
3880                 problem reported by Radko Keves <rado@daemon.sk>.
3881
3882 4.75            May 16, 2005
3883                 Dropped the *claim* that lsof works on DEC OSF/1 and
3884                 Digital UNIX, since my last 4.0 test system has been
3885                 removed.  The last tested distribution of lsof on DEC OSF/1
3886                 and Digital UNIX was revision 4.74.  It has been archived
3887                 on lsof.itap.purdue.edu in pub/tools/unix/lsof/OLD/src.
3888
3889                 Added negation forms to the values in the -g (PGID) and
3890                 -p (PID) lists.  Negated PGID and PID values, like
3891                 negated UID or login name values, are applied without
3892                 ORing or ANDing and take effect before any other
3893                 selection criteria are applied.
3894
3895                 At the request of Marcin Gozdalik <gozdal@gmail.com>
3896                 added a -X option for Linux.  The option inhibits the
3897                 reading of the /proc/net/tcp* and /proc/net/udp*
3898                 files.
3899
3900                 Based on a report from David Gutierrez
3901                 <davegu1@hotmail.com> changed DEC OSF/1 process table
3902                 allocation to request memory in smaller increments.
3903
3904                 Based on a report from jayjwa <jayjwa@atr2.ath.cx>
3905                 updated the Customize script to use "tail -n 1" where
3906                 possible.
3907
3908                 Enabled support for FreeBSD 5.4.
3909
3910                 Improved the BSDI, FreeBSD, NetBSD, OpenBSD and Solaris
3911                 kvm_open() and kvm_openfiles() error messages.
3912
3913                 Enabled support for NetBSD 2.99.12.
3914
3915                 Improved HP-UX Configure stanza with help from Piet
3916                 Starreveld <pstarrev@csc.com>.  Picked some lint Piet
3917                 found.
3918
3919                 Enabled IPv6 support for HP-UX > 11.  Piet Starreveld
3920                 helped test it on 11.23, among others.
3921
3922                 Updated for HP-UX 11.23 on the ia64 architecture.
3923
3924                 Updated to latest FreeBSD 6.0-CURRENT, using a test
3925                 system provided by Andrzej Tobola <ato@iem.pw.edu.pl>.
3926
3927                 Added support for SCO OSR 6.0.0 and UnixWare 7.1.4 with
3928                 help from Richard at SCO.
3929
3930                 Corrected a Linux bug in NFS handling, reported by Karel Zak
3931                 <kzak@redhat.com>.  Karel supplied a patch.
3932
3933                 Improved the code for accessing an AIX 3.2 and higher
3934                 sockaddr_un structure, thus eliminating a segmentation
3935                 fault possibility.
3936
3937                 Updated for AIX 5.3.
3938
3939                 Added preliminary (DEBUG) support for the AIX SANFS
3940                 file system.
3941
3942                 Fixed a bug in the Solaris 10 processing of the vnode's
3943                 v_path pointer with code supplied by Edward Jajko
3944                 <ejajko@portal.com>.  The fix was offered as a patch to
3945                 4.74.
3946
3947                 Dropped support for OpenUNIX 8, since a test system is
3948                 no longer available.  Archived an OpenUNIX-only
3949                 distribution of the last revision (4.74) tested on
3950                 OpenUNIX in pub/tools/unix/lsof/OLD/src.
3951
3952                 Tested under Openbsd 3.7.
3953
3954                 Tested under Darwin 7.7.0.
3955
3956                 Enabled building on amd64 Solaris 10 with hints from
3957                 Marc Aurele La France <tsi@ualberta.ca>.  Marc provided
3958                 a test system.
3959
3960                 Supplied a missing quote in the FreeBSD Configure
3961                 stanza.  Carl Cook <Info@quantum-sci.com> reported the
3962                 problem.
3963
3964                 Removed "-O" option from tests/Makefile so that the
3965                 HP-UX bundled compiler won't complain.
3966
3967 4.76            August 30, 2005
3968                 Corrected an example and spelling errors in man page.
3969
3970                 Updated for Apple Darwin 8.x with changes supplied by
3971                 Allan Nathanson <ajn@apple.com>.  Allan also provided a
3972                 test system.
3973
3974                 Completed documentation of CLRLFILEADD in all machine.h
3975                 files.
3976
3977                 At the request of Chris Markle <cmarkle@sendmail.com>
3978                 added partial listen queue length to socket options
3979                 displayed when -Tf is specified.  Partial queue length
3980                 is not reported for all dialects.  (00FAQ lists the
3981                 ones where it is reported.)
3982
3983                 Updated for FreeBSD 7.0 with information supplied by
3984                 Andrzej Tobola <ato@iem.pw.edu.pl>.
3985
3986                 Updated Solaris VxFS support for VxFS versions 4 and
3987                 above with technical advice from Craig Harmer
3988                 <craig_harmer@symantec.com>, Gary Millen
3989                 <gary_millen@symantec.com> and Chuck Silvers
3990                 <charles_silvers@symantec.com>.  Testing help was
3991                 provided by Michael Antlitz <mantlitz@prophasys.com>,
3992                 Steve Ginsberg <steve@dhapdigital.com> and Kenneth
3993                 Stailey <kstailey@yahoo.com>.
3994
3995                 Fixed a Solaris address space map processing bug.
3996                 Janardhan Molumuri <mjanardhan@gmail.com> reported the
3997                 bug and help me identify it.  Made the fix available as
3998                 a patch to 4.75.
3999
4000                 Added support for Solaris 10 port and CTFS files.  The
4001                 CTFS support is imcomplete, because I don't know how
4002                 to get inode number, size and link count.  (There's
4003                 a new 00FAQ entry about that.)
4004
4005                 Investigated a report from Christopher J Warweg
4006                 <warwegc@GAO.GOV> that the CHECKSUMS for the lsof 4.75
4007                 binary for 64 bit Solaris 8 was incorrect.  It was my
4008                 packaging error.  I rebuilt and repackaged the binary.
4009
4010                 Enabled support for Linux map file names with embedded
4011                 spaces.
4012
4013 4.77            April 10, 2006
4014                 Added -X option support for Solaris 10 and above.  When
4015                 -X is specified lsof will report cached v_node path
4016                 names for unlinked files, followed by "(deleted)".
4017                 Improved cached vnode path name handling by adding
4018                 "(?)" to the end of path names of questionable accuracy.
4019                 Updated 00FAQ to reflect these changes.
4020
4021                 Updated for FreeBSD 7.0-CURRENT.
4022
4023                 Fixed name addition spacing bug, reported by Stuart
4024                 Anderson <anderson@ligo.caltech.edu>.  Also updated
4025                 Solaris 10 SAMFS support at Stuart's request.
4026
4027                 Added missing "break;" and another HASSTATVFS test to
4028                 the NetBSD and OpenBSD dnode.c.  Bill Behr
4029                 <bbehr@networkstoragecorp.com> reported those needs.
4030
4031                 Fixed an HP-UX 11 file descriptor "chunk" size problem,
4032                 reported by Per Allansson <per@appgate.com>.  Per helped
4033                 devise the fix and tested it.  This fix was offered as
4034                 a patch to lsof 4.76.
4035
4036                 Updated for FreeBSD 6.0-STABLE and FreeBSD
4037                 6.1-PRERELEASE.
4038
4039                 Updated scripts/sort_res.perl5 with changes supplied by
4040                 Frederick Fabian <fabian.frederick@skynet.be>, the
4041                 author of the script.
4042
4043                 Corrected +|-M man page documentation error, reported
4044                 by Roger Cornelius <rac@tenzing.org>.
4045
4046                 Improved FreeBSD user device random seed generation in
4047                 response to a problem report from Danny Braniss
4048                 <danny@cs.huji.ac.il>.
4049
4050                 Eliminated three syntax error bugs and other compiler
4051                 complaints from the PSTAT-based lsof.  H. Merijn Brand
4052                 <h.m.brand@xs4all.nl> reported the problems and tested
4053                 the fixes.
4054
4055                 Eliminated compiler complaints in the test suite.
4056
4057                 Investigated problems with the building of lsof on
4058                 PA-RISC HP-UX 11.23, based on a report from John
4059                 Orndorff <John.Orndorff@sungard.com>.  Found that
4060                 neither the HP bundled C compiler nor gcc would build
4061                 lsof, but the the HP unbundled ANSI C compiler would.
4062                 Concluded that HP bundled C compiler can't handle
4063                 <gssapi/gssapi.h>.  Devised a work-around to gcc's
4064                 omission of the rpcent structure definition of
4065                 <netdb.h> that allows it to compile lsof's print.c, but
4066                 the resulting binary doesn't run reliably.  Documented
4067                 the situation in 00FAQ.
4068
4069                 Changed reporting of unknown file types.  The number of
4070                 an unknown type is now reported as four octets.  The
4071                 change was made in response to a Linux lsof bug report
4072                 from Karel Zak <kzak@redhat.com>.
4073
4074                 Dropped the *claim* that lsof works on BSDI BSD/OS
4075                 since my last test system has been removed.  The last
4076                 tested distribution of lsof for BSDI BSD/OS was
4077                 revision 4.76.  It has been archived on
4078                 lsof.itap.purdue.edu in pub/tools/unix/lsof/OLD/src.
4079
4080                 As a result of discussing the lsof source tar's MD5
4081                 checksum with Andrew Bell <andrew.bell.ia@gmail.com>,
4082                 changed the description of a suitable MD5 tool in the
4083                 lsof distribution's documentation to name the openssl
4084                 "dgst" command.
4085
4086                 Enabled compilation on Solaris 10 1/06 with a fix sent
4087                 by Jason Fortezzo <fortezza@mechanicalism.net>.  Made
4088                 the fix available as a patch to 4.76.
4089
4090                 Adjusted to FreeBSD 5.5-PRERELEASE.
4091
4092                 Corrected a bug in the lsof library's process_file()
4093                 function to enable the locating of AIX XTI sockets by
4094                 their TCP/IP address values.  The bug was reported by
4095                 Michel Dubois <Dubois@sears.ca>.
4096
4097                 Based on a bug report from Karel Zak <kzak@redhat.com>
4098                 added command name length checking to as many dialects
4099                 as possible (Linux for Karel) for the "-c c" option.
4100
4101                 Updated for OpenBSD 3.[89].  Tested the 3.9 update on a
4102                 system provided by David Mazieres.  I have not tested
4103                 on OpenBSD 3.8, but David reports lsof 4.76 worked
4104                 there.
4105
4106                 Ended regression testing of lsof on 32 bit Solaris 8
4107                 with the ending of access to a test system.  Lsof
4108                 continues to be tested on 64 bit Solaris 8.
4109
4110 4.78            April 24, 2007
4111                 Added more information to the lsof FAQ about missing
4112                 link counts and sizes on Linux files.
4113
4114                 Simplified Linux stat() and lstat() usage.
4115
4116                 Relocated #define's that prevent OpenBSD compilation on
4117                 systems without a /proc file system.  Pieter Bowman
4118                 <bowman@math.utah.edu> reported the problem.
4119
4120                 Added code to avoid processing Linux /proc/<PID>/maps
4121                 file entries with zero device and node numbers.  Some
4122                 such entries now have names associated with them that
4123                 are not path names -- e.g., "[heap]", "[stack]" or
4124                 "[vdso]".  Scott Worley <sworley@chkno.net> reported
4125                 lsof's mishandling of such entries.
4126
4127                 Added SELinux security context support, provided by
4128                 James Antill <james.antill@redhat.com>.  I have not
4129                 tested this, but James and Karel Zak <kzak@redhat.com>
4130                 have.
4131
4132                 Added the #include of <sys/types.h> to Solaris lsof to
4133                 enabled compilation on Solaris 10 6/06.  Peter Harvey
4134                 Peter.Harvey@Sun.COM diagnosed the problem and supplied
4135                 a patch.
4136
4137                 Added better support for JFS2 on AIX 5.2 and 5.3, based
4138                 on bug reports and help from Thomas Braunbeck
4139                 <BRAUNBEC@de.ibm.com> and Tom Whitty <TWHITTY@cerner.com>.
4140
4141                 Documented that lsof supports AIX 5.3 only up through
4142                 maintenance level 1 (ML1).
4143
4144                 Enabled Solaris lsof to locate the AFS vnode operation
4145                 address for OpenAFS 1.4.1.  The fix was supplied by
4146                 Robert Jelinek <Robert.Jelinek@MorganStanley.com>.
4147
4148                 Enabled support for Solaris 10 ZFS.  If the necessary
4149                 ZFS header files aren't found, lsof offers the option
4150                 to drop ZFS support, to use internal, possibly
4151                 inaccurate structure definitions, or to supply a path
4152                 to the missing header files.  Horst Scheuermann
4153                 <Horst.Scheuermann@uni-trier.de> provided a development
4154                 system and helped test the support.
4155
4156                 Corrected a typo in the man page, reported by Eric S.
4157                 Raymond <esr@thyrsus.com>.
4158
4159                 Changed the spelling of macroes to macros in lsof
4160                 source and documentations files, based on a suggestion
4161                 from Josh Soref <timeless@gmail.com> and verification
4162                 with the OED.
4163
4164                 The following dialects are no longer supported: 32 bit
4165                 AIX 5.2, HP-UX 11, OpenStep 4.2, Solaris 2.6, Solaris
4166                 8, True Unix 64 and UnixWare 7.1.4.  Lsof may work on
4167                 them, but I no longer have test systems for them.
4168                 Support for OpenBSD ends at its version 3.9 for lack of
4169                 interest in the port.
4170
4171 4.79            April 15, 2008
4172
4173                 **************** IMPORTANT NOTE ******************
4174                 *                                                *
4175                 * Lsof support has been reduced to the following *
4176                 * dialects: AIX, FreeBSD, Linux and Solaris, and *
4177                 * only in selected versions of those dialects.   *
4178                 * The selected versions are listed in this file  *
4179                 * and in other lsof documentation.               *
4180                 *                                                *
4181                 * I have made this move because of retirement    *
4182                 * and because I no longer have many test systems *
4183                 * available to me.                               *
4184                 *                                                *
4185                 * Vic Abell                                      *
4186                 *                                                *
4187                 **************************************************
4188
4189                 Fixed a Solaris VXFS permission problem when accessing
4190                 the VXFS inode offsets.  The bug was reported by
4191                 Gregory A. Ivanov <ivga@mts.ru>.  Gregory tested the
4192                 fix.
4193
4194                 Moved an #include <string.h> later in FreeBSD dlsof.h
4195                 to enable compilation on recent FreeBSD releases.  The
4196                 change was supplied by Roy Marples <uberlord@gentoo.org>.
4197
4198                 Improved Linux /proc file stream reading speed by applying
4199                 an expanded version of a patch from Eric Dumazet
4200                 <dada1@cosmosbay.com> that allocates a page size buffer
4201                 to each stream.  Improved TCP, TCP6, UDP and UDP6 hashing
4202                 by determining the hash bucket count from the /proc/net
4203                 sockstat and sockstat6 files.  The improvement was
4204                 suggested by Eric and he provided sample code.  Eric also
4205                 tested both improvements.
4206
4207                 Modified Configure script to build lsof on FreeBSD
4208                 6.2.  Tested it on a system provided by Larry Rosenman
4209                 <ler@lerctr.org>.
4210
4211                 Fixed a Linux maps file processing bug that prevented path
4212                 names from having an embedded colon.  James Lingard
4213                 <jchl@arastra.com> reported the bug and helped with its
4214                 fix.
4215
4216                 Based on reports from Eric Dumazet and Samuel Thibault
4217                 <samuel.thibault@ens-lyon.org> added support for the
4218                 Linux 2.6.22 kernel's /proc/<PID>/fdinfo files -- i.e.,
4219                 file offset and flags.  Samuel Thibault provided a test
4220                 system.
4221
4222                 Fixed a Linux UNIX socket memory leak, reported by
4223                 Philip Shin <pshin@xceedium.com>.  Phillip supplied the
4224                 fix.
4225
4226                 With generous assistance from HP added support for an HP-UX
4227                 11.23 patch that makes TLI/XTI socket address information
4228                 available.
4229
4230                 Fixed a header file problem for FreeBSD 6.2 on the Alpha
4231                 architecture.  The problem was reported by Pekka Honkanen
4232                 <phonkane@cc.hut.fi>.  Pekka tested the fix.
4233
4234                 Based on a report and using suggested fixes from Karel Zak
4235                 <kzak@redhat.com>, made these changes to Linux lsof: corrected
4236                 a getpidcon() error message; insured that inode numbers are
4237                 handled correctly for their unsigned long long type; and
4238                 improved SELinux handling.  At the request of Alon Bar-Lev
4239                 <alonbl@gentoo.org> added the LINUX_HASSELINUX environment
4240                 variable to enable or inhibit SElinux support unconditionally.
4241
4242                 Updated Configure for FreeBSD 8.0-CURRENT and tested lsof on
4243                 AMD64 there.
4244
4245                 Added a patch provided by Oles Hnatkevych
4246                 <don_oles@able.com.ua> for FreeBSD systems where the root
4247                 file system is on a CD9660 device.
4248
4249                 Added compensation for the disappearance of FMARK and FDEFER
4250                 from the FreeBSD 8.0-CURRENT <sys/file.h>.
4251
4252                 Updated FreeBSD lsof with ZFS support.  Larry Rosenman
4253                 <ler@lerctr.org>, Erwin Lansing <erwin@FreeBSD.org>, Wesley
4254                 Shields <wxs@atarininja.org> and Dmitry Morozovsky
4255                 <marck@rinet.ru> provided test systems.
4256
4257                 Fixed a socket file identification problem reported by
4258                 Pavol Rusnak <stick@gk2.sk>.  Pavol also reported the
4259                 cause of the problem.
4260
4261                 Added the ability to format the repeat mode marker line
4262                 with strftime(3), where the dialect supports the
4263                 localtime(3) and strftime(3) C library functions.  The
4264                 addition was suggested by Mike Depot <mdepot@comcast.net>,
4265                 who also tested it.  The addition required creating a new
4266                 main lsof source module, util.c, that contains functions
4267                 whose compilation conflicts with the general header file
4268                 tree defined by lsof.h and dlsof.h.
4269
4270                 Based on reports from Andrei V. Lavreniyuk
4271                 <andy.lavr@reactor-xg.kiev.ua> and Pav Lucistnik
4272                 <pav@FreeBSD.org> updated the FreeBSD 7.0 and above
4273                 file lock handling to use new locking structures.  The
4274                 update requires a terrible hack to get a definition for
4275                 the lock owner structure from a kernel source module
4276                 into a local lsof header file.
4277
4278 4.80            May 12, 2008
4279                 Updated for a FreeBSD 7.0 and above byte level locking
4280                 change.  The problem was reported by Conrad J. Sabatier
4281                 <conrads@cox.net>, who helped test the update.  Wesley
4282                 Shields <wxs@FreeBSD.org> provided an 8.0-CURRENT test
4283                 system.
4284
4285                 Propagated the FreeBSD 7.0 and above locking changes to
4286                 FreeBSD 6.x, based on a report from Edwin Groothuis
4287                 <edwin@FreeBSD.org>.
4288
4289                 Added warnings for unsupported dialects or versions.
4290
4291                 Added Linux support for the UDPLITE protocol.  Eric
4292                 Dumazet <dada1@cosmosbay.com> supplied a patch.
4293
4294                 Added a missing quote to the Configure script's
4295                 FreeBSD stanza.
4296
4297                 Added a usage.o rule to the HP-UX PSTAT-based
4298                 Makefile.  I mistakenly deleted the rule at revision
4299                 4.79.  The missing rule was reported by Kawaljeet Kaur
4300                 <kawaljeet.malviya@gmail.com> who tested the corrected
4301                 Makefile.
4302
4303 4.81            October 21, 2008
4304                 Updated the Darwin libproc sources with changes from
4305                 Allan Nathanson <ajn@apple.com>.  Tested them on a iMac
4306                 mini, provided by Apple Inc.
4307
4308                 Changed dummy declarations in library source files to
4309                 eliminate complaints about unused variables and empty
4310                 object files.  This change may not work on dialects I
4311                 can no longer test; it has been tested on some versions
4312                 of AIX, Darwin, FreeBSD, Linux and Solaris.
4313
4314                 At the request of Hal Brooks <hal@uga.edu> added support
4315                 for Linux /proc/net/packet files.  Hal tested it.
4316
4317                 Added socket file only performance enhancements to Linux
4318                 and PSTAT-based HPUX lsof.
4319
4320                 Added htonl call around improper usage of INADDR_LOOPBACK;
4321                 report from an Apple engineer forwarded by Allan Nathanson
4322                 <ajn@apple.com>.
4323
4324                 Adjusted for FreeBSD-8.0 change in device number handling.
4325                 The adjustment should work for FreeBSD 5 and above, should
4326                 the 8.0 change be propagated downward.  The problem was
4327                 reported by Pav Lucistnik <pav@FreeBSD.org>.  An updated
4328                 test system was provided by Erwin Lansing <erwin@FreeBSD.org>.
4329
4330                 Reduced AIX support to version 5.3, since test systems with
4331                 older versions are no longer available to me.
4332
4333                 At the request of Marjo F. Mercado <mmercado@xceedium.com>
4334                 and Phil Shin <pshin@xceedium.com> applied some speed
4335                 improvements to lsof, particularly when the files of
4336                 interest are /Internet files -- i.e., selected with lsof's 
4337                 "-i" option.  Added a two new options to assist the
4338                 improvements: 1) "-c^<command>" to tell lsof to exclude the
4339                 named command(s); and 2) "-stcp|ud>:[^]state' to tell lsof
4340                 to include in its reporting or exclude ('^') from its
4341                 reporting Internet files in the named states (e.g., LISTEN,
4342                 ^CLOSE_WAIT, IDLE, etc.)  For the most part these changes
4343                 apply only to AIX, Darwin, FreeBSD, PSTAT-based HP-UX, Linux
4344                 and Solaris, since those are the only places I could test
4345                 them.  They are controlled by the HASTCPUDPSTATE definition
4346                 in each dialect's machine.h header file.  Marjo and Phil
4347                 provided HP-UX 11.23 and 11.31 test systems.
4348
4349                 Fixed a stat(2) problem on HP-UX 11.31 while testing the
4350                 speed improvements.
4351
4352                 Adjusted for kernel header file changes in FreeBSD
4353                 8.0-CURRENT.  Larry Rosenman <ler@lerctr.org> provided
4354                 a test system.
4355
4356                 Added a warning for Solaris systems where VxFS node info
4357                 can't be obtained from the VxFS utility library.  The
4358                 warning was requested by Tom Matthews <Tom.MATTHEWS@rbs.com>.
4359
4360                 Corrected mishandling of file system path name arguments
4361                 that have trailing slashes, except, of course, the root
4362                 file system, "/".  Allan Nathanson <ajn@apple.com> reported
4363                 the bug.
4364
4365 4.82            March 25, 2009
4366                 Corrected an over-zealous exclusion test that caused
4367                 lsof to report nothing when it was given no arguments
4368                 and built with HASSECURITY and HASNOSOCKSECURITY enabled.
4369                 Joshua Kinard <kumba@gentoo.org> reported the bug and
4370                 supplied information for reproducing it.
4371
4372                 Based on a report from Dan Trinkle <trinkle@cs.purdue.edu>
4373                 corrected use of <sys/utsname.h> for 32 bit Solaris 10
4374                 and above compilations.  Simultaneously eliminated a
4375                 casting complaint in arg.c and updated Configure to use
4376                 the appropriate 64 bit compilation option (-xarch=v9 or
4377                 -m64) with the Solaris Sun C compiler.
4378
4379                 Updated for FreeBSD 7.1-PRERELEASE with information
4380                 supplied by Larry Rosenman <ler@lerctr.org>.
4381
4382                 Updated the Darwin libproc sources with changes from
4383                 Allan Nathanson <ajn@apple.com>.  Tested them on a iMac
4384                 mini, provided by Apple Inc.  Allan also provided man
4385                 page corrections.
4386
4387                 Updated the FreeBSD Makefile to use the ${MAKE} variable
4388                 for ZFS dnode2.c module compilation, based on a suggestion
4389                 from Alexis Ballier <aballier@gentoo.org>.
4390
4391                 Improved the Solaris VxFS library location test, based on a
4392                 suggestion from Jason Fortezzo <fortezza@mechanicalism.net>.
4393                 Jason tested the change.
4394
4395                 Updated Solaris 10 ZFS support for ZFS version 4 and ZFS
4396                 pool version 10, using a test system kindly provided by
4397                 Vladislav Nespor <vladislav.nespor@id.ethz.ch>.  Renata
4398                 Maria Dart <renata@slac.stanford.edu> tested on ZFS
4399                 version 4, verifying that the update works there, too.
4400                 (ZFS pool version 10 is apparently the ZFS version shipped
4401                 with the 10/08 update to Solaris.  The original ZFS
4402                 support targeted ZFS version 3.)
4403
4404                 I still consider ZFS support in Solaris lsof a hack,
4405                 because it depends on a znode structure definition that
4406                 I developed using dbx.  Sun is remiss in not distributing
4407                 the ZFS header files used to build the distributed kernel.
4408
4409                 Because of the znode structure definition hack, I can't
4410                 guarantee that lsof ZFS support will work for any other
4411                 versions of ZFS.
4412
4413                 Solaris 10: adjusted to a change in the way devices are
4414                 stored in the kernel; fixed a problem in zone handling;
4415                 and added rudimentary sharedfs support.  Carson Gaspar
4416                 <carson@taltos.org> reported the device number problem,
4417                 provided a test system, and tested the changes.  Peter
4418                 Vines <psv2b@eservices.virginia.edu> reported the zone
4419                 handling problem and tested the fix.
4420
4421                 Adapted to FreeBSD 8.0-CURRENT changes in device number
4422                 computation.  Problem was reported by Erwin Lansing
4423                 <erwin@FreeBSD.org>.  Larry Rosenman <ler@lerctr.org>
4424                 provided a test system.
4425
4426                 Corrected Solaris Configure test for appropriate VxFS
4427                 library when using gcc to compile lsof.
4428
4429                 Updated for loss of KAME IPv6 FreeBSD accommodations.
4430
4431                 Adapted to FreeBSD 7.2.  Made Configure script recognized
4432                 FreeBSD 6.3.
4433
4434 4.83            January 18, 2010
4435                 Converted Solaris 10 and above ZFS support to use the CTF
4436                 debugger library, libctf.  Code was supplied by Robert
4437                 Byrnes <Robert.Byrnes@deshaw.com>.
4438
4439                 Corrected a typo in the testing of the LINUX_HASSELINUX
4440                 environment variable in the Configure script.  The error
4441                 was reported by Mike Frysinger <vapier@gentoo.org>.
4442                 At Mike's request made Configure script accept LSOF_RANLIB
4443                 (ranlib command), LSOF_CFGF (additional configuration flags)
4444                 and LSOF_CFGL (additional library specifications) from the
4445                 environment.
4446
4447                 Enabled complilation of Solaris 10 lsof after a recent Sun
4448                 patch which changed the PC file system's structure. Peter
4449                 Vernam <pvernam@draper.com> reported the problem and helped
4450                 with the fix.
4451
4452                 Made the sort of configuration CFLAGS in the CkTestDB
4453                 script impervious to locale settings.
4454
4455                 Ported to Solaris 11, using a test system kindly provided
4456                 by David Day <dday76@gmail.com>.
4457
4458                 Adjusted to the disappearance of <nfs/rpcv2.h> in FreeBSD
4459                 8.0-BETA1.
4460
4461                 Changed Solaris node type lookup to a hashed method and
4462                 added some ability for it to handle duplicate vnodeop names
4463                 in /dev/ksyms.
4464
4465                 Updated for FreeBSD 9.0-CURRENT.  Andrzej Tobola
4466                 <ato@iem.pw.edu.pl> provided a test system.  Extends the
4467                 fix to FreeBSD 6.0 and above via a Configure test and a
4468                 compile-time definition.  The need for the extension was
4469                 reported by Erik Trulsson <ertr1013@student.uu.se>>
4470
4471                 Made corrections to FAQ typographical errors, suggested
4472                 by Josh Soref <timeless@gmail.com>.
4473                 
4474                 Added __UCLIBC__ test to Linux dlsof.h so lsof would compile
4475                 on an Intel ARM XScale processor.  The addition was provided
4476                 by Doug Kehn <rdkehn@yahoo.com>.
4477
4478                 Added test for <utmpx.h> to FreeBSD configuration.  Improved
4479                 its use in lsof.h.  The changes were supplied by Martin Wilke
4480                 <miwi@FreeBSD.org>.
4481
4482 4.84            July 29, 2010
4483                 Fixed a man page nroff command error with a correction
4484                 supplied by Josh Soref <timeless@gmail.com>.
4485
4486                 Made Configure script recognize FreeBSD 7.3.  Larry Rosenman
4487                 <ler@lerctr.org> provided a test system.
4488
4489                 Improved task support, initially for Linux only, with help
4490                 provided by Jerome Marchand <jmarchan@redhat.com> and
4491                 Miklos Szeredi <mszeredi@suse.cz>.  The support includes a
4492                 new compile-time definition, HASTASKS, and a new run time
4493                 option, "-K" to select task reporting.
4494
4495                 While adding help output support for "-K", reorganized the
4496                 printing of help columns to make it much easier to add a new
4497                 option description.
4498
4499                 Updated the Solaris PC file system structure patch in
4500                 revision 4.83 so it will compile with gcc.
4501
4502                 Disabled the Solaris lgrp_root work-around in the Solaris
4503                 machine.h so it won't cause compilation problems on Solaris
4504                 11.  It no longer causes compilation problems on my Solaris
4505                 9 and 10 test systems, but some older Solaris 9 and 10
4506                 versions may still need it, so the work-around was left in
4507                 the Sun machine.h and a FAQ entry was created about it.
4508
4509                 Updated for Solaris 11 b134, using a test system kindly
4510                 provided by Carson Gaspar <carson@taltos.org>.  Made
4511                 provisions for the next ZFS version.  Added info about
4512                 the failure of the LTnlink test on ZFS file systems.
4513
4514                 Corrected typo in Configure script, reported by Dmitry
4515                 Berezin <dmitryb@oit.rutgers.edu>.
4516
4517 4.85            September 27, 2011
4518                 John Dzubera <Zube@CS.ColoState.EDU> kindly provided a patched
4519                 Solaris 9 test system with the lgrp_root conflict and I was
4520                 able to devise an automatic work-around for the conflict.  The
4521                 special note in .../dialects/sun/machine.h was removed and
4522                 the 17.28.1 FAQ entry was modified to reflect the update.
4523
4524                 Added a Solaris 11 work-around for a typedef problem with
4525                 <sys/mutex.h>.  Carson Gaspar <carson@taltos.org> reported
4526                 the problem and supplied the work-around.
4527
4528                 Added support for FreeBSD 7.4 and 8.2; tested on systems
4529                 provided by Larry Rosenman <ler@lerctr.org>.
4530
4531                 Added support for 32 bit Solaris 11 lsof with mods supplied
4532                 by Jan Wortelboer <J.H.P.Wortelboer@uva.nl>.
4533
4534                 Added Solaris 11 support for using an alternate genunix
4535                 location.  Bill Goodridge <bill@its.brooklyn.cuny.edu>
4536                 reported the alternate location.
4537
4538                 Added further Linux cross configuration support to lsof's
4539                 Configure script.  The additional support was supplied by
4540                 Grant Erickson <erick205@umn.edu>.  See the descriptions of
4541                 the LINUX_* environmen  variables in 00XCONFIG for more
4542                 information.  Tested lsof on Linux kernel 2.6.32 and picked
4543                 some lint that surfaced during the test.
4544
4545                 Added fixes and changes for Apple Mac OS X 10.6, provided by
4546                 Allan Nathanson <ajn@apple.com>.  Allan also provided a test
4547                 system.
4548
4549                 Tested on FreeBSD 6.4 i386, using a test system provided by
4550                 Terry Kennedy <TERRY@tmk.com>.  Updated for recent FreeBSD ZFS
4551                 changes on an 8.2 amd64 test system also provided by Terry.
4552
4553                 Changed documentation to indicate FreeBSD 7.x is no longer
4554                 supported, since I no longer have a test system.
4555
4556                 Made some changes to the lsof man page, suggested by Navid
4557                 <evi1m4chine@googlemail.com>.
4558
4559                 Added compensation for Solaris 10 systems that have patch
4560                 144488-10.  The patch requires that the new header file
4561                 <sys/socket_proto.h> be included while _KERNEL is defined.
4562                 Brett Bartick <Brett.bartick@nomura.com> reported the problem
4563                 first, followed by Stuart Anderson <anderson@ligo.caltech.edu>.
4564                 Michael Hocke <michael.hocke@nyu.edu> suggested a work-around
4565                 which I refined to limit it to the specific Solaris 10 instance
4566                 and then tested on a system provided by Charles Stephens
4567                 <cfs@cowlabs.com>
4568
4569                 Added the +|-e option for Linux.  It exempts file systems
4570                 named by path from function calls that might block in the
4571                 kernel -- i.e., stat(2) and lstat(2), and when the +e form
4572                 is used, readlink (2).  The new packager of lsof for the
4573                 Linux Fedora and RHEL distributions, Peter Schiffer
4574                 <pschiffe@redhat.com>, asked for the feature so it could
4575                 be used with Clearcase file systems, whose implementation
4576                 can block stat(2) calls.  I consider this feature very risky
4577                 and easy to misuse -- e.g., specifying the file system as
4578                 '/' would exempt all file systems.  I don't intend to
4579                 propagate this option to any other UNIX dialect that lsof
4580                 currently supports.
4581
4582                 Made FreeBSD 9 adjustment.
4583
4584                 Fixed a Linux bug that prevented the display of paths for
4585                 abstact UNIX sockets.  Masatake Yamato <yamato@redhat.com>
4586                 reported the bug and supplied a patch.
4587
4588                 Added compensation for the removal of RPC header files from
4589                 GlibC 2.14 for Linux.  Marek Behun <kabel@blackhole.sk>
4590                 reported the problem and supplied a patch.
4591
4592                 Added support for Linux Netlink protocol.  Masatake Yamato
4593                 requested the support and supplied a patch.  Peter Schiffer
4594                 <pschiffe@redhat.com> provided a test system.
4595
4596                 Corrected Linux UDP6-lite path.  The error was reported by
4597                 Masatake Yamato and he also supplied a patch.
4598
4599 4.86            April 10, 2012
4600                 Lsof for AIX is no longer supported on any versions of that
4601                 operating system.
4602
4603                 Added information about the clang compiler for FreeBSD to the
4604                 FAQ.
4605
4606                 Corrected an arg.c bug in the accumulation of +|-e option
4607                 values, reported by Peter Schiffer <pschiffe@redhat.com>.
4608                 This correction was supplied as a patch to revision 4.85.
4609
4610                 Enabled FreeBSD 10 support and tested it there on a system
4611                 provided by Larry Rosenman <ler@lerctr.org>.
4612
4613                 Updated for latest Solaris 11 with patches supplied by
4614                 Carson Gaspar <carson@taltos.org>.  Carson supplied a test
4615                 system.
4616
4617                 Adjusted Linux file system search method to compensate for
4618                 NFS mounts that have duplicate device numbers.  The problem
4619                 was reported by Peter Schiffer <pschiffe@redhat.com>, who
4620                 provided a test system.
4621
4622                 At the request of Peter Schiffer <pschiffe@redhat.com>, added
4623                 support for Linux SCTP socket files.  Peter provided a test
4624                 system.  Applied a warning patch supplied by Peter.
4625
4626                 Added support for Mac OS X 10.7 (Lion), provided by Allan
4627                 Nathanson <ajn@apple.com>.  Allan also supplied a test
4628                 system.
4629
4630                 Enabled FreeBSD 8.3 support and tested it there on a system
4631                 provided by Larry Rosenman <ler@lerctr.org>.
4632
4633                 Corrected the FAQ information on ZFS with Solaris 10 after
4634                 Steven Blackmon <stblackm@cisco.com> and Prasad Jampala
4635                 <jampalp@cisco.com> pointed out that it was incorrect --
4636                 i.e., outdated by the libctf changes at revision 4.83.
4637
4638                 Added code to handle a Linux NFS-mounted root.  Jia He
4639                 <hejianet@linux.vnet.ibm.com> reported the need for this.
4640
4641 4.87            January 2, 2013
4642                 Added an entry to 00FAQ about lsof behavior when the
4643                 HASSECURITY and HASNOSOCKSECURITY options are defined.
4644                 Carson Gaspar <carson@taltos.org> pointed out the need
4645                 for this clarification.
4646
4647                 Added a work-around for a missing definition of mach_port_t
4648                 in Darwin 9 (Mac OS/X 10.5.8).  The work-around was supplied
4649                 by Jim Reid <jim@rfc1035.com>.
4650
4651                 Added support for Linux anon_inodefs, provided by Masatake
4652                 YAMATO <yamato@redhat.com>.
4653
4654                 Documented a Solaris 9 and 10 portmap reporting problem
4655                 (+M) in 00FAQ.  The problem was reported by Clint
4656                 Roberts <Clint.Roberts@ttius.com>.  I have no solution
4657                 to the problem, but discuss a possible work-around in
4658                 the answer to this 00FAQ question: "Why doesn't lsof
4659                 report portmap registrations for some Solaris versions?"
4660
4661                 Added FreeBSD support for the oldnfs and newnfs file system
4662                 types.  Daniel Braniss <danny@cs.huji.ac.il> reported the
4663                 need for the addition.
4664
4665                 Added ICMP socket support for Linux with code provided by
4666                 Masatake YAMATO <yamato@redhat.com>.
4667
4668                 Corrected the reporting of process group ID for libproc
4669                 versions of Mac OS X with a patch from Jeff Trawick
4670                 <trawick@gmail.com>.  The patch has not been applied to
4671                 Darwin kmem versions, because of little call for them
4672                 and inadequate test system access.  The patch has been
4673                 tested on Mac OS X 10.8 (Mountain Lion), courtesy of a
4674                 test system provided by Allan Nathanson <ajn@apple.com>.
4675
4676                 Added thread support to those FreeBSD versions that have
4677                 ki_numthreads in their kinfo_proc structure.  This also
4678                 activates the -K option for those FreeBSD versions.  Jeff
4679                 Trawick reported problems with FreeBSD lsof when threads
4680                 are present and this addition solves those problems.
4681
4682                 Made changes to 00FAQ and the distribution, suggested by
4683                 Warren Young <warren@etr-usa.com>.  The 00FAQ changes
4684                 center on sections that discuss the -s option.  The changes
4685                 to the distribution include a ChangeLog file that is either
4686                 a pointer to or a copy of 00DIST, the distribution notes.
4687
4688                 Added support to FreeBSD for using the clang compiler.
4689
4690                 Added Linux support for using the getxattr() call to obtain
4691                 socket protocol identification when it is can't be obtained
4692                 from the /proc/net files that lsof examines.  Masatake YAMATO
4693                 <yamato@redhat.com> developed the kernel patch to getxattr()
4694                 and supplied the lsof patch.
4695
4696 4.88            October 13, 2014
4697                 Reduced to 50 the number of open file descriptors lsof
4698                 attempts to close while trying to protect itself from a
4699                 file descriptor exec() attack.  This limits the overhead
4700                 lsof incurs on systems that have large file descriptor
4701                 limits, yet provides sufficient open descriptors for the
4702                 library functions lsof calls.
4703
4704                 Updated for changes in FreeBSD 10 with advice from Eygene
4705                 Ryabinkin <rea@freebsd.org>.  Taught Configure to recognize
4706                 FreeBSD 8.4.
4707
4708                 Herein am noting that lsof for Solaris 10 or 11 is no longer
4709                 supported.  I no longer have test systems.  Some support is
4710                 still available from Casper Dik <Casper.Dik@oracle.com> and a
4711                 Solaris 11 patch he provided is included in this revision.
4712
4713                 Initialized local variables in the Linux process_id() function.
4714                 Jia He <jiakernel@gmail.com> reported the problem.
4715
4716                 Added support for FreeBSD 11.
4717
4718                 Updated FreeBSD ZFS Configure stanza to supply a dummy
4719                 opt_kdtrace.h when needed.
4720
4721                 Added tmpfs file system support for FreeBSD.
4722
4723                 Since a test system is no longer available, dropped the
4724                 claim of FreeBSD 4.9 support.
4725
4726                 Added the +|-E options for Linux.  -E displays endpoint info;
4727                 +E displays endpoint info and endpopint files.  Masatake YAMATO
4728                 <yamato@redhat.com> requested this support and suggested code
4729                 to implement it.
4730
4731                 Fixed a Linux bug handling processes whose command includes a
4732                 non-printing character, particularly a NEWLINE character, and
4733                 clarified printing of single '\\' characters in command and
4734                 file names.  Stephane Chazelas <stephane.chazelas@gmail.com>
4735                 reported the problem. 
4736
4737                 Added support for Linux RDMA and CRYPTO protocal names and UNIX
4738                 socket type with code from Masatake YAMATO <yamato@redhat.com>.
4739
4740                 Fixed field output to insure that the field descriptor field is
4741                 always selected, since it identifies the file set.  The bug was
4742                 reported by Gary Plewa <gary.m.plewa-1@lowes.com>.
4743
4744 4.89            July 7, 2015
4745                 Applied correction from Casper Dik <Casper.Dik@oracle.com> to
4746                 his patch for Solaris 11 that I applied incorrectly in revision
4747                 4.88.
4748
4749                 Updated for latest version of FreeBSD 11.0-CURRENT.
4750
4751                 Compensated for a missing FreeBSD 10.0 typedef of bool on the
4752                 i386 architecture.  Allen Hewes <rallenh@hotmail.com> provided
4753                 a test system. Andrey Chernov <ache@freebsd.org> provided
4754                 useful advice.
4755
4756                 Improved tests/Add2TestDB script with a patch from Peter
4757                 Schiffer <pschiffe@redhat.com>.  Added patches from Peter to
4758                 eliminate Linux gcc warnings.  Updated Lsof.8 with improvements
4759                 supplied by Bjarni Ingi Gislason <bjarniig@rhi.hi.is>.
4760
4761                 Changed FreeBSD global CFLAGS extraction per Terry Kennedy
4762                 <TERRY@tmk.com>.  Also made sure -DNEEDS_BOOL_TYPEDEF is
4763                 #define'd when the resulting CFLAGS doesn't contain it.  Terry
4764                 reported that need.
4765
4766                 Improved Linux test for tcp.h in response to a report from
4767                 Cato Auestad <cato@cato.ninja>.  Cato did the testing.
4768
4769                 Fixed Linux UNIX socket search by name bug reported by
4770                 Stephane Chazelas <stephane.chazelas@gmail.com>.
4771
4772                 Added Linux display of UNIX socket endpoint information with
4773                 code provided by Masatake YAMATO <yamato@redhat.com>.  Peter
4774                 Schiffer <pschiffe@redhat.com> provided a test system.
4775
4776                 Insured that type definitions from <vm/vm.h> were again made
4777                 visible to lsof on FreeBSD 11 after a system header file change
4778                 hid them.
4779
4780
4781 Vic Abell <abe@purdue.edu>
4782 July 7, 2015