Files
2024-02-19 00:21:16 -05:00
..
2024-02-19 00:21:16 -05:00

This directory contains version 2.2 of my jump-table libraries.  This
release is based on H.J. Lu's 2.2.2d libraries.  The advantage of
these libraries over the standard, shared ones is that programs linked
with these libraries can be updated by simply installing a new, shared
library image (i.e. no relinking is needed).  The disadvantage is that
there is a very slight, run-time overhead incurred on function calls
made from outside the libraries because of the jump-table (calls from
within the libraries do not go through the jump-table).

To make it easier to maintain compatibility with future releases, I
have limited the external symbols visible to applications to the bare
minimum.  In the process, I may have inadvertantly left some out.  Let
me know if you get any "undefined symbol" errors.  The most notable
symbols missing in this release are those from the non-stdio portions
of Per Bothner's iostreams package.  They will be added in a future
release once I am sure that the iostreams interface is stable.  In the
mean time, if you need to use the full iostreams package from C++, you
must use the standard shared or static libraries.

Sorry, but there is no install script.  In case you didn't receive
this package with H.J.'s, here is what you need to do to install and
use the jump-table libraries:

	Copy libc.so.2.x to /lib and create a symlink to it called
	"libc.so.2".

	If you have a 387 or 486, copy libhard.so.2.x to /lib and
	create a symlink to it called "libm.so.2".

	If you don't have a 387 or 486, copy libsoft.so.2.x to /lib
	and create a symlink to it called "libm.so.2".

	Make a subdirectory in your GCC library directory (probably
	something like /usr/lib/gcc-lib/i386-linux/2.2.2d) called 
	"jump" and copy all the .a files to it.

	Use the "-jump" switch on your gcc command line to link with
	the jump-table libraries.

IMPORTANT NOTE1: if you are upgrading from versions 2.0 or 2.1 of the
jump-table libraries, after changing the symlinks in /lib to point to
the new shared images, do NOT delete the old images until you are
absolutely sure that no processes are still using them.  The best way
to make sure of this is to reboot.  Even then, it is best to wait a
couple of days to make sure there are no unforseen problems with the
new images.  If you do have problems with the new images, just change
the symlink back to the old images.

IMPORTANT NOTE2: Even though both the normal and jump-table shared
libraries use the same shared image, they are NOT compatible with each
other.  If you want to link other libraries with the jump-table
libraries, make sure you use the static versions.

Please let me know about any problems which are specific to these
jump-table libraries.  You should still report problems concerning the
standard shared and static libraries to H.J. at hlu@eecs.wsu.edu.

David Engel
david@ods.com