This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: egcs, Irix6 linking o32-libiberty.a with n32-stage2/3 binaries ...
- To: law at cygnus dot com, wilson at cygnus dot com
- Subject: Re: egcs, Irix6 linking o32-libiberty.a with n32-stage2/3 binaries ...
- From: "Kaveh R. Ghazi" <ghazi at caip dot rutgers dot edu>
- Date: Mon, 7 Dec 1998 16:34:16 -0500 (EST)
- Cc: egcs at cygnus dot com
> From: Jeffrey A Law <law@hurl.cygnus.com>
>
> > If we add -n32, people that have old versions of the SGI C compiler won't
> > be able to build egcs anymore. However, I suspect that few people have
> > these old and buggy SGI C compilers anymore.
> We can always have autoconf test for -n32 when building with the native
> compiler and fall back to something else.
But what exactly do you fall back on if -n32 doesn't work? I.e.
assuming I have a pre-7.1 compiler, I am now unable to build egcs when we
try to link with libiberty.a (assuming the redundant libiberty functions
had been out of the gcc sources.)
> Is there a way to test for specific versions of the SGI compiler? Do we
> even want to worry about beta versions of the SGI compiler?
Let's say we can test for compiler versions. AFAICT, we have
nothing to offer when we detect the pre-7.1 compilers. (Unless I'm
missing something....)
> As Jim mentioned, the config/mh-* stuff is pretty hokey and needs a rethink.
Agreed.
> > 5. Maybe another way to go is to build libiberty.a for each stage.
> > We could build a symlink tree in egcs/gcc/libiberty and move it into
> > stageN so it is rebuilt every stage. This would solve the linking
> > problem because libiberty.a would use the same ABI as the binaries it
> > is linked with. It would also get us optimized versions of the
> > functions in there even when cc is used for stage1.
> >
> > We already have an N32 libiberty in $target/libiberty. This is needed
> > because libstdc++/libio use libiberty, and they will be N32 code. This
> > does not get built until after gcc has bootstrapped currently. It might
> > be possible to build it after the stage1 gcc build, and then link the
> > stage2/stage3 compilers with it. This would require rewriting the
> > bootstrap rule in the toplevel Makefile.
> Jim's actually got a good point. Doing this would require a fair amount of
> surgery on the build process, but if other options don't pan out, I guess
> it's what we'll have to do.
I'm not sure its so hard. See my previous email. I think we
can ignore the $target stuff. We can simply run symlink-tree on
../libiberty and build that directory at each stage.
> Still I think it is best if we can force the stage1 compiler to be link
> compatible with the stage2/stage3 compilers.
> jeff
Yes, I would agree if (and only if) we could make cc -n32 work
for all users. Otherwise we cut adrift a small group who previously
could have used egcs.
--Kaveh
--
Kaveh R. Ghazi Engagement Manager / Project Services
ghazi@caip.rutgers.edu Icon CMT Corp.