summaryrefslogtreecommitdiff
path: root/kernel/driver.cc
diff options
context:
space:
mode:
Diffstat (limited to 'kernel/driver.cc')
-rw-r--r--kernel/driver.cc17
1 files changed, 17 insertions, 0 deletions
diff --git a/kernel/driver.cc b/kernel/driver.cc
index b43df868..c24b293f 100644
--- a/kernel/driver.cc
+++ b/kernel/driver.cc
@@ -22,6 +22,7 @@
#include <readline/history.h>
#include <string.h>
#include <unistd.h>
+#include <libgen.h>
#include <dlfcn.h>
#include "kernel/rtlil.h"
@@ -343,6 +344,22 @@ struct TclPass : public Pass {
} TclPass;
#endif
+std::string rewrite_yosys_exe(std::string exe)
+{
+ char buffer[1024];
+ ssize_t buflen = readlink("/proc/self/exe", buffer, sizeof(buffer)-1);
+
+ if (buflen < 0)
+ return exe;
+
+ buffer[buflen] = 0;
+ std::string newexe = stringf("%s/%s", dirname(buffer), exe.c_str());
+ if (access(newexe.c_str(), X_OK) == 0)
+ return newexe;
+
+ return exe;
+}
+
int main(int argc, char **argv)
{
std::string frontend_command = "auto";