$ sudo -s
$ cd /usr/bin
$ rm gcc
$ rm g++
$ ln -s gcc4 gcc
$ ln -s g++4 g++
$ exit
:D
geir
On Jan 10, 2007, at 1:40 PM, Naveen Neelakantam wrote:
On Jan 10, 2007, at 12:02 PM, Gregory Shimansky wrote:
Geir Magnusson Jr. wrote:
In the past, we've talked about what versions of GCC we will
consider as our "supported" toolchain. We noted that it's useful
to keep using other versions, such as 3.x, to make sure we're not
inadvertently hiding bugs through compiler bugs.
I'd like to tighten up this degree of freedom a little.
What's the harm if we declare 4.x as our default compiler
version? What potential platforms do we lose, or who do we
inconvenience because requiring stdc++.so.6?
AFAIK there are no Linux distributions which have versions that
don't have gcc 4.x included, it is the default compiler in all
last distros versions. So all last (and maybe some before last)
versions of Linux distros should have no problems with libstdc+
+.so.6.
I use RHEL4 update 4 and the default compiler is gcc 3.4.6. It
does include an install of gcc 4.1.0, but it is named "gcc4" and "g+
+4".
I am happy to switch to using the gcc 4.x install that I have, but
I am not sure how to tell the build infrastructure to use "gcc4"
instead of "gcc". I did try building DRLVM by typing "./build.sh -
DCXX=gcc4" but I got the following error:
--------------------
BUILD FAILED
/home/dcsfiles/neelakan/Sandbox/Harmony/stable/working_vm/build/
make/build.xml:432: The following error occurred while executing
this line:
/home/dcsfiles/neelakan/Sandbox/Harmony/stable/working_vm/build/
make/build.xml:439: The following error occurred while executing
this line:
/home/dcsfiles/neelakan/Sandbox/Harmony/stable/working_vm/build/
make/build_component.xml:72: The following error occurred while
executing this line:
/home/dcsfiles/neelakan/Sandbox/Harmony/stable/working_vm/build/
lnx_ia32_gcc4_debug/semis/build/targets/common_extra.xml:8: gcc4 is
not a legal value for this attribute
--------------------
There are two other alternatives as I see it. I could move the
"gcc4" and "g++4" binaries on my dev box over to "gcc" and "g++",
but that effectively changes the default compiler version for
everyone using the machine. Our dev boxes are shared, so I don't
like that option. The other alternative would be to install a
version of gcc 4.x into a private directory and set my path to
point to it. I can do this, but should I be expected to?
This is a question of how old software (and hardware) we're going
to support. Probably interested parties could backport the code to
the old systems which is not only old Linux distros but also
platforms like old Windows versions.
For the officially built binaries which are supposed to be
certified I think gcc 4.x is the right choice because soon it may
happen that some platforms won't include even compatibility
packages of libstdc++.so.5. For the unofficial distribution builds
which insist on using 3.x (if they exist at all) they may send us
patches to enable building on 3.x if they encounter problems.
I ran into this playing with Harmony on OLPC, and a developer
expressed a little surprise that we were still using 3.x. I
don't follow the gcc ecosystem at all, so I don't know what
issues there are w/ 4.x, and why we wouldn't move forward to it
as a general (not strict) policy.
I am surprised too. I tried to push moving to gcc 4.x because I
use it on all systems and we've had cases when code which compiles
on 3.x failed to compiled on 4.x because of more strict syntax
checks.
--
Gregory
Naveen