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