Apollo m68k support kit for the GNU C++ library version 2.6.

     It requires a virgin copy of libg++-2.6.  GCC 2.6.0 or later
should be installed before building the library.  The "patch" program is
needed to install the patches.  At SR10.3.5 and before, Apollo provided it
in /usr/new.  It is included in the MIT X-window sources.

     This code has been tested on an Apollo DN4500 running SR10.3.5 with
the ANSI header files and a BSD environment.  It should work for any system
that GCC supports.

This patch kit contains the following files:

README:  installation and descriptions of the Apollo modifications
DIFFS:   context diffs for program source files

Installation:
Unpack libg++-2.6 in the directory above this one.  This gives directories
libg++-2.6 and apollibg++-2.6 at the same level.
Apply the patches with the following UNIX shell commands:
(Applied from directory containing libg++-2.6)

/usr/new/patch -p0 < apollibg++-2.6/DIFFS

Now configure and make as described in the libg++-2.6 README file.
Use the "--prefix" option of configure to choose where the libraries
are installed.  It normally would be the same as is used for GCC.
Typing "make" will build the library with debugging symbols.
To build the libraries without debugging symbols, type

make CFLAGS=-O2 CXXFLAGS="-O2 -fexternal-templates"

Building and running the tests:

Doing a top-level "make check" fails.  It is necessary to build and run
the individual subdirectory tests like this:

cd libio++
make check
cd ../libg++
make check

The libg++/etc/lf test will fail in the BSD environment, since the lf
program uses SYS5 directory calls.



To build a shared library, "inlib" your shared libgcc.a, then type

make CFLAGS="-O2 -fPIC" CXXFLAGS="-O2 -fexternal-templates -fPIC"

The .a files can then be separated with "ar x" and the resulting collection
of .o files loaded into a single file by ld -a -r *.o.  The "collectshare"
script from the GCC patch kit should then be run on the ld output file
to make the global constructor/destructor stubs.
Shared libraries have NOT been tested.  Building tests with shared
libraries would require some Makefile changes, as well as an "inlib" of
each shared library before building.



Files changed by DIFFS and description of change:

libg++-2.6/libg++/etc/ADT-examples/genPatkey.cc:  add _G_HAVE_UNISTD.
libg++-2.6/libg++/src/std.h:                      add _G_HAVE_UNISTD.
libg++-2.6/libg++/tests/test_h.cc:
   Do not include memory.h on Apollo since SR10.3.5 memory.h and string.h
   are inconsistent, add _G_HAVE_UNISTD.
libg++-2.6/libio/filedoalloc.c:   conditionally define S_ISCHR
libg++-2.6/libio/fileops.c:       conditionally define S_ISREG
libg++-2.6/libio/iofdopen.c:      conditionally define O_ACCMODE
libg++-2.6/libio/iopopen.c:       add _G_HAVE_UNISTD.
libg++-2.6/libio/tests/tFile.cc:  add _G_HAVE_UNISTD.

"add _G_HAVE_UNISTD" denotes adding an "#ifdef _G_HAVE_UNISTD" wrapper
around inclusions of <unistd.h>.  Apollo SR10.3.5 lacks <unistd.h>.
