GCC 3.1.1 has just been released. This release is a bug fix release relative to GCC 3.1. The next release of GCC will be GCC 3.2. This release will be available very soon (within days or a week). The only changes in GCC 3.2 relative to GCC 3.1.1 will be changes to the C++ ABI.
They’re changing the C++ ABI again!?! Doesn’t that break binary compatibility (again)? Wasn’t there supposed to be a stable C++ ABI for the entire 3.x series? KDE is going to suffer if different distros come out using different GCC versions, because no one will be able to distribute pre-compiled KDE software that works on more than one or two distros. Other C++ based projects will be in the same boat.
That was my thought as well when I read it. Operating systems that are based on GGC and relying quite a lot on C++, but are not open source are going to suffer too. See: OSX, BeOS…
KDE will also have problems…
Too many binary compatiblity breaking changes.
” but are not open source are going to suffer too. See: OSX, BeOS… ”
True, but osX less then BeOS, Apple has a team working on gcc and a couple engeneers on Gdb.
—
http://islande.hirlimann.net
3.1.1 has V3 C++ ABI too, the only difference is that it had a couple of bugs in its implementation of the ABI.
calm down.
Secondly, You dont have to worry about gcc 3.1 being released in any distro’s I know its redhat & mandrakes plan to use 3.2 and they look to be the next two distro’s to have a release.
Looking at the changelog, the ABI bug fixes will only break the ABI if the code in question uses the problematic code. Generally, most GUI toolkits like to keep things as simple as possible, so its unlikely that the ABI changes in 3.1.1 will cause massive lossage, in KDE or anything else.
Having said that, I’m still wary of commiting Syllable to GCC 3.x…
Stability, isn’t it the main keywork in software engineering?
I’m personaly not surprised, people said too early that gcc3.1 was the gcc that everybody was waiting for, without remembering the time it took to make a gcc 2.x stable.
The ‘binary’ transition could be a benefit, only maintained code will survive
Regards,
Guillaume
Having said that, I’m still wary of commiting Syllable to GCC 3.x…
I think it is a good idea, the performance increase is much better… though compiling takes longer than in 2.x
only the top part, entitled “Additional Changes in GCC 3.1.1” is talking about GCC 3.1.1, the rest of the document is about GCC 3.1.
They do not mention any ABI changes at all in this section…
Can GCC 3.1.x compile ok the Linux Kernel?
And improve it’s performance too?
>And improve it’s performance too?
Tremendous improvement on performance! I have here a Mandrake Cooker compiled on GCC 3.1 and is faster than my Gentoo Linux installation on the same machine! Imagine that.
> I have here a Mandrake Cooker compiled on GCC 3.1 and is
> faster than my Gentoo Linux installation on the same
> machine! Imagine that.
You’re obviously not running Gentoo 1.3(a,b) … Default compiler is GCC 3.1.
Truthfully, 3.1 was a release a lot of 64bit people were waiting on… I couldn’t compile Sparc Solaris binaries in 64bit until GCC 3.1
> You’re obviously not running Gentoo 1.3(a,b) … Default compiler is GCC 3.1.
No, Gentoo 1.2 is fragile enough for my taste, thank you. Using something so alpha like 1.3, wouldn’t be wise. Mandrake Cooker on the other hand, is surprisingly stable.
To be honest, I think that my next main Linux distro would be Red Hat 8.0. Gentoo is lovely, but it is fragile. I always fix things back after some system updates, and problem is that I don’t want to spend time doing so every update. I just don’t quite trust Gentoo anymore. I did an update system the other day and it nuked my Alsa. And I still don’t have 3D support. And KDE 3.02 apps have warnings about some typos on the source code when they start from the terminal (I was watching the source code compiling and there was indeed some typos resulting in the warnings when later launching kde apps).
Mandrake is unessesarily bloated for my taste, but it works. Red Hat has some good clean ups in it these days and if they use gcc 3.2, it would be great too. I would normally go for Slackware, but they do not update too much and there are not many packages available. Debian is too conservative for me, I do not like that. I don’t know about SuSE, haven’t bought their latest product, but I heard problems with the mobo’s APIC and the USB mice.
What is cool with the newer gcc is that an oggenc win32 compile using gcc 3.1 is faster than an ICL6 one, for AMD platforms.
I went from about ~8,2x to ~9,2x.
> I would normally go for Slackware, but they do not update too much and there are not many packages available.
Well exactly that is why i run Slackware on all my machines. I don’t want RPMs/DEBs/any packages, i want to ./configure it and see what configure switches it offers, and compile it by myself with my own CFLAGS/CXXFLAGS.
OpenBeOS won’t suffer…
Today, no. Obos is not even functional yet, mentioning it here today is even laughable. But if one day is fully functional and it has real applications and a real userbase, and the GCC team decides to break again the C++ ABI, then OBOS *WILL* suffer.
I always fix things back after some system updates, and problem is that I don’t want to spend time doing so every update. I just don’t quite trust Gentoo anymore.
Yeah, doesn’t sound like something I would want to use. Linux already takes enough tinkering as it is. Thats why I like debian. Apt-get is so smooth 99.999% of the time and I have never had anything break after an update. That is a huge benefit for me. Once I have a distro installed and everything working I don’t want to fix everything again when I upgrade something.
Debian is too conservative for me, I do not like that.
True, but I’ve learned to live with it. If you compare it to any proprietary OS it is still very up to date (I’m talking about the testing tree here, not stable) but against the other linux distros it is a little behind. Usually new packages make it into testing within 2-3 weeks of them being released. Thats fast enough for me. KDE is the exception there. I REALLY wish the KDE 3 packages would hit the official unstable branch.
and the GCC team decides to break again the C++ ABI
You make it sound as if the decision to break binary compatibility is take on a whim; this couldn’t be further from the truth. GCC3.x marks the introduction of the Cross Vendor C++ ABI, which is a big step forward because it means that any dynamic libraries produced by conformat compilers (eg. GCC3.x, ICC6) can be cross linked.
Unfortunately GCC3.1 contains some bugs in it’s implementation which mean that it doesn’t conform to the spec. GCC3.2 will correct this, albeit at the cost of breaking binary compatibility. Assuming GCC3.2’s implementation is bug free, the ABI (and consequently binary compatibility) will remain the same for the forseable future.
About Debian being conservative:
I’m sure you’re already aware of this, but Debian can be as bleeding edge as you want.
Running “testing” should give you no more trouble than “stable”, since all in there packages have been tested for at least two weeks, iirc. Personally I’m mostly running unstable. It’s really not that unstable for anyone that has a bit of experience with Linux.
Just moments ago, I saw an announcement on slashdot that valgrind went 1.0 . when I did an “apt-cache search valgrind” there it was already: valgrind 1.0.0-1 Thesame happened with Mozilla and other apps.
I haven’t used up2date or urpmi yet, but tools like apt-get really also do wonders for the granularity of an OS. For all my pc’s I start with an installing just the base system (<50mb i think) and add more stuff as I go/need. Also, “quickly checking something out” is made very easy. I often perform a quick install, test, purge cycle of stuff I want to check out but not install permanently. Beats looking at screenshots.
I’ve been really confused about debian based distros. Now if i was to use apt-get on libranet or storm would they download apps from the debian or some distro server? in other words i’m wondering if debian based distros would be compatable to eachother using packages from debian.