Firstly, thanks for providing the compiler, I'm trying it out right now. Now about the gcc versions:
On Ubuntu and other Linux distributions, various versions of g++ can be installed. Usually, the standard compiler version of the distribution is set as a link of /usr/bin/g++ to the file /usr/bin/g++-X.X.
Therefore on Ubuntu 9.04 open64 will use the frontend of g++-4.3 resulting in compile errors. A workaround is to reset the link of /usr/bin/g++ to point to the parallel installed g++-4.2, but the next time the package of g++-4.3 is updated this manual link will be clobbered.(Likewise, when the distribution is updated.)
If would be nice, if open64 could be persuaded to look for the full name of the g++ executable including the version number instead.
As I see from the code in osprey/driver/ run.c (my_execv), and in lang_defs.c it might be possible to add the version number from an environment variable (like OPEN64_GCC_FRONTEND_VERSION). If it is set, then lang_defs.c (get_full_phase_name) would return the executable with the version number, and of course one would have to change the check in my_execv.
I might come up with a patch later this week if you think is idea could be pursed and if someone with a bit more knowledge of the code can tell me that these are the right spots to change the code.