svn commit: r183780 - in user/edwin/top/top-3.8b1: contrib/top usr.bin/top

Edwin Groothuis edwin at FreeBSD.org
Sun Oct 12 09:12:06 UTC 2008


Author: edwin
Date: Sun Oct 12 09:12:05 2008
New Revision: 183780
URL: http://svn.freebsd.org/changeset/base/183780

Log:
  All collected changes to get top 3.8b1 in the state as announced on
  -stable and -current as version A:
  
  http://www.mavetju.org/mail/view_thread.php?list=freebsd-current&id=2819930&thread=yes

Added:
  user/edwin/top/top-3.8b1/contrib/top/LICENSE
  user/edwin/top/top-3.8b1/contrib/top/Makefile.in
  user/edwin/top/top-3.8b1/contrib/top/ap_snprintf.c
  user/edwin/top/top-3.8b1/contrib/top/color.c
  user/edwin/top/top-3.8b1/contrib/top/color.h
  user/edwin/top/top-3.8b1/contrib/top/commands.h
  user/edwin/top/top-3.8b1/contrib/top/config.amd64.make
  user/edwin/top/top-3.8b1/contrib/top/config.amd64.makeinstall
  user/edwin/top/top-3.8b1/contrib/top/config.default.makeinstall
  user/edwin/top/top-3.8b1/contrib/top/config.guess   (contents, props changed)
  user/edwin/top/top-3.8b1/contrib/top/config.h.in
  user/edwin/top/top-3.8b1/contrib/top/config.sparcv9.make
  user/edwin/top/top-3.8b1/contrib/top/config.sparcv9.makeinstall
  user/edwin/top/top-3.8b1/contrib/top/config.sub   (contents, props changed)
  user/edwin/top/top-3.8b1/contrib/top/configure   (contents, props changed)
  user/edwin/top/top-3.8b1/contrib/top/configure.ac
  user/edwin/top/top-3.8b1/contrib/top/globalstate.h
  user/edwin/top/top-3.8b1/contrib/top/hash.c
  user/edwin/top/top-3.8b1/contrib/top/hash.h
  user/edwin/top/top-3.8b1/contrib/top/hash.m4c   (contents, props changed)
  user/edwin/top/top-3.8b1/contrib/top/hash.m4h   (contents, props changed)
  user/edwin/top/top-3.8b1/contrib/top/install-sh   (contents, props changed)
  user/edwin/top/top-3.8b1/contrib/top/message.h
  user/edwin/top/top-3.8b1/contrib/top/top.1.in
  user/edwin/top/top-3.8b1/contrib/top/username.h
  user/edwin/top/top-3.8b1/contrib/top/version.h
  user/edwin/top/top-3.8b1/usr.bin/top/config.h.in
  user/edwin/top/top-3.8b1/usr.bin/top/machine.man
Deleted:
  user/edwin/top/top-3.8b1/contrib/top/ADVERTISEMENT
  user/edwin/top/top-3.8b1/contrib/top/Configure
  user/edwin/top/top-3.8b1/contrib/top/DISCLAIMER
  user/edwin/top/top-3.8b1/contrib/top/Make.desc.X
  user/edwin/top/top-3.8b1/contrib/top/Makefile.X
  user/edwin/top/top-3.8b1/contrib/top/getans
  user/edwin/top/top-3.8b1/contrib/top/install
  user/edwin/top/top-3.8b1/contrib/top/m-template
  user/edwin/top/top-3.8b1/contrib/top/metatop
  user/edwin/top/top-3.8b1/contrib/top/patchlevel.h
  user/edwin/top/top-3.8b1/contrib/top/prime.c
  user/edwin/top/top-3.8b1/contrib/top/top.X
  user/edwin/top/top-3.8b1/contrib/top/top.local.H
  user/edwin/top/top-3.8b1/usr.bin/top/top.local.1
Modified:
  user/edwin/top/top-3.8b1/contrib/top/Changes
  user/edwin/top/top-3.8b1/contrib/top/FAQ
  user/edwin/top/top-3.8b1/contrib/top/INSTALL
  user/edwin/top/top-3.8b1/contrib/top/Porting
  user/edwin/top/top-3.8b1/contrib/top/README
  user/edwin/top/top-3.8b1/contrib/top/Y2K
  user/edwin/top/top-3.8b1/contrib/top/commands.c
  user/edwin/top/top-3.8b1/contrib/top/display.c
  user/edwin/top/top-3.8b1/contrib/top/display.h
  user/edwin/top/top-3.8b1/contrib/top/getopt.c
  user/edwin/top/top-3.8b1/contrib/top/layout.h
  user/edwin/top/top-3.8b1/contrib/top/loadavg.h
  user/edwin/top/top-3.8b1/contrib/top/machine.h
  user/edwin/top/top-3.8b1/contrib/top/os.h
  user/edwin/top/top-3.8b1/contrib/top/screen.c
  user/edwin/top/top-3.8b1/contrib/top/screen.h
  user/edwin/top/top-3.8b1/contrib/top/sigconv.awk
  user/edwin/top/top-3.8b1/contrib/top/top.c
  user/edwin/top/top-3.8b1/contrib/top/top.h
  user/edwin/top/top-3.8b1/contrib/top/username.c
  user/edwin/top/top-3.8b1/contrib/top/utils.c
  user/edwin/top/top-3.8b1/contrib/top/utils.h
  user/edwin/top/top-3.8b1/contrib/top/version.c
  user/edwin/top/top-3.8b1/usr.bin/top/Makefile
  user/edwin/top/top-3.8b1/usr.bin/top/machine.c

