mathr / blog / #

Time to upgrade everything

So I was happily hacking away at oscintillate, finally got the XML reader and writer working, then I changed something (can't remember what), and suddenly it wouldn't link with tons of obscure error messages like:

'foo1' refererenced in section '.rodata' of foo2.o: defined in discarded section '.gnu.linkonce.foo3' of foo4.o

where I can't remember what foo1, foo2, foo3, foo4 were, but foo3 was some long mangled C++ identifier, and foo2 and foo4 might have been the same.

Anyway, a bit of research led to gcc bug 16625, and the suggested solution is to upgrade various packages, including gcc, so that's what I'm doing now, following the Gentoo Linux GCC Upgrade Guide. The main issue is that the ABI changed between gcc-3.3 and gcc-3.4, which means that you need to recompile all the libraries used by any software you compile with the new compiler (and all the software that uses the recompiled libraries, and so the chain continues until it consumes every single installed package), or they simply crash with a segmentation fault. At least building oscintillate with gcc-3.4.5 didn't exhibit bug 16625, otherwise I think I would have given up and kicked something, but I can't run it, because the dependant libraries are compiled with the incompatible gcc-3.3.

This all means: my laptop is busy compiling and compiling and compiling, phase 1 of 2 is on package 13 of 125, and phase 2 will have many more packages than phase 1.

In unrelated news, while backing up various important files just in case this massive upgrade FUBARs my system, I noticed that /var/log/acpid was over 1GB in size. So I deleted it, hope it doesn't break anything. I think I need to configure some log file rotation program or something, like seems to be the case for the other log files.