diff --git a/.gitmodules b/.gitmodules index 9f3cb367a..cbbae7f31 100644 --- a/.gitmodules +++ b/.gitmodules @@ -11,3 +11,6 @@ [submodule "cxxopts"] path = libs/cxxopts url = https://github.com/jarro2783/cxxopts +[submodule "libs/backward-cpp"] + path = libs/backward-cpp + url = git@github.com:bombela/backward-cpp.git diff --git a/Makefile b/Makefile index 4c66e8d69..b0561eeac 100644 --- a/Makefile +++ b/Makefile @@ -64,7 +64,7 @@ SANITIZER = # SANITIZER = cfi # Prefer using ENABLE_DEBUG over setting these -OPT_LEVEL := -O3 +OPT_LEVEL := -O3 -g GCC_LTO := CLANG_LTO := -flto=thin @@ -156,6 +156,10 @@ else LINKFLAGS += -rdynamic ifneq ($(OS), OpenBSD) LIBS += -lrt + +LIBS += -lbfd # SILIMATE: support for backward-cpp +CXXFLAGS += -DBACKWARD_HAS_BFD # SILIMATE: support for backward-cpp + endif endif diff --git a/kernel/yosys.cc b/kernel/yosys.cc index 437d67ed1..097dd3a37 100644 --- a/kernel/yosys.cc +++ b/kernel/yosys.cc @@ -20,6 +20,8 @@ #include "kernel/yosys.h" #include "kernel/celltypes.h" +#include "libs/backward-cpp/backward.hpp" + #ifdef YOSYS_ENABLE_READLINE # include # include @@ -548,7 +550,7 @@ void yosys_setup() if(already_setup) return; already_setup = true; - + backward::SignalHandling* sh = new backward::SignalHandling; #ifdef WITH_PYTHON // With Python 3.12, calling PyImport_AppendInittab on an already // initialized platform fails (such as when libyosys is imported diff --git a/libs/backward-cpp b/libs/backward-cpp new file mode 160000 index 000000000..51f070045 --- /dev/null +++ b/libs/backward-cpp @@ -0,0 +1 @@ +Subproject commit 51f0700452cf71c57d43c2d028277b24cde32502