forked from Mirrors/opensbi
make: Add a command line option for debugging OpenSBI
Add a new make command line option "make DEBUG=1" to prevent compiler optimizations using -O2. Signed-off-by: Bin Meng <bmeng@tinylab.org> Reviewed-by: Xiang W <wxjstz@126.com> Reviewed-by: Anup Patel <anup@brainfault.org>
This commit is contained in:
7
Makefile
7
Makefile
@@ -331,7 +331,12 @@ GENFLAGS += $(libsbiutils-genflags-y)
|
|||||||
GENFLAGS += $(platform-genflags-y)
|
GENFLAGS += $(platform-genflags-y)
|
||||||
GENFLAGS += $(firmware-genflags-y)
|
GENFLAGS += $(firmware-genflags-y)
|
||||||
|
|
||||||
CFLAGS = -g -Wall -Werror -ffreestanding -nostdlib -fno-stack-protector -fno-strict-aliasing -O2
|
CFLAGS = -g -Wall -Werror -ffreestanding -nostdlib -fno-stack-protector -fno-strict-aliasing
|
||||||
|
ifneq ($(DEBUG),)
|
||||||
|
CFLAGS += -O0
|
||||||
|
else
|
||||||
|
CFLAGS += -O2
|
||||||
|
endif
|
||||||
CFLAGS += -fno-omit-frame-pointer -fno-optimize-sibling-calls -mstrict-align
|
CFLAGS += -fno-omit-frame-pointer -fno-optimize-sibling-calls -mstrict-align
|
||||||
# enable -m(no-)save-restore option by CC_SUPPORT_SAVE_RESTORE
|
# enable -m(no-)save-restore option by CC_SUPPORT_SAVE_RESTORE
|
||||||
ifeq ($(CC_SUPPORT_SAVE_RESTORE),y)
|
ifeq ($(CC_SUPPORT_SAVE_RESTORE),y)
|
||||||
|
13
README.md
13
README.md
@@ -298,6 +298,19 @@ NOTE: Using `BUILD_INFO=y` without specifying SOURCE_DATE_EPOCH will violate
|
|||||||
purpose, and should NOT be used in a product which follows "reproducible
|
purpose, and should NOT be used in a product which follows "reproducible
|
||||||
builds".
|
builds".
|
||||||
|
|
||||||
|
Building with optimization off for debugging
|
||||||
|
--------------------------------------------
|
||||||
|
|
||||||
|
When debugging OpenSBI, we may want to turn off the compiler optimization and
|
||||||
|
make debugging produce the expected results for a better debugging experience.
|
||||||
|
To build with optimization off we can just simply add `DEBUG=1`, like:
|
||||||
|
```
|
||||||
|
make DEBUG=1
|
||||||
|
```
|
||||||
|
|
||||||
|
This definition is ONLY for development and debug purpose, and should NOT be
|
||||||
|
used in a product build.
|
||||||
|
|
||||||
Contributing to OpenSBI
|
Contributing to OpenSBI
|
||||||
-----------------------
|
-----------------------
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user