Newsgroups: comp.os.linux.announce
From: Warner Losh <imp@Boulder.ParcPlace.COM>
Subject: Patches for OI for libc 2.5.x and g++ 4.5.8
Message-ID: <1994Mar21.221412.25242@cs.cornell.edu>
Date: Mon, 21 Mar 1994 22:14:12 GMT
Approved: linux-announce@tc.cornell.edu (Matt Welsh)

[ObjectBuilder/ObjectInterface is a development environment for C++ which
allows you to build user interfaces among other things. --mdw]

I've uploaded two files to tsx-11.mit.edu in pub/linux/packages/OI

The first one is OI-4.0-gcc-2.5.patches.tar which contains patches to
OI to allow it to cope with the new name mangling, and the more
restrictive member function typedef syntax.  Read the
README.OI-4.0.patch that is in this tar file for instructions on how
to install (it is included after my .sig).  The second file is
cpp-2.5.8.tar.gz which replaces cpp compiled as I've outlined above.
Just extract it as root from /.  It doesn't solve all of g++ 2.5.8's
problems, but does fix the bogus assumption that all files from
/usr/include need to have extern "C" { ... } placed around them.

I've tried them, and they seem to work for me.  Please let me know if
you have any problems with them.  Also, please let me know where OI
has been uploaded so that I might update people there as well.

BTW, there is still one major problem with g++ remaining.  Casting
member function pointers is broken.  Completely and totally broken.
Until it is fixed (I've filed a bug), OI will not compile.  If I can't
compile OI, I can't put out a new release :-(.

Warner

P.S. Here's the readme that HJ included in his origianl patch to me.
I've hacked the patch to be smaller than his original patch.

Due to the changes in g++ 2.5.x. The OI 4.0 compiled with g++ 2.4.x
is not compatible with g++ 2.5.x or above. Here I included a few
fixes. I only tested with OI/demos/simple/hello_world.C. You need to
do

cd /tmp
gzip -dc OI-4.0-gcc-2.5.patches.tar.gz | tar xof -
ar ucv /usr/lib/libOI.a __old_static.o
ar -d /usr/lib/libOI.a __.SYMDEF
ranlib /usr/lib/libOI.a
ar ucv /usr/lib/libOI.sa __old_static.o __old_shared.o
ar -d /usr/lib/libOI.sa __.SYMDEF
ranlib /usr/lib/libOI.sa
cd /usr/include
patch -p0 < /tmp/OI-4.0.diff


H.J.
hjl@nynexst.com