Modified: user/edwin/top/top-3.8b1/contrib/top/Changes
==============================================================================
--- user/edwin/top/top-3.8b1/contrib/top/Changes	Sun Oct 12 08:40:57 2008	(r183779)
+++ user/edwin/top/top-3.8b1/contrib/top/Changes	Sun Oct 12 09:12:05 2008	(r183780)
@@ -1,3 +1,320 @@
+Tue May  6 2008 - wnl (3.8beta1)
+	Main code: fixed bugs in screen_cleareol and in display code. Fixed
+	bug in i_swap when all data is 0.  Added ^W patch (from thaquis).
+	Fixed bug in xdprintf.  Added command line options for the "t" and
+	"m" commands.
+	SunOS 5 changes:  Support for showing individual threads.  Redid
+	allocation of prpsinfo structures.  Added a pidthr hash that uses
+	both pid and thread id for a key. Changed format_process_header
+	and format_next_process to use a table-driven method for generating
+	the columns.  Status files from /proc (psinfo and lpsinfo) are now
+	cached to avoid repeatedly reopening them.  Column showing number of
+	LWPs is now called "NLWP" and column showing lwpid is "LWP".
+	FreeBSD changes: Runtime check to ensure binary is running on
+	the same machine type it was compiled for.  Lots of cleanup and
+	changed nearly everything to use sysctl rather than kvm, and
+	inability to open kvm is no longer fatal. Improved thread reporting:
+	disabled for 7.x and lower.  Added lwpid hash for proper tracking
+	of threads.  Changed format_process_header and format_next_process
+	to use a table-driven method for generating the columns.
+	Dec Alpha: configure uses compile-time options to properly trap
+	and handle exceptions from the Alpha FPU (from Brian Maly).
+
+Tue Feb 26 2008 - wnl (3.7)
+	Prepare for version 3.7 release.
+
+Fri Feb  1 2008 - wnl (3.7beta4)
+	Using the $ notation in printf formats for freebsd apparently was
+	causing problems on 64-bit systems. All such usage has been
+	removed and the process line is formatted piecemeal.
+
+Thu Dec 27 2007 - wnl (3.7beta3)
+	Improved function comments in display.c for message_error functions.
+	Changed some of the error messages in top.c to be more succint.
+
+Fri Dec  7 2007 - wnl (3.7beta3)
+	Changes to freebsd port: moved some functions up front to
+	eliminate forward references. Use sysctl to get all vm stats
+	information, as some of this isn't updated in the struct
+	vmmeter under FreeBSD 7.0.  Added routines to support large-scale
+	sysctl access.
+
+Wed Nov 28 2007 - wnl (3.7beta3)
+	Changes to documentation: FAQ, README, man page.
+
+Tue Nov 27 2007 - wnl (3.7beta3)
+	For freebsd, added page faults, pageins, pageouts, and pages
+	freed to the kernel display line.  These numbers reflect the
+	values presented in vmstat.  For sunos5, added page faults,
+	pageins and pageouts to the kernel display line.
+
+Fri Nov  2 2007 - wnl (3.7beta3)
+	Added copyright notices to the top of every source and include file.
+	Added copyright information to the man page.
+	Removed a few outdated things from the manifest.
+	Minor changes to sigconv.awk. 
+
+Sat Oct 27 2007 - wnl (3.7beta3)
+	Added check for sys_signame at configure time and if it is
+	present then it is used in commands.c to translate signal names
+	in to numbers.
+	Added alternate snprintf and vsnprintf functions from apache (in
+	ap_snprintf.c).  Added configure magic to define and compile them in
+	where needed.  Added check to configure for variadic macros.
+	Preprocessor defintion of dprintf (in utils.h) now depends on
+	support for variadic macros.  Cleaned up m_linux code.
+
+Wed Oct  3 2007 - wnl (3.7beta3)
+	Lots of changes, thanks to Mark Wong.  Most changes were to
+	clean the code up so that it would compile cleanly with -Wall
+	(all warnings).  Changed function names in screen.c so that
+	they all start with "screen_".  Isolated all interaction with
+	termcap to screen.c by adding a real function for cursor
+	addressing (in the past it was just a macro).  Only screen.c
+	now needs to worry about defining templates for the termcap
+	functions.  Added configure and preprocessor magic to ensure
+	that all the termcap functions used in the code are defined
+	with templates.  Changed names of some other functions and
+	global variables to avoid name conflicts with functions in
+	curses and other well established libraries.  Changed dprintf
+	macro to use variadic arguments so that the preprocessor can
+	gobble up the entire call when compiling without debugging
+	(this will have to be made more portable). All include files
+	are surrounded by #ifndef statements to accomodate multiple
+	inclusions.  Platform module is now compiled with
+	-fno-strict-aliasing as some of the modules do type punning
+	that can confuse the optimizer.
+
+Wed Sep 26 2007 - wnl (3.7beta3)
+	For freebsd, priority is no longer normalized by PZERO.  This
+	contradicts the behavior used by ps when it displays priority.
+	But normalizing by PZERO has become a bit of an anachronism
+	and it actually obscures the meaning of the priority without
+	adding any real value.
+
+Wed Sep 19 2007 - wnl (3.7beta3)
+	Many changes to improve the display of threads.  Changed
+	process summary line to use the word "threads" when showing
+	individual threads.  Added the system command to toggle the
+	display of system processes.  Fixed bug in hash.c remove_pos.
+	For freebsd: count threads correctly when they are being
+	displayed, nice column is more closely in line with ps
+	(nothing fancy for real time processes), add two more process
+	states that didn't exist in older releases of freebsd (wait
+	and lock).
+	For linux: Threads done right.  Now track individual threads
+	of multi-threaded processes separately so that we always know
+	their %cpu.  Switch to format_process_header so that we can
+	change the column headings and remove the THR column when
+	displaying individual threads.  Switched process (and thread)
+	tracking over to use generic hash table functions included
+	with the new version of top.  Process states and total now
+	include threads when they are being shown. Added "SHR" column
+	to show the amount of shared memory per process. Improved
+	calculation of elapsed time and percent cpu to avoid
+	overflows. Remove weighted cpu calculations entirely as it is
+	an anachronism.
+	For Solaris: Moved check for libelf to accomodate older systems.
+	
+Sun Sep  9 2007 - wnl (3.7beta2)
+	Documentation changes.  Fixes to sunos5 port.  Added display of
+	thread count and selection by command name to linux port.  Removed
+	the use of inline functions from hash.c as that doesn't appear to
+	be very portable.
+
+Wed Sep  5 2007 - wnl (3.7beta1)
+	Fixed freebsd and linux configuration bugs.  Added configuration
+	options for tweaking program defaults.  Rewrote top level code
+	(top.c) from scratch, including command handling so that adding
+	new commands is much easier.  Changed message-line handling to
+	ensure that the message is displayed for at least 5 seconds
+	regardless of the update frequency.  Added a "miniupdate" that
+	occurs one second after the initial screen on systems that don't
+	already delay the first screen.  The mini-update shows cpu state
+	percentages.  Added ability to select output by command name on
+	some systems.  Fixed color toggling via the "C" command.  Added
+	long options via getopt_long to complement the existing single
+	character options.  Added the freebsd "m" command to chose
+	alternate display modes.  On freebsd this gives a process i/o
+	display.  Added the freebsd "H" command to select the display of
+	individual threads.  Added "-a" option ("all") to set number of
+	displays and number of processes to infinity (equivalent to
+	"-d all all").  Added dual architecture compilation for Solaris
+	to generate both a 32-bit and a 64-bit binary.  This is on by
+	default when compiling on a 64-bit system and can be explicitly
+	set via "configure --enable-dualarch".  Added uniform hashing
+	functions that use bucket hash for uint, pid, and string.  Changed
+	username.c and the sunos and freebsd modules to use these functions.
+	Added the "kernel" information line to the display to show
+	statistics on what the kernel is doing (context switches, forks, 
+	traps, etc.).  This requires explicit support by the platform
+	module, currently only freebsd, linux, and sunos.
+
+Wed Apr 18 2007 - wnl (3.6.1)
+	Fixed a few bugs in sigconv.awk that were causing incorrect
+	results on FreeBSD.  Changed configure.ac to fix a few linux
+	problems: signal include file and /proc/1/stat.
+
+Fri Apr 13 2007 - wnl (3.6.1)
+	Removed the use of VPATH for compiling the system module and used
+	an explicit dependency in the Makefile instead.  VPATH is now set
+	to just srcdir to ensure that top will compile correctly when
+	configured from a different directory.  On systems without VPATH
+	support, top will still configure and compile, but only
+	from within the source directory.  This fixes bug 1699526.
+
+Fri Feb  2 2007 - wnl (3.6.1)
+	Revised the way that configure figures out owner, group, and mode.
+	For systems that don't use the kernel, it tries to match install
+	settings to allow access to stuff in /proc.  More importantly, if
+	mode is 755 then neither owner nor group are set.  This fixes bug
+	1631136.  Added patch from haanjdj at xs4all.nl to fix an occasional
+	core dump in m_decosf1.c.  This checks return code from task_threads.
+	Made sure all get_system_info functions are declared void.  Fixed
+	string termination bug.  Cleaned up documetation for sunos5.
+
+Tue Aug  8 2006 - wnl (3.6.1)
+	For Solaris, changed the tag "swap" to "total swap" to clarify
+	what is beign displayed.  Note that the calculations are still the
+	same: the display is just showing total rather than total - free.
+
+Thu Apr 27 2006 - wnl (3.6)
+	Added patches for linux-style sort shortcuts and for Unixware
+	support in configure (patch 1474427).  Fixed sunos5 to do slow start
+	and to ensure cpucount is set (patch 1477386).  Added pagination
+	routines to display.c and modified show_help to use it, since the
+	help screen is now longer than 24 lines.  Applied patch for unixware
+	support that adds check for mas library (patch #1474423).  Solaris
+	cpu percent now reflects a percentage of the entire server, rather
+	than a single cpu (bug 1478138).
+
+Mon Mar 27 2006 - wnl (3.6)
+	The production release of version 3.6.  Fixed a minor scaling
+	bug in the decosf1 module.  Support for MacOS X is officially
+	withdrawn although the macosx module is still part of the
+	distribution.  Hopefully this is a temporary situation.
+	Documentation updated.
+
+
+Wed Feb 15 2006 - wnl (3.6beta5)
+	Minor changes to eliminate warnings from the Sun Studio compiler.
+	These were mostly sloppy argument declarations.  I also added
+	message.h to provide an interface file for just the message
+	related functions of display.c.
+
+Mon Dec 26 2005 - wnl (3.6beta4)
+	Added new netbsd module, courtesy of Simon Burge.
+	Fixed a few bugs in SVR4 module and added its use to
+	configure.ac, thanks to Sanchet Dighe.  Also ensured that the
+	novpath Makefile was in the distribution.
+	Fixed portability problem in display.c
+
+
+Mon Oct 24 2005 - wnl (3.6beta3)
+	Set up a color tagging mechanism in color.c to allow for the
+	dynamic creation of tag names to contol color highlighting.
+	These names are partially derived from the tags used to label
+	memory and swap information on the screen, thus are driven by
+	the machine module itself.  Added -T option to list color 
+	highlighting information.  Help screen now includes the actual
+	list of sort order names.  Incorporated some minor fixes to
+	the main code from the Freebsd source tree.  Fixed bug #1324582.
+	Freebsd 5: removed WCPU column and added THR column.  Display
+	for freebsd 4 and earlier unchanged since they don't track
+	threads in the kernel.  Added LICENSE file to distribution.
+
+Wed Oct 12 2005 - wnl (3.6beta2)
+	Major overhaul to display.c.  All lines of the display are
+	directly tracked and controlled via display_write and its
+	companion display_fmt.  Added support for complete control
+	of ANSI color on the screen: this will be used in the future
+	to allow for full use of color everywhere on the screen.
+	Signal handling code now uses sigaction on all systems that
+	support it.  Restored the freebsd module and did away with
+	freebsd4, and upgraded freebsd module to support 5.x.
+	Fix bug #1306099 (wio(wait) timer ignored on OSF1).
+
+Fri Sep 23 2005 - wnl (3.6beta1)
+	Fixed bugs #1266341 (compilation errors with gcc 4.x),
+	#1156464 (cpu% field for sunos), #1156243 (compilation
+	errors on AIX).  Applied patches #1217855 (Solaris 10
+	xarch flag).  Overhaul of sunos5 module, making code more
+	efficient and easier to follow.  Got rid of need for MEMTYPE
+	type in utils.h.  Changed all memory statistics data in the
+	module specification from an int to a long to better support
+	64-bit systems with lots of memory. Moved all unused modules
+	out of the distribution (I will add them back in as needed).
+	Moved freebsd module to freebsd4 as it won't work with 5.x
+	(a new module will be necessary). Added support to configure
+	for makes that don't understand VPATH. Updated documentation:
+	man page, FAQ, README, INSTALL.
+
+Mon Jan 24 2005 - wnl (3.6alpha10)
+	Updated aix43 module with ANSI function declarations and fixed
+	declaration of get_system_info.  Configure now uses irixsgi
+	module for irix6* systems.  Updates to the following modules:
+	irixsgi, sunos5.  Fixed null pointer bug in color.c. Removed
+	some useless code and definitions in display.c
+
+
+Sun Nov 28 2004 - wnl (3.6alpha9)
+	Replace AIX 5 module with alternate (bug 1056565).
+	Fixed vulnerability in use of snprintf.
+
+Fri Oct 22 2004 - wnl (3.6alpha8)
+	Support for linux 2.6, added more stuff to memory and swap lines.
+	Updated linuxthr module, which is only useful on 2.4 and earlier.
+	Added some color support back in (feature request 930588), but
+	still need to add it back to the per-process display.  Added
+	OSF 5 support (untested).
+	Fixed bug 1017951 (invalid process count argument not caught)
+
+Tue Apr 20 2004 - wnl (3.6alpha7)
+	Added 64 bit support for AIX.
+
+Thu Apr 15 2004 - wnl (3.6alpha6)
+        Included fixes for decosf1 pid size and updated module.  Also
+        added osf1 to list of recognized operating systems in configure.ac.
+
+Tue Mar 30 2004 - wnl (3.6alpha5)
+	Minor bug fixes and some code rearrangement.  Changes to install
+	rule.  Added several more platforms including: aix 4.2 thru 5,
+	MacOS 10, Dec OSF, HPUX 7 thru 11.  Fixed the core dumping bug
+	in linux.  Code cleanup, including sigdesc.h (by changing
+	sigconv.awk).  Startup error messages are displayed on the
+	first screen rather than beforehand (no more pause).  Cleaned
+	up interrupt handling to avoid a race condition.  Eliminated
+	top.local.h.  REMOVED Configure!!!
+
+Mon Mar 22 2004 - wnl (3.6alpha1)
+	Now using gnu autoconf.  Eliminated the need for CFLAGS and LIBS
+	tags in the module source files.  Autoconf tries to figure all
+	that out now.  Machine module interface now uses flags to determine
+	if module supports sorting, selective display of idle processes,
+	viewing full commands.  Added display of uptime for modules that
+	support it.  Added display of full command lines for modules that
+	support it.  3.5 modules must be changed a bit to work for 3.6:
+	ORDER is no longer defined, and the module must fill in the
+	appropriate fields in struct statics to get the extra features.
+	Added a extenstion interface to allow for putting extra stuff
+	on the screen -- this is still half baked and not documented.
+
+Mon Feb 23 2004 - wnl (3.5)
+	Turned rc1 in to version 3.5.  Only changes were to the FAQ.
+
+Mon Feb  2 2004 - wnl (3.5rc1)
+	Changed format_k (utils.c) to use MEMTYPE for its parameter.
+	On most systems this is a long, but if the module defines 
+	USE_SIZE_T, this is set to be a size_t.  The sunos5 module
+	now defines it, so that it will work correctly on 64-bit
+	machines.  New "linuxthr" module for rolling up processes
+	that are really threads.  Configure autodetects when running
+	on a 64-bit Solaris machine.
+
+Tue Dec 16 2003 - wnl (3.5beta13)
+	Improved linux module.  For Solaris, changed "THR" column
+	heading to "LWP" since that's what they really are.
+
 Thu Mar 30 2000 - wnl (3.5beta12)
 	Updated modules: m_aix41.c, m_aix43.c, m_mtxinu.c, m_sco5.c,
 	and m_ultrix4.c.

