Avoid AFS_version conflicts in uafs

libuafs links in both afsd.o and AFS_component_version_number.o;
afsd.c #includes AFS_component_Version_number.c, which causes
symbol conflicts when linking shared.

Don't include the version file when compiling for UKERNEL, to
avoid the conflict.

Change-Id: I9474faf10e029d0022b12431aad51e27412b19fc
(Partially) unify XDR for libuafs and libafs

The libuafs build was getting xdr_vector() from both afsaux.c and
xdr_update.c, but because of the rules for creating static libraries,
this did not cause build errors.

The libafs build is sensitive to duplicate symbols, and was only
getting xdr_vector() from afsaux.c; libafs was not building xdr_update.c
or xdr_refernce.c (that is not a typo).

Remove duplicate xdr_vector() from afsaux.c, and build xdr_update.c
and xdr_refernce.c into libafs.

Change-Id: I58ea595d424801697acb07406664ede33aeaf026
Allow compiling with KERNEL and AFS_PTHREAD_ENV

Add the necessary preprocessor conditionals to allow building
libuafs with AFS_PTHREAD_ENV defined.

A follow-up commit will switch to building libuafs using libtool,
which will set the pthread compiler/linker flags.  UKERNEL is already
using the pthread primitives for its internal kernel synchronization,
so there should not be any harm from additionally specifying the
pthread build arguments.

This change was produced mostly in a mechanical fashion, attempting
to perform such a build, and eliminating compiler and linker errors
in an iterative process.  No concerted effort has been made to audit
the whole kernel codebase for correctness of conditionals, but the
linktest executable does link (that is, the overall build succeeds).

Change-Id: I14a3ab5fce72812d92ba5657c734783dbd086ee3
Build libuafs with libtool

Use the standard program for building PIC and non-PIC object files,
instead of rolling our own.  This allows us to pull the build rules
into the Makefile.common, leaving just compiler flags and similar
in the MakefileProtos.

This does change the build flags being used to compile these files
somewhat -- the old CRULE1 and CRULEPIC used CC instead of CCOBJ
or MT_CC, and did not pass MT_CFLAGS, but it should be safe to
move to the standard compiler invocations.  We can also eliminate
the libuafs-specific 'OPTF' variable which expands to OPTMZ almost
everywhere.

Rename our COMMON_INCLUDE to MODULE_INCLUDE so it's picked up properly
by the standard build rules; this will let us remove
${TOP_OBJDIR}/src/config and ${TOP_INCDIR} once the rest of the
build rules in this Makefile are converted to use libtool, as those
include directories are already added by COMMON_INCL in Makefile.config.

As a side effect, we get rid of the LIBUAFS make variable -- all sites
were defining it to libuafs.a anyway, so we can just hardcode it.

Change-Id: I2bda2f40bbd0aa808c24e074d2d7bcd329f6b77e

more libuafs-pthread build fixes

Change-Id: I4f123a138d745b09b5437c8f2ac6cd1c36c58b5f
Finish deorbiting libjuafs.a

Change I2074d5bc26e326db36b16e055431818ef1c69210 removed the separate
compilation/link of a libjuafs.a (since it was functionally identical
to the libuafs.a already being built), but retained a libjuafs.a in
TOP_LIBDIR for use by src/JAVA/libjafs/.

This commit adjusts src/JAVA/libjafs to refer to libuafs.a directly,
and removes references to libjuafs.a which are no longer relevant.

Change-Id: I0d02ea9e4be773ac50a04925c45e5f243650e21a
Provide a usable fileserver default config (-X)

The existing default values, and the -S (small) and -L (large) presets,
are essentially untouched since the initial import from IBM, and as
such are scaled appropriately for 1995-era hardware.  (The number of
threads used by a large fileserver increased to 128 in 2008.)

Modern systems are several iterations of Moore's law ahead of those,
and can generally afford to use a lot more memory for data structures.
We should provide a usable preset configuration instead of requiring
all operators to make extensive tuning to their fileservers to get
decent performance.

Add the -X preset (extra large) for this purpose, since we do not
have sufficient internal sanity checking to prevent changing the
existing default/presets from having a harmful effect on existing
deployments which add extra customizations on top of a preset.

Update the man pages to add the -X preset and document that -S and
-L are deprecated.

Change-Id: I35751bab3acc4a9a72ec0d04e88f36d2c2c44298
LWP fileserver is no more

Don't mention it in the man pages.

Change-Id: I8a6d706f055545642116af5a98fa8c04f533b990
Build a shared libuafs

Don't install it yet.

The export symbol list is just what's needed to link afsd.fuse,
plus afs_Analyze because I had to fake up something to make it
nonempty.

Change-Id: I6eaeebd89e54cabf6300ded99ad4e1b3594dec53
dummy: link afsd.fuse shared

To get an export list for libuafs.la

Change-Id: I4709e11b306ebe478be28637c56a8d786ba0fd45
Flesh out libuafs export list

Change-Id: Ic2b585f77122b4f334b4b0147089ecb8e1c8f97d
Make afs_usrops.h more closely resemble reality

Remove prototypes for many routines which are not implemented.
(I thought some toolchains would complain about this sort of thing?
Maybe we disable it.)

Fix the spelling of the deprecated uafs_Init().

Change-Id: Id09f494f1c64c2feb05ae82ead9898c08888a5de