On 2011-11-17, Mike Frysinger <vap...@gentoo.org> wrote: >>> Removing the __noreturn__ attribute from abort's declaration seems >>> like a pretty good idea if it makes core files usable. It's not like >>> adding one instruction and taking up one word of stack space is really >>> worth the sacrifice in the case of abort(). Premature optimization >>> rears it's ugly head once again... ;)
FWIW, I removed the __noreturn__ attribute from the abort() declaration in stdlib.h, and corefiles are now usable for obtaining a backtrace. >> I would say the same thing about **ALL** noreturn functions, even >> exit. For instance if exit crashes (e.g. closing stdio files or >> running atexit handlers) you probably want to be able to see where it >> was called from... > > putting that under a debug knob might be fine, but by default, > noreturn makes a lot more sense (bloating the code just for > debugging? yikes). After removing __noreturn__ from abort() my complete kernel+rootfs+apps uImage size (compressed) increased from 7373224 bytes to 7373412 bytes. That's a change of 188 bytes out of 7.3 million, or 0.0025%. Not really a lot of "bloat", but it's apparently a moot point now: I filed a bug requesting that the __noreturn__ attribute be removed from abourt() so that it produces backtraceable core files, but the bug has been declared "invalid". -- Grant Edwards grant.b.edwards Yow! Someone in DAYTON, at Ohio is selling USED gmail.com CARPETS to a SERBO-CROATIAN _______________________________________________ uClibc mailing list uClibc@uclibc.org http://lists.busybox.net/mailman/listinfo/uclibc