Where can I find a C complier

J. Erik Hemdal ehemdal at townisp.com
Sun Aug 1 20:44:43 UTC 2004


> Message: 8
> Date: 30 Jul 2004 11:56:13 -0400
> From: Chris A Czerwinski <chrisczerwinski at cogeco.ca>
> Subject: Re: Where can I find a C complier
> To: For users of Fedora Core releases <fedora-list at redhat.com>
> Message-ID: <1091202970.2101.43.camel at redhat90>
> Content-Type: text/plain
>
  . . . . lots of stuff snipped.
>
> I was wondering out loud - Aren't all libraries backward compatible?
> Would the lastest gcc and it's libraries be backward compatible to
> gcc2.96?

Well, they are supposed to be, at least in the grand scheme of things.  But
two things stand in the way.

First, GCC is a hard thing to develop and maintain across so many platforms.
There might be some issues that crop up now and again relating to version
compatibility.  If they do, then the maintainers have work to do.  So this
might be a reason for a developer to ask for a specific verstion that is not
the latest.

Second, even if a particular package can be built with a version of GCC
doesn't mean that the author knows it can be.  If I built my software on
v2.96 and you ask me about v3.4.1, my answer might be "No, I need 2.96."  If
I haven't been able to confirm it works on a later version, I might not
claim compatibility.  So you might try, and see what happens; but that's at
your risk.

> and if not, can your system have gcc 3.4.1 environment at the
> same time as e.g. gcc 2.96 environment. So the real question is ---
> How can I configure these various environments and switch between them?
> That's where I'm coming from?
>

Here's one way to do it.  Let's say you have libraries for blarg that
normally go in /usr/local/blarg.  You are currently at v1.0.  Put the
libraries somewhere else, say /usr/blarg/v1.0 and place symlinks with the
same names in /usr/local/blarg.

When you go to v2.0, put the new libraries in (let's say) /usr/blarg/v2.0.
Remove the symlinks in /usr/local/blarg and put new ones in that point to
/usr/blarg/v2.0

By memory, this would be something like

ln -s /usr/local/blarg/libblarg.so /usr/blarg/v2.0/libblarg.so

Now your makefiles that look in /usr/local/blarg find the correct libraries
via the symbolic links to whichever set of libraries you wish to use.  By
changing the links (easy to do in a script) you can switch between them as
you need.


> A side note:	Didn't ORACLE8i need certain libraries ONLY from gcc2.96
> environment for it to function properly? Isn't it also the reason that
> RedHat wanted to stay with a compiler for a certain amount of time
> before releasing the next version? Or what was the real reason for
> staying put?

I remember something about this, but the details escape me.  If you know
there are a lot of potential issues involved in migrating, you might decide
to stay put until your test and evaluation capability can catch up.  If you
have a known issue you can't or won't work around, you might wait until your
compiler catches up with a fix.


>
> Chris Cz (Newbie thru and thru yet always learning)
>
>

Hope this helps, Chris.   Erik






More information about the fedora-list mailing list