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 | 6 +++--- kernel/log.cc | 6 +++--- kernel/log.h | 2 +- kernel/yosys.cc | 4 ++-- libs/minisat/System.cc | 4 ++-- libs/minisat/System.h | 2 +- passes/cmds/cover.cc | 2 +- 7 files changed, 13 insertions(+), 13 deletions(-) diff --git a/kernel/driver.cc b/kernel/driver.cc index 5cfc417..dfc7d25 100644 --- a/kernel/driver.cc +++ b/kernel/driver.cc @@ -30,7 +30,7 @@ #include #include -#ifdef __linux__ +#ifdef __unix__ # include # include #endif @@ -409,7 +409,7 @@ int main(int argc, char **argv) #else std::string meminfo; std::string stats_divider = ", "; -# ifdef __linux__ +# ifdef __unix__ std::ifstream statm; statm.open(stringf("/proc/%lld/statm", (long long)getpid())); if (statm.is_open()) { @@ -463,7 +463,7 @@ int main(int argc, char **argv) } } -#if defined(YOSYS_ENABLE_COVER) && defined(__linux__) +#if defined(YOSYS_ENABLE_COVER) && defined(__unix__) if (getenv("YOSYS_COVER_DIR") || getenv("YOSYS_COVER_FILE")) { string filename; diff --git a/kernel/log.cc b/kernel/log.cc index 3f1d888..5d78c08 100644 --- a/kernel/log.cc +++ b/kernel/log.cc @@ -25,7 +25,7 @@ # include #endif -#ifdef __linux__ +#ifdef __unix__ # include #endif @@ -278,7 +278,7 @@ void log_pop() log_flush(); } -#if defined(__linux__) && defined(YOSYS_ENABLE_PLUGINS) +#if defined(__unix__) && defined(YOSYS_ENABLE_PLUGINS) void log_backtrace(const char *prefix, int levels) { if (levels <= 0) return; @@ -462,7 +462,7 @@ void log_cell(RTLIL::Cell *cell, std::string indent) // --------------------------------------------------- // This is the magic behind the code coverage counters // --------------------------------------------------- -#if defined(YOSYS_ENABLE_COVER) && defined(__linux__) +#if defined(YOSYS_ENABLE_COVER) && defined(__unix__) dict> extra_coverage_data; diff --git a/kernel/log.h b/kernel/log.h index 53480db..4cf7d00 100644 --- a/kernel/log.h +++ b/kernel/log.h @@ -106,7 +106,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__) +#if defined(YOSYS_ENABLE_COVER) && defined(__unix__) #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 08fee97..8b071f0 100644 --- a/kernel/yosys.cc +++ b/kernel/yosys.cc @@ -66,7 +66,7 @@ std::vector memhasher_store; void memhasher_on() { -#ifdef __linux__ +#ifdef __unix__ memhasher_rng += time(NULL) << 16 ^ getpid(); #endif memhasher_store.resize(0x10000); @@ -647,7 +647,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 febe3b4..3df1810 100644 --- a/libs/minisat/System.cc +++ b/libs/minisat/System.cc @@ -25,7 +25,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 @@ -99,7 +99,7 @@ double Minisat::memUsedPeak(bool) { return 0; } void Minisat::setX86FPUPrecision() { -#if defined(__linux__) && defined(_FPU_EXTENDED) && defined(_FPU_DOUBLE) && defined(_FPU_GETCW) +#if defined(__unix__) && defined(_FPU_EXTENDED) && defined(_FPU_DOUBLE) && defined(_FPU_GETCW) // Only correct FPU precision on Linux architectures that needs and supports it: fpu_control_t oldcw, newcw; _FPU_GETCW(oldcw); newcw = (oldcw & ~_FPU_EXTENDED) | _FPU_DOUBLE; _FPU_SETCW(newcw); diff --git a/libs/minisat/System.h b/libs/minisat/System.h index ee92a6e..8ad9902 100644 --- a/libs/minisat/System.h +++ b/libs/minisat/System.h @@ -21,7 +21,7 @@ OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWA #ifndef Minisat_System_h #define Minisat_System_h -#if defined(__linux__) +#if defined(__unix__) #include #endif diff --git a/passes/cmds/cover.cc b/passes/cmds/cover.cc index 1475475..1918b54 100644 --- a/passes/cmds/cover.cc +++ b/passes/cmds/cover.cc @@ -128,7 +128,7 @@ struct CoverPass : public Pass { log("\n"); } -#if defined(YOSYS_ENABLE_COVER) && defined(__linux__) +#if defined(YOSYS_ENABLE_COVER) && defined(__unix__) for (auto &it : get_coverage_data()) { if (!patterns.empty()) { for (auto &p : patterns)