
dherring@ll.mit.edu wrote:
libQtGui.so.4.3.1 contains a special ELF section, .gnu_debuglink, that points the debugger to libQtGui.so.4.3.1.debug. This way they can install a "multithreaded release variant", but it points gdb to a file with all the Dwarf information needed for a "debug variant". Deleting that .debug file won't hurt people who don't use the debugger.
I haven't taken the time to figure out how they build this, but it looks like a worthwhile trick.
This works as long as both variants contain the same code. However, if the release variant is built with -DNDEBUG and the debug variant is not (say, to activate assert() only in debug mode), you really do need two separate builds. (On the topic of optimizing multi-variant builds: at least on Linux it is possible to use the same object files for DSOs as well as archives, so in principle it wouldn't be necessary to recompile everything twice in order to get shared and static build variants.) Regards, Stefan -- ...ich hab' noch einen Koffer in Berlin...