| View previous topic :: View next topic |
| Author |
Message |
F1r31c3r n00b


Joined: 31 Aug 2007 Posts: 61 Location: UK
|
Posted: Sun Jan 09, 2011 1:40 pm Post subject: Multiple switchable gcc version |
|
|
I was having problems finding info on how to install and switch between multiple installed GCC version.
Some old programs require GCC-3 to compile and as we all know at the moment we use GCC-4.4.4 so my compile failed.
Instead of recoding the qemu project which i needed to compile i installed GCC-3.4.6-r2 and then found a handy method of switching between compilers quickly.
I thought i would share it as a tip and trick.
Note here if you use CFLAGS="-O2 -march=native" in your /etc/make.conf you will need to change thhis. I made a second line temporarily commenting out the #CFLAGS="-O2 -march=native" with the sharp sign then i added CFLAGS="-O2 -march=pentium4" This is because GCC-3 does not have the feature to automatically detect your CPU features. This is one of the great benefits of GCC-4 but hey. After you are done and switch back to GCC-4 just edit your /etc/make.conf and swap the sharp sign# to comment in native and comment out the pentium4 and your all good.
First of lets unmask GCC versions this gives us access to install masked versions. Note you may not need do this step so i suggest first try it without unmasking with keywords and just jump to the next step. If its masked or not found then do the unmasking.
| Quote: | # echo "sys-devel/gcc ~x86" >> /etc/portage/package.keywords
|
Next we need to verify its being installed in a new slot (NS)
| Quote: | # emerge -av =sys-devel/gcc-3.4.6-r2
|
It should say in [ NS ] if it does your good to go so say yes. Of course this is for version 3.4.6-r6 if you want a different version adjust accordingly. The = sign is crucial for those that dont know.
After this has completed the magic switching and listing commands are as follows:
To switch to the 3.4.6 do this
| Quote: |
# gcc-config i686-pc-linux-gnu-3.4.6
|
To List the available versions you have installed and can switch to(its an lower cap L):
To switch back to version 4.4.4 or whichever higher version you have installed(use list command above to list which they are)
| Quote: |
# gcc-config i686-pc-linux-gnu-4.4.4
|
Thats it, this is how you can have multiple versions of GCC installed and switch between them as and when needed. I understand it is very rare in many cases to do this probably 1 out of 2000 possible packages this maybe handy. Again due to the serious lack of information on this out there across the web i felt a need to make sure it was documented.
I am sure and hope it would help someone. _________________ When i look In-between white and black i see a rainbow of colours |
|
| Back to top |
|
 |
casualx n00b


Joined: 06 Feb 2012 Posts: 21 Location: rohrbach,switzerland
|
Posted: Thu Mar 22, 2012 2:00 am Post subject: |
|
|
yes this helps me really!
thx a lot |
|
| Back to top |
|
 |
gringo Advocate


Joined: 27 Apr 2003 Posts: 3505
|
Posted: Fri Mar 23, 2012 11:06 am Post subject: |
|
|
no need to write the hole toolchain name, there is a number at the beginning of each line so that all you actually have to do is : gcc-config 1 ( or whatever).
cheers |
|
| Back to top |
|
 |
big_gie Tux's lil' helper


Joined: 31 Aug 2004 Posts: 148
|
Posted: Sat Apr 21, 2012 7:05 pm Post subject: |
|
|
Is gcc-config change possible on a per-user basis? Or is a system wide change which requires root?
Having the possibility to change it user-wise would be interesting. For example, I would love to use the stable gcc version installed on my machine, say 4.5, but have a 4.6 or 4.7 installation around to have access to its newer features for my own programs (not for any system-wide installation).
Basically, a gcc installed version used only for non-protage programs.
Is that possible? |
|
| Back to top |
|
 |
Etal Veteran


Joined: 15 Jul 2005 Posts: 1580
|
Posted: Sat Apr 21, 2012 7:51 pm Post subject: |
|
|
Unfortunately, no.
But you can always specify your compiler (e.g. "gcc-4.6" instead of just "gcc"). And if that's too much trouble, you can create a directory with symlinks that point to the right versions and add it to PATH to override the system version. _________________ “And even in authoritarian countries, information networks are helping people discover new facts and making governments more accountable.”– Hillary Clinton, Jan. 21, 2010 |
|
| Back to top |
|
 |
big_gie Tux's lil' helper


Joined: 31 Aug 2004 Posts: 148
|
Posted: Sat Apr 21, 2012 7:54 pm Post subject: |
|
|
| Hum ok. So I guess I could install the updated compiler and write an eselect module which would set a different gcc version for a user... |
|
| Back to top |
|
 |
Etal Veteran


Joined: 15 Jul 2005 Posts: 1580
|
Posted: Sat Apr 21, 2012 7:55 pm Post subject: |
|
|
If you do, please share!  _________________ “And even in authoritarian countries, information networks are helping people discover new facts and making governments more accountable.”– Hillary Clinton, Jan. 21, 2010 |
|
| Back to top |
|
 |
big_gie Tux's lil' helper


Joined: 31 Aug 2004 Posts: 148
|
|
| Back to top |
|
 |
|