From: Clifford Wolf Date: Fri, 9 Jan 2015 16:32:53 +0000 (+0100) Subject: Only enable code coverage counters on linux X-Git-Tag: yosys-0.5~113 X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=95f1eb9b87064719c17d45f24775c3e97497b6df;p=yosys.git Only enable code coverage counters on linux --- diff --git a/kernel/driver.cc b/kernel/driver.cc index 1698e216c..c7f233c54 100644 --- a/kernel/driver.cc +++ b/kernel/driver.cc @@ -406,7 +406,7 @@ int main(int argc, char **argv) } } -#ifdef YOSYS_ENABLE_COVER +#if defined(YOSYS_ENABLE_COVER) && defined(__linux__) if (getenv("YOSYS_COVER_DIR") || getenv("YOSYS_COVER_FILE")) { string filename; diff --git a/kernel/log.cc b/kernel/log.cc index 70bff8f5b..401dbeeb0 100644 --- a/kernel/log.cc +++ b/kernel/log.cc @@ -402,7 +402,7 @@ void log_cell(RTLIL::Cell *cell, std::string indent) // --------------------------------------------------- // This is the magic behind the code coverage counters // --------------------------------------------------- -#ifdef YOSYS_ENABLE_COVER +#if defined(YOSYS_ENABLE_COVER) && defined(__linux__) dict> extra_coverage_data; diff --git a/kernel/log.h b/kernel/log.h index fa02d2396..e61d19b62 100644 --- a/kernel/log.h +++ b/kernel/log.h @@ -92,10 +92,10 @@ static inline void log_assert_worker(bool cond, const char *expr, const char *fi // This is the magic behind the code coverage counters // --------------------------------------------------- -#ifdef YOSYS_ENABLE_COVER +#if defined(YOSYS_ENABLE_COVER) && defined(__linux__) #define cover(_id) do { \ - static CoverData __d YS_ATTRIBUTE(section("yosys_cover_list"), aligned(1), used) = { __FILE__, __FUNCTION__, _id, __LINE__, 0 }; \ + static CoverData __d __attribute__((section("yosys_cover_list"), aligned(1), used)) = { __FILE__, __FUNCTION__, _id, __LINE__, 0 }; \ __d.counter++; \ } while (0) diff --git a/passes/cmds/cover.cc b/passes/cmds/cover.cc index 6a70d1de9..5644066af 100644 --- a/passes/cmds/cover.cc +++ b/passes/cmds/cover.cc @@ -80,7 +80,7 @@ struct CoverPass : public Pass { 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("Coverage counters are only available in Yosys for Linux.\n"); log("\n"); } virtual void execute(std::vector args, RTLIL::Design *design) @@ -128,7 +128,7 @@ struct CoverPass : public Pass { log("\n"); } -#ifdef YOSYS_ENABLE_COVER +#if defined(YOSYS_ENABLE_COVER) && defined(__linux__) for (auto &it : get_coverage_data()) { if (!patterns.empty()) { for (auto &p : patterns)