GCC 3.3.1 Released
Wiz writes "The latest and greatest version of gcc is now out - v3.3.1! As an update to the current version, it is bug fixes only. You can find the list of changes here and you can download it from their mirror sites. Enjoy!"
← Back to Stories (view on slashdot.org)
Suitable for kernel yet?
This finally fixes the pentium4/sse2 bug. Waiting for ebuild... ;)
Rumour has it the plain-old-C compilation speeds are getting slower and slower every gcc release these days.
I don't have any measurements, I'm just wondering whether the new and cool feature stuff and possible speed increases in the resulting object code warrant migration from, say, 2.95.x whatever.
Standards conformance improvements are another thing but for the casual developer I guess gcc's been pretty good for quite a while now.
.SIGSEGV
Does anyone know when dead code removal will be introduced to gcj? I'm linking statically to keep system dependencies very small but unfortunately my binary is reaching huge proportions but only because dead code removal does not work. (i.e. if I never use libc's printf(), don't put it in the final binary.)
Bugger, that's gunner make a lot of older stuff harder to compile. Is there any particular reason that the grim reaper went postal with this version?
Got time? Spend some of it coding or testing
It remains to be seen whether the extra performance gained by running these would offset the extra time spent running them, especially under a self-built version of gcc. The reorder-functions option was way overdue in gcc.
BTW: "bug-fix release, my ass." You don't add stuff like this in a bug-fix release.
Got time? Spend some of it coding or testing
...yet this is a supposedly obselete architecture?
Got time? Spend some of it coding or testing
That's a good troll, and it would be funny, except that every time someone tries these jokes on
If you care that much, provide the support in GCC. Either write the code yourself, or convince/hire someone else to do it for you. They've gone supported for a long time now, which means that nobody cares enough.
If you care, but not quite enough, then use an older compiler.
Ha, ha. You conveniently ommitted the "Windows NT 3.x" part of the obsoletion name.
You cannot apply a technological solution to a sociological problem. (Edwards' Law)
You could just do the same thing that you apparently do with your hardware.
Don't update!
You did not scroll down to the bottom of the page. -ftracer and -freorder-functions were both added to 3.3.
Given the generality of the g'grantparent question, I suspect the answer applies anyway. (-:
Got time? Spend some of it coding or testing
Also, compared to libgcj, glibc's contribution of executable size is quite small (about 300~400k), so maybe optimizing libgcj is more important.
Dead code removal means that part of the source code that will never be executed (as decided by the compiler) will not turn into executable code. For the simplest example, in "if (0) { ... }" the whole statement will be skipped in executable code. Sometimes it is harder, for example "a = foo(); if (a == null) a = this; BLAH BLAH BLAH; if (a == null) { ... }".
Unless specifically mentioned in the changes doc, those changes are 3.3 changes, not 3.3.1 changes. The -ftracer and -freorder-functions changes were in 3.3.
That the newer gcc gets, the less people get excited about it. Maybe they should try to spice things up a little bit, maybe name the next one gnu ginac. (e.g. gcc is not a compiler). That'll get them riled up, for sure.
Many Thanks,
Luke
open4free
FreeBSD uses GCC, too.
That's only true for the java stuff. As far as I
know, the compiler+libraries used for
- C
- C++
- Objective C
- Fortran
- Ada
are LGPL'd (please correct me if not) and free of
the following issue seen on a mailing list:
The libjava of GCC is LGPL'd, however using the
imports keyword of java and inheriting a standard
java class makes use of the library so you MUST
LGPL your own code.
IMO Bullshit, because you could develop java code
using sunjdk and then only compile it using gcj,
but the FSF's politics isn't really nice.
I've also removed all the un-free GFDL'd documenta-
tion (i.e. anything which specifies front or back
cover texts and/or invariant sections), just like
the Debian project.
My Karma isn't excellent, damn it! (And
Why are you spreading misinformation? The GCJ runtime library does not use the LGPL. It uses the GPL, with an exception that permits linking against proprietary code. This is very friendly licensing IMO, and the FSF bashing is not warrented.
this was added in release 3.3.0
3.3.1 is really a bugfix
Will update to that at work immediately.
A little google whoring turns this up:
GCC Compilation Comparison
The rumors have some foundation. For one particular C program, on one particular machine, at the particular optimization level of -O2:
gcc 3.0.4 takes 28% more time than gcc 2.95.3
gcc 3.1.1 takes 24% more time than gcc 3.0.4
gcc 3.2.3 takes 7% more time than gcc 3.1.1
gcc 3.3 takes 5% more time than gcc 3.2.3
gcc 3.4* takes 6% more time than gcc 3.3
gcc 3.5* takes 9% more time than gcc 3.4*
The "3.4*" and "3.5*" are cvs versions as of a certain date, as these versions are far from release.
Here are some release dates:
2001-03-22 gcc 2.95.3
2002-02-21 gcc 3.0.4
2002-07-26 gcc 3.1.1
2003-04-23 gcc 3.2.3
2003-05-14 gcc 3.3
Correlating these:
gcc 3.0.4, 11 months, 28%
gcc 3.1.1, 5 months, 24%
gcc 3.2.3, 9 months, 5%
The next gcc will be gcc 3.3.2 and it is estimated for October 1. If it meets that date, and if it continues to have the same performance as gcc 3.3 and gcc 3.3.1, then that would be: 4 months, 5%.
If you use Moore's Law to estimate processor speed then your CPU is getting 100% faster every 18 months, or 4% faster per month. So in the period from 2.95.3 to 3.1.1 gcc was getting slower about the same rate as processors were getting faster. Since 3.1.1, gcc is getting slower at just 1% a month or so, and processors are getting faster at 4% a month.
Refinements to my model welcomed.
As far the trade-off goes: "compile speed" is one dimension and "new and cool features" is another dimension and "object code speed" is yet another dimension. There is no universal answer about trade-offs between dimensions, you just have to make the decision yourself.
The C++ library code is covered by the full-blown GPL with some additional rights. Quoting from fstream.cc:
I haven't ever asked a lawyer, but I believe I can legally redistribute executables created by g++ that include libstdc++ code. It's not the LGPL, though.Karma: Nonnegative
Right, but it seems instantiating(sp?) in C++
and in Java(TM) are different things to the FSF.
Or importing. Don't really remember.
My Karma isn't excellent, damn it! (And
Trolls lurk everywhere. Mod them down.
... and I think it's either the web server at myownlittleworld.com or my own Mozilla browser.
I see seriously different numbers with mozilla and Lynx. The Mozilla numbers are as I described, and the Lynx numbers are as you described.
The page in Mozilla says "All snapshots were from 20030614" and the page in Lynx says "All snapshots were from 20030725".
And the numbers for 3.1.1 and 3.2.3 are significantly different between the versions of the page.
Ouch!
With an older version of gcc, which still supports those architectures, and works just as well as ever?
See what I've been reading.
As far as I can tell you can still use the latest GCC for your Mac, you just have to be running a recent version of NetBSD or Linux, not Libc1-based or a.out-formatted systems. Read the full line of what's being obsolesced, the i386 is only unsupported in Windows NT 3 now, if you care to read the entire line.
You'll be fine if you use Debian 3.0, or NetBSD-current. AFAIK, you could also bootstrap NetBSD-stable with ELF support.
Now what would be really swell is a DFA-description for the 680x0 series, shouldn't be too hard to whip up for someone who works withthem, right? It might make supporting these CPUs a lot easier in the future.
Don't worry, the 680x0 is old and slow, but it's part of the coldfire series, which is still in production and use in embedded appliances, networking, and scientific equipment where there's interest and demand.
"Sometimes, I think Trent just needs a cup of hot chocolate and a blankie." -Tori Amos on Nine Inch Nails