Only enable code coverage counters on linux
authorClifford Wolf <clifford@clifford.at>
Fri, 9 Jan 2015 16:32:53 +0000 (17:32 +0100)
committerClifford Wolf <clifford@clifford.at>
Fri, 9 Jan 2015 16:32:53 +0000 (17:32 +0100)
kernel/driver.cc
kernel/log.cc
kernel/log.h
passes/cmds/cover.cc

index 1698e216cb156d246bb4b98ace58270c86153c71..c7f233c5497e97641605ea7033d2692d84e03dfa 100644 (file)
@@ -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;
index 70bff8f5b62be602dcd36a661a5c26a4d188b52e..401dbeeb051d9382401781286b82591f47fae400 100644 (file)
@@ -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<std::string, std::pair<std::string, int>> extra_coverage_data;
 
index fa02d2396932344e39f7eeba5362e9348aa5da22..e61d19b6299ec5b1c02cdd0429f4d9718a3224c7 100644 (file)
@@ -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)
 
index 6a70d1de98953c55090475d5a09648958cd5f441..5644066af680a5675cb1d68f54bdf9d15722e6c5 100644 (file)
@@ -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<std::string> 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)