[libc] Allow assertions to be globally enabled or disabled
authorMichael Brown <mcb30@ipxe.org>
Tue, 5 Jul 2016 12:28:51 +0000 (13:28 +0100)
committerMichael Brown <mcb30@ipxe.org>
Tue, 5 Jul 2016 12:28:51 +0000 (13:28 +0100)
commit46719f2264fc63deaa712f4dc164d3b33c66e05f
tree08905147393d593afa255728a5329c940234a88e
parent6e1ce52d146fe8197c1b58e2e3b0ebcf9ccda349
[libc] Allow assertions to be globally enabled or disabled

Assertions are enabled for objects built with any debug level
(including an explicit debug level of zero).  It is sometimes useful
to be able to enable assertions across all objects; this currently
requires manually hacking include/assert.h.

Allow assertions to be globally enabled by adding ASSERT=1 to the
build command line.  For example:

  make bin/8086100e.mrom ASSERT=1

Similarly, allow assertions to be globally disabled by adding ASSERT=0
to the build command line.  If no ASSERT=... is specified on the
build command line, then only objects mentioned in DEBUG=... will have
assertions enabled (as is currently the case).

Note than globally enabling assertions imposes a relatively heavy
runtime penalty, primarily due to the various sanity checks performed
by list_add(), list_for_each_entry(), etc.

Signed-off-by: Michael Brown <mcb30@ipxe.org>
src/Makefile.housekeeping
src/include/assert.h