Subject: Re: egcs 1.0.2 and netbsd.
To: matthew green <>
From: Todd Vierling <tv@NetBSD.ORG>
List: tech-toolchain
Date: 03/25/1998 08:53:35
On Wed, 25 Mar 1998, matthew green wrote:

: after mycroft hinted he'd like it if i put egcs into NetBSD, i've done
: this and got the entire tree working with it on the sparc.  currently,
: i have this:

: 	- src/gnu/usr.bin/egcs has a bunch of subdirs and Makefile's
: 	  using .PATH to build the sources (similar to how gdb works).

Good.  Running "sh configure" in-tree is Bad, because it breaks
cross-builds.  I take it that you're using a one-stage build, *not* a
bootstrap build?

:  note that using egcs will
: 	  also mean _not_ supporting libg++, but only libstdc++.

Not necessarily.  Read below.

: there remains one problem.  the kernel has main looking like:
: 	void main(void *framep);
: which egcs warngs about.

Just make the main return int.  It's in a PR somewhere, and really should be
fixed just for Happy Conformance.  But I'm sure that this comment will be
immediately flamed and shot down after I send this message... <sigh>

I don't object to egcs' integration; in fact, it's probably a nicer thing to
have egcs (as long as gcc eventually goes away to free up some of my hard
drive space... <g>).  I've been dealing with egcs since almost right after
release, and have been tracking egcs-current for a while now, and here are
some suggestions I'd like to give for the integration:

- haifa is still broken as of 1.0.2 on many platforms.  This shouldn't
  be enabled yet; the legacy gcc scheduler is much more well tested.
- libf2c, if g77 is to be included (please do), should not be built shared,
  at least not yet.  There have been some binary incompatibilities
  introduced in earlier versions of g77 that leads me to believe that this
  is best built as only a static library until g77 is more code-stable.
- libstdc++ needs a major version bump.  The libstdc++ 2.8 has a couple
  of binary incompatibilities reported by users versus libstdc++ 2.7.x.
- libg++ can easily be made into a pkg and dropped from the source tree; as
  of libg++/libstdc++ 2.8, they are packaged separately at the FSF.  (As
  with libstdc++, libg++ 2.8 as a shared library needs a major version
- libiberty should not be installed (it is installed by default in egcs).
  This may be useful to installing GNU stuff, but is more a pain in the
  arse to share with other GNU stuff than it is worth.
- we *should* install a specs file by default.  I've griped about this
  in our gcc for a while now.
- egcs should use the "ELF-style" options for shared object creation as
  opposed to -Bshareable et. al.  (this is a specs thing.)
- the directory search mechanisms need some pruning using #ifdef
  CROSS_COMPILE (I'll probably look into doing this) so that some funky path
  like /usr/libexec/2.8.0/NetBSD isn't searched when native, but the
  appropriate cross directories are searched on cross.
- f77 man pages.  woo!  (well, it would give us a reason to use man3f :)
  ...this can wait, of course of course.

-- Todd Vierling (Personal; Bus.