As some of you may know, I use Gentoo. Although there seems to be a negative connotation when someone says that word, I actually enjoy using it. Most of the time. Some of you may be saying, “Bryan, why haven’t you been working on Coaster this week?” and I would respond, “because I’ve been filing non-existant bugs on gcc and glibc when it was actually Gentoo’s fault.”
Yes, go ahead and laugh, but I found out my problem :P. I wasn’t able to use std::locale(“”); in a c++ program compiled with gcc 3.4.0 without it throwing an exception and crashing. Instead of finding out what was happening in libstdc++, I decided to ask in the gcc IRC channel and for some reason or another, I got the crazy idea that there was a glibc problem, so I filed a bug against glibc (after filing another bug against gcc that Murray talked about already this week). Well, after being told each (libstdc++ and glibc) was fine, I finally went to the compiler source, used regexxer (thanks Daniel) to find the method that was throwing the exception and found out my problem: Gentoo was compiling gcc with
--enable-locale=generic and the generic locale code for libstdc++ only accepts “C” for a locale. After taking that little option out of the ebuild, configure finds glibc on my system and compiles with glibc support. Tada! C++ programs can now use locales again.
Other than that minor setback, I have really found gcc 3.4.0 quite enjoyable. There are only a few things that won’t compile with it, but I’m sure they will be fixed in due time. On the bright side, all of gtkmm and all of the required dependencies compile with 3.4.0 and that’s a good thing. Now, let’s hope I can quit worrying about my compiler and get back to Coaster.
In other news, Target has a lot of great stuff. My fiancée and I finished up most of the stuff we needed for our gift registry at Target today. It’s great to pick out stuff for other people to buy for you.