From: Sebastian Kuzminsky Date: Sat, 14 May 2016 15:44:13 +0200 Subject: Change yosys to look for the #define constant "__unix__" instead of "__linux__", to select code appropriate for Unix-like systems. This has been tested with Clang 3.5 and GCC 4.6, 4.8, and 4.9 on Linux, and Clang 3.5 and GCC 4.9 on kFreeBSD. --- kernel/driver.cc | 8 ++++---- kernel/log.cc | 6 +++--- kernel/log.h | 2 +- kernel/yosys.cc | 4 ++-- libs/minisat/System.cc | 2 +- passes/cmds/cover.cc | 2 +- 6 files changed, 12 insertions(+), 12 deletions(-) diff --git a/kernel/driver.cc b/kernel/driver.cc index f273057..edec776 100644 --- a/kernel/driver.cc +++ b/kernel/driver.cc @@ -34,7 +34,7 @@ #include #include -#if defined (__linux__) || defined(__FreeBSD__) +#if defined (__unix__) || defined(__FreeBSD__) # include # include # include @@ -466,7 +466,7 @@ int main(int argc, char **argv) if (print_stats) log_hasher = new SHA1; -#if defined(__linux__) +#if defined(__unix__) // set stack size to >= 128 MB { struct rlimit rl; @@ -560,7 +560,7 @@ int main(int argc, char **argv) #else std::string meminfo; std::string stats_divider = ", "; -# if defined(__linux__) +# if defined(__unix__) std::ifstream statm; statm.open(stringf("/proc/%lld/statm", (long long)getpid())); if (statm.is_open()) { @@ -627,7 +627,7 @@ int main(int argc, char **argv) } } -#if defined(YOSYS_ENABLE_COVER) && (defined(__linux__) || defined(__FreeBSD__)) +#if defined(YOSYS_ENABLE_COVER) && (defined(__unix__) || defined(__FreeBSD__)) if (getenv("YOSYS_COVER_DIR") || getenv("YOSYS_COVER_FILE")) { string filename; diff --git a/kernel/log.cc b/kernel/log.cc index a782095..311bc38 100644 --- a/kernel/log.cc +++ b/kernel/log.cc @@ -25,7 +25,7 @@ # include #endif -#if defined(__linux__) || defined(__FreeBSD__) +#if defined(__unix__) || defined(__FreeBSD__) # include #endif @@ -420,7 +420,7 @@ void log_pop() log_flush(); } -#if (defined(__linux__) || defined(__FreeBSD__)) && defined(YOSYS_ENABLE_PLUGINS) +#if (defined(__unix__) || defined(__FreeBSD__)) && defined(YOSYS_ENABLE_PLUGINS) void log_backtrace(const char *prefix, int levels) { if (levels <= 0) return; @@ -615,7 +615,7 @@ void log_wire(RTLIL::Wire *wire, std::string indent) // --------------------------------------------------- // This is the magic behind the code coverage counters // --------------------------------------------------- -#if defined(YOSYS_ENABLE_COVER) && (defined(__linux__) || defined(__FreeBSD__)) +#if defined(YOSYS_ENABLE_COVER) && (defined(__unix__) || defined(__FreeBSD__)) dict> extra_coverage_data; diff --git a/kernel/log.h b/kernel/log.h index 3e1faca..82e27d0 100644 --- a/kernel/log.h +++ b/kernel/log.h @@ -165,7 +165,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(YOSYS_ENABLE_COVER) && (defined(__linux__) || defined(__FreeBSD__)) +#if defined(YOSYS_ENABLE_COVER) && (defined(__unix__) || defined(__FreeBSD__)) #define cover(_id) do { \ static CoverData __d __attribute__((section("yosys_cover_list"), aligned(1), used)) = { __FILE__, __FUNCTION__, _id, __LINE__, 0 }; \ diff --git a/kernel/yosys.cc b/kernel/yosys.cc index 69a1417..791d40e 100644 --- a/kernel/yosys.cc +++ b/kernel/yosys.cc @@ -89,7 +89,7 @@ std::vector memhasher_store; void memhasher_on() { -#if defined(__linux__) || defined(__FreeBSD__) +#if defined(__unix__) || defined(__FreeBSD__) memhasher_rng += time(NULL) << 16 ^ getpid(); #endif memhasher_store.resize(0x10000); @@ -737,7 +737,7 @@ struct TclPass : public Pass { } TclPass; #endif -#if defined(__linux__) || defined(__CYGWIN__) +#if defined(__unix__) std::string proc_self_dirname() { char path[PATH_MAX]; diff --git a/libs/minisat/System.cc b/libs/minisat/System.cc index 1921a1d..efbfb08 100644 --- a/libs/minisat/System.cc +++ b/libs/minisat/System.cc @@ -29,7 +29,7 @@ OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWA #include "System.h" -#if defined(__linux__) +#if defined(__unix__) #include diff --git a/passes/cmds/cover.cc b/passes/cmds/cover.cc index 1128116..0d137ca 100644 --- a/passes/cmds/cover.cc +++ b/passes/cmds/cover.cc @@ -130,7 +130,7 @@ struct CoverPass : public Pass { log("\n"); } -#if defined(YOSYS_ENABLE_COVER) && (defined(__linux__) || defined(__FreeBSD__)) +#if defined(YOSYS_ENABLE_COVER) && (defined(__unix__) || defined(__FreeBSD__)) for (auto &it : get_coverage_data()) { if (!patterns.empty()) { for (auto &p : patterns)