diff --git a/hw/scsi/mptsas.c b/hw/scsi/mptsas.c index 8bae8f543e..d05fa9f549 100644 --- a/hw/scsi/mptsas.c +++ b/hw/scsi/mptsas.c @@ -1236,11 +1236,9 @@ static void *mptsas_load_request(QEMUFile *f, SCSIRequest *sreq) n = qemu_get_be32(f); /* TODO: add a way for SCSIBusInfo's load_request to fail, * and fail migration instead of asserting here. - * When we do, we might be able to re-enable NDEBUG below. + * This is just one thing (there are probably more) that must be + * fixed before we can allow NDEBUG compilation. */ -#ifdef NDEBUG -#error building with NDEBUG is not supported -#endif assert(n >= 0); pci_dma_sglist_init(&req->qsg, pci, n); diff --git a/hw/virtio/virtio.c b/hw/virtio/virtio.c index 464947f76d..3129d25c00 100644 --- a/hw/virtio/virtio.c +++ b/hw/virtio/virtio.c @@ -1025,11 +1025,9 @@ void *qemu_get_virtqueue_element(VirtIODevice *vdev, QEMUFile *f, size_t sz) /* TODO: teach all callers that this can fail, and return failure instead * of asserting here. - * When we do, we might be able to re-enable NDEBUG below. + * This is just one thing (there are probably more) that must be + * fixed before we can allow NDEBUG compilation. */ -#ifdef NDEBUG -#error building with NDEBUG is not supported -#endif assert(ARRAY_SIZE(data.in_addr) >= data.in_num); assert(ARRAY_SIZE(data.out_addr) >= data.out_num); diff --git a/include/qemu/osdep.h b/include/qemu/osdep.h index 6855b94bbf..99666383b2 100644 --- a/include/qemu/osdep.h +++ b/include/qemu/osdep.h @@ -107,6 +107,22 @@ extern int daemon(int, int); #include "glib-compat.h" #include "qemu/typedefs.h" +/* + * We have a lot of unaudited code that may fail in strange ways, or + * even be a security risk during migration, if you disable assertions + * at compile-time. You may comment out these safety checks if you + * absolutely want to disable assertion overhead, but it is not + * supported upstream so the risk is all yours. Meanwhile, please + * submit patches to remove any side-effects inside an assertion, or + * fixing error handling that should use Error instead of assert. + */ +#ifdef NDEBUG +#error building with NDEBUG is not supported +#endif +#ifdef G_DISABLE_ASSERT +#error building with G_DISABLE_ASSERT is not supported +#endif + #ifndef O_LARGEFILE #define O_LARGEFILE 0 #endif