Modified: user/edwin/top/top-3.8b1/contrib/top/FAQ
==============================================================================
--- user/edwin/top/top-3.8b1/contrib/top/FAQ	Sun Oct 12 08:40:57 2008	(r183779)
+++ user/edwin/top/top-3.8b1/contrib/top/FAQ	Sun Oct 12 09:12:05 2008	(r183780)
@@ -1,264 +1,340 @@
-                             TOP
-                          Version 3.5
-		        Beta Release 11
+                                        TOP
+                                  Version 3.8beta1
 
-                       William LeFebvre
-		  with much help from others
+                                  William LeFebvre
+                             with much help from others
 
+                    Frequently Asked Questions and their Answers
 
-FREQUENTLY ASKED QUESTIONS AND THEIR ANSWERS
 
-This FAQ is broken out in to several topics.
 
+     GENERAL
+
+ 1.  What is top? 
+
+     Top provies the user with a regularly updated display showing
+     information about the system and its top cpu-using processes. Think
+     of it as a full-screen "ps" output that gets updated at regular
+     intervals.
+
+ 2.  Where do I get the latest version of top? 
+
+     The official site for top is "ftp.unixtop.org" in the directory
+     "/pub/top". Top is also a SourceForge project, and the most recent
+     releases are available on any of the SourceForge mirrors. The
+     SourceForge project page is at
+     http://sourceforge.net/projects/unixtop.
+
+ 3.  Is there a web page for top? 
+
+     Yes. Point your browser at http://www.unixtop.org. It includes all
+     documentation, a nice interactive display which describes the various
+     components of the output of top, web-based retrieval of the package,
+     year 2000 information, and other neat stuff.
+
+ 4.  Is there a mailing list or on-line bulletin board for top? 
+
+     There is a mailing list used for general announcements regarding top,
+     including new releases. This mailing list is available to sourceforge
+     members and can be accessed from the unixtop sourceforge project
+     page. Visit SourceForge and search for the project "unixtop", then
+     click on "mailing lists". There are also on-line forums available
+     through SourceForge where members can post questions and comments.
+
+ 5.  What about Year 2000 compliance? 
+
+     Top did not experience any problems with the transition to the year
+     2000. A full statement concerning top and the year 2000 can be found
+     in the file "Y2K" included with the distribution.
+
+ 6.  Will there be another major release of top? Will there be a top
+     version 4? 
+
+     I have some great ideas for the next major release of top, and I very
+     much want to make those ideas a reality. What I don't have much of
+     these days is free time. But I will keep poking at it and I hope to
+     have top version 4.0 ready by the fall of 2006.
+
+ 7.  Does top really support multi-processor systems? 
+
+     On platforms that support multiple processors, top is able to detect
+     and correctly summarize the information about those processors. What
+     top does not do is break down the cpu states summary (the third line
+     of the display) by cpu. Instead it collects the cpu state information
+     from all processors and combines them in to a single line. Some
+     vendors  include a modified version of top that presents this
+     information for each cpu. Top 3.7 may have this functionality but it
+     is not present in the standard top 3.6 release.
+
+ 8.  Is top under CVS control? Can I access the sources via SourceForge
+     CVS or Subversion? 
+
+     I maintain top using subversion, not CVS. Although I utilize my own
+     private subversion repository, it is regularly mirrored in to the
+     SourceForge Subversion repository. You can access the SourceForge
+     repository here: https://svn.unixtop.org/unixtop/top-3.
+
+
+     COMPILING
+
+ 9.  We just upgraded our operating system to a new version and top broke.
+     What should we do? 
+
+     Recompile it. Top is very sensitive to changes in internal kernel
+     data structures. It is not uncommon for a new version of the
+     operating system to include changes to kernel data structures.
+
+
+     RUNNING
+
+10.  I just finished compiling top and it works fine for root, but when I
+     try to run it as a regular user it either complains about files it
+     can't open or it doesn't display all the information it should. Did I
+     do something wrong? 
+
+     Well, you're just not done. On many operating systems today, access
+     to many of the kernel memory devices and other system files is
+     restricted to either root or a particular group. The configure script
+     figures this out (usually) and makes sure that the "install" rule in
+     the Makefile will install top so that anyone can run it successfully.
+     However, you have to *install* it first. Do this with the command
+     "make install".
+
+11.  Top is (not) displaying idle processes and I don't (do) want it to. 
+
+     This default has only changed about a dozen times, and I finally got
+     tired of people whining about it. Go read the manual page for the
+     current version and pay special attention to the description of the
+     "TOP" environment variable.
+
+12.  We have so much memory in our machine that the memory status display
+     (the fourth line) ends up being longer than 80 characters. This
+     completely messes up top's output. Is there a patch? 
+
+     Most modules have been changed to use new memory formatting functions
+     which will display large values in terms of megabytes instead of
+     kilobytes. This should fix all occurences of this problem. Also note
+     that newer versions of top can use columns beyond 79, and understand
+     window resizes. So you can always make your window wider.
+
+13.  I tried to compile top with gcc and it doesn't work. I get
+     compilation errors in the include files, or I get an executable that
+     dumps core, or top displays incorrect numbers in some of the
+     displays. What's wrong? 
+
+     Gnu CC likes very much to use its own include files. Not being a gcc
+     expert, I can't explain why it does this. But I can tell you that if
+     you upgrade your operating system (say from Solaris 2.6 to Solaris
+     2.7) after installing gcc, then the include files that gcc uses will
+     be incorrect, especially those found in the "sys" directory. Your
+     choices are: (1) rebuild and reinstall the "standard" include files
+     for gcc (look for scripts in the distribution called "fixincludes"
+     and "fixinc.svr4"), (2) compile machine.c with
+     "CFLAGS=-I/usr/include" then make the rest of the object files
+     normally, or (3) use a different compiler.
+
+14.  The cpu state percentages are all wrong, indicating that my machine
+     is using 95% system time when it is clearly idle. What's wrong? 
+
+     This can happen if you compiled with gcc using the wrong include
+     files. See the previous question.
+
+
+     FREEBSD PROBLEMS
+
+15.  This version of top does not show individual threads with the "t" or
+     "H" commands. Instead it says "command not available." Why? 
+
+     Previous versions of top attempted to support the display of
+     individual threads under FreeBSD through the use of the "t" command.
+     However,  the FreeBSD kernel does not supply sufficient or correct
+     information on the individual threads within a process. So the data
+     that was being displayed was incorrect and misleading. Therefore, top
+     version 3.8 disables the use of this command to prevent the display
+     of incorrect information. FreeBSD 8.0 will correctly report
+     per-thread information and top version 3.8 supports the use of the
+     "t" command for version 8.0.
+
+16.  The "f" command (to display full command lines for the processes)
+     does not work and instead says "command not available". Why? 
+
+     The current version of top is able to use sysctl to retrieve almost
+     all of the information it needs without having to open /dev/kmem. The
+     one piece of information not available via sysctl is the full command
+     line of each argument. If you run top as a regular user and it cannot
+     open /dev/kmem (in other words, it is not installed set-gid to the
+     kmem group) then it will disable the "f" command. Make sure the top
+     binary is installed with a group ownership of "kmem" and with the
+     set-gid bit on if you want the "f" command to work properly.
+
+
+     MACOSX PROBLEMS
+
+17.  I tried to configure top on my Mac OSX system and I got an error
+     claiming "macosx not supported". What up? 
+
+     Since I don't have full time root access to a Mac OSX system I cannot
+     provide effective support for the platform. MacOSX uses Mach, and it
+     is very difficult to extract accurate system and process information
+     from the system. It takes a lot of trial and error, along with root
+     access. I have included the most up-to-date version of the macosx
+     module in the distribution, but I do not claim that it works. If you
+     want to try to use it, you can configure with "./configure
+     --with-module=macosx".
+
+
+     SUNOS PROBLEMS
+
+18.  I tried compiling top under SunOS version 4.1.x and it got compile
+     time errors or run time errors. Is there a patch? 
+
+     If you try compiling top in a "System V environment" under SunOS
+     (that is, /usr/5bin is before /usr/bin on your path) then the
+     compilation may fail. This is mostly due to the fact that top thinks
+     its being compiled on a System V machine when it really isn't. The
+     only solution is to put /usr/bin and /usr/ucb before /usr/5bin on
+     your path and try again.
+
+
+     SOLARIS PROBLEMS
+
+
+     NOTE: the most common source of problems with top under Solaris is
+     the result of compiling it with the wrong front end. Make sure that
+     /usr/ucb is not on your path before attempting to compile top under
+     Solaris.
+
+19.  Is there somewhere I can get a pre-compiled package? 
+
+     Yes. Although I don't provide pre-compiled binaries, you can get a
+     Sun-style package from www.sunfreeware.com.
+
+20.  Under Solaris 2, when I type "make", the system says "language
+     optional software package not installed." What's going on? 
+
+     You tried to compile with /usr/ucb/cc. Make sure /usr/ucb is not on
+     your path. Furthermore, you do not have a Sun compiler installed on
+     your system. You need a compiler to make top. Either Sun's C compiler
+     or the Gnu C compiler will work fine.
+
+21.  Under Solaris 2, when I run top as root it only shows root processes,
+     or it only shows processes with a PID less than 1000. It refuses to
+     show anything else. What do I do? 
+
+     You probably compiled it with /usr/ucb/cc instead of the real C
+     compiler. /usr/ucb/cc is a cc front end that compiles programs in BSD
+     source-level compatability mode. You do not want that. Make sure that
+     /usr/ucb is not on your path and try compiling top again.
+
+22.  Under Solaris 2, I compiled top using what I am sure is the correct
+     compiler but when I try to run it it complains about missing dynamic
+     libraries. What is wrong? 
+
+     Check to see if you have LD_LIBRARY_PATH defined in your shell. If
+     you do, make sure that /usr/ucblib is not on the path anywhere. Then
+     try compiling top again.
+
+23.  Under Solaris 2, when I try to run top it complains that it can't
+     open the library "libucb.so.1". So I changed the LIBS line in
+     m_sunos5.c to include -R/usr/ucblib to make sure that the dynamic
+     linker will look there when top runs. I figured this was just an
+     oversight. Was I right? 
+
+     No, you were not right. As distributed, top requires no alterations
+     for successful compilation and operations under any release of
+     Solaris 2. You probably compiled top with /usr/ucb/cc instead of the
+     real C compiler. See FAQ 22 for more details.
+
+24.  On my 64-bit system some processes show up with incorrect information
+     (such as zero memory). 
+
+     If you are running a 64-bit system, then you need to make sure that
+     you are running the 64-bit top binary. Top's configure script
+     attempts to detect 64-bit systems, and will automatically generate
+     both 32-bit and 64-bit binaries on such systems. If you use or
+     install the 32-bit binary on a 64-bit system top will still run but
+     will not produce the correct results. This will also happen if you
+     configure your distribution on a 32-bit system then compile with that
+     configuration on a 64-bit system. You must configure and compile on
+     the same system. For Sparc systems the 32-bit binary will be created
+     in the subdirectory "sparcv7" and the 64-bit binary will be created
+     in the subdirectory "sparcv9". For Intel systems the directories will
+     be "i386" (32-bit) and "amd64" (64-bit). In all cases a copy of 
+     /usr/lib/isaexec is made in the main directory and called "top". This
+     program will choose the correct binary to run from one of these
+     subdirectories. See isaexec(3c) for more details.
+
+25.  Can I install both 32-bit and 64-bit binaries on a central file
+     server and have machines which mount it automatically use the correct
+     one? 
+
+     Yes. If you configure and compile on a 64-bit system, top's configure
+     script and makefile will automatically create both 32-bit and 64-bit
+     binaries. The "install" rule in the makefile will install these
+     binaries in subdirectories of /usr/local/bin appropriate to the
+     architecture (sparcv7/sparcv9 or i386/amd64) then create a copy of
+     /usr/lib/isaexec named "top" in /usr/local/bin to ensure that the
+     appropriate is run when a user types "top". If you make sure that you
+     configure and compile on a 64-bit system, then "make install" will do
+     the right thing.
+
+26.  This version of top show less available swap space than previous
+     versions. Why does it no longer match the output of the swap summary
+     produced with "swap -s"? 
+
+     Starting with version 3.6 of top, the amount of swap space reported
+     by top has been changed to reflect only disk-based swap space. The 
+     swap summary produced with "swap -s" also includes memory-based swap
+     space. This changed was made for several reasons. It makes the
+     display under Solaris more like those of other operating systems. The
+     display is more what users expect (except those used to previous
+     versions of top). Most importantly, "swap -s" gets its data via an
+     undocumented system interface. Now that top no longer displays that
+     data it can use publically documented and maintained system
+     interfaces to retrieve its data.
+
+
+     SVR4-DERIVED PROBLEMS
+
+27.  When I run top on my SVR4-derived operating system, it displays all
+     the system information at the top but does not display any process
+     information (or only displays process information for my own
+     processes). Yet when I run it as root, everything works fine. What's
+     wrong? 
+
+     Your system probably uses the pseudo file system "/proc", which is by
+     default only accessible by root. Top needs to be installed setuid
+     root on such systems if it is going to function correctly for normal
+     users.
+
+
+     SVR42 PROBLEMS
+
+28.  The memory display doesn't work right. Why? 
+
+     This is a known bug with the svr42 module. The problem has been
+     traced down to a potential bug in the "mem" driver. The author of the
+     svr42 module is working on a fix.
+
+
+     STILL STUCK
+
+29.  I'm still stuck. To whom do I report problems with top? 
+
+     The most common problems are caused by top's sensitivity to internal
+     kernel data structures. So make sure that you are using the right
+     include files, and make sure that you test out top on the same
+     machine where you compiled it. Sun's BSD Source Compatability Mode is
+     also a common culprit. Make sure you aren't using either /usr/ucb/cc
+     or any of the libraries in /usr/ucblib. Finally, make sure you are
+     using the correct module. If there does not appear to be one
+     appropriate for your computer, then top probably will not work on
+     your system.
+
+     If after reading all of this file and checking everything you can you
+     are still stuck, then please use SourceForge to submit a support
+     request or a bug. Top is supported by the SourceForge project  named
+     "unixtop". On SourceForge you will find defect tracking, a mailing
+     list, and on-line forums. You can also contact the author through
+     SourceForge.
 
