summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorClifford Wolf <clifford@clifford.at>2014-07-25 12:22:37 +0200
committerClifford Wolf <clifford@clifford.at>2014-07-25 12:27:36 +0200
commitc4e4f79a2a2fd5530fa2677245f9361c7b04df70 (patch)
tree5791a429c88f429c63893d9ac91590ddc4b07a3d
parenta8706b73a2c14c6b34e4fb7136866c0bc959acbb (diff)
Disabled cover() for non-linux builds
-rw-r--r--kernel/driver.cc2
-rw-r--r--kernel/log.h3
-rw-r--r--passes/cmds/cover.cc7
3 files changed, 8 insertions, 4 deletions
diff --git a/kernel/driver.cc b/kernel/driver.cc
index a4556fb1..3c185e44 100644
--- a/kernel/driver.cc
+++ b/kernel/driver.cc
@@ -749,7 +749,7 @@ int main(int argc, char **argv)
delete yosys_design;
yosys_design = NULL;
-#ifndef NDEBUG
+#ifdef COVER_ACTIVE
if (getenv("YOSYS_COVER_DIR") || getenv("YOSYS_COVER_FILE"))
{
char filename_buffer[4096];
diff --git a/kernel/log.h b/kernel/log.h
index 18ea528a..1658800d 100644
--- a/kernel/log.h
+++ b/kernel/log.h
@@ -75,7 +75,8 @@ void log_cell(RTLIL::Cell *cell, std::string indent = "");
// This is the magic behind the code coverage counters
// ---------------------------------------------------
-#ifndef NDEBUG
+#if defined(__linux__) && !defined(NDEBUG)
+#define COVER_ACTIVE
#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 0a96c0b2..ac72ba53 100644
--- a/passes/cmds/cover.cc
+++ b/passes/cmds/cover.cc
@@ -71,6 +71,9 @@ struct CoverPass : public Pass {
log(" gawk '{ p[$3] = $1; c[$3] += $2; } END { for (i in p)\n");
log(" printf \"%%-60s %%10d %%s\\n\", p[i], c[i], i; }' {files} | sort -k3\n");
log("\n");
+ log("\n");
+ log("Coverage counters are only available in debug builds of Yosys for Linux.\n");
+ log("\n");
}
virtual void execute(std::vector<std::string> args, RTLIL::Design *design)
{
@@ -113,7 +116,7 @@ struct CoverPass : public Pass {
log("\n");
}
-#ifndef NDEBUG
+#ifdef COVER_ACTIVE
for (auto &it : get_coverage_data()) {
if (!patterns.empty()) {
for (auto &p : patterns)
@@ -131,7 +134,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.");
+ log_cmd_error("Coverage counters are only available in debug builds of Yosys for Linux.\n");
#endif
for (auto f : out_files)