1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163
|
From: Sebastian Kuzminsky <seb@highlab.com>
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 f8d00c3..45cd6ad 100644
--- a/kernel/driver.cc
+++ b/kernel/driver.cc
@@ -30,7 +30,7 @@
#include <limits.h>
#include <errno.h>
-#ifdef __linux__
+#ifdef __unix__
# include <sys/types.h>
# include <unistd.h>
#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 abc401f..9641e9d 100644
--- a/kernel/log.cc
+++ b/kernel/log.cc
@@ -25,7 +25,7 @@
# include <sys/time.h>
#endif
-#ifdef __linux__
+#ifdef __unix__
# include <dlfcn.h>
#endif
@@ -280,7 +280,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;
@@ -464,7 +464,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<std::string, std::pair<std::string, int>> 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<void*> 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 <stdlib.h>
@@ -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 <fpu_control.h>
#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)
|