-GENERAL
-
- 1.  "Where do I get the latest version of top?"
-
-The official site for top is "ftp.groupsys.com" in the directory
-"/pub/top".  It is also available from the following mirror sites:
-"pharos.dgim.doc.ca" in /packages/top, "uiarchive.uiuc.edu" in
-/pub/packages/top, "sunsite.auc.dk" in /pub/unix/top.  European
-users should consider using the Denmark (dk) site.
- 
- 2.  "Is there a web page for top?"
-
-Yes.  Point your browser at http://www.groupsys.com/top.  It includes
-all documentation, a nice interactive display which describes the
-various components of the output of top, web-based retrieval of the
-package, year 2000 information, and pointers to the mailing list.
-
- 3.  "Is there a mailing list for top?"
-
-The official list for announcements is "top-announce at groupsys.com".
-This list is managed by "majordomo at groupsys.com".  Announcements of
-importance to all top users will be sent to this list, including new
-releases, availability of beta test versions, emergency revisions and
-patches, etc.  Anyone is welcome to join top-announce.  This is a
-read-only list.  The list of subscribers will not (intentionally) be
-made available, and postings to the list are limited.
-
-In addition, there is a top developers mailing list that is used by
-beta testers and other people who help me port the program to various
-machines.  Membership to this list is solely at my discretion.  If you
-feel qualified to act as a beta tester, or if you are doing development
-work on top (such as porting to a new platform), you may submit a
-request by sending a message to "top-spinners-request at groupsys.com"
-containing the word "subscribe".  I will contact you within a few days,
-as my schedule permits.
-
- 4.  "What about Year 2000 compliance"?
-
-Top should not experience any problems with the transition to the year
-2000.  A full statement concerning top and the year 2000 can be found
-in the file "Y2K" included with the distribution.
-
-
- 5.  "Why does it take so long for a new version of top to go through the
-      beta test process?"
-
-This is completely my fault.  I have just not had the time to give top
-the attention it deserves.  I thank everyone for their patience, and I
-hope that with the recent changes in the direction of my career that I
-can spend more time on this.
-
- 6.  "Top is not written in ANSI C.  Do you ever plan to change that?"
-
-Top predates ANSI C by about 5 years.  Yeah, it'll get "fixed" eventually.  
-Probably in 3.6.
-
-
-CONFIGURING
-
- 7.  "Configure said that it saw /proc and is recommending that I install top
-      setuid root.  Is there any way around this?  Is it safe?"
-
-There is no way around it.  Complain to POSIX.  Every effort has been   made 
-to make top a secure setuid program.  However, we cannot guarantee that 
-there are no security problems associated with this configuration.  The 
-places where top is most vulnerable are the builtin kill and renice 
-commands.  There is no internal top command that causes top to start a shell 
-as a subprocess.  Some SVR4 systems may contain a bug that enables a user to 
-renice his own processes downward (to lower nice values that are more 
-favorable for the process).  This problem has been fixed for the Solaris 2.x 
-modules, but may still exist in others.  We will hopefully fix this up in 
-the next release.
-
- 8.  "Why is Configure a c-shell script?  I thought c-shell scripts were 
-      evil?"
-
-They are.  :-)  I'll probably be rewriting the Configure script for the
-next release, or switching to something like Gnu configure.
-
-
-COMPILING
-
- 9.  "We just upgraded our operating system to a new version and top broke.  
-      What should we do?"
-
-Recompile it.  Top is very sensitive to changes in internal kernel data 
-structures.  It is not uncommon for a new version of the operating system to 
-include changes to kernel data structures.
-
-
-RUNNING
-
-10.  "I just finished compiling top and it works fine for root, but when
-      I try to run it as a regular user it either complains about files
-      it can't open or it doesn't display all the information it should.
-      Did I do something wrong?"
-
-Well, you're just not done.  On many operating systems today, access to
-many of the kernel memory devices and other system files is restricted to
-either root or a particular group.  The Configure script figures this out
-(usually) and makes sure that the "intsall" rule in the Makefile will
-install top so that anyone can run it successfully.  However, you have to
-*install* it first.  Do this with the command "make install".
-
-11.  "Top is (not) displaying idle processes and I don't (do) want it to."
-
-This default has only changed about a dozen times, and I finally got tired 
-of people whining about it.  Go read the manual page for the current version 
-and pay special attention to the description of the "TOP" environment 
-variable.
-
-12.  "We have so much memory in our machine that the memory status display 
-      (the fourth line) ends up being longer than 80 characters.  This
-      completely messes up top's output.  Is there a patch?"
-
-Most modules have been changed to use new memory formatting functions which 
-will display large values in terms of megabytes instead of kilobytes.  This 
-should fix all occurences of this problem.  If you encounter a system where 
-this large memory display overflow is still occurring, please let me know 
-(send mail to <wnl at groupsys.com>).  Also note that newer versions of top can 
-use columns beyond 79, and understand window resizes.  So you can always 
-make your window bigger.
-
-13.  "I tried to compile top with gcc and it doesn't work.  I get
-      compilation errors in the include files, or I get an executable that
-      dumps core, or top displays incorrect numbers in some of the displays.
-      What's wrong?"
-
-Gnu CC likes very much to use its own include files.  Not being a gcc
-expert, I can't explain why it does this.  But I can tell you that if
-you upgrade your operating system (say from Solaris 2.4 to Solaris
-2.5) after installing gcc, then the include files that gcc uses will
-be incorrect, especially those found in the "sys" directory.  Your
-choices are: (1) rebuild and reinstall the "standard" include files
-for gcc (look for scripts in the distribution called "fixincludes" and
-"fixinc.svr4"), (2) compile machine.c with "CFLAGS=-I/usr/include"
-then make the rest of the object files normally, or (3) use "cc".
-Solaris 2.6 users should also consult FAQ #20.
-
-14.  "The cpu state percentages are all wrong, indicating that my machine is 
-      using 95% system time when it is clearly idle.  What's wrong?"
-
-This can happen if you compiled with gcc using the wrong include files.
-See the previous question.
-
-
-SUNOS PROBLEMS
-
-15.  "I tried compiling top under SunOS version 4.1.x and it got compile time 
-      errors.  Is there a patch?"
-
-If you try compiling top in a "System V environment" under SunOS (that is, 
-/usr/5bin is before /usr/bin on your path) then the compilation may fail.  
-This is mostly due to the fact that top thinks its being compiled on a 
-System V machine when it really isn't. The only solution is to put /usr/bin 
-and /usr/ucb before /usr/5bin on your path and try again.
-
-
-SVR4-derived PROBLEMS
-
-16.  "When I run top on my SVR4-derived operating system, it displays all
-      the system information at the top but does not display any process
-      information (or only displayes process information for my own
-      processes).  Yet when I run it as root, everything works fine."
-
-Your system probably uses the pseudo file system "/proc", which is by 
-default only accessible by root.  Top needs to be installed setuid root on 
-such systems if it is going to function correctly for normal users.
-
-
-SOLARIS PROBLEMS
-
-17.  "Under Solaris 2, when I run top as root it only shows root processes,
-      or it only shows processes with a PID less than 1000.  It refuses to
-      show anything else.  What do I do?"
-
-You probably compiled it with /usr/ucb/cc instead of the real C compiler.  
-/usr/ucb/cc is a cc front end that compiles programs in BSD source-level 
-compatability mode.  You do not want that.  Make sure that /usr/ucb is not 
-on your path and try compiling top again.
-
-18.  "Under Solaris 2, I compiled top using what I am sure is the correct
-      compiler but when I try to run it it complains about missing dynamic
-      libraries.  What is wrong?"
-
-Check to see if you have LD_LIBRARY_PATH defined in your shell.  If you do, 
-make sure that /usr/ucblib is not on the path anywhere.  Then try compiling 
-top again.
-
-19.  "Under Solaris 2, when I try to run top it complains that it can't open 
-      the library "libucb.so.1".  So I changed the LIBS line in m_sunos5.c
-      to include -R/usr/ucblib to make sure that the dynamic linker will look 
-      there when top runs.  I figured this was just an oversight.  Was I
-      right?"
-
-No, you were not right.  As distributed, top requires NO alterations
-for successful compilation and operations under any release of Solaris
-2.  You probably compiled top with /usr/ucb/cc instead of the real C
-compiler.  See FAQ #10 for more details.
-
-20.  "When I try to compile top under Solaris 2.6 using gcc I get compile
-      time errors.  There appear to be problems with the include files,
-      such as 'u_rlimit has incomplete type' and/or 'u_saved_rlimit has
-      incomplete type'.  I've already run fixinc.svr4 as per FAQ #13.
-      Why didn't that fix it?"
-
-Only top versions 3.5 and later are compatible with Solaris 2.6.  Make
-sure you are using the most up-to-date version.  Earlier beta release
-copies of version 3.5 had additional problems when compiled with gcc.
-Retrieve the official version 3.5 (non-beta) release from one of the
-sites listed in FAQ #1 or FAQ #2.
-
-
-SCO PROBLEMS
-
-21.  "When I try to run Configure, it complains about a syntax error."
-
-Some versions of SCO's csh do not understand the syntax "$<".  Earlier
-releases of top depended on this syntax to read input from the installer's
-terminal during the installation process.  Version 3.5 fixes this.
-
-
-SVR42 PROBLEMS
-
-22.  "The memory display doesn't work right.  Why?"
-
-This is a known bug with the svr42 module. The problem has been traced down 
-to a potential bug in the "mem" driver.  The author of the svr42 module is 
-working on a fix.
-
-
-STILL STUCK
-
-23.  I'm still stuck.  To whom do I report problems with top?"
-
-The most common problems are caused by top's sensitivity to internal kernel 
-data structures.  So make sure that you are using the right include files, 
-and make sure that you test out top on the same machine where you compiled 
-it.  Sun's BSD Source Compatability Mode is also a common culprit.  Make 
-sure you aren't using either /usr/ucb/cc or any of the libraries in 
-/usr/ucblib.  Finally, make sure you are using the correct module.  If there 
-does not appear to be one appropriate for your computer, then top probably 
-will not work on your system.
-
-If after reading all of this file and checking everything you can you are 
-still stuck, then send mail to "wnl at groupsys.com".  I will answer your mail 
-when I have time.  Please bear with me in that regard!  If it looks like the 
-problem is machine-specific, I will forward the report along to the module's 
-author.  If you would like to converse directly with the module author, the 
-authors' names are listed at the beginning of the module .c file in the 
-"machine" directory.

