Can't install gcc 3.2 alongside gcc 2.96 on Red Hat 7.3
lrtaylor@micron.com
lrtaylor@micron.com
Wed Feb 18 21:13:00 GMT 2004
If you install it now, it won't overwrite anything that your old
compiler uses, but it will install the binaries using the same name,
meaning that you would need to adjust your path so that the compiler you
want to use comes first. You can give an option to configure that
specifies a command suffix to use (such as 3 - giving gcc3).
Reconfigure GCC using your preferred suffix and rebuild it. Then you
should be OK. To use it, people could then just use gcc3, etc.
Cheers,
Lyle
-----Original Message-----
From: gcc-help-owner@gcc.gnu.org [mailto:gcc-help-owner@gcc.gnu.org] On
Behalf Of Jonathan Watt
Sent: Wednesday, February 18, 2004 12:54 PM
To: gcc-help@gcc.gnu.org
Subject: Re: Can't install gcc 3.2 alongside gcc 2.96 on Red Hat 7.3
Claudio Bley wrote:
> On Wed, Feb 18, 2004 at 01:48:06PM +0000, Jonathan Watt wrote:
>
>>Hi,
>
>
> Hello.
>
>
>>I would like (need) to install gcc 3.2 or greater on Red Hat 7.3 while
>>leaving the default compiler (gcc 2.96) and its libraries in place. I
am
>>relatively new to GNU/Linux but I know that other people have managed
>>this before. I have spent the last week or so trying with what I
believe
>>to be suitable RPMs and source RPMs that I have found while searching
>>the Web. Unfortunately the RPMs want to install files that conflict
with
>>files belonging to gcc 2.96, and the source RPMs I have found won't
>>build. An example error message would be:
>>
>>RPM build error.
>>Bad exit status from /var/tmp/rpm-tmp 83330
>>
>>I would be very greatful for any help in solving these problems. I
>>should probably add that what I know about RPM has been learnt in the
>>last week so I may not be using it correctly.
>
>
> Oh man, redhat and the joy of RPM. ;-)
>
> Usually, gcc RPMs are not designed to be installed side by side and
hence
> they usually can't.
>
> But there are various possibilities:
>
> 1) just install without RPM; gcc will then install by default to
/usr/local.
> Additionally you could use checkinstall which generates an RPM for you
from
> the `make install' process that you can install and remove just like
other
> RPMs.
>
> 2) upgrade to RH 8.x and use the compat-*-7.3 RPMs. That way you'd
have the
> default gcc (3.2 IIRC) plus the old compiler for RH 7.3.
>
> 3) edit the .spec file(s) of the gcc SRPM (just *install* the src.rpm
and edit
> the file(s) in /usr/src/redhat/SPECS) and alter the `configure'
options.
>
> E.g. you could specify a custom install location (e.g
"--prefix=/usr/gcc32")
> or add a custom suffix to the binaries (e.g. --program-suffix=-3.2)
and
> install the libstdc++ files to a different location (e.g.
> --with-gxx-include-dir=/usr/include/c++/3.2). You may also combine
some of
> these and specify other options of course; RTFM.
>
> Then do `rpmbuild -bb <spec-file>' (you may also specify --target
PLATFORM
> in order to optimize for e.g. i686).
>
> You may also have a look at the spec files for the compat-gcc src RPM
how
> they manage that sort of thing and what configure options they use.
>
>
> I'd say if you don't want to distribute the RPM afterwards options 1
or 2
> sound preferable. Or just install Debian -- it's a lot more fun ;-)
>
> Also note that C++ libraries generated with g++ 2.96 are not ABI
compatible
> with g++ 3.x and you can't link with them.
>
> You need to be more verbose about the error message, I think rpmbuild
keeps
> a log of the build process somewhere. A build error often suggests
that
> you're missing required packages, but that's just a shot in the dark.
>
> HTH
Unfortunately I am not in a position to upgrade the operating system so
suggestion 2 is a no-go. I have tried to pursue suggestion 1 since
uninstalling and redistribution aren't an issue. I assume you meant I
would have to build from source, so I downloaded it and used the
following commands (I didn't use any options):
./configure
make bootstrap
Everything seems to have gone okay (at least it didn't terminate with an
error message). Am I correct in thinking that if I now do 'make
install', all the files - including library files for the standard C++
library etc - will be installed below /usr/local? What will the
directories be? I absolutely must not overwrite the gcc 2.96 files.
(usr/local/bin is empty but in my $PATH if that is important).
Also what will the new version of gcc be called? gcc3? When other users
use gcc 2.96 will they be able to use 'gcc ...' without specifying
include directories for the old libraries, and will I be able to use
'gcc3 ...' (or whatever) without specifying include directories for the
new libraries? I'm not exactly clear on what is going to happen as you
can see. :)
Many thanks for your helpful reply,
Jonathan
More information about the Gcc-help
mailing list