First : You can have as many versions of gcc as you want,
installed at the same time.
But : No old Ubuntu compilers will work in Ubuntu 11.04, 11.10 etc.
It's not about binutils or any other package :
The gcc binary is hard coded with certain search path's.
And the later Ubuntu's have got new hideaway locations for :
libgcc_s.so.1, { crt1.o crti.o crtn.o },
"/usr/include/": asm/: bits/: gnu/: sys/ .
"gcc" has search path's for finding files in it's own directories.
The missing files can be copied or linked into "old gcc" :
Then the modifications will not alter your system files.
Example : A "gcc41-compat 11.04" modified for 11.10 ..
Code:
sudo cp -a /usr/include/i386-linux-gnu/asm/ /usr/gcc41/lib/gcc/i386-linux-gnu/4.1.2/include/
sudo cp -a /usr/include/i386-linux-gnu/bits/ /usr/gcc41/lib/gcc/i386-linux-gnu/4.1.2/include/
sudo cp -a /usr/include/i386-linux-gnu/gnu/ /usr/gcc41/lib/gcc/i386-linux-gnu/4.1.2/include/
sudo cp -a /usr/include/i386-linux-gnu/sys/ /usr/gcc41/lib/gcc/i386-linux-gnu/4.1.2/include/
## crt1.o crti.o crtn.o :
sudo cp /usr/lib/i386-linux-gnu/crt* /usr/gcc41/lib/gcc/i386-linux-gnu/4.1.2/
## /usr/gcc41/lib/ :
sudo rm libgcc_s.so*
sudo cp /lib/i386-linux-gnu/libgcc_s.so.1 /usr/gcc41/lib/
## /usr/gcc41/lib/ :
sudo ln -s libgcc_s.so.1 libgcc_s.so
Links :
gcc41-compat 11.10
https://docs.google.com/open?id=0B7S...NjZmMHkyaE9Odw
g++41-compat
https://docs.google.com/open?id=0B7S...hjMjljN2M2MGU4
gcc34-compat 11.04
https://docs.google.com/open?id=0B7S...gxNGI0MTQ4YTY4
g++34-compat
https://docs.google.com/open?id=0B7S...RkMWIxMzIyNDEz
.