Article View: comp.windows.interviews
Article #1522Re: g++ and IV3.0
From: Mike Stump
Date: Mon, 24 Jun 1991 17:15
Date: Mon, 24 Jun 1991 17:15
161 lines
6140 bytes
6140 bytes
Well, since people ask, here is something, someone can put in there FAQ list
(Linton, I think put out one before).
I am a pretty good person to bug about the g++ work and InterViews,
unless one person that knows who he is wants to volunteer instead. ;-)
Mail can be sent to ``mrs@csun.edu''. The address this came from will
also work, so feel free to just reply.
For me, all things work except Unidraw and doc. This means that there
is no ibuild or idraw, yet.
At the end is my pre iv-3.0-g++-1.3 work.
> Date: 21 Jun 91 20:36:35 GMT
> From: bowles@stsci.edu (Richard Bowles)
> Organization: Space Telescope Science Institute, Baltimore, MD 21218
> Subject: Re: g++ and IV3.0
> Message-Id: <bowles.677536595@ghost.stsci.edu>
> References: <1991Jun21.093536.15229@ugle.unit.no>
> Sender: owner-comp-windows-interviews@shelby.stanford.edu
>
> geirt@Lise.Unit.NO (Geir Torheim) writes:
>
> >I've heard that IV3.0 requires At&T C++.
> >Will there be a version for g++ as well?
> >When can we expect such a version?
>
> > - Geir
>
> >email: geirt@lise.unit.no smail: Geir Torheim
> > Centre for Computed Aided Learning
> >Phone: +47 7 59 47 87 DSL-UNIT, NTH
> >Fax: +47 7 59 14 37 7034 TRONDHEIM
>
> I was hoping this question (and it's answer) would
> be in the FAQ -- is there someone who can authoritatively
> keep everyone up-to-date on what works with g++ and
> what still requires cfront?
>
> Richard Bowles
> bowles@stsci.edu
Here is my pre iv-3.0-g++-1.3 work: (1.2 is on
interviews.stanford.edu, but I would not recommend it at this point,
as things have progressed quite a bit since then.)
Here are four sets of patches to help you get iv-3.0-beta working with
g++. I am using iv-3.0-beta and libg++1.39.0 and gcc-1.92 on a sun4
SPARC to cross compile to a vax running Ultrix 4.1. (It is faster
that way!)
Also, I manual do a:
for i in *.c
do
mv $i ${i}c
done
in the IV source directories on demand. Also, I have "rcp -r"ed the
whole /usr/include over to my SPARC, and then "rcp -r"ed my gcc
fixincludes directory on top of my new directory, replacing any
unneeded system headers. The script below was then run in the new include
directory:
#!/bin/sh
while read i
do
echo "doing $i"
if [ -d "$i.bak" -o -f "$i.bak" ]; then
echo "$i: already exists" >&2
else
mv "$i" "$i.bak"
sed 's/\(#[ ]*include[ ]*["<]\)/\1BASE\//' <"$i.bak" >"$i"
if cmp -s "$i" "$i.bak"; then
rm -f "$i"
mv "$i.bak" "$i"
fi
rm -f "$i.bak"
fi
done
The final step was to provide a symbolic link in the gcc-include directory
from BASE to . as in ln -s . BASE. This hackery makes it impossible for a
system headerfile to escape back into the c++ include hierarchy. Also, this
way, you can have many cross compilers install on your system and the g++
header files from libg++ will choose not the files in /usr/include, but
whatever files it should!
Note, expr.c should be hand compiled without any optimization flags, as
gcc cannot compile it correctly on a sparc. Repeat by compiling:
unsigned ui;
main() {
return ui / 23;
}
on a sparc for a vax. Watch the core dump.
This file does not constitute a release, or a permanent migration
version of iv. In the future, I will provide ONLY diffs against
virgin sources.
What you get with these patches is:
ability to compile all of src/lib
ability to compile all of src/bin/alert
ability to compile all of src/bin/dclock
ability to compile most (all but 6 files) of src/bin/doc
ability to compile all of src/bin/ibuild
ability to compile all of src/bin/iclass
ability to compile all of src/bin/idraw
ability to compile all of src/bin/ifb
ability to compile all of src/bin/ifc
ability to compile all of src/bin/logo
ability to compile all of src/bin/mailbox
After patching, keep this file around, because when you get the next one, you
will need to UNDO these patches, or re-extract virgin 3.0-beta.
Note, these patches should now enable you to compile any interviews
programs you have. If you are a new user, these are not yet for you,
don't waste your time.
[ Comments about compiler availability... ]
If you don't feel like patching, building and installing it,
don't bother trying to uses these diffs.
dclock, iclass, ifb, ifc, logo, mailbox all appear to work just fine.
alert did work, but now won't link, workaround, specify the LIBS
twice. ibuild, idraw and doc may not work perfectly yet. idraw does
work on a sparc though.
Here is my planning guide:
Phase One (Completed)
Get the source files turned into .o files a quickly as possible
If this means making weird changes to IV, so be it.
Phase Two (Completed)
Get things to link
Phase Three (In progress)
Verify that the a.out's work. Bug fix the compiler where necessary.
Bug fix IV where necessary. (This so far has not been the case, usually)
Workaround as necessary.
Phase Four (About to start)
Reduce the number of #ifdef __GNUC__ in the code, by way of compiler
enhancement, to an absolute minimum.
Phase Five (Accepting offers)
Write the missing library code for libg++ for those things (like doc)
that need it.
Phase Six
Verify that author released versions of software work as well as what I
have. If not, submit bug fixes and enhancements.
Send any mods, additions or problems to Mike Stump <mrs@csun.edu>.
The vax-include.diffs file is a short file containing diffs against
some standard headerfiles on ultrix that needed fixing.
Technical Details
Message-ID:
<9106241715.AA19578@ma.secs.csun.edu>Path:
arc1-ca.pugleaf.net!utzoo!utgpu!news-server.csri.toronto.edu!rpi!zaphod.mps.ohio-state.edu!samsung!uunet!stanford.edu!MA.SECS.CSUN.EDU!mrsShow Full Headers
Complete Article Headers
Path: arc1-ca.pugleaf.net!utzoo!utgpu!news-server.csri.toronto.edu!rpi!zaphod.mps.ohio-state.edu!samsung!uunet!stanford.edu!MA.SECS.CSUN.EDU!mrs From: mrs@MA.SECS.CSUN.EDU (Mike Stump) Newsgroups: comp.windows.interviews Subject: Re: g++ and IV3.0 Message-ID: <9106241715.AA19578@ma.secs.csun.edu> Date: 24 Jun 91 17:15:14 GMT Sender: news@shelby.stanford.edu (USENET News System) Organization: Internet-USENET Gateway at Stanford University Lines: 161