summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Makefile5
-rw-r--r--kernel/driver.cc2
-rw-r--r--kernel/log.cc2
-rw-r--r--kernel/log.h3
-rw-r--r--passes/cmds/cover.cc4
5 files changed, 10 insertions, 6 deletions
diff --git a/Makefile b/Makefile
index 7733dbcb..c1944f2e 100644
--- a/Makefile
+++ b/Makefile
@@ -11,6 +11,7 @@ ENABLE_ABC := 1
ENABLE_PLUGINS := 1
ENABLE_READLINE := 1
ENABLE_VERIFIC := 0
+ENABLE_COVER := 0
# other configuration flags
ENABLE_GPROF := 0
@@ -138,6 +139,10 @@ CXXFLAGS += $(patsubst %,-I$(VERIFIC_DIR)/%,$(VERIFIC_COMPONENTS)) -DYOSYS_ENABL
LDLIBS += $(patsubst %,$(VERIFIC_DIR)/%/*-linux.a,$(VERIFIC_COMPONENTS))
endif
+ifeq ($(ENABLE_COVER),1)
+CXXFLAGS += -DYOSYS_ENABLE_COVER
+endif
+
ifeq ($(PRETTY), 1)
P_STATUS = 0
P_OFFSET = 0
diff --git a/kernel/driver.cc b/kernel/driver.cc
index 5e69cced..8164fef2 100644
--- a/kernel/driver.cc
+++ b/kernel/driver.cc
@@ -335,7 +335,7 @@ int main(int argc, char **argv)
log("%s\n", out_count ? "" : " no commands executed");
}
-#ifdef COVER_ACTIVE
+#ifdef YOSYS_ENABLE_COVER
if (getenv("YOSYS_COVER_DIR") || getenv("YOSYS_COVER_FILE"))
{
char filename_buffer[4096];
diff --git a/kernel/log.cc b/kernel/log.cc
index 807f58bf..1a21e9fe 100644
--- a/kernel/log.cc
+++ b/kernel/log.cc
@@ -274,7 +274,7 @@ void log_cell(RTLIL::Cell *cell, std::string indent)
// ---------------------------------------------------
// This is the magic behind the code coverage counters
// ---------------------------------------------------
-#ifdef COVER_ACTIVE
+#ifdef YOSYS_ENABLE_COVER
std::map<std::string, std::pair<std::string, int>> extra_coverage_data;
diff --git a/kernel/log.h b/kernel/log.h
index 81d01ace..a6f80892 100644
--- a/kernel/log.h
+++ b/kernel/log.h
@@ -87,8 +87,7 @@ static inline void log_assert_worker(bool cond, const char *expr, const char *fi
// This is the magic behind the code coverage counters
// ---------------------------------------------------
-#if defined(__linux__) && !defined(NDEBUG)
-#define COVER_ACTIVE
+#ifdef YOSYS_ENABLE_COVER
#define cover(_id) do { \
static CoverData __d __attribute__((section("yosys_cover_list"), aligned(1))) = { __FILE__, __FUNCTION__, _id, __LINE__, 0 }; \
diff --git a/passes/cmds/cover.cc b/passes/cmds/cover.cc
index b8baaf3d..6a70d1de 100644
--- a/passes/cmds/cover.cc
+++ b/passes/cmds/cover.cc
@@ -128,7 +128,7 @@ struct CoverPass : public Pass {
log("\n");
}
-#ifdef COVER_ACTIVE
+#ifdef YOSYS_ENABLE_COVER
for (auto &it : get_coverage_data()) {
if (!patterns.empty()) {
for (auto &p : patterns)
@@ -146,7 +146,7 @@ struct CoverPass : public Pass {
for (auto f : out_files)
fclose(f);
- log_cmd_error("Coverage counters are only available in debug builds of Yosys for Linux.\n");
+ log_cmd_error("This version of Yosys was not built with support for code coverage counters.\n");
#endif
for (auto f : out_files)