> Message: 8 > Date: 30 Jul 2004 11:56:13 -0400 > From: Chris A Czerwinski <chrisczerwinski@xxxxxxxxx> > Subject: Re: Where can I find a C complier > To: For users of Fedora Core releases <fedora-list@xxxxxxxxxx> > Message-ID: <1091202970.2101.43.camel@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