This is the mail archive of the gcc-help@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: A problem related with installation of gcc 4.2.1?


Simon King wrote:

> I found softlinks libstdc++.so.6 both in /usr/lib/ and /usr/lib64/. Even
> after building gcc 4.2.1, they pointed to libstdc++.so.6.8, although gcc
> 4.2.1 provides libstdc++.so.6.9. I changed this manually.

When you configure gcc you give it a --prefix.  If you don't specify a
prefix, the default is /usr/local.  This is the tree under which gcc
installs itself, and it does not mess with anything outside of that
tree.  It would be horribly broken if building gcc from source mucked
about with anything under /usr/lib or /usr/lib64 unless it was
explicitly configured for --prefix=/usr, so what you've observed is the
correct behavior: installing gcc with default options does not touch the
system compiler.  It is essential that software works this way, as it
allows for installing multiple versions side-by-side into different
prefixes, without any interference between them.  It also allows normal
users without administrative privileges to install private copies of
things, e.g. with --prefix=$HOME/foo/bar.

If you really want to replace the default system compiler then you need
to configure and install with --prefix=/usr.  But that's generally a
really, really bad idea because it violates the principle of "don't mess
around behind the back of your distro's package management system." 
This can lead to all kinds of disasterous situations, such as you go to
install routine vendor package updates and it overwrites your custom gcc
with an updated copy of the vendor's gcc, rendering all the programs
you'd compiled with that newer gcc version hopelessly broken.

> Do you think this is a definite solution, or might there be other details
> that i need to change by hand? At least i'm able to build some rather big
> computer algebra system, so, i'm rather confident that everything is
> alright now.

I personally would never modify symlinks in /usr/lib like that.  Again,
those symlinks are "owned" by the package management system of your
distro which means they could be silently overwritten or modified the
next time you install OS updates.

The better solution is to just add $prefix/lib to LD_LIBRARY_PATH.  If
that is not convenient, then add it to /etc/ld.so.conf.

Brian


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]