Modified: user/edwin/top/top-3.8b1/contrib/top/INSTALL
==============================================================================
--- user/edwin/top/top-3.8b1/contrib/top/INSTALL	Sun Oct 12 08:40:57 2008	(r183779)
+++ user/edwin/top/top-3.8b1/contrib/top/INSTALL	Sun Oct 12 09:12:05 2008	(r183780)
@@ -1,166 +1,54 @@
                              TOP
-                         Version 3.5
+                       Version 3.8beta1
 
                        William LeFebvre
 		      and a cast of many
 
 INSTALLATION
 
-Configuration and installation of top is very straightforward.  After
-unpacking the sources, run the script "Configure".  It will present you
-with a series of questions, all of which should be explained in the
-presentation.  After you have answered all the questions, "Configure" will
-perform all the necessary configuration.  Once this is finished, type
-"make install".  Make will compile the sources then install the resulting
-executable and manual page in the appropriate places.
-
-The most difficult step in the configuration is the choice of an
-appropriate machine-specific module.  The Configure script gives you a
-list of choices complete with brief descriptions of when each choice is
-appropriate.  Each module is contained in a separate c file in the
-directory "machine".  The module contains all of the machine-specific code
-that makes top work correctly on the architecture in question.  All of the
-code in the top-level directory is machine-independent (or at least
-strives to be).  Hints for some module choices that are not obvious are
-given at the end of this file.
-
-The first comment in each c file in that directory contains the synopsis
-AND a detailed description of the machines for which that module is
-appropriate.  It also contains a list of authors for that module.  If you
-are really stumped in this choice, use grep to find your machine
-manufacturer's name or operating system name in machine/*.c.  If you still
-can't find one that is appropriate, then chances are very good that one
-hasn't been written yet.  If that is the case, then you are out of luck.
-
-HANDLING MULTIPLE ARCHITECTURES
-
-If you need to recompile top for a different architecture (that is, using
-a different module) you need to reconfigure top.  A short cut is available
-to make this a little easier.  If all of your previous answers to the
-configuration questions (except for the module name of course) are
-adequate for the new architecture, then you can just use the command
-"Configure <modulename>".  The configuration script will reconfigure top
-using the new module and all the answers you gave last time.  It will
-finish with a "make clean".  Once that completes, type "make install"
-and make will compile the sources and do the installation.
-
-HANDLING MULTIPLE OS VERSIONS
-
-By far the most frequently received bug report for top is something like
-this: "We just upgraded our operating system to version 99.9.9.9 and top
-broke.  What should we do?"  The simple answer is "recompile".
-
-Top is very sensitive to changes in internal kernel data structures
-(especially the proc and user structures).  Some operating systems
-(especially SunOS) are notorious for changing these structure in every
-minor release of the OS.  This means that a top executable made under one
-version of the OS will not always work correctly (if even at all) under
-another version.  This is just one of those tough facts of life.  There is
-really no way around it.
-
-To make life even worse, some operating systems (SunOS again) will use
-slightly different proc and user structures on different models.  For
-example, "top" built on a SparcStation 2 will not run correctly on a
-SparcStation 10, even if they are both running SunOS 4.1.3.  These
-unfortunate circumstances make maintaining top very difficult, especially
-in an environment that runs several different versions of the same
-operating system.
-
-But there is hope.  If your operating system has a properly functioning
-"uname" command then you can handle this problem rather gracefully.
-Included in the distribution is a shell file called "metatop".  All this
-shell file does is:

*** DIFF OUTPUT TRUNCATED AT 1000 LINES ***


More information about the svn-src-user mailing list